Mercurial > pidgin
diff pidgin.spec.in @ 15884:c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Sat, 24 Mar 2007 17:51:05 +0000 |
parents | |
children | 402236ee7981 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin.spec.in Sat Mar 24 17:51:05 2007 +0000 @@ -0,0 +1,495 @@ +# Older RPM doesn't define these by default +%{!?perl_vendorlib: %define perl_vendorlib %(eval "`%{__perl} -V:installvendorlib`"; echo $installvendorlib)} +%{!?perl_vendorarch: %define perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)} +%{!?perl_archlib: %define perl_archlib %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)} + +# When not doing betas comment this out +# NOTE: %defines in spec files are evaluated in comments so the correct +# way to comment it out is to replace the % with # +#define beta 7 + +%if 0%{?beta} +%define pidginver %(echo "@VERSION@"|sed -e 's/dev//; s/beta.*//') +%else +%define pidginver @VERSION@ +%endif + +Summary: A GTK+ based multiprotocol instant messaging client +Name: @PACKAGE@ +Version: %pidginver +Release: 0%{?beta:.beta%{beta}} +Epoch: 0 +License: GPL +Group: Applications/Internet +URL: http://pidgin.im/ +Packager: %{packager} +Source: %{name}-@VERSION@.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +# Generic build requirements +BuildRequires: libtool, pkgconfig, intltool, gettext, libxml2-devel +%{?_with_avahi:BuildRequires: avahi-compat-howl-devel} +%{!?_without_gtkspell:BuildRequires: gtkspell-devel} +%{?_with_howl:BuildRequires: howl-devel} +%{?_with_meanwhile:BuildRequires: meanwhile-devel} +%{?_with_mono:BuildRequires: mono-devel} +%{?_with_sasl:BuildRequires: cyrus-sasl-devel >= 2} +%{?_with_silc:BuildRequires: /usr/include/silc/silcclient.h} +%{?_with_tcl:BuildRequires: tcl, tk, /usr/include/tcl.h} +%{!?_without_text:BuildRequires: ncurses-devel} + +%if "%{_vendor}" == "suse" +# For SuSE: +BuildRequires: gnutls-devel +%{?_with_dbus:BuildRequires: dbus-1-devel >= 0.35} +%{!?_without_gstreamer:BuildRequires: gstreamer010-devel >= 0.10} +%else +%{?_with_dbus:BuildRequires: dbus-devel >= 0.35} +%{!?_without_gstreamer:BuildRequires: gstreamer-devel >= 0.10} +%endif + +# Mandrake 10.1 and lower || Mandrake 10.2 (and higher?) +%if "%{_vendor}" == "MandrakeSoft" || "%{_vendor}" == "Mandrakesoft" || "%{_vendor}" == "Mandriva" +# For Mandrake/Mandriva: +BuildRequires: libgtk+2.0_0-devel, libnss3-devel, perl-devel +Obsoletes: libgaim-remote0 +%else +# For SuSE, Red Hat, Fedora and others: +BuildRequires: gtk2-devel +%if "%{_vendor}" != "suse" +# For Red Hat, Fedora and others: +# let's assume RH & FC1 are the only brain-dead distros missing the +# perl-XML-Parser dependency on intltool and that other RH/FC releases +# don't care if we specify it here +BuildRequires: perl-XML-Parser +BuildRequires: mozilla-nss-devel +%endif +%endif + +# For some reason perl isn't always automatically detected as a requirement :( +Requires: perl +# Gadu-Gadu support was split out temporarily (only as gaim) +Provides: gaim-gadugadu = %{epoch}:%{version}-%{release} + +%package devel +Summary: Development headers, documentation, and libraries for Pidgin +Group: Applications/Internet +Requires: pkgconfig, pidgin = %{epoch}:%{version} + +%if 0%{?_with_howl:1} || 0%{?_with_avahi:1} +%package bonjour +Summary: Bonjour plugin for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{?_with_meanwhile:1} +%package meanwhile +Summary: Lotus Sametime plugin for Pidgin using the Meanwhile library +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{?_with_mono:1} +%package mono +Summary: Mono .NET plugin support for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{?_with_silc:1} +%package silc +Summary: SILC (Secure Internet Live Conferencing) plugin for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{?_with_tcl:1} +%package tcl +Summary: Tcl scripting support for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{!?_without_text:1} +%package -n finch +Summary: A text-based user interface for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%description +Pidgin allows you to talk to anyone using a variety of messaging +protocols including AIM, MSN, Yahoo!, Jabber, Bonjour, Gadu-Gadu, +ICQ, IRC, Novell Groupwise, QQ, Lotus Sametime, SILC, Simple and +Zephyr. These protocols are implemented using a modular, easy to +use design. To use a protocol, just add an account using the +account editor. + +Pidgin supports many common features of other clients, as well as many +unique features, such as perl scripting, TCL scripting and C plugins. + +Pidgin is not affiliated with or endorsed by America Online, Inc., +Microsoft Corporation, Yahoo! Inc., or ICQ Inc. + +%description devel +The pidgin-devel package contains the header files, developer +documentation, and libraries required for development of Pidgin scripts +and plugins. + +%if 0%{?_with_howl:1} || 0%{?_with_avahi:1} +%description bonjour +Bonjour plugin for Pidgin. +%endif + +%if 0%{?_with_meanwhile:1} +%description meanwhile +Lotus Sametime plugin for Pidgin using the Meanwhile library. +%endif + +%if 0%{?_with_mono:1} +%description mono +Mono plugin loader for Pidgin. This package will allow you to write or +use Pidgin plugins written in the .NET programming language. +%endif + +%if 0%{?_with_silc:1} +%description silc +SILC (Secure Internet Live Conferencing) plugin for Pidgin. +%endif + +%if 0%{!?without_text:1} +%description -n finch +A text-based user interface for Pidgin. This can be run from a +standard text console or from a terminal within X Windows. It +uses ncurses and our homegrown gnt library for drawing windows +and text. +%endif + +%if 0%{?_with_tcl:1} +%description tcl +Tcl plugin loader for Pidgin. This package will allow you to write or +use Pidgin plugins written in the Tcl programming language. +%endif + +%prep +%setup -q -n %{name}-@VERSION@ + +%build +CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --datadir=%{_datadir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --sysconfdir=%{_sysconfdir} \ + --disable-schemas-install \ + %{!?_with_dbus:--disable-dbus} \ + %{?_without_gstreamer:--disable-gstreamer} \ + %{?_without_gtkspell:--disable-gtkspell} \ + %{?_with_mono:--enable-mono} \ + %{?_with_perlmakehack:--with-perl-lib=%{buildroot}%{_prefix}} \ + %{!?_with_perlmakehack:--with-perl-lib=%{_prefix}} \ + %{?_with_sasl:--enable-cyrus-sasl} \ + %{?_with_silc:--with-silc-includes=%{_includedir}/silc} \ + %{?_with_silc:--with-silc-libs=%{_libdir}/silc} \ + %{!?_with_tcl:--disable-tcl} \ + %{?_without_text:--disable-consoleui} + +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} +%if 0%{?_with_perlmakehack:1} +make prefix=%{buildroot}%{_prefix} bindir=%{buildroot}%{_bindir} \ + datadir=%{buildroot}%{_datadir} includedir=%{buildroot}%{_includedir} \ + libdir=%{buildroot}%{_libdir} mandir=%{buildroot}%{_mandir} \ + sysconfdir=%{buildroot}%{_sysconfdir} \ + install +%else +make DESTDIR=$RPM_BUILD_ROOT install +%endif + +# Delete files that we don't want to put in any of the RPMs +rm -f $RPM_BUILD_ROOT%{_libdir}/finch/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/pidgin/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la +rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod +find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';' +find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -exec rm -f {} ';' +# do we want to ship the nullclient ? +rm -f $RPM_BUILD_ROOT%{_bindir}/nullclient + +%if 0%{!?_with_howl:1} && 0%{!?_with_avahi:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/libbonjour.so +%endif + +%if 0%{!?_with_meanwhile:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/libsametime.so +%endif + +%if 0%{!?_with_mono:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/mono.so +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/*.dll +%endif + +%if 0%{!?_with_silc:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/libsilcpurple.so +%endif + +%if 0%{!?_with_tcl:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/tcl.so +%endif + +%if 0%{?_without_text:1} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/finch.* +rm -rf $RPM_BUILD_ROOT%{_bindir}/finch +rm -f $RPM_BUILD_ROOT%{_libdir}/libgnt.so.* +%endif + +%find_lang %{name} + +find $RPM_BUILD_ROOT%{_libdir}/pidgin $RPM_BUILD_ROOT%{_libdir}/libpurple -xtype f -print | \ + sed "s@^$RPM_BUILD_ROOT@@g" | \ + grep -v /libbonjour.so | \ + grep -v /libsilcpurple.so | \ + grep -v /libsametime.so | \ + grep -v /mono.so | \ + grep -v /tcl.so | \ + grep -v ".dll$" | \ + grep -v ".tcl$" > %{name}-%{version}-coreplugins + +# files -f file can only take one filename :( +cat %{name}.lang >> %{name}-%{version}-coreplugins + +%clean +rm -rf %{buildroot} + +%pre +if [ "$1" -gt 1 -a -n "`which gconftool-2 2>/dev/null`" ]; then + export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` + gconftool-2 --makefile-uninstall-rule \ + %{_sysconfdir}/gconf/schemas/gaim.schemas >/dev/null || : + killall -HUP gconfd-2 || : +fi + +%post +if [ -n "`which gconftool-2 2>/dev/null`" ]; then + export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` + gconftool-2 --makefile-install-rule \ + %{_sysconfdir}/gconf/schemas/gaim.schemas > /dev/null || : + killall -HUP gconfd-2 || : +fi +/sbin/ldconfig + +%preun +if [ "$1" -eq 0 -a -n "`which gconftool-2 2>/dev/null`" ]; then + export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` + gconftool-2 --makefile-uninstall-rule \ + %{_sysconfdir}/gconf/schemas/gaim.schemas > /dev/null || : + killall -HUP gconfd-2 || : +fi + +%postun -p /sbin/ldconfig + +%files -f %{name}-%{version}-coreplugins +%defattr(-, root, root) + +%doc AUTHORS +%doc COPYING +%doc COPYRIGHT +%doc ChangeLog +%doc NEWS +%doc README +%doc README.SVN +%doc doc/FAQ +%doc doc/the_penguin.txt +%doc %{_mandir}/man1/pidgin.* +%doc %{_mandir}/man3*/* + +%dir %{_libdir}/pidgin +%dir %{_libdir}/libpurple +%attr(755, root, root) %{perl_vendorarch}/Purple* +%attr(755, root, root) %{perl_vendorarch}/auto/Purple + +%{_bindir}/pidgin +%{_datadir}/pixmaps/* +%dir %{_datadir}/sounds/pidgin +%{_datadir}/sounds/pidgin/* +%{_datadir}/applications/* +%{_libdir}/libpurple.so.* +%{_sysconfdir}/gconf/schemas/gaim.schemas + +%if 0%{?_with_dbus:1} +%{_bindir}/purple-client-example +%{_bindir}/purple-remote +%{_bindir}/purple-send +%{_bindir}/purple-send-async +%{_bindir}/purple-url-handler +%{_libdir}/libpurple-client.so.* +%{_datadir}/dbus-1/services/gaim.service +%doc README.dbus +%doc libpurple/purple-notifications-example +%endif + +%files devel +%defattr(-, root, root) + +%doc ChangeLog.API +%doc HACKING +%doc PLUGIN_HOWTO +%doc PROGRAMMING_NOTES + +%dir %{_includedir}/finch +%dir %{_includedir}/gnt +%dir %{_includedir}/libpurple +%dir %{_includedir}/pidgin +%{_includedir}/finch/*.h +%{_includedir}/gnt/*.h +%{_includedir}/libpurple/*.h +%{_includedir}/pidgin/*.h +%{_libdir}/libpurple.so +%{_libdir}/libgnt.so +%{_libdir}/pkgconfig/purple.pc +%{_libdir}/pkgconfig/pidgin.pc +%{_libdir}/pkgconfig/gnt.pc +%{_datadir}/aclocal/gaim.m4 +%if 0%{?_with_dbus:1} +%{_libdir}/libpurple-client.so +%endif + +%if 0%{?_with_howl:1} || 0%{?_with_avahi:1} +%files bonjour +%defattr(-, root, root) + +%{_libdir}/libpurple/libbonjour.* +%endif + +%if 0%{?_with_meanwhile:1} +%files meanwhile +%defattr(-, root, root) + +%{_libdir}/libpurple/libsametime.* +%endif + +%if 0%{?_with_mono:1} +%files mono +%defattr(-, root, root) + +%{_libdir}/libpurple/mono.so +%{_libdir}/libpurple/*.dll +%endif + +%if 0%{?_with_silc:1} +%files silc +%defattr(-, root, root) + +%{_libdir}/libpurple/libsilcpurple.* +%endif + +%if 0%{?_with_tcl:1} +%files tcl +%defattr(-, root, root) + +%{_libdir}/libpurple/tcl.so +%endif + +%if 0%{!?_without_text:1} +%files -n finch +%defattr(-, root, root) + +%doc %{_mandir}/man1/finch.* +%{_bindir}/finch +%{_libdir}/finch/*.so +%{_libdir}/libgnt.so.* +%endif + +%changelog +* Sat Mar 24 2007 Stu Tomlinson <stu@nosnilmot.com> +- Update to reflect renaming to pidgin/libpurple + +* Sun Oct 1 2006 Stu Tomlinson <stu@nosnilmot.com> +- We can build with internal gadu gadu again, so bring it back into the + main package +- Deal with gconf schame uninstallation on package upgrade and removal + +* Sun Aug 20 2006 Stu Tomlinson <stu@nosnilmot.com> +- Make the gstreamer-devel dependency overridable with '--without-gstreamer' + to allow building on older distributions without suitable gstreamer + +* Tue Aug 15 2006 Mark Doliner <thekingant@users.sourceforge.net> +- Add a BuildRequire for gstreamer-devel +- Remove the BuildRequires for audiofile-devel and libao-devel + +* Mon May 8 2006 Mark Doliner <thekingant@users.sourceforge.net> +- Add --with avahi option to compile the gaim-bonjour package against + Avahi's Howl compatibility layer + +* Wed Mar 29 2006 Stu Tomlinson <stu@nosnilmot.com> +- Source RPM uses tar.bz2 now to save space +- Update BuildRequires for new intltool dependencies +- Add a --with perlmakehack option to allow builds to succeed on RH9 +- Add a --with gadugadu to build (separate) gaim-gadugadu package + +* Sat Dec 17 2005 Stu Tomlinson <stu@nosnilmot.com> +- Add support for beta versions so the subsequent releases are seen as newer + by RPM +- Split of sametime support to gaim-meanwhile +- Use make DESTDIR=... instead of overloading prefix etc. when installing +- Default build to include cyrus-sasl support in Jabber +- Add --with dbus to build with DBUS support + +* Sun Dec 04 2005 Christopher O'Brien <siege@preoccupied.net> +- Added obsoletes gaim-meanwhile + +* Sun Oct 30 2005 Stu Tomlinson <stu@nosnilmot.com> +- Add separate gaim-bonjour package if built with --with-howl +- Add separate gaim-mono package if built with --with-mono +- Exclude some unwanted perl files + +* Sat Aug 20 2005 Stu Tomlinson <stu@nosnilmot.com> +- Include libgaimperl.so +- Include gaim.m4 in gaim-devel + +* Thu Apr 28 2005 Stu Tomlinson <stu@nosnilmot.com> +- Use perl_vendorlib & perl_archlib for better 64bit compat (Jeff Mahoney) +- Clean up Requires, most should be auto-detected +- Restore gtkspell-devel build requirement (and add --without gtkspell option) +- Fix Tcl build requirements to work across more distros +- Fix SILC build requirements to work across more distros + +* Mon Oct 11 2004 John Jolly <john.jolly@gmail.com> +- Added if "%{_vendor}" == "suse" to handle GnuTLS libraries for SuSE + +* Sat Oct 2 2004 Stu Tomlinson <stu@nosnilmot.com> +- If --with tcl or silc are not specified, make sure the plugins don't + exist to prevent RPM complaining about unpackaged files + +* Tue Jun 29 2004 Ethan Blanton <eblanton@cs.ohiou.edu> +- Change Tcl to use --with tcl, the same as SILC, and build a gaim-tcl + package if specified. + +* Thu Jun 24 2004 Mark Doliner <thekingant@users.sourceforge.net> +- Add --with silc rebuild option for compiling a separate gaim-silc + RPM containing the silc protocol plugin (Stu Tomlinson). + +* Wed Jun 23 2004 Ethan Blanton <eblanton@cs.ohiou.edu> +- Moved gaim headers and a pkgconfig configuration file into the + gaim-devel RPM (Stu Tomlinson). + +* Thu Jan 15 2004 Ethan Blanton <eblanton@cs.ohiou.edu> +- Removed the manual strip command, as it seems to be unwarranted if + the necessary programs are properly installed. (For me, this was + elfutils.) + +* Sun Jul 20 2003 Bjoern Voigt <bjoern@cs.tu-berlin.de> +- Added pkgconfig build dependency. +- if "%{_vendor}" != "MandrakeSoft" now also works with rpm 3.x. +- Added Gaim-specific directories to list of Gaim's files. + +* Wed Jul 16 2003 Ethan Blanton <eblanton@cs.ohiou.edu> +- Complete spec file rewrite to take advantage of "new" RPM features + and make things prettier. +- Use system-supplied %%{_prefix}, %%{_datadir}, etc. rather than + attempt to define our own.