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.
openSUSE Build Service is sponsored by