view gaim.spec.in @ 9417:9f6a28af7164

[gaim-migrate @ 10232] " IDLETRACK.DLL uses Windows hooks to record the last time the user pressed a key or moved the mouse. Windows hooks are a bit unfriendly in that they force the hook DLL into every process - so IDLETRACK.DLL gets added to every process after Gaim runs. This can mean that IDLETRACK.DLL doesn't get unloaded when Gaim stops, which causes a warning about being unable to write to IDLETRACK.DLL if you then upgrade Gaim. Further, hooking is a common tactic employed by key loggers. If the user has a program installed that checks for global hooks then it will warn the user that Gaim may contain a key logger. From Windows 2000 onwards Microsoft introduced an API function called GetLastInputInfo that returns the timer tick at the point that the user last pressed a key or moved the mouse. I have changed idletrack.c so that it will try to use this if it can, which avoids all the ugliness of having to use hooks, but it will fall back to using hooks if the function isn't present. This patch changes all three exported functions in idletrack.c. In wgaim_set_idlehooks it checks to see if GetLastInputInfo is present. If it is then the address of the function is recorded and no hooks are set. If it isn't then we're running on an old verison of Windows and the hooks are set as per current behaviour. In wgaim_remove_idlehooks the module handle taken for USER32.DLL by wgaim_set_idlehooks is released. In wgaim_get_lastactive the GetLastInputInfo function is called, if present. If it isn't present then the hooks will have run and the shared memory they write to will be read as per current behaviour. Both methods end up getting the timer tick of the last user activity, which is returned as per current behaviour." --Andrew Whewell committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Sun, 27 Jun 2004 22:29:53 +0000
parents ecd93503a5c9
children a3e3c71d995a
line wrap: on
line source

Summary:    A Gtk+ based multiprotocol instant messaging client
Name:       @PACKAGE@
Version:    @VERSION@
Release:    0
Epoch:      1
License:    GPL
Group:      Applications/Internet
URL:        http://gaim.sourceforge.net/
Packager:   %{packager}
Source:     %{name}-%{version}.tar.gz
BuildRoot:  %{_tmppath}/%{name}-%{version}-root

%if "%{_vendor}" == "MandrakeSoft"
Requires:   gtk+2.0 >= 2.0.0, libnss3
BuildRequires: libao-devel, libgtk+2.0_0-devel, gtkspell-devel, libtool, audiofile-devel, pkgconfig, libnss3-devel, perl-devel
Provides:   libgaim-remote0
%else
Requires:   gtk2 >= 2.0.0, mozilla-nss, gtkspell, audiofile, libao
BuildRequires: libao-devel, gtk2-devel, gtkspell-devel, libtool, audiofile-devel, pkgconfig, mozilla-nss-devel
%endif
%{?_with_silc:BuildRequires: libsilc-devel}

%if %{?_with_silc:1}%{!?_with_silc:0}
%package silc
Summary:    SILC (Secure Internet Live Conferencing) plugin for Gaim
Group:      Applications/Internet
Requires:   gaim = 1:%{version}
%endif

%package devel
Summary:    Development headers, documentation, and libraries for Gaim.
Group:      Applications/Internet
Requires:   gaim = %{epoch}:%{version}

%description
Gaim allows you to talk to anyone using a variety of messaging 
protocols, including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, 
MSN Messenger, Jabber, Gadu-Gadu, Napster, 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.

Gaim supports many common features of other clients, as well as many 
unique features, such as perl scripting, TCL scripting and C plugins.

Gaim is NOT affiliated with or endorsed by America Online, Inc., 
Microsoft Corporation, Yahoo! Inc., or ICQ Inc.

%if %{?_with_silc:1}%{!?_with_silc:0}
%description silc
SILC (Secure Internet Live Conferencing) plugin for Gaim
%endif

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

%prep
%setup

%build
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} \
                                    --bindir=%{_bindir} \
                                    --datadir=%{_datadir} \
                                    --includedir=%{_includedir} \
                                    --libdir=%{_libdir} \
                                    --mandir=%{_mandir} \
                                    --sysconfdir=%{_sysconfdir} \
                                    --with-perl-lib=%{buildroot}%{_prefix} \
                                    %{?_with_silc:--with-silc-includes=%{_includedir}/silc} \
                                    %{?_with_silc:--with-silc-libs=%{_libdir}/silc}

make %{?_smp_mflags}

%install
rm -rf %{buildroot}
make prefix=%{buildroot}%{_prefix} bindir=%{buildroot}%{_bindir} \
     datadir=%{buildroot}%{_datadir} includedir=%{buildroot}%{_includedir} \
     libdir=%{buildroot}%{_libdir} mandir=%{buildroot}%{_mandir} \
     sysconfdir=%{buildroot}%{_sysconfdir} \
     install

rm -f $RPM_BUILD_ROOT%{_libdir}/perl5/*/*/perllocal.pod
rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/*.la
find $RPM_BUILD_ROOT%{_libdir}/gaim -type f -print | \
	sed "s@^$RPM_BUILD_ROOT@@g" | \
	grep -v libsilcgaim.so > %{name}-%{version}-coreplugins

%clean
rm -rf %{buildroot}

%files -f %{name}-%{version}-coreplugins
%defattr(-, root, root)

%doc doc/the_penguin.txt doc/CREDITS NEWS COPYING AUTHORS COPYRIGHT
%doc README ChangeLog
%doc %{_mandir}/man1/*
%doc %{_mandir}/man3*/*

%dir %{_libdir}/gaim
%attr(755, root, root) %{_libdir}/libgaim-remote.so.*
%attr(755, root, root) %{_libdir}/perl5

%{_bindir}/*
%{_datadir}/locale/*/*/*
%{_datadir}/pixmaps/*
%dir %{_datadir}/sounds/gaim
%{_datadir}/sounds/gaim/*
%{_datadir}/applications/*

%if %{?_with_silc:1}%{!?_with_silc:0}
%files silc
%defattr(-, root, root)

%{_libdir}/gaim/libsilcgaim.*
%endif

%files devel
%defattr(-, root, root)

%doc plugins/HOWTO
%doc HACKING PROGRAMMING_NOTES

%attr(755, root, root) %{_libdir}/libgaim-remote.so
%attr(755, root, root) %{_libdir}/libgaim-remote.la
%dir %{_includedir}/gaim
%{_includedir}/gaim/*.h
%{_libdir}/pkgconfig/gaim.pc

%changelog
* 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.