From d3caaec5dd673c967b7e4bb380ad7ef33d58d24b Mon Sep 17 00:00:00 2001 From: Ryan Farley Date: Sat, 18 Mar 2023 00:15:46 -0500 Subject: [PATCH] add fix for glib2-exposed segfault --- repos/community-x86_64/PKGBUILD | 6 +++- .../community-x86_64/glib2-segfault-fix.patch | 34 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 repos/community-x86_64/glib2-segfault-fix.patch diff --git a/repos/community-x86_64/PKGBUILD b/repos/community-x86_64/PKGBUILD index fc19d16..c0edfdb 100644 --- a/repos/community-x86_64/PKGBUILD +++ b/repos/community-x86_64/PKGBUILD @@ -7,7 +7,7 @@ pkgname=openbox pkgver=3.6.1 -pkgrel=9 +pkgrel=10 pkgdesc='Highly configurable and lightweight X11 window manager' arch=('x86_64') url='http://openbox.org' @@ -22,6 +22,7 @@ groups=('lxde' 'lxde-gtk3' 'lxqt') backup=('etc/xdg/openbox/menu.xml' 'etc/xdg/openbox/rc.xml' 'etc/xdg/openbox/autostart' 'etc/xdg/openbox/environment') source=(http://openbox.org/dist/openbox/$pkgname-$pkgver.tar.gz{,.asc} + glib2-segfault-fix.patch openbox-3.5.0-title-matching.patch openbox-3.5.0-which-2.20.patch $pkgname-kde-paths.patch @@ -30,6 +31,7 @@ source=(http://openbox.org/dist/openbox/$pkgname-$pkgver.tar.gz{,.asc} https://github.com/mati75/openbox-debian/raw/debian/3.6.1-8/debian/patches/917204_undecorated_maximized_no_border.patch) md5sums=('b72794996c6a3ad94634727b95f9d204' 'SKIP' + '3181dca873f28263b92948d65dd7cb3a' '0a11d7149da210a31ef88f8a9c717711' '7ca3b5244bb092d46f5bcf1e2bdf4a18' 'f7df0df8c1d2da279e48d0fdc984fb71' @@ -38,6 +40,7 @@ md5sums=('b72794996c6a3ad94634727b95f9d204' 'bf629dfad2b4bef6330dd914922cae48') sha256sums=('8b4ac0760018c77c0044fab06a4f0c510ba87eae934d9983b10878483bde7ef7' 'SKIP' + '695f06c08e348ec76aa0a8ac7781e15fbfbd1e1bb9fafc9c1b43f26555f4199c' 'adc0820671e6ec42ff1bb4cbb04c65e19cdf74c62bcef3a3b727adb208eb82c7' '988acc655cf9a0fe4252c7e76d5ec2124a3f16c3ed26072fdcfd829ae9278c26' '40b6feb8fd83da0c9073ffc3ee4c009b5b036d105199bcaf6aa03cb18bf0b7e0' @@ -49,6 +52,7 @@ validpgpkeys=(4B71379A9D5263D112A85620A5A4E99C711D3B61) prepare() { cd $pkgname-$pkgver + patch -Np1 -i "$srcdir"/glib2-segfault-fix.patch # https://bugzilla.icculus.org/show_bug.cgi?id=6669 patch -Np1 -i "$srcdir"/openbox-3.5.0-title-matching.patch # OB#5277 patch -Np1 -i "$srcdir"/openbox-3.5.0-which-2.20.patch # FS#11455 patch -Np1 -i "$srcdir"/$pkgname-kde-paths.patch # FS#64139 diff --git a/repos/community-x86_64/glib2-segfault-fix.patch b/repos/community-x86_64/glib2-segfault-fix.patch new file mode 100644 index 0000000..ef5c57f --- /dev/null +++ b/repos/community-x86_64/glib2-segfault-fix.patch @@ -0,0 +1,34 @@ +diff --git a/openbox/client.c b/openbox/client.c +index 3ff278ae..ac4ff827 100644 +--- a/openbox/client.c ++++ b/openbox/client.c +@@ -2702,9 +2702,10 @@ static void client_calc_layer_internal(ObClient *self) + void client_calc_layer(ObClient *self) + { + GList *it; ++ GList *list = g_list_copy(stacking_list); + + /* skip over stuff above fullscreen layer */ +- for (it = stacking_list; it; it = g_list_next(it)) ++ for (it = list; it; it = g_list_next(it)) + if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; + + /* find the windows in the fullscreen layer, and mark them not-visited */ +@@ -2717,7 +2718,7 @@ void client_calc_layer(ObClient *self) + client_calc_layer_internal(self); + + /* skip over stuff above fullscreen layer */ +- for (it = stacking_list; it; it = g_list_next(it)) ++ for (it = list; it; it = g_list_next(it)) + if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; + + /* now recalc any windows in the fullscreen layer which have not +@@ -2728,6 +2729,8 @@ void client_calc_layer(ObClient *self) + !WINDOW_AS_CLIENT(it->data)->visited) + client_calc_layer_internal(it->data); + } ++ ++ g_list_free(it); + } + + gboolean client_should_show(ObClient *self) -- 2.39.2