diff --git a/libproxy-gnome-waitpid.patch b/libproxy-gnome-waitpid.patch new file mode 100644 index 0000000..c35d5b9 --- /dev/null +++ b/libproxy-gnome-waitpid.patch @@ -0,0 +1,36 @@ +From 8472b3b8ba8c50aedad50d5d8fe8d25cbcb10a30 Mon Sep 17 00:00:00 2001 +From: Dominique Leuenberger +Date: Fri, 22 Jul 2016 14:21:45 +0200 +Subject: [PATCH] GNOME3: Wait for pxgsettings to vanish while destroying the + plugin + +This helps avoiding zombie processes in case a caller creates/destroys +ProxyFactories for each URL (even though we recommend to have a long-living +PF for caching reasons). + +Originally reported at https://bugzilla.opensuse.org/show_bug.cgi?id=967601 +--- + libproxy/modules/config_gnome3.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/libproxy/modules/config_gnome3.cpp b/libproxy/modules/config_gnome3.cpp +index 47e7a42..666d639 100644 +--- a/libproxy/modules/config_gnome3.cpp ++++ b/libproxy/modules/config_gnome3.cpp +@@ -24,6 +24,7 @@ + #include // For stat() + #include // For stat() + #include // For pipe(), close(), vfork(), dup(), execl(), _exit() ++#include // For waitpid() + #include // For kill() + + #include "../extension_config.hpp" +@@ -161,6 +162,7 @@ class gnome_config_extension : public config_extension { + fclose(this->read); + fclose(this->write); + kill(this->pid, SIGTERM); ++ waitpid(this->pid, NULL, 0); + } + + void store_response(const string &type, + diff --git a/libproxy-plugins.changes b/libproxy-plugins.changes index b625c4b..98fade9 100644 --- a/libproxy-plugins.changes +++ b/libproxy-plugins.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jul 22 12:36:59 UTC 2016 - dimstar@opensuse.org + +- Add libproxy-gnome-waitpid.patch: GNOME3: Wait for pxgsettings to + vanish while destroying the plugin (boo#967601). + ------------------------------------------------------------------- Tue May 10 17:20:55 UTC 2016 - dimstar@opensuse.org diff --git a/libproxy-plugins.spec b/libproxy-plugins.spec index 6723188..a037e49 100644 --- a/libproxy-plugins.spec +++ b/libproxy-plugins.spec @@ -43,6 +43,8 @@ Source: https://github.com/libproxy/%{_name}/archive/%{version}.tar.gz # Script used for automatic snapshot updates Source98: update-from-svn.sh Source99: baselibs.conf +# PATCH-FIX-UPSTREAM libproxy-gnome-waitpid.patch boo#967601 dimstar@opensuse.org -- GNOME3: Wait for pxgsettings to vanish while destroying the plugin +Patch0: libproxy-gnome-waitpid.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cmake BuildRequires: gcc-c++ @@ -315,6 +317,7 @@ libproxy offers the following features: * extremely small core %prep %setup -q -n %{_sourcename} +%patch0 -p1 mkdir build %build diff --git a/libproxy.changes b/libproxy.changes index b625c4b..98fade9 100644 --- a/libproxy.changes +++ b/libproxy.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jul 22 12:36:59 UTC 2016 - dimstar@opensuse.org + +- Add libproxy-gnome-waitpid.patch: GNOME3: Wait for pxgsettings to + vanish while destroying the plugin (boo#967601). + ------------------------------------------------------------------- Tue May 10 17:20:55 UTC 2016 - dimstar@opensuse.org diff --git a/libproxy.spec b/libproxy.spec index c4415b1..1f689bf 100644 --- a/libproxy.spec +++ b/libproxy.spec @@ -43,6 +43,8 @@ Source: https://github.com/libproxy/%{_name}/archive/%{version}.tar.gz # Script used for automatic snapshot updates Source98: update-from-svn.sh Source99: baselibs.conf +# PATCH-FIX-UPSTREAM libproxy-gnome-waitpid.patch boo#967601 dimstar@opensuse.org -- GNOME3: Wait for pxgsettings to vanish while destroying the plugin +Patch0: libproxy-gnome-waitpid.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cmake BuildRequires: gcc-c++ @@ -315,6 +317,7 @@ libproxy offers the following features: * extremely small core %prep %setup -q -n %{_sourcename} +%patch0 -p1 mkdir build %build