File pidgin.spec of Package pidgin.6596

#
# spec file for package pidgin
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define _name   Pidgin
Name:           pidgin
Version:        2.12.0
Release:        0
Summary:        Multiprotocol Instant Messaging Client
License:        GPL-2.0+
Group:          Productivity/Networking/Instant Messenger
Url:            https://pidgin.im/
Source:         http://downloads.sf.net/%{name}/%{name}-%{version}.tar.bz2
Source1:        http://downloads.sf.net/%{name}/%{name}-%{version}.tar.bz2.asc
Source2:        pidgin.keyring
Source3:        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:         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.
Patch5:         pidgin-crash-missing-gst-registry.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.
Patch6:         pidgin-ncurses-6.0-accessors.patch
# PATCH-FIX-SLE pidgin-use-default-alsa.patch bsc#886670 tiwai@suse.de -- Use ALSA as a default for avoiding broken volume control.
Patch7:         pidgin-use-default-alsa.patch
BuildRequires:  NetworkManager-devel
# Can use external libzephyr.
BuildRequires:  cyrus-sasl-devel
BuildRequires:  dbus-1-devel
BuildRequires:  dbus-1-glib-devel
BuildRequires:  doxygen
BuildRequires:  fdupes
BuildRequires:  graphviz
BuildRequires:  gtk-doc
BuildRequires:  gtkspell-devel
BuildRequires:  intltool
BuildRequires:  libavahi-glib-devel
BuildRequires:  libgadu-devel
BuildRequires:  libgnutls-devel
BuildRequires:  libidn-devel
BuildRequires:  libnotify-devel
BuildRequires:  libstdc++-devel
BuildRequires:  libtool
BuildRequires:  libxml2-devel
BuildRequires:  libxslt
BuildRequires:  meanwhile-devel
BuildRequires:  mozilla-nspr-devel
BuildRequires:  ncurses-devel
BuildRequires:  pkgconfig
BuildRequires:  python-devel
BuildRequires:  silc-toolkit-devel
BuildRequires:  startup-notification-devel
BuildRequires:  tk-devel
BuildRequires:  update-desktop-files
Requires:       perl-base >= %{perl_version}
%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200 || (0%{?sle_version} >= 120100 && 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} < 1120
Recommends:     %{name}-emoticons-nld
Recommends:     %{name}-emoticons-tango
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%endif
# 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
# - passwords are stored in readable form
%if 0%{?suse_version} < 1120
BuildRequires:  gnome-keyring-devel
%endif
%if 0%{?suse_version} > 1210
BuildRequires:  libSM-devel
BuildRequires:  libX11-devel
BuildRequires:  libXScrnSaver-devel
BuildRequires:  libXext-devel
BuildRequires:  mozilla-nss-devel
%endif
%if 0%{?suse_version} >= 1230
BuildRequires:  ca-certificates-mozilla
Requires:       ca-certificates-mozilla
%else
BuildRequires:  openssl-certs
Requires:       openssl-certs
%endif
%if 0%{?suse_version} >= 1120
BuildRequires:  translation-update-upstream
%else
# Missing in silc-toolkit-devel.
BuildRequires:  pam-devel
%endif

%description
Pidgin is a messaging application which lets you log in to accounts
on multiple chat networks simultaneously.

Pidgin is compatible with the following chat networks out of the
box: Jabber/XMPP, AIM, ICQ, Bonjour, Gadu-Gadu, IRC, SILC, SIMPLE,
Novell GroupWise Messenger, IBM Sametime, and Zephyr. It can
support many more with plugins.

%package devel
Summary:        Development Headers, Documentation, and Libraries for Pidgin
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Requires:       glib2-devel
Requires:       gtk2-devel
Requires:       libpurple-devel = %{version}

%description devel
The pidgin-devel package contains the header files, developer
documentation, and libraries required for development of Pidgin scripts
and plugins.

%package -n libpurple
Summary:        GLib-based Instant Messenger Library
Group:          System/Libraries
# 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:       libpurple-branding
Requires:       perl >= %{perl_version}
Recommends:     libpurple-lang
%if 0%{?suse_version} >= 1230
Requires:       ca-certificates-mozilla
%else
Requires:       openssl-certs
%endif

%description -n libpurple
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, Bonjour, Gadu-Gadu, IRC, SILC, SIMPLE,
Novell GroupWise Messenger, IBM Sametime, and Zephyr. It can
support many more with plugins.

%lang_package -n libpurple

%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}
%if 0%{?suse_version} >= 1210
BuildArch:      noarch
%endif
#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, Bonjour, Gadu-Gadu, IRC, SILC, SIMPLE,
Novell GroupWise Messenger, IBM Sametime, and Zephyr. It can
support many more with plugins.

This package provides the upstream default configuration for Pidgin.

%package -n libpurple-devel
Summary:        Development Headers, Documentation, and Libraries for libpurple
Group:          Development/Libraries/C and C++
Requires:       NetworkManager-devel
Requires:       NetworkManager-glib
Requires:       glib2-devel
Requires:       libpurple = %{version}
Requires:       libxml2-devel

%description -n libpurple-devel
The libpurple-devel package contains the header files, developer
documentation, and libraries required for development of libpurple
based instant messaging clients or plugins for any libpurple based
client.

%package -n libpurple-tcl
Summary:        TCL Plugin Support for Pidgin
Group:          Productivity/Networking/Instant Messenger
Requires:       libpurple = %{version}
Supplements:    packageand(libpurple:tcl)

%description -n libpurple-tcl
TCL plugin loader for Pidgin. This package will allow you to write
or use Pidgin plugins written in the TCL programming language.

%package -n libpurple-plugin-sametime
Summary:        Sametime Plugin for Pidgin using the Meanwhile Library
Group:          Productivity/Networking/Instant Messenger
Requires:       libpurple = %{version}
# libpurple-meanwhile was last used in openSUSE Leap 42.2.
Provides:       libpurple-meanwhile = %{version}-%{release}
Obsoletes:      libpurple-meanwhile < %{version}-%{release}

%description -n libpurple-plugin-sametime
IBM Sametime plugin for Pidgin using the Meanwhile library.

%package -n finch
Summary:        Text-Based User Interface for Pidgin Instant Messaging Client
Group:          Productivity/Networking/Instant Messenger
Requires:       libpurple = %{version}

%description -n finch
A text-based user interface to use with libpurple. This can be run
from a standard text console or from a graphical terminal emulator.
It uses ncurses and our homegrown gnt library for drawing windows
and text.

%package -n finch-devel
Summary:        Headers etc. for finch Stuffs
Group:          Development/Libraries/C and C++
Requires:       finch = %{version}
Requires:       glib2-devel
Requires:       glibc-devel
Requires:       libpurple-devel = %{version}
Requires:       ncurses-devel

%description -n finch-devel
The finch-devel package contains the header files, developer
documentation, and libraries required for development of Finch
scripts and plugins.

%prep
%setup -q
%if 0%{?suse_version} >= 1120
translation-update-upstream
%endif
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%if 0%{?sle_version} >= 120000 && !0%{?is_opensuse}
%patch7 -p1
%endif

cp -f %{SOURCE3} %{name}-prefs.xml

# Change Myanmar/Myanmar to Myanmar.
mv po/my_MM.po po/my.po
sed -i "/ALL_LINGUAS/s/ my_MM / my /" configure.ac

%build
export CFLAGS="%{optflags} -fstack-protector -fPIC"
export CXXFLAGS="%{optflags} -fstack-protector -fPIC"
export FFLAGS="%{optflags} -fstack-protector -fPIC"
export LDFLAGS="-pie"
autoreconf -fi
%configure \
  --disable-static \
  --enable-plugins \
  --enable-cyrus-sasl \
  --enable-dbus \
  --enable-gstreamer \
%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200 || (0%{?sle_version} >= 120100 && 0%{?is_opensuse})
  --with-gstreamer=1.0 \
  --enable-vv \
%else
  --with-gstreamer=0.10 \
  --disable-vv \
%endif
%if 0%{?suse_version} < 1120
  --enable-gnome-keyring \
%endif
  --enable-nm \
  --enable-dbus \
  --enable-devhelp \
  --with-tclconfig=%{_libdir} \
  --with-tkconfig=%{_libdir} \
  --with-system-ssl-certs=%{_sysconfdir}/ssl/certs/
make %{?_smp_mflags} V=1

%install
%make_install

%if 0%{?suse_version} <= 1140
mkdir -p %{buildroot}%{_sysconfdir}/purple/
rm -f %{buildroot}%{_sysconfdir}/gconf/schemas/purple.schemas
%endif
install -Dpm 0644 %{name}-prefs.xml %{buildroot}%{_sysconfdir}/purple/prefs.xml
%perl_process_packlist

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 a non-versioned name.
ls %{buildroot}%{_libdir}/purple-2/ | grep '\.so$' | while read libim; do
    if [ -L "%{buildroot}%{_libdir}/purple-2/$libim" ]; then
        rm "%{buildroot}%{_libdir}/purple-2/$libim"
    fi
done

%fdupes %{buildroot}
%suse_update_desktop_file -N %{_name} -G "Instant Messenger" %{name}
%find_lang %{name} %{?no_lang_C}

%if 0%{?suse_version} > 1130
%post
%desktop_database_post
%icon_theme_cache_post

%postun
%desktop_database_postun
%icon_theme_cache_postun
%endif

%post -n libpurple -p /sbin/ldconfig

%postun -n libpurple -p /sbin/ldconfig

%post -n finch -p /sbin/ldconfig

%postun -n finch -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc AUTHORS COPYING COPYRIGHT ChangeLog README doc/the_penguin.txt
%{_bindir}/%{name}
%{_libdir}/%{name}/
%{_datadir}/sounds/purple/
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/apps/*
%{_datadir}/pixmaps/%{name}/
%dir %{_datadir}/appdata/
%{_datadir}/appdata/pidgin.appdata.xml
%{_mandir}/man1/%{name}.1%{?ext_man}

%files devel
%defattr(-,root,root)
%{_includedir}/%{name}/
%{_libdir}/pkgconfig/%{name}.pc
%{_mandir}/man3/%{_name}.3*%{?ext_man}

%files -n libpurple
%defattr(-,root,root)
%dir %{_sysconfdir}/purple/
%{_bindir}/purple-client-example
%{_bindir}/purple-remote
%{_bindir}/purple-send
%{_bindir}/purple-send-async
%{_bindir}/purple-url-handler
%{_libdir}/libpurple.so.*
%{_libdir}/libpurple-client.so.*
%{_libdir}/purple-2/
%exclude %{_libdir}/purple-2/libsametime.so
%exclude %{_libdir}/purple-2/tcl.so

%files -n libpurple-lang -f %{name}.lang
%defattr(-,root,root)
%if 0%{?suse_version} < 1140
# These locales are not included in respective products.
# See https://bugzilla.opensuse.org/show_bug.cgi?id=659001
%dir %{_datadir}/locale/brx/
%dir %{_datadir}/locale/brx/LC_MESSAGES/
%dir %{_datadir}/locale/ku_IQ/
%dir %{_datadir}/locale/ku_IQ/LC_MESSAGES/
%dir %{_datadir}/locale/mhr/
%dir %{_datadir}/locale/mhr/LC_MESSAGES/
%dir %{_datadir}/locale/ms_MY/
%dir %{_datadir}/locale/ms_MY/LC_MESSAGES/
%dir %{_datadir}/locale/sd/
%dir %{_datadir}/locale/sd/LC_MESSAGES/
%endif

%files -n libpurple-branding-upstream
%defattr(-,root,root)
%config %{_sysconfdir}/purple/prefs.xml

%files -n libpurple-tcl
%defattr(-,root,root)
%{_libdir}/purple-2/tcl.so

%files -n libpurple-plugin-sametime
%defattr(-,root,root)
%{_libdir}/purple-2/libsametime.so

%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
%{_mandir}/man3/Purple.3*

%files -n finch
%defattr(-,root,root)
%{_bindir}/finch
%{_libdir}/finch/
%{_libdir}/libgnt.so.*
%{_libdir}/gnt/
%dir %{_libdir}/finch/
%{_mandir}/man1/finch.1*

%files -n finch-devel
%defattr(-,root,root)
%{_includedir}/finch/
%{_includedir}/gnt/
%{_libdir}/libgnt.so
%{_libdir}/pkgconfig/finch.pc
%{_libdir}/pkgconfig/gnt.pc

%changelog
openSUSE Build Service is sponsored by