diff --git a/pidgin-2.10.11-fix-sound-play-fd-leak.patch b/pidgin-2.10.11-fix-sound-play-fd-leak.patch new file mode 100644 index 0000000..3f19c1a --- /dev/null +++ b/pidgin-2.10.11-fix-sound-play-fd-leak.patch @@ -0,0 +1,38 @@ +--- a/finch/gntsound.c ++++ b/finch/gntsound.c +@@ -449,6 +449,7 @@ bus_call (GstBus *bus, GstMessage *msg, + case GST_MESSAGE_EOS: + gst_element_set_state(play, GST_STATE_NULL); + gst_object_unref(GST_OBJECT(play)); ++ return FALSE; + break; + case GST_MESSAGE_WARNING: + gst_message_parse_warning(msg, &err, NULL); +--- a/libpurple/mediamanager.c ++++ b/libpurple/mediamanager.c +@@ -288,6 +288,7 @@ pipeline_bus_call(GstBus *bus, GstMessag + switch(GST_MESSAGE_TYPE(msg)) { + case GST_MESSAGE_EOS: + purple_debug_info("mediamanager", "End of Stream\n"); ++ return FALSE; + break; + case GST_MESSAGE_ERROR: { + gchar *debug = NULL; +@@ -305,6 +306,7 @@ + "Debug details: %s\n", debug); + g_free (debug); + } ++ return FALSE; + break; + } + default: +--- a/pidgin/gtksound.c ++++ b/pidgin/gtksound.c +@@ -394,6 +394,7 @@ bus_call (GstBus *bus, + case GST_MESSAGE_EOS: + gst_element_set_state(play, GST_STATE_NULL); + gst_object_unref(GST_OBJECT(play)); ++ return FALSE; + break; + case GST_MESSAGE_WARNING: + gst_message_parse_warning(msg, &err, NULL); diff --git a/pidgin-ncurses-6.0-accessors.patch b/pidgin-ncurses-6.0-accessors.patch new file mode 100644 index 0000000..52b86a7 --- /dev/null +++ b/pidgin-ncurses-6.0-accessors.patch @@ -0,0 +1,57 @@ +Index: pidgin-2.10.11/finch/libgnt/gntwm.c +=================================================================== +--- pidgin-2.10.11.orig/finch/libgnt/gntwm.c ++++ pidgin-2.10.11/finch/libgnt/gntwm.c +@@ -174,37 +174,37 @@ work_around_for_ncurses_bug(void) + cchar_t ch; + PANEL *below = panel; + +- sx = panel->win->_begx; +- ex = panel->win->_maxx + sx; +- sy = panel->win->_begy; +- ey = panel->win->_maxy + sy; ++ sx = getbegx(panel->win); ++ ex = getmaxx(panel->win) + sx; ++ sy = getbegy(panel->win); ++ ey = getmaxy(panel->win) + sy; + + while ((below = panel_below(below)) != NULL) { +- if (sy > below->win->_begy + below->win->_maxy || +- ey < below->win->_begy) ++ if (sy > getbegy(below->win) + getmaxy(below->win) || ++ ey < getbegy(below->win)) + continue; +- if (sx > below->win->_begx + below->win->_maxx || +- ex < below->win->_begx) ++ if (sx > getbegx(below->win) + getmaxx(below->win) || ++ ex < getbegx(below->win)) + continue; +- for (y = MAX(sy, below->win->_begy); y <= MIN(ey, below->win->_begy + below->win->_maxy); y++) { +- if (mvwin_wch(below->win, y - below->win->_begy, sx - 1 - below->win->_begx, &ch) != OK) ++ for (y = MAX(sy, getbegy(below->win)); y <= MIN(ey, getbegy(below->win) + getmaxy(below->win)); y++) { ++ if (mvwin_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch) != OK) + goto right; + w = widestringwidth(ch.chars); + if (w > 1 && (ch.attr & 1)) { + ch.chars[0] = ' '; + ch.attr &= ~ A_CHARTEXT; +- mvwadd_wch(below->win, y - below->win->_begy, sx - 1 - below->win->_begx, &ch); +- touchline(below->win, y - below->win->_begy, 1); ++ mvwadd_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch); ++ touchline(below->win, y - getbegy(below->win), 1); + } + right: +- if (mvwin_wch(below->win, y - below->win->_begy, ex + 1 - below->win->_begx, &ch) != OK) ++ if (mvwin_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch) != OK) + continue; + w = widestringwidth(ch.chars); + if (w > 1 && !(ch.attr & 1)) { + ch.chars[0] = ' '; + ch.attr &= ~ A_CHARTEXT; +- mvwadd_wch(below->win, y - below->win->_begy, ex + 1 - below->win->_begx, &ch); +- touchline(below->win, y - below->win->_begy, 1); ++ mvwadd_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch); ++ touchline(below->win, y - getbegy(below->win), 1); + } + } + } diff --git a/pidgin.changes b/pidgin.changes index 4c47a7e..315e883 100644 --- a/pidgin.changes +++ b/pidgin.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Wed Sep 9 08:19:54 UTC 2015 - dimstar@opensuse.org + +- Add pidgin-ncurses-6.0-accessors.patch: Fix build with NCurses + 6.0 with WINDOW_OPAQUE set to 1 (pidgin.im#16764). + +------------------------------------------------------------------- +Fri Aug 28 15:48:41 UTC 2015 - sor.alexei@meowr.ru + +- Add pidgin-2.10.11-fix-sound-play-fd-leak.patch: fix a file + desriptor leak while playing sound files + (pidgin.im#16752, boo#942818). +- Remove GConf schemas generation: GConf is considered obsolete. +- Make perl dependency less strict. + +------------------------------------------------------------------- +Mon Aug 17 09:23:21 UTC 2015 - sor.alexei@meowr.ru + +- Fix build with earlier openSUSE. + ------------------------------------------------------------------- Tue Aug 11 17:16:56 UTC 2015 - zaitor@opensuse.org diff --git a/pidgin.spec b/pidgin.spec index 4d50e55..514ec9f 100644 --- a/pidgin.spec +++ b/pidgin.spec @@ -24,15 +24,19 @@ Summary: Multiprotocol Instant Messaging Client License: GPL-2.0+ Group: Productivity/Networking/Instant Messenger Url: http://pidgin.im/ -Source: http://downloads.sourceforge.net/project/pidgin/Pidgin/2.10.11/%{name}-%{version}.tar.gz -Source1: %{name}-prefs.xml -Patch0: %{name}-nonblock-common.patch -Patch1: %{name}-nonblock-gwim.patch -Patch2: %{name}-nonblock-common2.patch -Patch3: %{name}-gnome-keyring.patch +Source: http://downloads.sf.net/%{name}/%{name}-%{version}.tar.gz +Source1: pidgin-prefs.xml +# PATCH-FIX-OPENSUSE pidgin-nonblock-common.patch +Patch0: pidgin-nonblock-common.patch +# PATCH-FIX-OPENSUSE pidgin-nonblock-gwim.patch +Patch1: pidgin-nonblock-gwim.patch +# PATCH-FIX-OPENSUSE pidgin-nonblock-common2.patch +Patch2: pidgin-nonblock-common2.patch +# PATCH-FEATURE-SLE pidgin-gnome-keyring.patch +Patch3: pidgin-gnome-keyring.patch # PATCH-FIX-OPENSUSE pidgin-fix-perl-build.patch vuntz@opensuse.org -- Revert http://developer.pidgin.im/viewmtn/revision/info/f32151852a00fb5abd3fdccdd8df2419031666de as it breaks the build -Patch4: %{name}-fix-perl-build.patch -# PATCH-FIX-UPSTREAM pidgin-crash-missing-gst-registry.patch bnc#866455 pidgin.im#16224 cxiong@suse.com -- Fix crash when GST registry cache file is missing. +Patch4: pidgin-fix-perl-build.patch +# PATCH-FIX-UPSTREAM pidgin-crash-missing-gst-registry.patch boo#866455 pidgin.im#16224 cxiong@suse.com -- Fix crash when GST registry cache file is missing. Patch6: pidgin-crash-missing-gst-registry.patch Patch7: pidgin-2.10.11-send-video-enum.patch # PATCH-FEATURE-UPSTREAM pidgin-2.10.11-gst-references.patch dimstar@opensuse.org -- http://hg.pidgin.im/pidgin/main/rev/b52be4fef1de @@ -47,6 +51,10 @@ Patch11: pidgin-2.10.11-init-media-optional.patch Patch12: pidgin-2.10.11-private-media.patch # PATCH-FIX-UPSTREAM pidgin-2.10.11-application-media.patch dimstar@opensuse.org -- Add application media type and APIs, pidgin.im#16315 Patch13: pidgin-2.10.11-application-media.patch +# PATCH-FIX-UPSTREAM pidgin-2.10.11-fix-sound-play-fd-leak.patch boo#942818 sor.alexei@meowr.ru -- Fix a file desriptor leak while playing sound files. +Patch14: pidgin-2.10.11-fix-sound-play-fd-leak.patch +# PATCH-FIX-UPSTREAM pidgin-ncurses-6.0-accessors.patch pidgin.im#16764 dimstar@opensuse.org -- Fix build with NCurses 6.0 with WINDOW_OPAQUE set to 1 +Patch15: pidgin-ncurses-6.0-accessors.patch BuildRequires: NetworkManager-devel # Can use external libzephyr. BuildRequires: cyrus-sasl-devel @@ -54,7 +62,6 @@ BuildRequires: dbus-1-devel BuildRequires: dbus-1-glib-devel BuildRequires: doxygen BuildRequires: fdupes -BuildRequires: gconf2-devel BuildRequires: graphviz BuildRequires: gtk-doc BuildRequires: gtkspell-devel @@ -76,18 +83,24 @@ BuildRequires: silc-toolkit-devel BuildRequires: startup-notification-devel BuildRequires: tk-devel BuildRequires: update-desktop-files -BuildRequires: pkgconfig(farstream-0.2) -BuildRequires: pkgconfig(gstreamer-1.0) -BuildRequires: pkgconfig(gstreamer-video-1.0) -Requires: perl-base = %{perl_version} +Requires: perl-base >= %{perl_version} +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if 0%{?suse_version} > 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse}) +BuildRequires: farstream-devel >= 0.2.7 +BuildRequires: gstreamer-devel +BuildRequires: gstreamer-plugins-base-devel +Recommends: gstreamer-plugins-good +%else +BuildRequires: gstreamer-0_10-devel +BuildRequires: gstreamer-0_10-plugins-base-devel +Recommends: gstreamer-0_10-plugins-good +%endif %if 0%{?suse_version} <= 1110 Recommends: %{name}-emoticons-nld Recommends: %{name}-emoticons-tango %endif -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%{gconf_schemas_prereq} -# gnome-keyring support summary (bnc#566286): -# 11.1 & SLE11: patch present and active (bnc#569025) +# gnome-keyring support summary (boo#566286): +# 11.1 & SLE11: patch present and active (boo#569025) # 11.2 and above: patch not applied # For openSUSE, it's better to avoid this patch: # + does not work well outside GNOME @@ -121,7 +134,6 @@ Requires: ca-certificates-mozilla %else Requires: openssl-certs %endif -Recommends: gstreamer-plugins-good %description Pidgin is a chat program which lets you log in to accounts on multiple @@ -148,13 +160,13 @@ and plugins. %package -n libpurple Summary: GLib-based Instant Messenger Library Group: System/Libraries -# Not really required, but standard Jabber accounts require it, if compiled with SASL support. +# Not really required, but standard XMPP accounts require it, if compiled with SASL support. Requires: cyrus-sasl-digestmd5 Requires: cyrus-sasl-plain # Needed for purple-url-handler. Requires: dbus-1-python -Requires: perl = %{perl_version} -Recommends: libpurple-lang = %{version} +Requires: perl >= %{perl_version} +Recommends: libpurple-lang %if 0%{?suse_version} >= 1230 Requires: ca-certificates-mozilla %else @@ -172,6 +184,30 @@ and Zephyr. It can support many more with plugins. %lang_package -n libpurple +%if 0%{?suse_version} > 1140 +%package -n libpurple-branding-upstream +Summary: GLib-based Instant Messenger Library -- Upstream default configuration +Group: System/Libraries +Requires: libpurple = %{version} +Supplements: packageand(libpurple:branding-upstream) +Conflicts: otherproviders(libpurple-branding) +Provides: libpurple-branding = %{version} +BuildArch: noarch +#BRAND: Provides /etc/purple/prefs.xml, the default configuration for +#BRAND: libpurple, and libpurple-based clients. + +%description -n libpurple-branding-upstream +libpurple is a library intended to be used by programmers seeking +to write an IM client that connects to many IM networks. + +libpurple is compatible with the following chat networks out of the box: +Jabber/XMPP, AIM, ICQ, Yahoo!, Bonjour, Gadu-Gadu, IRC, SILC, SIMPLE, +Novell GroupWise Messenger, Lotus Sametime, MXit, MySpaceIM, +and Zephyr. It can support many more with plugins. + +This package provides the openSUSE default configuration for Pidgin. +%endif + %package -n libpurple-devel Summary: Development Headers, Documentation, and Libraries for libpurple Group: Development/Libraries/C and C++ @@ -231,30 +267,6 @@ The finch-devel package contains the header files, developer documentation, and libraries required for development of Finch scripts and plugins. -%if 0%{?suse_version} > 1140 -%package -n libpurple-branding-upstream -Summary: GLib-based Instant Messenger Library -- Upstream default configuration -Group: System/Libraries -Requires: libpurple = %{version} -Supplements: packageand(libpurple:branding-upstream) -Provides: libpurple-branding = %{version} -BuildArch: noarch -Conflicts: otherproviders(libpurple-branding) -#BRAND: Provides /etc/purple/prefs.xml, the default configuration for -#BRAND: libpurple, and libpurple-based clients. - -%description -n libpurple-branding-upstream -libpurple is a library intended to be used by programmers seeking -to write an IM client that connects to many IM networks. - -libpurple is compatible with the following chat networks out of the box: -Jabber/XMPP, AIM, ICQ, Yahoo!, Bonjour, Gadu-Gadu, IRC, SILC, SIMPLE, -Novell GroupWise Messenger, Lotus Sametime, MXit, MySpaceIM, -and Zephyr. It can support many more with plugins. - -This package provides the openSUSE default configuration for Pidgin. -%endif - %prep %setup -q %if 0%{?suse_version} > 1110 @@ -265,10 +277,7 @@ translation-update-upstream %patch2 -p1 %patch3 -p1 %patch4 -p1 - -%if 0%{?suse_version} >= 1310 %patch6 -p1 -%endif %patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -276,6 +285,8 @@ translation-update-upstream %patch11 -p1 %patch12 -p1 %patch13 -p1 +%patch14 -p1 +%patch15 -p1 # Change Myanmar/Myanmar to Myanmar. mv -f po/my_MM.po po/my.po @@ -289,19 +300,23 @@ export LDFLAGS="-pie" autoreconf -fi %configure \ --disable-static \ - --disable-schemas-install \ --enable-plugins \ --enable-cyrus-sasl \ --enable-dbus \ --enable-gstreamer \ +%if 0%{?suse_version} > 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse}) --with-gstreamer=1.0 \ + --enable-vv \ +%else + --with-gstreamer=0.10 \ + --disable-vv \ +%endif %if 0%{?suse_version} <= 1110 --enable-gnome-keyring \ %endif --enable-nm \ --enable-dbus \ --enable-devhelp \ - --enable-vv \ --with-tclconfig=%{_libdir} \ --with-tkconfig=%{_libdir} \ --with-system-ssl-certs=%{_sysconfdir}/ssl/certs/ @@ -312,6 +327,8 @@ make %{?_smp_mflags} mkdir -p %{buildroot}%{_sysconfdir}/purple/ %if 0%{?suse_version} > 1140 cp -f %{SOURCE1} %{buildroot}%{_sysconfdir}/purple/prefs.xml +%else +rm -f %{buildroot}%{_sysconfdir}/gconf/schemas/purple.schemas %endif %perl_process_packlist @@ -319,35 +336,28 @@ find %{buildroot} -type f -name "perllocal.pod" -delete -print find %{buildroot} -type f -name ".packlist" -delete -print find %{buildroot} -type f -name "*.bs" -empty -delete -print find %{buildroot} -type f -name "*.la" -delete -print + # FIXME: Should be nonversioned name. -for im in jabber oscar ymsg; do - if [ -L %{buildroot}%{_libdir}/purple-2/lib$im.so ]; then - rm -f %{buildroot}%{_libdir}/purple-2/lib$im.so +ls %{buildroot}%{_libdir}/purple-2/*.so | while read libim; do + if [ -L %{buildroot}%{_libdir}/purple-2/$libim ]; then + rm -f %{buildroot}%{_libdir}/purple-2/$libim fi done + find %{buildroot}%{_libdir}/purple-2/ -xtype f -print | \ - sed -e "s|^%{buildroot}||g;/\libsametime.so/d;/\/tcl.so/d" \ - > %{name}-%{version}-purpleplugins + sed -e "s|^%{buildroot}||g;/\libsametime.so/d;/\/tcl.so/d" \ + > %{name}-%{version}-purpleplugins find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \ - sed -e "s|^%{buildroot}||g" > %{name}-%{version}-finchplugins + sed -e "s|^%{buildroot}||g" > %{name}-%{version}-finchplugins %fdupes %{buildroot} %suse_update_desktop_file -N %{_name} -G "Instant Messenger" %{name} -%{find_gconf_schemas} %find_lang %{name} %{?no_lang_C} -%pre -f %{name}.schemas_pre - -%posttrans -f %{name}.schemas_posttrans - -%preun -f %{name}.schemas_preun - %if 0%{?suse_version} > 1130 %post %desktop_database_post %icon_theme_cache_post -%endif -%if 0%{?suse_version} > 1130 %postun %desktop_database_postun %icon_theme_cache_postun @@ -361,12 +371,12 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \ %postun -n finch -p /sbin/ldconfig -%files -f %{name}.schemas_list +%files %defattr(-,root,root) %doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README doc/the_penguin.txt %{_bindir}/%{name} %{_libdir}/%{name}/ -%dir %{_datadir}/appdata +%dir %{_datadir}/appdata/ %{_datadir}/appdata/pidgin.appdata.xml %{_datadir}/pixmaps/%{name}/ %{_datadir}/icons/hicolor/*/apps/* @@ -382,7 +392,6 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \ %files -n libpurple -f %{name}-%{version}-purpleplugins %defattr(-,root,root) -%doc libpurple/purple-notifications-example %dir %{_sysconfdir}/purple/ %{_bindir}/purple-client-example %{_bindir}/purple-remote @@ -395,17 +404,25 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \ %dir %{_libdir}/purple-2/ %dir %{_libdir}/purple-2/perl/ %dir %{_libdir}/purple-2/perl/*/ -%dir %{_libdir}/purple-2/perl/*/* +%dir %{_libdir}/purple-2/perl/*/*/ %files -n libpurple-lang -f %{name}.lang %defattr(-,root,root) -# These locales are not yet included in respective products: %if 0%{?suse_version} < 1140 -# See https://bugzilla.novell.com/show_bug.cgi?id=659001 +# These locales are not included in respective products. +# See https://bugzilla.opensuse.org/show_bug.cgi?id=659001 +%dir %{_datadir}/locale/ku_IQ/ +%dir %{_datadir}/locale/ku_IQ/LC_MESSAGES/ %dir %{_datadir}/locale/mhr/ %dir %{_datadir}/locale/mhr/LC_MESSAGES/ %endif +%if 0%{?suse_version} > 1140 +%files -n libpurple-branding-upstream +%defattr(-,root,root) +%config %{_sysconfdir}/purple/prefs.xml +%endif + %files -n libpurple-meanwhile %defattr(-,root,root) %{_libdir}/purple-2/libsametime.* @@ -417,12 +434,13 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \ %files -n libpurple-devel %defattr(-,root,root) %doc ChangeLog.API HACKING PLUGIN_HOWTO +%doc libpurple/purple-notifications-example %{_includedir}/libpurple/ %{_datadir}/aclocal/purple.m4 %{_libdir}/libpurple.so %{_libdir}/libpurple-client.so %{_libdir}/pkgconfig/purple.pc -%doc %{_mandir}/man3/Purple.* +%{_mandir}/man3/Purple.3* %files -n finch -f %{name}-%{version}-finchplugins %defattr(-,root,root) @@ -430,7 +448,7 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \ %{_libdir}/libgnt.so.* %{_libdir}/gnt/ %dir %{_libdir}/finch/ -%{_mandir}/man1/finch.* +%{_mandir}/man1/finch.1* %files -n finch-devel %defattr(-,root,root) @@ -440,10 +458,4 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \ %{_libdir}/pkgconfig/finch.pc %{_libdir}/pkgconfig/gnt.pc -%if 0%{?suse_version} > 1140 -%files -n libpurple-branding-upstream -%defattr(-,root,root) -%config %{_sysconfdir}/purple/prefs.xml -%endif - %changelog