x11-wm/wmfs: Fix CFLAGS=-fno-common
authorJeroen Roovers <jer@gentoo.org>
Mon, 27 Jan 2020 18:02:11 +0000 (19:02 +0100)
committerJeroen Roovers <jer@gentoo.org>
Mon, 27 Jan 2020 18:40:41 +0000 (19:40 +0100)
- EAPI=7
- Convert sed script to patch
- Fix W and event_handle for CFLAGS=-fno-common
- Respect CC
- Apply one lingering upstream patch

Package-Manager: Portage-2.3.85, Repoman-2.3.20
Closes: https://bugs.gentoo.org/show_bug.cgi?id=706654
Signed-off-by: Jeroen Roovers <jer@gentoo.org>
x11-wm/wmfs/files/wmfs-99999999-Debian.patch [new file with mode: 0644]
x11-wm/wmfs/files/wmfs-99999999-fno-common.patch [new file with mode: 0644]
x11-wm/wmfs/files/wmfs-99999999-strncat.patch [new file with mode: 0644]
x11-wm/wmfs/wmfs-99999999.ebuild

diff --git a/x11-wm/wmfs/files/wmfs-99999999-Debian.patch b/x11-wm/wmfs/files/wmfs-99999999-Debian.patch
new file mode 100644 (file)
index 0000000..dde3497
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure
++++ b/configure
+@@ -81,7 +81,7 @@ fi
+ [ -n "$USE_XFT" ] && CFLAGS="$CFLAGS -DHAVE_XFT"
+ # Debian hardening options http://wiki.debian.org/Hardening
+-which dpkg-buildflags > /dev/null 2>&1
++false
+ if [ $? -eq 0 ];
+ then
+     CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 `dpkg-buildflags --get CFLAGS`"
diff --git a/x11-wm/wmfs/files/wmfs-99999999-fno-common.patch b/x11-wm/wmfs/files/wmfs-99999999-fno-common.patch
new file mode 100644 (file)
index 0000000..0ff0ce0
--- /dev/null
@@ -0,0 +1,92 @@
+--- a/src/client.c
++++ b/src/client.c
+@@ -12,6 +12,7 @@
+ #include "draw.h"
+ #include "screen.h"
+ #include "mouse.h"
++#include "wmfs.h"
+ #define CLIENT_RESIZE_DIR(D)                                    \
+      void uicb_client_resize_##D(Uicb cmd)                      \
+--- a/src/event.c
++++ b/src/event.c
+@@ -21,6 +21,9 @@
+           if(!m->use_area || (m->use_area && INAREA(ev->x, ev->y, m->area))) \
+                if(m->func)                                                   \
+                     m->func(m->cmd);
++
++void (*event_handle[MAX_EV])(XEvent*);
++
+ static void
+ event_buttonpress(XEvent *e)
+ {
+--- a/src/event.h
++++ b/src/event.h
+@@ -17,6 +17,6 @@
+ void event_init(void);
+-void (*event_handle[MAX_EV])(XEvent*);
++extern void (*event_handle[MAX_EV])(XEvent*);
+ #endif /* EVENT_H */
+--- a/src/ewmh.c
++++ b/src/ewmh.c
+@@ -7,6 +7,7 @@
+ #include "util.h"
+ #include "screen.h"
+ #include "client.h"
++#include "wmfs.h"
+ /* Taken From standards.freedesktop.org */
+ #define _NET_WM_STATE_REMOVE 0 /* remove/unset property */
+--- a/src/mouse.c
++++ b/src/mouse.c
+@@ -9,6 +9,7 @@
+ #include "client.h"
+ #include "layout.h"
+ #include "draw.h"
++#include "wmfs.h"
+ #define _REV_SBORDER(c) draw_reversed_rect(W->root, c, false);
+--- a/src/status.c
++++ b/src/status.c
+@@ -9,6 +9,7 @@
+ #include "infobar.h"
+ #include "util.h"
+ #include "draw.h"
++#include "wmfs.h"
+ #include <string.h>
+--- a/src/wmfs.c
++++ b/src/wmfs.c
+@@ -25,6 +25,8 @@
+ #include "layout.h"
+ #include "systray.h"
++struct wmfs *W;
++
+ int
+ wmfs_error_handler(Display *d, XErrorEvent *event)
+ {
+@@ -617,8 +619,6 @@ main(int argc, char **argv)
+           }
+      }
+-     W = (struct wmfs*)xcalloc(1, sizeof(struct wmfs));
+-
+      /* Default path ~/.config/wmfs/wmfsrc */
+      W->confpath = path;
+--- a/src/wmfs.h
++++ b/src/wmfs.h
+@@ -444,6 +444,6 @@ void uicb_reload(Uicb cmd);
+ void uicb_quit(Uicb cmd);
+ /* Single global variable */
+-struct wmfs *W;
++extern struct wmfs *W;
+ #endif /* WMFS_H */
diff --git a/x11-wm/wmfs/files/wmfs-99999999-strncat.patch b/x11-wm/wmfs/files/wmfs-99999999-strncat.patch
new file mode 100644 (file)
index 0000000..e55cd00
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/src/launcher.c
++++ b/src/launcher.c
+@@ -366,7 +366,7 @@
+                if(pos && (end = complete(&cache, tmpbuf)))
+                {
+                     strncpy(buf, tmpbuf, sizeof(buf));
+-                    strncat(buf, end, sizeof(buf));
++                    strncat(buf, end, sizeof(buf) - 1);
+                     found = true;
+                }
+@@ -387,7 +387,7 @@
+           default:
+                lastwastab = false;
+-               strncat(buf, tmp, sizeof(tmp));
++               strncat(buf, tmp, sizeof(buf) - 1);
+                ++pos;
+                break;
+           }
index f152990663f484efadc2160227016ad80e0fb51d..a2a1959136ed520c606766f1517dce6e609fa4bb 100644 (file)
@@ -1,8 +1,8 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=5
-inherit eutils git-r3
+EAPI=7
+inherit git-r3 toolchain-funcs
 
 DESCRIPTION="Window Manager From Scratch, A tiling window manager highly configurable"
 HOMEPAGE="https://github.com/xorg62/wmfs"
@@ -26,15 +26,14 @@ DEPEND="
        virtual/pkgconfig
        x11-base/xorg-proto
 "
-
-src_prepare() {
-       epatch \
-               "${FILESDIR}"/${PN}-99999999-desktop.patch
-
-       sed -i -e '/^which dpkg/s|.*|false|g' configure || die
-}
+PATCHES=(
+       "${FILESDIR}"/${PN}-99999999-Debian.patch
+       "${FILESDIR}"/${PN}-99999999-desktop.patch
+       "${FILESDIR}"/${PN}-99999999-fno-common.patch
+)
 
 src_configure() {
+       tc-export CC
        # not autotools based
        local ECHO
        for ECHO in echo ''; do