-Summary: A collection of utilities and DSOs to handle compiled objects.
+#
+# Conditional build:
+%bcond_without tests # do not perform tests
+#
+Summary: A collection of utilities and DSOs to handle compiled objects
+Summary(pl): Zestaw narzêdzi i bibliotek do obs³ugi skompilowanych obiektów
Name: elfutils
-Version: 0.76
-Release: 4
-License: GPL
+Version: 0.95
+Release: 2
+License: OSL 1.0 (http://www.opensource.org/licenses/osl.php)
Group: Development/Tools
-#URL: file://home/devel/drepper
+# http://download.fedora.redhat.com/pub/fedora/linux/core/development/i386/SRPMS/
Source0: %{name}-%{version}.tar.gz
-Requires: elfutils-libelf = %{version}-%{release}
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# Source0-md5: dc8e8f6af735e90ec7e6a0ca99851bff
+Patch0: %{name}-pl.po.patch
+Patch1: %{name}-debian-manpages.patch
+Patch2: %{name}-alpha-stat.patch
+#URL: file://home/devel/drepper
+BuildRequires: autoconf >= 2.59
+BuildRequires: automake >= 1:1.7
BuildRequires: gcc >= 3.2
+BuildRequires: gettext-devel
+%ifarch alpha amd64 ia64 ppc64 s390x sparc64
+# PR*FAST{8,16} in <inttypes.h> were broken for 64-bit archs in older versions
+# also needed for nanosecond timestamps on alpha
+BuildRequires: glibc-devel >= 6:2.3.4
+%endif
+BuildRequires: libltdl-devel
+BuildRequires: perl-tools-pod
BuildRequires: sharutils
+Requires: %{name}-libelf = %{version}-%{release}
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _programprefix eu-
+%define _programprefix eu-
%description
Elfutils is a collection of utilities, including ld (a linker), nm
libraries which implement DWARF, ELF, and machine-specific ELF
handling.
+%description -l pl
+Elfutils to zestaw narzêdzi, sk³adaj±cy siê z ld (linkera), nm (do
+listowania symboli z plików obiektów), size (do listowania rozmiarów
+sekcji plików obiektów lub archiwów), strip (do usuwania symboli),
+readline (do ogl±dania surowych struktur plików ELF) oraz elflint (do
+sprawdzania poprawno¶ci plików ELF). Do³±czone s± tak¿e liczne
+biblioteki pomocnicze z zaimplementowan± obs³ug± DWARF, ELF i ELF
+specyficznych dla architektury.
+
%package devel
-Summary: Development libraries to handle compiled objects.
-Group: Development/Tools
+Summary: Development part of libraries to handle compiled objects
+Summary(pl): Czê¶æ programistyczna bibliotek do obs³ugi skompilowanych obiektów
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
Obsoletes: libelf-devel
-Requires: elfutils = %{version}-%{release}
%description devel
-The elfutils-devel package contains the libraries to create
-applications for handling compiled objects. libelf allows you to
-access the internals of the ELF object file format, so you can see the
-different sections of an ELF file. libebl provides some higher-level
-ELF access functionality. libdwarf provides access to the DWARF
-debugging information. libasm provides a programmable assembler
+The elfutils-devel package contains the development part of libraries
+to create applications for handling compiled objects. libelf allows
+you to access the internals of the ELF object file format, so you can
+see the different sections of an ELF file. libebl provides some
+higher-level ELF access functionality. libdwarf provides access to the
+DWARF debugging information. libasm provides a programmable assembler
interface.
+%description devel -l pl
+Pakiet elfutils-devel zawiera czê¶æ programistyczn± bibliotek do
+tworzenia aplikacji obs³uguj±cych skompilowane obiekty. libelf pozwala
+na dostêp do wnêtrzno¶ci formatu pliku obiektowego ELF, co pozwala na
+ogl±danie ró¿nych sekcji pliku ELF. libebl udostêpnia funkcjonalno¶æ
+dostêpu do plików ELF trochê wy¿szego poziomu. libdwarf pozwala na
+dostêp do informacji DWARF s³u¿±cych do odpluskwiania. libasm
+udostêpnia programowalny interfejs asemblera.
+
%package libelf
-Summary: Library to read and write ELF files.
-Group: Development/Tools
-Obsoletes: libelf
+Summary: Library to read and write ELF files
+Summary(pl): Biblioteki do odczytu i zapisu plików ELF
+Group: Libraries
+#Obsoletes: libelf
%description libelf
The elfutils-libelf package provides a DSO which allows reading and
package to read internals of ELF files. The programs of the elfutils
package use it also to generate new ELF files.
+%description libelf -l pl
+Pakiet elfutils-libelf udostêpnia bibliotekê dzielon±, która pozwala
+na wysokopoziomowe czytanie i zapisywanie plików ELF. Inne programy
+wymagaj± tego pakietu, aby odczytywaæ zawarto¶æ plików ELF. Programy z
+pakietu elfutils u¿ywaj± jej tak¿e do generowania nowych plików ELF.
+
+%package static
+Summary: Static libraries to handle compiled objects
+Summary(pl): Statyczne biblioteki do obs³ugi skompilowanych obiektów
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Obsoletes: libelf-static
+
+%description static
+The elfutils-static package contains the static libraries to create
+applications for handling compiled objects. libelf allows you to
+access the internals of the ELF object file format, so you can see the
+different sections of an ELF file. libebl provides some higher-level
+ELF access functionality. libdwarf provides access to the DWARF
+debugging information. libasm provides a programmable assembler
+interface.
+
+%description static -l pl
+Pakiet elfutils-static zawiera statyczne biblioteki do tworzenia
+aplikacji obs³uguj±cych skompilowane obiekty. libelf pozwala na dostêp
+do wnêtrzno¶ci formatu pliku obiektowego ELF, co pozwala na ogl±danie
+ró¿nych sekcji pliku ELF. libebl udostêpnia funkcjonalno¶æ dostêpu do
+plików ELF trochê wy¿szego poziomu. libdwarf pozwala na dostêp do
+informacji DWARF s³u¿±cych do odpluskwiania. libasm udostêpnia
+programowalny interfejs asemblera.
+
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
+# no nanosecond timestamps on sparc64 yet (alpha has them now)
+%patch2 -p1
%build
+%{__gettextize}
%{__aclocal}
%{__autoheader}
%{__automake}
%{__autoconf}
%configure \
- --program-prefix=%{_programprefix} \
- --enable-shared
+ --program-prefix=%{_programprefix} \
+ --enable-shared
+
+# make check depends on test-nlist not stripped
+%{__perl} -pi -e 's/^(LDFLAGS =.*)-s/$1/' tests/Makefile
+
+%{__make}
+%{__make} -C debian/man
+%if %{with tests}
+# $ORIGIN used in RPATH needs /proc to work - workaround it using LD_LIBRARY_PATH;
+# ../libelf is needed also to use proper libelf by ../src/elflint during tests
+LD_LIBRARY_PATH=../libasm:../libdw:../libebl:../libelf \
+%{__make} -C tests check
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d ${RPM_BUILD_ROOT}%{_prefix}
+install -d $RPM_BUILD_ROOT%{_mandir}/man1
-#make check
+# *OBJEXT must be passed to workaround problem with messed gettext,
+# which doesn't like *-po dir names
%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
-
-chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
-chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/elfutils/lib*.so*
+ DESTDIR=$RPM_BUILD_ROOT \
+ MKINSTALLDIRS=$(pwd)/config/mkinstalldirs \
+ CATOBJEXT=.gmo \
+ INSTOBJEXT=.mo
+install debian/man/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
-# XXX Nuke unpackaged files
-{ cd ${RPM_BUILD_ROOT}
- rm -f .%{_bindir}/eu-ld
- rm -f .%{_includedir}/elfutils/libasm.h
- rm -f .%{_includedir}/elfutils/libdw.h
- rm -f .%{_includedir}/elfutils/libdwarf.h
- rm -f .%{_libdir}/libasm-%{version}.so
- rm -f .%{_libdir}/libasm.a
- rm -f .%{_libdir}/libdw-%{version}.so
- rm -f .%{_libdir}/libdw.a
- rm -f .%{_libdir}/libdwarf.a
-}
-
-#%%check
-#make check
+%find_lang libelf
+%find_lang %{name}
%clean
-rm -rf ${RPM_BUILD_ROOT}
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
+rm -rf $RPM_BUILD_ROOT
-%post libelf -p /sbin/ldconfig
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
-%postun libelf -p /sbin/ldconfig
+%post libelf -p /sbin/ldconfig
+%postun libelf -p /sbin/ldconfig
-%files
+%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc README TODO libdwarf/AVAILABLE
-%attr(755,root,root) %{_bindir}/eu-elflint
-#%{_bindir}/eu-ld
-%attr(755,root,root) %{_bindir}/eu-nm
-%attr(755,root,root) %{_bindir}/eu-readelf
-%attr(755,root,root) %{_bindir}/eu-size
-%attr(755,root,root) %{_bindir}/eu-strip
-#%{_libdir}/libasm-%{version}.so
-%{_libdir}/libebl-%{version}.so
-#%{_libdir}/libdw-%{version}.so
-%{_libdir}/libdwarf-%{version}.so
-#%{_libdir}/libasm*.so.*
-%{_libdir}/libebl*.so.*
-#%{_libdir}/libdw*.so.*
-%{_libdir}/libdwarf*.so.*
+%doc AUTHORS COPYING NEWS NOTES README THANKS TODO
+%attr(755,root,root) %{_bindir}/*
+%attr(755,root,root) %{_libdir}/libasm-*.so
+%attr(755,root,root) %{_libdir}/libdw-*.so
%dir %{_libdir}/elfutils
-%{_libdir}/elfutils/lib*.so
+%attr(755,root,root) %{_libdir}/elfutils/lib*.so
+%{_mandir}/man1/*.1*
%files devel
%defattr(644,root,root,755)
-%{_includedir}/dwarf.h
-%{_includedir}/libelf.h
-%{_includedir}/gelf.h
-%{_includedir}/nlist.h
-%dir %{_includedir}/elfutils
-%{_includedir}/elfutils/elf-knowledge.h
-%{_includedir}/elfutils/libebl.h
-#%{_libdir}/libasm.a
+%doc doc/elfutils.sgml
+%attr(755,root,root) %{_libdir}/libasm.so
+%attr(755,root,root) %{_libdir}/libdw.so
+%attr(755,root,root) %{_libdir}/libelf.so
%{_libdir}/libebl.a
-%{_libdir}/libelf.a
-#%{_libdir}/libdw.a
-#%{_libdir}/libasm.so
-%{_libdir}/libebl.so
-%{_libdir}/libelf.so
-#%{_libdir}/libdw.so
-#%{_libdir}/libdwarf.so
-
-%files libelf
+%{_includedir}/*
+
+%files libelf -f libelf.lang
%defattr(644,root,root,755)
-%{_libdir}/libelf-%{version}.so
-%{_libdir}/libelf*.so.*
+%attr(755,root,root) %{_libdir}/libelf-*.so
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libasm.a
+%{_libdir}/libdw.a
+%{_libdir}/libelf.a