From 82e780be8cd17736072e13e4fb0b7cfc63c22f12 Mon Sep 17 00:00:00 2001 From: Danny Rawlins Date: Sun, 6 Mar 2022 11:48:32 +1100 Subject: [notify] libappindicator-gtk3: fix segmentation faults with electron/matrix/discord --- libappindicator-gtk3/.signature | 6 ++++-- libappindicator-gtk3/Pkgfile | 8 ++++++-- libappindicator-gtk3/n_elements.patch | 11 +++++++++++ libappindicator-gtk3/segfault-fix.patch | 11 +++++++++++ 4 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 libappindicator-gtk3/n_elements.patch create mode 100644 libappindicator-gtk3/segfault-fix.patch (limited to 'libappindicator-gtk3') diff --git a/libappindicator-gtk3/.signature b/libappindicator-gtk3/.signature index 27e46778b..f6aec0565 100644 --- a/libappindicator-gtk3/.signature +++ b/libappindicator-gtk3/.signature @@ -1,6 +1,6 @@ untrusted comment: verify with /etc/ports/contrib.pub -RWSagIOpLGJF35XPauo7dwjJM9lEgICoKsbA9nnyzv0G+V0TiJJGWgLq9G/S6KKdgb+dE/UP85SQ8bwEuBHDNs+SbF6NhEDEowQ= -SHA256 (Pkgfile) = 161f4ba9298502b5d2ada5abda6d9e24e0d26a4a9e8c463127f203e74d6316b9 +RWSagIOpLGJF306yUFjMqXLxg1S2GcWdfSrh4JCeO3Ma4nKC4UScOeQW6ikKVNFQQlN9Ep76ixcJY4wSdNuABmacO9+rcggngg8= +SHA256 (Pkgfile) = fa90e216111ce0d61ed920f17689a5a0b5723aa1fdd968ff42261ae8db16ce3d SHA256 (.footprint) = 0f344ad028e87844c0bd006fe75421196f846e80ab02b84fd57a88452d9bbc37 SHA256 (libappindicator-16.10.tar.gz) = f33e0e06096fa8f8ca560ffcd84b8eb64830fa7308b30964c77bd5f45d0c497e SHA256 (0001-Glib.Timeout-fix.patch) = bc7e3d5db0b9b324dc072f807519547fdc2c96514eb17aa07a71117a787d9b80 @@ -12,3 +12,5 @@ SHA256 (disable-mono.patch) = 3ec51b8923a65d8d71374977206239dd511a1775a60e3d72ca SHA256 (gtk3.patch) = 39fc14496fa491c933f224c6a977a23343d0daeebd93911f3538c29f1bf69407 SHA256 (improved-plasma-support.patch) = c199e075fef864eb9a24845986f5486ee3a4cc30f9209b417eaa005cf5dc98a4 SHA256 (vala-inherit.patch) = 77635b7b5bc0686577a191e0ac78dcfba79f5e5695b6b72cae7c412e59bc736d +SHA256 (segfault-fix.patch) = f193c6e87a84039158bfe14dc9d4935dbfdd5e9b9bf80abd101a18d1e62a1ef8 +SHA256 (n_elements.patch) = 3230a52b9733367f69276548f5463f49191e7c33b013da40d0dcebadfb8b3871 diff --git a/libappindicator-gtk3/Pkgfile b/libappindicator-gtk3/Pkgfile index cf8f36eb1..17e06620f 100644 --- a/libappindicator-gtk3/Pkgfile +++ b/libappindicator-gtk3/Pkgfile @@ -5,9 +5,9 @@ name=libappindicator-gtk3 version=16.10 -release=2 +release=3 source=(http://unrealize.co.uk/source/libappindicator-16.10.tar.gz -0001-Glib.Timeout-fix.patch 0002-Fix-mono-nunit-pkgconfig-name.patch 0003-Fix-Mono-assemblies-directory.patch badfunction.patch conditional-py-bindings.patch disable-mono.patch gtk3.patch improved-plasma-support.patch vala-inherit.patch) +0001-Glib.Timeout-fix.patch 0002-Fix-mono-nunit-pkgconfig-name.patch 0003-Fix-Mono-assemblies-directory.patch badfunction.patch conditional-py-bindings.patch disable-mono.patch gtk3.patch improved-plasma-support.patch vala-inherit.patch segfault-fix.patch n_elements.patch) build() { cd libappindicator-$version @@ -30,6 +30,10 @@ build() { # Having mono or gtk-sharp installed kills this build patch -p1 -i $SRC/disable-mono.patch + # https://bugs.launchpad.net/ubuntu/+source/libappindicator/+bug/1867996 + patch -p1 -i $SRC/segfault-fix.patch + patch -p1 -i $SRC/n_elements.patch + sed -i -e 's/ -Werror//' src/Makefile.am sed -e 's/--enable-gtk-doc//g' -i autogen.sh NOCONFIGURE=1 ./autogen.sh diff --git a/libappindicator-gtk3/n_elements.patch b/libappindicator-gtk3/n_elements.patch new file mode 100644 index 000000000..597fe4371 --- /dev/null +++ b/libappindicator-gtk3/n_elements.patch @@ -0,0 +1,11 @@ +--- libappindicator-12.10.1+18.04.20180322.1/src/app-indicator.c 2018-03-22 01:15:43.000000000 +0000 ++++ ../libappindicator/libappindicator-12.10.1+18.04.20180322.1/src/app-indicator.c 2020-03-21 23:06:34.879451825 +0000 +@@ -1616,7 +1616,7 @@ + gint n_elements, i; + gboolean found=FALSE; + gtk_icon_theme_get_search_path(icon_theme, &path, &n_elements); +- for (i=0; i< n_elements || path[i] == NULL; i++) { ++ for (i=0; i< n_elements; i++) { + if(g_strcmp0(path[i], theme_path) == 0) { + found=TRUE; + break; diff --git a/libappindicator-gtk3/segfault-fix.patch b/libappindicator-gtk3/segfault-fix.patch new file mode 100644 index 000000000..c219f4560 --- /dev/null +++ b/libappindicator-gtk3/segfault-fix.patch @@ -0,0 +1,11 @@ +--- libappindicator/src/app-indicator.c 2020-03-17 18:14:09.254862070 -0400 ++++ wrk/src/app-indicator.c 2020-03-17 21:05:31.009065383 -0400 +@@ -2137,7 +2137,7 @@ + g_free (self->priv->absolute_icon_theme_path); + self->priv->absolute_icon_theme_path = get_real_theme_path (self); + +- g_signal_emit (self, signals[NEW_ICON_THEME_PATH], 0, self->priv->icon_theme_path, TRUE); ++ g_signal_emit (self, signals[NEW_ICON_THEME_PATH], 0, self->priv->icon_theme_path); + + if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { + const gchar *theme_path = self->priv->absolute_icon_theme_path ? -- cgit v1.2.3