diff --git a/gajim-0.13.3-disable-libasyncns.patch b/gajim-0.13.3-disable-libasyncns.patch new file mode 100644 index 0000000..55c8e08 --- /dev/null +++ b/gajim-0.13.3-disable-libasyncns.patch @@ -0,0 +1,24 @@ +Disable libasyncns usage in Gajim + +libasyncs creates several threads and lets them all block in recv() on a unix +socket. Due to a kernel bug (RHBZ#529202) they go into uninterruptible sleep +for a long time, causing inflated loadavg measurements and scary warnings from +the hung task watchdog in dmesg. + +Thankfully libasyncns is not essential for Gajim to work. + + -- Michal + +Index: gajim-0.13.3/src/common/resolver.py +=================================================================== +--- gajim-0.13.3.orig/src/common/resolver.py ++++ gajim-0.13.3/src/common/resolver.py +@@ -39,7 +39,7 @@ ns_type_pattern = re.compile('^[a-z]+$') + host_pattern = re.compile('^[a-z0-9\-._]*[a-z0-9]\.[a-z]{2,}$') + + try: +- #raise ImportError("Manually disabled libasync") ++ raise ImportError("Manually disabled libasync") + import libasyncns + USE_LIBASYNCNS = True + log.info("libasyncns-python loaded") diff --git a/gajim.spec b/gajim.spec index fcb6327..28be7ab 100644 --- a/gajim.spec +++ b/gajim.spec @@ -2,12 +2,15 @@ Summary: Jabber client written in PyGTK Name: gajim %global majorver 0.13 Version: 0.13.3 -Release: 1%{?dist} +Release: 1%{?dist}.1 License: GPLv3 Group: Applications/Internet URL: http://gajim.org/ Source0: http://gajim.org/downloads/%{majorver}/%{name}-%{version}.tar.bz2 Patch0: gajim-0.13.3-gnome-keyring-CancelledError.patch +# libasyncns triggers a kernel bug (RHBZ#529202), so let's not use it until +# it's fixed. +Patch1: gajim-0.13.3-disable-libasyncns.patch BuildArch: noarch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -28,7 +31,8 @@ Requires: python-docutils Requires: python-GnuPGInterface Requires: python-kerberos Requires: python-sexy -Requires: python-libasyncns +# See above comment for Patch1 +#Requires: python-libasyncns # these are dlopen'd using ctypes find_library/LoadLibrary Requires: gtkspell Requires: libXScrnSaver @@ -48,6 +52,7 @@ Gajim does not require GNOME to run, even though it exists with it nicely. %prep %setup -q %patch0 -p1 +%patch1 -p1 %build %configure --docdir=%{_docdir}/%{name}-%{version} \ @@ -94,6 +99,9 @@ rm -rf %{buildroot} %{_datadir}/%{name}/src %changelog +* Mon Mar 08 2010 Michal Schmidt 0.13.3-1.fc12.1 +- Do not use libasyncns until a kernel bug (RHBZ#529202) is fixed. + * Mon Mar 08 2010 Michal Schmidt 0.13.3-1 - Update to 0.13.3. - Add gajim-0.13.3-gnome-keyring-CancelledError.patch (RHBZ#556374).