From ca44b49126e8b55af71ad6326d34830154c97c90 Mon Sep 17 00:00:00 2001 From: Jakov Smolic Date: Mon, 28 Dec 2020 12:50:18 +0100 Subject: x11-wm/awesome: fix build with gcc-10 * Port to cmake eclass * Minor additional cleanup * Thanks to Jeroen Roovers for submitting the patch link and to Eddie Chapman for providing the patch fix Closes: https://bugs.gentoo.org/707262 Package-Manager: Portage-3.0.9, Repoman-3.0.1 Signed-off-by: Jakov Smolic Signed-off-by: David Seifert --- x11-wm/awesome/awesome-4.3-r1.ebuild | 134 --------------------- x11-wm/awesome/awesome-4.3-r2.ebuild | 139 ++++++++++++++++++++++ x11-wm/awesome/files/awesome-4.3-fno-common.patch | 69 +---------- 3 files changed, 143 insertions(+), 199 deletions(-) delete mode 100644 x11-wm/awesome/awesome-4.3-r1.ebuild create mode 100644 x11-wm/awesome/awesome-4.3-r2.ebuild (limited to 'x11-wm') diff --git a/x11-wm/awesome/awesome-4.3-r1.ebuild b/x11-wm/awesome/awesome-4.3-r1.ebuild deleted file mode 100644 index c01581082c11..000000000000 --- a/x11-wm/awesome/awesome-4.3-r1.ebuild +++ /dev/null @@ -1,134 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit cmake-utils desktop pax-utils - -DESCRIPTION="A dynamic floating and tiling window manager" -HOMEPAGE="https://awesomewm.org/" -SRC_URI="https://github.com/awesomeWM/awesome-releases/raw/master/${P}.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" -IUSE="dbus doc gnome luajit test" -RESTRICT="test" - -RDEPEND=" - >=dev-lang/lua-5.1:0 - luajit? ( dev-lang/luajit:2 ) - dev-libs/glib:2 - >=dev-libs/libxdg-basedir-1 - >=dev-lua/lgi-0.8 - x11-libs/cairo[X,xcb(+)] - x11-libs/gdk-pixbuf:2[introspection] - >=x11-libs/libxcb-1.6[xkb] - >=x11-libs/pango-1.19.3[introspection] - >=x11-libs/startup-notification-0.10_p20110426 - >=x11-libs/xcb-util-0.3.8 - x11-libs/xcb-util-cursor - >=x11-libs/xcb-util-keysyms-0.3.4 - >=x11-libs/xcb-util-wm-0.3.8 - >=x11-libs/xcb-util-xrm-1.0 - x11-libs/libXcursor - x11-libs/libxkbcommon[X] - >=x11-libs/libX11-1.3.99.901 - dbus? ( >=sys-apps/dbus-1 ) -" - -# graphicsmagick's 'convert -channel' has no Alpha support, bug #352282 -DEPEND="${RDEPEND} - >=app-text/asciidoc-8.4.5 - app-text/xmlto - dev-util/gperf - virtual/pkgconfig - media-gfx/imagemagick[png] - >=x11-base/xcb-proto-1.5 - x11-base/xorg-proto - doc? ( dev-lua/ldoc ) - test? ( - app-shells/zsh - x11-base/xorg-server[xvfb] - dev-lua/busted - dev-lua/luacheck - ) -" - -# Skip installation of README.md by einstalldocs, which leads to broken symlink -DOCS=() -PATCHES=( - "${FILESDIR}/${PN}-4.0-convert-path.patch" # bug #408025 - "${FILESDIR}/${PN}-xsession.patch" # bug #408025 - "${FILESDIR}/${PN}-4.0-cflag-cleanup.patch" # bug #509658 - "${FILESDIR}/${PN}-4.3-fno-common.patch" # bug #707262 -) - -src_configure() { - # Compression of manpages is handled by portage - local mycmakeargs=( - -DSYSCONFDIR="${EPREFIX}"/etc - -DCOMPRESS_MANPAGES=OFF - -DWITH_DBUS=$(usex dbus) - -DGENERATE_DOC=$(usex doc) - -DAWESOME_DOC_PATH="${EPREFIX}"/usr/share/doc/${PF} - ) - if use luajit; then - mycmakeargs+=("-DLUA_INCLUDE_DIR=${EPREFIX}/usr/include/luajit-2.0") - mycmakeargs+=("-DLUA_LIBRARY=${EPREFIX}/usr/$(get_libdir)/libluajit-5.1.so") - fi - cmake-utils_src_configure -} - -src_test() { - # awesome's test suite starts Xvfb by itself, no need for virtualx eclass - HEADLESS=1 cmake-utils_src_make check -j1 -} - -src_install() { - cmake-utils_src_install - rm "${ED}"/usr/share/doc/${PF}/LICENSE || die - - pax-mark m "${ED}"/usr/bin/awesome - - exeinto /etc/X11/Sessions - newexe "${FILESDIR}"/${PN}-session ${PN} - - # GNOME-based awesome - if use gnome; then - # GNOME session - insinto /usr/share/gnome-session/sessions - newins "${FILESDIR}"/${PN}-gnome-3.session ${PN}-gnome.session - - # Application launcher - domenu "${FILESDIR}"/${PN}-gnome.desktop - - # X Session - insinto /usr/share/xsessions - doins "${FILESDIR}"/${PN}-gnome-xsession.desktop - fi - - # This directory contains SVG images which we don't want to compress - use doc && touch "${ED}"/usr/share/doc/${PF}/doc/images.ecompress.skip -} - -pkg_postinst() { - # bug #447308 - if use gnome; then - elog "You have enabled the gnome USE flag." - elog "Please note that quitting awesome won't kill your gnome session." - elog "To really quit the session, you should bind your quit key" - elog "to the following command:" - elog " gnome-session-quit --logout" - elog "For more info visit" - elog " https://bugs.gentoo.org/show_bug.cgi?id=447308" - fi - - # bug #440724 - elog "If you are having issues with Java application windows being" - elog "completely blank, try installing" - elog " x11-misc/wmname" - elog "and setting the WM name to LG3D." - elog "For more info visit" - elog " https://bugs.gentoo.org/show_bug.cgi?id=440724" -} diff --git a/x11-wm/awesome/awesome-4.3-r2.ebuild b/x11-wm/awesome/awesome-4.3-r2.ebuild new file mode 100644 index 000000000000..206d64b0eb27 --- /dev/null +++ b/x11-wm/awesome/awesome-4.3-r2.ebuild @@ -0,0 +1,139 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake desktop pax-utils + +if [[ ${PV} == *9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/awesomeWM/${PN}.git" +else + SRC_URI="https://github.com/awesomeWM/awesome-releases/raw/master/${P}.tar.xz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" +fi + +DESCRIPTION="A dynamic floating and tiling window manager" +HOMEPAGE="https://awesomewm.org/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="dbus doc gnome luajit test" +RESTRICT="test" # https://bugs.gentoo.org/654084 + +RDEPEND=" + dev-lang/lua:0 + dev-libs/glib:2 + dev-libs/libxdg-basedir + dev-lua/lgi + x11-libs/cairo[X,xcb(+)] + x11-libs/gdk-pixbuf:2 + x11-libs/libxcb[xkb] + x11-libs/pango[introspection] + x11-libs/startup-notification + x11-libs/xcb-util + x11-libs/xcb-util-cursor + x11-libs/xcb-util-keysyms + x11-libs/xcb-util-wm + x11-libs/xcb-util-xrm + x11-libs/libXcursor + x11-libs/libxkbcommon[X] + x11-libs/libX11 + dbus? ( sys-apps/dbus ) + luajit? ( dev-lang/luajit:2 ) +" + +# graphicsmagick's 'convert -channel' has no Alpha support, bug #352282 +DEPEND="${RDEPEND} + x11-base/xcb-proto + x11-base/xorg-proto + test? ( + x11-base/xorg-server[xvfb] + dev-lua/busted + dev-lua/luacheck + ) +" +BDEPEND=" + app-text/asciidoc + media-gfx/imagemagick[png] + virtual/pkgconfig + doc? ( dev-lua/ldoc ) + test? ( app-shells/zsh )" + +# Skip installation of README.md by einstalldocs, which leads to broken symlink +DOCS=() +PATCHES=( + "${FILESDIR}"/${PN}-4.0-convert-path.patch # bug #408025 + "${FILESDIR}"/${PN}-xsession.patch # bug #408025 + "${FILESDIR}"/${PN}-4.0-cflag-cleanup.patch # bug #509658 + "${FILESDIR}"/${P}-fno-common.patch # bug #707262 +) + +src_configure() { + # Compression of manpages is handled by portage + local mycmakeargs=( + -DSYSCONFDIR="${EPREFIX}"/etc + -DCOMPRESS_MANPAGES=OFF + -DWITH_DBUS=$(usex dbus) + -DGENERATE_DOC=$(usex doc) + -DAWESOME_DOC_PATH="${EPREFIX}"/usr/share/doc/${PF} + ) + if use luajit; then + mycmakeargs+=("-DLUA_INCLUDE_DIR=${EPREFIX}/usr/include/luajit-2.0") + mycmakeargs+=("-DLUA_LIBRARY=${EPREFIX}/usr/$(get_libdir)/libluajit-5.1.so") + fi + cmake_src_configure +} + +src_test() { + # awesome's test suite starts Xvfb by itself, no need for virtualx eclass + HEADLESS=1 cmake_build check -j1 +} + +src_install() { + cmake_src_install + rm "${ED}"/usr/share/doc/${PF}/LICENSE || die + + pax-mark m "${ED}"/usr/bin/awesome + + exeinto /etc/X11/Sessions + newexe "${FILESDIR}"/${PN}-session ${PN} + + # GNOME-based awesome + if use gnome; then + # GNOME session + insinto /usr/share/gnome-session/sessions + newins "${FILESDIR}"/${PN}-gnome-3.session ${PN}-gnome.session + + # Application launcher + domenu "${FILESDIR}"/${PN}-gnome.desktop + + # X Session + insinto /usr/share/xsessions + doins "${FILESDIR}"/${PN}-gnome-xsession.desktop + fi + + # This directory contains SVG images which we don't want to compress + use doc && touch "${ED}"/usr/share/doc/${PF}/doc/images.ecompress.skip +} + +pkg_postinst() { + # bug #447308 + if use gnome; then + elog "You have enabled the gnome USE flag." + elog "Please note that quitting awesome won't kill your gnome session." + elog "To really quit the session, you should bind your quit key" + elog "to the following command:" + elog " gnome-session-quit --logout" + elog "For more info visit" + elog " https://bugs.gentoo.org/show_bug.cgi?id=447308" + fi + + # bug #440724 + elog "If you are having issues with Java application windows being" + elog "completely blank, try installing" + elog " x11-misc/wmname" + elog "and setting the WM name to LG3D." + elog "For more info visit" + elog " https://bugs.gentoo.org/show_bug.cgi?id=440724" +} diff --git a/x11-wm/awesome/files/awesome-4.3-fno-common.patch b/x11-wm/awesome/files/awesome-4.3-fno-common.patch index 9a77bf42a39d..c75a8afd5e68 100644 --- a/x11-wm/awesome/files/awesome-4.3-fno-common.patch +++ b/x11-wm/awesome/files/awesome-4.3-fno-common.patch @@ -1,38 +1,7 @@ -https://github.com/awesomeWM/awesome/commit/d256d9055095f27a33696e0aeda4ee20ed4fb1a0.patch -https://bugs.gentoo.org/707262 +Taken from: https://github.com/awesomeWM/awesome/commit/d256d9055095f27a33696e0aeda4ee20ed4fb1a0 +Author: Reiner Herrmann Rebased by Eddie Chapman ----- -From d256d9055095f27a33696e0aeda4ee20ed4fb1a0 Mon Sep 17 00:00:00 2001 -From: Reiner Herrmann -Date: Fri, 17 Apr 2020 19:25:40 +0200 -Subject: [PATCH] Move variable declarations from header to C file to fix build - with GCC 10 -GCC 10 builds with -fno-common by default, which causes linker errors when -variables are declared in header files and included in multiple places. - -See also: https://gcc.gnu.org/gcc-10/porting_to.html ---- - common/lualib.c | 2 ++ - common/lualib.h | 2 +- - luaa.c | 2 ++ - luaa.h | 2 +- - objects/button.c | 2 ++ - objects/button.h | 2 +- - objects/client.c | 2 ++ - objects/client.h | 2 +- - objects/drawin.c | 2 ++ - objects/drawin.h | 2 +- - objects/key.c | 2 ++ - objects/key.h | 2 +- - objects/tag.c | 2 ++ - objects/tag.h | 2 +- - objects/window.c | 1 + - objects/window.h | 2 +- - 16 files changed, 23 insertions(+), 8 deletions(-) - -diff --git a/common/lualib.c b/common/lualib.c -index 312fb2d594..bb110ac716 100644 --- a/common/lualib.c +++ b/common/lualib.c @@ -20,6 +20,8 @@ @@ -44,8 +13,6 @@ index 312fb2d594..bb110ac716 100644 void luaA_checkfunction(lua_State *L, int idx) { if(!lua_isfunction(L, idx)) -diff --git a/common/lualib.h b/common/lualib.h -index 8a3ef089d7..a91261843c 100644 --- a/common/lualib.h +++ b/common/lualib.h @@ -28,7 +28,7 @@ @@ -57,8 +24,6 @@ index 8a3ef089d7..a91261843c 100644 void luaA_checkfunction(lua_State *, int); void luaA_checktable(lua_State *, int); -diff --git a/luaa.c b/luaa.c -index 419a8c2eb2..aeaba9cd1f 100644 --- a/luaa.c +++ b/luaa.c @@ -91,6 +91,8 @@ extern const struct luaL_Reg awesome_mouse_meta[]; @@ -70,8 +35,6 @@ index 419a8c2eb2..aeaba9cd1f 100644 /** A call into the Lua code aborted with an error. * * This signal is used in the example configuration, @{05-awesomerc.md}, -diff --git a/luaa.h b/luaa.h -index e159258348..d26c437691 100644 --- a/luaa.h +++ b/luaa.h @@ -317,7 +317,7 @@ const char *luaA_find_config(xdgHandle *, const char *, luaA_config_callback *); @@ -83,8 +46,6 @@ index e159258348..d26c437691 100644 int luaA_class_index_miss_property(lua_State *, lua_object_t *); int luaA_class_newindex_miss_property(lua_State *, lua_object_t *); -diff --git a/objects/button.c b/objects/button.c -index 892347a928..5ffdcd4432 100644 --- a/objects/button.c +++ b/objects/button.c @@ -35,6 +35,8 @@ @@ -96,8 +57,6 @@ index 892347a928..5ffdcd4432 100644 /** Button object. * * @tfield int button The mouse button number, or 0 for any button. -diff --git a/objects/button.h b/objects/button.h -index fb8bb8da28..8f0b894305 100644 --- a/objects/button.h +++ b/objects/button.h @@ -39,7 +39,7 @@ typedef struct button_t @@ -109,8 +68,6 @@ index fb8bb8da28..8f0b894305 100644 LUA_OBJECT_FUNCS(button_class, button_t, button) ARRAY_FUNCS(button_t *, button, DO_NOTHING) -diff --git a/objects/client.c b/objects/client.c -index 7b2d3a2022..b617a9e7a9 100644 --- a/objects/client.c +++ b/objects/client.c @@ -108,6 +108,8 @@ @@ -122,8 +79,6 @@ index 7b2d3a2022..b617a9e7a9 100644 /** Client class. * * This table allow to add more dynamic properties to the clients. For example, -diff --git a/objects/client.h b/objects/client.h -index 74a23131c5..387e7c2aea 100644 --- a/objects/client.h +++ b/objects/client.h @@ -200,7 +200,7 @@ struct client_t @@ -135,8 +90,6 @@ index 74a23131c5..387e7c2aea 100644 LUA_OBJECT_FUNCS(client_class, client_t, client) -diff --git a/objects/drawin.c b/objects/drawin.c -index 3fd1cc4350..3bbd93179c 100644 --- a/objects/drawin.c +++ b/objects/drawin.c @@ -46,6 +46,8 @@ @@ -148,8 +101,6 @@ index 3fd1cc4350..3bbd93179c 100644 /** Drawin object. * * @field border_width Border width. -diff --git a/objects/drawin.h b/objects/drawin.h -index 31f315aac5..2f8887d944 100644 --- a/objects/drawin.h +++ b/objects/drawin.h @@ -52,7 +52,7 @@ void luaA_drawin_systray_kickout(lua_State *); @@ -161,8 +112,6 @@ index 31f315aac5..2f8887d944 100644 #endif // vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 -diff --git a/objects/key.c b/objects/key.c -index c42f7446d8..365ba998cc 100644 --- a/objects/key.c +++ b/objects/key.c @@ -43,6 +43,8 @@ @@ -174,8 +123,6 @@ index c42f7446d8..365ba998cc 100644 /** Key object. * * @tfield string key The key to trigger an event. -diff --git a/objects/key.h b/objects/key.h -index 8aa07ffe3d..45f23cac79 100644 --- a/objects/key.h +++ b/objects/key.h @@ -36,7 +36,7 @@ typedef struct keyb_t @@ -187,21 +134,17 @@ index 8aa07ffe3d..45f23cac79 100644 LUA_OBJECT_FUNCS(key_class, keyb_t, key) DO_ARRAY(keyb_t *, key, DO_NOTHING) -diff --git a/objects/tag.c b/objects/tag.c -index a0050cc2a9..1b1a135762 100644 --- a/objects/tag.c +++ b/objects/tag.c @@ -190,6 +190,8 @@ #include "ewmh.h" #include "luaa.h" - + +lua_class_t tag_class; + /** * @signal request::select */ -diff --git a/objects/tag.h b/objects/tag.h -index d6bb40e0d8..f830b1e2c5 100644 --- a/objects/tag.h +++ b/objects/tag.h @@ -46,7 +46,7 @@ struct tag @@ -213,8 +156,6 @@ index d6bb40e0d8..f830b1e2c5 100644 LUA_OBJECT_FUNCS(tag_class, tag_t, tag) void tag_class_setup(lua_State *); -diff --git a/objects/window.c b/objects/window.c -index 440970f3d0..371d06bcd3 100644 --- a/objects/window.c +++ b/objects/window.c @@ -59,6 +59,7 @@ @@ -225,8 +166,6 @@ index 440970f3d0..371d06bcd3 100644 LUA_CLASS_FUNCS(window, window_class) static xcb_window_t -diff --git a/objects/window.h b/objects/window.h -index 5386fafead..fbc5296cf5 100644 --- a/objects/window.h +++ b/objects/window.h @@ -80,7 +80,7 @@ typedef struct @@ -237,4 +176,4 @@ index 5386fafead..fbc5296cf5 100644 +extern lua_class_t window_class; void window_class_setup(lua_State *); - + -- cgit v1.2.3-65-gdbad