From 901867fe3dc9a94211267ee7a7b00a850defaebe Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Mon, 27 May 2024 19:39:36 -0500 Subject: user/awesome: Backport GCC 10+ patch from upstream There was a difference in the context due to other upstream changes, but it was simple to change the patch to apply anyway. I didn't want to start poking with signal argument changes.. --- user/awesome/APKBUILD | 11 ++- user/awesome/gcc10.patch | 236 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 243 insertions(+), 4 deletions(-) create mode 100644 user/awesome/gcc10.patch diff --git a/user/awesome/APKBUILD b/user/awesome/APKBUILD index 9d58ed199..0029587b0 100644 --- a/user/awesome/APKBUILD +++ b/user/awesome/APKBUILD @@ -4,9 +4,9 @@ # Maintainer: Dan Theisen pkgname=awesome pkgver=4.3 -pkgrel=0 +pkgrel=1 pkgdesc="lua-configurable window manager framework" -url="http://awesome.naquadah.org/" +url="https://awesomewm.org" arch="all" options="!check" # Tests require X and D-Bus license="GPL-2.0+" @@ -18,7 +18,9 @@ makedepends="lua5.3 lua5.3-dev libxcb-dev pango-dev cairo-dev cmake gperf glib-d dbus-dev gdk-pixbuf-dev xcb-util-cursor-dev libxkbcommon-dev xcb-util-xrm-dev libexecinfo-dev xmlto" subpackages="$pkgname-doc" -source="https://github.com/awesomeWM/$pkgname-releases/raw/master/$pkgname-$pkgver.tar.xz" +source="https://github.com/awesomeWM/$pkgname-releases/raw/master/$pkgname-$pkgver.tar.xz + gcc10.patch + " build() { # Awesome does not support in-tree builds @@ -39,4 +41,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="c5ef1e8dc593e7783b895d22143154aea8f211beeda24672a7ee4ed5112b4f4284043f848a151f3d3c4f569e91308670367a4353f705b20511b36495b22fa3f5 awesome-4.3.tar.xz" +sha512sums="c5ef1e8dc593e7783b895d22143154aea8f211beeda24672a7ee4ed5112b4f4284043f848a151f3d3c4f569e91308670367a4353f705b20511b36495b22fa3f5 awesome-4.3.tar.xz +cc0aa85c42eff24ff2599673cc41058c04ec265d153ebecdb7a038d638500389da34a2063c3ce4e04b0f78f8972b9e5c3b793c46a37feeeef5505909ef8167f8 gcc10.patch" diff --git a/user/awesome/gcc10.patch b/user/awesome/gcc10.patch new file mode 100644 index 000000000..f1d0c3404 --- /dev/null +++ b/user/awesome/gcc10.patch @@ -0,0 +1,236 @@ +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 @@ + #include "common/lualib.h" + #include "luaa.h" + ++lua_CFunction lualib_dofunction_on_error; ++ + 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 @@ + #include "common/util.h" + + /** Lua function to call on dofunction() error */ +-lua_CFunction lualib_dofunction_on_error; ++extern lua_CFunction lualib_dofunction_on_error; + + 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[]; + extern const struct luaL_Reg awesome_root_methods[]; + extern const struct luaL_Reg awesome_root_meta[]; + ++signal_array_t global_signals; ++ + /** 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 *); + bool luaA_parserc(xdgHandle *, const char *); + + /** Global signals */ +-signal_array_t global_signals; ++extern signal_array_t global_signals; + + 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 @@ + + #include "button.h" + ++lua_class_t button_class; ++ + /** 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 + xcb_button_t button; + } button_t; + +-lua_class_t button_class; ++extern lua_class_t button_class; + 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 +@@ -106,6 +106,8 @@ + #include + #include + ++lua_class_t client_class; ++ + /** 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 +@@ -192,7 +192,7 @@ struct client_t + ARRAY_FUNCS(client_t *, client, DO_NOTHING) + + /** Client class */ +-lua_class_t client_class; ++extern lua_class_t client_class; + + 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 @@ + #include + #include + ++lua_class_t drawin_class; ++ + /** 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 *); + + void drawin_class_setup(lua_State *); + +-lua_class_t drawin_class; ++extern lua_class_t drawin_class; + + #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 @@ + #include + #include + ++lua_class_t key_class; ++ + /** 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 + xcb_keycode_t keycode; + } keyb_t; + +-lua_class_t key_class; ++extern lua_class_t key_class; + 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 +@@ -203,6 +203,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 + client_array_t clients; + }; + +-lua_class_t tag_class; ++extern lua_class_t tag_class; + 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 @@ + #include "property.h" + #include "xwindow.h" + ++lua_class_t window_class; + 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 + WINDOW_OBJECT_HEADER + } window_t; + +-lua_class_t window_class; ++extern lua_class_t window_class; + + void window_class_setup(lua_State *); + -- cgit v1.2.3-70-g09d2