%define name prelink %define version 0.4.2 %define date 20091104 %define rel 1 %define release %mkrel 1.%{date}.%{rel} Summary: An ELF prelinking utility Name: %{name} Version: %{version} Release: %{release} License: GPL Epoch: 1 Group: System/Base Source0: ftp://people.redhat.com/jakub/prelink/%{name}-%{date}.tar.bz2 Source2: prelink.conf Source3: prelink.cron Source4: prelink.sysconfig Patch0: prelink-0.3.10-init.patch Patch1: cron-use-ionice.diff Patch2: conf-skip-debug-files.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildRequires: elfutils-static-devel glibc-static-devel perl Requires: coreutils findutils Requires: util-linux gawk grep Requires(post): rpm-helper %description The prelink package contains a utility which modifies ELF shared libraries and executables, so that far fewer relocations need to be resolved at runtime and thus programs come up faster. %prep %setup -q -n %{name} %patch0 -p1 -b .init cp -a %{SOURCE2} %{SOURCE3} %{SOURCE4} . %patch1 -p0 -b .ionice %patch2 -p0 -b .skip_debug perl -MConfig -e 'print "-l $Config{archlib}\n-l $Config{installvendorarch}\n"' >> prelink.conf %build %configure2_5x --disable-shared %make %check echo ====================TESTING========================= %make -C testsuite check-harder %make -C testsuite check-cycle echo ====================TESTING END===================== %install rm -rf $RPM_BUILD_ROOT %{makeinstall} mkdir -p %{buildroot}%{_sys_macros_dir} cp -a prelink.conf %{buildroot}%{_sysconfdir} mkdir -p %{buildroot}%{_sysconfdir}/{sysconfig,cron.daily,logrotate.d} cp -a prelink.cron %{buildroot}%{_sysconfdir}/cron.daily/prelink cp -a prelink.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/prelink chmod 755 %{buildroot}%{_sysconfdir}/cron.daily/prelink chmod 644 %{buildroot}%{_sysconfdir}/{sysconfig/prelink,prelink.conf} cat > %{buildroot}%{_sys_macros_dir}/%name.macros <<"EOF" # rpm-4.1 verifies prelinked libraries using a prelink undo helper. # Note: The 2nd token is used as argv[0] and "library" is a # placeholder that will be deleted and replaced with the appropriate # library file path. %%__prelink_undo_cmd %{_sbindir}/prelink prelink -y library EOF chmod 644 %{buildroot}%{_sys_macros_dir}/%name.macros mkdir -p %{buildroot}{%{_localstatedir}/lib/misc,%{_var}/log/prelink} touch %{buildroot}%{_localstatedir}/lib/misc/prelink.full touch %{buildroot}%{_localstatedir}/lib/misc/prelink.force touch %{buildroot}/%{_var}/log/prelink/prelink.log cat > %buildroot%{_sysconfdir}/logrotate.d/%{name} << EOF /var/log/prelink.log { missingok notifempty } EOF mkdir -p %{buildroot}/%{_sysconfdir}/prelink.conf.d touch %{buildroot}/%{_sysconfdir}/prelink.cache %post %create_ghostfile %{_localstatedir}/lib/misc/prelink.full root root 644 %create_ghostfile %{_localstatedir}/lib/misc/prelink.force root root 644 %create_ghostfile %{_var}/log/prelink.log root root 600 %preun if [ "$1" = "0" ]; then echo undo prelinking, it might take some time %{_sbindir}/prelink -ua 2> /dev/null fi %clean rm -rf %{buildroot} %files %defattr(-,root,root) %doc doc/prelink.pdf %verify(not md5 size mtime) %config(noreplace) %{_sysconfdir}/prelink.conf %verify(not md5 size mtime) %config(noreplace) %{_sysconfdir}/sysconfig/prelink %verify(not md5 size mtime) %{_sysconfdir}/prelink.cache %dir %{_sysconfdir}/prelink.conf.d %config(noreplace) %{_sys_macros_dir}/%{name}.macros %{_sysconfdir}/cron.daily/prelink %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %{_sbindir}/prelink %{_bindir}/execstack %{_mandir}/man8/prelink.8* %{_mandir}/man8/execstack.8* %dir %{_var}/log/prelink %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_localstatedir}/lib/misc/prelink.full %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_localstatedir}/lib/misc/prelink.force %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_var}/log/prelink/prelink.log %changelog * Wed Dec 02 2009 Herton Ronaldo Krzesinski <herton@mandriva.com.br> 1:0.4.2-1.20091104.1mdv2010.1 + Revision: 472611 - Updated to 20091104 snapshot. * Sat Sep 26 2009 Frederik Himpe <fhimpe@mandriva.org> 1:0.4.2-1.20090925.1mdv2010.0 + Revision: 449647 - Update to new version 20090925 * Thu Jul 30 2009 Frederik Himpe <fhimpe@mandriva.org> 1:0.4.2-1.20090709.1mdv2010.0 + Revision: 404832 - Update to new version 0.4.2-20090709 from Fedora * Thu Dec 18 2008 Frederic Crozat <fcrozat@mandriva.com> 1:0.4.0-1.20071009.4mdv2009.1 + Revision: 315630 - Add preun script to undo prelink when uninstalling package - Update configuration to prelink kde3 too * Mon Jun 02 2008 Pixel <pixel@mandriva.com> 1:0.4.0-1.20071009.3mdv2009.0 + Revision: 214231 - adapt to %%_localstatedir now being /var instead of /var/lib (#22312) + Thierry Vignaud <tvignaud@mandriva.com> - remove useless kernel require - kill re-definition of %%buildroot on Pixel's request + Olivier Blin <oblin@mandriva.com> - restore BuildRoot * Thu Dec 06 2007 Thierry Vignaud <tvignaud@mandriva.com> 1:0.4.0-1.20071009.2mdv2008.1 + Revision: 115914 - prelink perl modules in vendor directory too - log file has moved - enable test suite * Wed Dec 05 2007 Thierry Vignaud <tvignaud@mandriva.com> 1:0.4.0-1.20071009.1mdv2008.1 + Revision: 115690 - prelink perl too - patch 2: skip debug files from *-debug packages - patch 1: use ionice - alter management of extra sources so that we can patch them while still easily enabling to sync with fedora - sync description with fedora - new release (from fedora) * Tue Nov 13 2007 Thierry Vignaud <tvignaud@mandriva.com> 1:0.3.10-1.20061201.2mdv2008.1 + Revision: 108452 - use ionice * Sat Jan 13 2007 Olivier Thauvin <nanardon@mandriva.org> 0.3.10-1.20061201.1mdv2007.0 + Revision: 108357 - From (Frederik Himpe <fhimpe at telenet.be>) * update to 0.3.10 (supports DT_GNU_HASH) * run /sbin/init U after init is prelinked, otherwise umounting of / will fail * Tue Aug 08 2006 Olivier Thauvin <nanardon@mandriva.org> 1:0.3.6-1.20060213.1mdv2007.0 + Revision: 54230 - fix release tag according software version - add sources files... - 20060213 - Import prelink * Tue Jan 31 2006 Per Ãyvind Karlsen <pkarlsen@mandriva.com> 0.3.6-1mdk - 0.3.6 - fix executable-marked-as-config-file * Sat Jan 14 2006 Olivier Thauvin <nanardon@mandriva.org> 0.3.5-2mdk - don't use anymore /etc/rpm/macros.%%name but /etc/rpm/macros.d * Fri Jul 08 2005 Per Ãyvind Karlsen <pkarlsen@mandriva.com> 0.3.5-1mdk - 0.3.5 - fix requires - %%mkrel * Thu Feb 17 2005 Per Ãyvind Karlsen <peroyvind@linux-mandrake.com> 0.3.4-1mdk - 0.3.4 * Fri Dec 17 2004 Per Ãyvind Karlsen <peroyvind@linux-mandrake.com> 0.3.3-1mdk - 0.3.3 (sync with fedora) * Thu Jul 29 2004 Thierry Vignaud <tvignaud@mandrakesoft.com> 0.3.2-2mdk - fix update from mdk10.0 * Thu Jun 17 2004 Per Ãyvind Karlsen <peroyvind@linux-mandrake.com> 0.3.2-1mdk - sync with fedora - cosmetics - disable tests