File prelink.spec of Package prelink
#
# spec file for package prelink (Version 0.4.0)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: prelink
BuildRequires: gcc-c++ libelf0-devel
Summary: An ELF Prelinking Utility
Version: 0.4.0
Release: 1
Group: System/Base
License: GPL v2 or later
Url: ftp://people.redhat.com/jakub/prelink
PreReq: %fillup_prereq
Source: prelink-20071009.tar.bz2
Source2: prelink.conf
Source3: SuSEconfig.prelink
Source4: sysconfig.prelink
Patch0: prelink-make_it_cool.diff
Patch3: prelink-tests.diff
Patch4: prelink-make-dry-run-verbose.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# It does not work at all on ia64, so let's listen upstream supported
# architectures
ExclusiveArch: %{ix86} alpha sparc sparc64 s390 s390x x86_64 ppc ppc64
%description
The prelink program is a utility that modifies shared libraries and
executables in the ELF format so that far less relocations need to be
resolved at run time. This decreases program start-up time.
You can enable prelink support via the YaST sysconfig editor or in
/etc/sysconfig/prelink.
Be aware that prelink modifies all libraries and executables on your
system. Applications which monitor changes in files will no longer
work.
Authors:
--------
Jakub Jelinek <jakub@redhat.com>
%prep
%setup -q -n prelink
%patch0 -p0
%patch3 -p0
%patch4 -p0
%build
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr --mandir=%{_mandir}
make %{?jobs:-j%jobs}
make -C testsuite check-harder
%install
make install DESTDIR=$RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc
sed -e "s,LIBDIR,%_lib," %{SOURCE2} > $RPM_BUILD_ROOT/etc/prelink.conf
FILLUP_DIR=$RPM_BUILD_ROOT/var/adm/fillup-templates
mkdir -p $FILLUP_DIR $RPM_BUILD_ROOT/sbin/conf.d
install -m 0644 %SOURCE4 $FILLUP_DIR/sysconfig.%name
install -m 0755 %SOURCE3 $RPM_BUILD_ROOT/sbin/conf.d/
install -m 0755 -d $RPM_BUILD_ROOT/var/lib/prelink
mkdir -p $RPM_BUILD_ROOT/etc/rpm
cat > $RPM_BUILD_ROOT/etc/rpm/macros.prelink <<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 /usr/sbin/prelink prelink -y library
EOF
%post
%{fillup_only}
%clean
rm -fr $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%dir /var/lib/prelink
%dir /etc/rpm
%config(noreplace) /etc/prelink.conf
%config /etc/rpm/macros.prelink
%_sbindir/prelink
%_bindir/execstack
%_mandir/man8/prelink.8.*
%_mandir/man8/execstack.8.*
/sbin/conf.d/SuSEconfig.%name
/var/adm/fillup-templates/sysconfig.%name
%changelog
* Wed Mar 19 2008 aj@suse.de
- Update to 0.4.0:
* add support for -c /etc/prelink.conf.d/*.conf in prelink.conf
* remove no longer existent directories from default prelink.conf
* reenabled prelink C++ optimizations which have not triggered any longer
since _ZT[IV]* moved into .data.rel.ro section from .data
* fixed performance issues in C++ optimizations, especially on GCJ
CNI programs
* other performance improvements, prelink -avmR after prelink -ua now
takes roughly 3m4s real time instead of 20m27s before
* don't run TEXTREL tests if SELinux is enforcing
* Mon Jul 02 2007 tiwai@suse.de
- changed from libelf to libelf0-devel in buildrequires.
* Mon Jan 29 2007 sbrabec@suse.cz
- Changed references to /opt/gnome.
- Removed references to /opt/gnome2.
- Removed reference to not existing gnome-database-components.
* Thu Jan 18 2007 meissner@suse.de
- upgraded to 0.3.10.
- mostly MIPS stuff
- integrated upstream fix
* Tue Oct 24 2006 meissner@suse.de
- replaced by Jakubs correct fix.
* Thu Oct 19 2006 meissner@suse.de
- fixed incorrect condition in .debug_ranges adjuster.
(reduces failures by 50%%)
* Tue Jul 18 2006 meissner@suse.de
- Update to 0.3.9 (sync with Fedora Core)
- fixed 0x2e stab missing in WINE.
* Sun Mar 12 2006 aj@suse.de
- Update to 0.3.6 (sync with Fedora release number) using
prelink-20060213):
* disable -Wl,-z,nocopyreloc tests on x86_64, nocopyreloc really
doesn't work on this platform
* don't relocate stabs N_{B,D,}SLINE
* on ppc32 handle -mbss-plt .got sections created with -msecure-plt
capable binutils
- Use $PRELINK_OPTS.
- Blacklist more files and directories in prelink.conf
- Package builds again on x86-64, s390.
- Remember that ia64 is not supported.
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Tue Aug 23 2005 coolo@suse.de
- Michael forgot to tell me a tiny little detail
when he assured me rpm would handle prelink
* Wed Aug 17 2005 coolo@suse.de
- some update to the config
* Thu Jun 23 2005 coolo@suse.de
- update to latest snapshot
* Fri May 13 2005 coolo@suse.de
- fix build with gcc4
* Mon Dec 13 2004 coolo@suse.de
- update to later version
* Tue Aug 17 2004 coolo@suse.de
- update to latest version
* Fri Apr 23 2004 coolo@suse.de
- fixing sysconfig path
* Thu Feb 26 2004 coolo@suse.de
- update to latest version and updated the patches to build
on all architectures but IA64 (#35098)
* Sat Jan 10 2004 adrian@suse.de
- build as user
* Thu Sep 18 2003 kukuk@suse.de
- Add missing PreRequires
* Mon Sep 15 2003 coolo@suse.de
- correctly handle biarch platforms
- disable quick1.sh, it just fails too often randomly
* Thu Sep 11 2003 coolo@suse.de
- trying to get prelink.conf in shape (#30286)
* Thu Jul 31 2003 coolo@suse.de
- skip prelink on battery (#27481)
* Tue Jul 29 2003 coolo@suse.de
- update to 20030701
- fix test suite
- add lib64 to prelink.conf
* Mon Jun 16 2003 coolo@suse.de
- new location for rpm database
* Thu Jun 05 2003 coolo@suse.de
- update to 20030522
- disable some tests that only break and do not
test anything
- run the expensive tests when the normal worked
- make the dry run output warnings and errors too
(for this some checks are commented out - currently
for i386 only)
* Fri May 16 2003 coolo@suse.de
- update to 20030515
* Tue Feb 25 2003 coolo@suse.de
- fixing incremental calculation
* Tue Feb 11 2003 coolo@suse.de
- changed the wording of the prelink SuSEconfig output
* Mon Jan 27 2003 adrian@suse.de
- add /opt/kde3/bin/kxkb to blacklist
* Sat Jan 25 2003 adrian@suse.de
- add SuSEconfig.prelink script and /etc/sysconfig/prelink
(default is off)
* Wed Jan 08 2003 coolo@suse.de
- update to 20021213
* Wed Dec 18 2002 coolo@suse.de
- build the testsuite, so we know about the problems on the
platforms (so far ia64 and alpha seem to have such problems)
- adding a patch that helps with some test cases on alpha, but
may not fix all - needs an expert for the alpha platform
* Mon Dec 16 2002 coolo@suse.de
- fixing diff
* Thu Dec 12 2002 coolo@suse.de
- adding more to the black list
- removing plugin directories again as dlopen doesn't use
prelink yet
* Fri Dec 06 2002 coolo@suse.de
- extend the config file to contain a black list (for binary
only applications) and plugin paths
* Wed Dec 04 2002 coolo@suse.de
- fixing quite some bugs to make it work
* Tue Oct 22 2002 sbrabec@suse.cz
- Added Gnome2, Mozilla and Open Office to prelink.conf.
- Changed order of paths (libraries first) and changed -h -> -l for
/usr/lib.
* Tue Oct 15 2002 aj@suse.de
- Update to version from 20021002 for glibc 2.3.
* Mon Mar 04 2002 aj@suse.de
- Fix off by one error that made prelinking completly unusable.
Add more paths to default config.
* Tue Oct 16 2001 aj@suse.de
- Update to new version with support for additional architectures.
* Mon Sep 10 2001 aj@suse.de
- Update to new version: fixes -R mode aborts, initial support
for alpha, sparc.
* Mon Sep 03 2001 aj@suse.de
- Update to new version with bugfixes (especially for incremental
prelinking).
- Add more entries to prelink.conf
* Thu Aug 30 2001 aj@suse.de
- Update to fixed version, remove unneeded ld.so patch.
* Wed Aug 29 2001 aj@suse.de
- Update to newer version.
* Tue Aug 28 2001 aj@suse.de
- Package as RPM.