[packages/libelf: 1/2] - resurrected from old PLD package

qboosh qboosh at pld-linux.org
Tue Mar 26 17:25:23 CET 2013


commit f24f051a190f99e3f516cb9c94fc96114b09c3a4
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue Mar 26 16:56:23 2013 +0100

    - resurrected from old PLD package

 libelf-DESTDIR.patch | 114 ++++++++++++++++++++++++++++++++++++
 libelf-hash.patch    |  20 +++++++
 libelf-symver.patch  |  30 ++++++++++
 libelf.spec          | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 323 insertions(+)
---
diff --git a/libelf.spec b/libelf.spec
new file mode 100644
index 0000000..a2c838b
--- /dev/null
+++ b/libelf.spec
@@ -0,0 +1,159 @@
+Summary:	ELF object file access library
+Summary(de):	Objektdateizugriffs-Library ELF
+Summary(pt_BR):	Biblioteca para acesso a arquivos objeto ELF
+Summary(es):	Biblioteca para acceso a archivos objeto ELF
+Summary(fr):	Bibliothčque de gestion de fichiers ELF
+Summary(pl):	Biblioteka dostępu do plików ELF
+Summary(pt_BR):	Biblioteca para acesso a arquivos objeto ELF
+Summary(ru):	âÉÂĚÉĎÔĹËÁ ÄĎÓÔŐĐÁ Ë ĎÂßĹËÔÎŮÍ ĆÁĘĚÁÍ × ĆĎŇÍÁÔĹ ELF
+Summary(tr):	ELF ara kod eriţim kitaplýđý
+Summary(uk):	âŚÂĚŚĎÔĹËÁ ÄĎÓÔŐĐŐ ÄĎ ĎÂ'¤ËÔÎÉČ ĆÁĘĚŚ× ĆĎŇÍÁÔŐ ELF
+Name:		libelf
+Version:	0.8.2
+Release:	4
+License:	LGPL
+Group:		Libraries
+Source0:	http://www.stud.uni-hannover.de/~michael/software/%{name}-%{version}.tar.gz
+Patch0:		%{name}-DESTDIR.patch
+Patch1:		%{name}-hash.patch
+Patch2:		%{name}-symver.patch
+URL:		http://www.stud.uni-hannover.de/~michael/software/
+BuildRequires:	autoconf
+BuildRequires:	automake
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Obsoletes:	libelf0
+
+%description
+The libelf package contains a library for accessing ELF object files.
+Libelf allows you to access the internals of the ELF object file
+format, so you can see the different sections of an ELF file.
+
+%description -l de
+Diese Library gibt Ihnen Zugang zum Inneren des ELF-Objekt-
+Dateiformats. Sie können damit in den verschiedenen Teilen einer
+ELF-Datei umherstochern, die Symbole überprüfen und ähnliches.
+
+%description -l es
+Esta biblioteca ofrece acceso a datos internos del formato de archivo
+objeto ELF. Permite visualizar varias secciones diferentes de un
+archivo ELF, observar los símbolos, etc.
+
+%description -l fr
+La bibliothčque libelf permet de manipuler des fichiers ELF (format de
+programmes exécutables communs ŕ plusieurs Unix dont Linux) et leurs
+différentes sections.
+
+%description -l pl
+Biblioteka elf umożliwia dostęp do struktury wewnętrznej plików w
+formacie ELF. Udostępnia ona funkcje do przeglądania poszczególnych
+części ELF-a, a także sprawdzanie symboli itp.
+
+%description -l pt_BR
+Esta biblioteca fornece acesso a dados internos do formato de arquivo
+objeto ELF. Ele permite visualizar várias seçőes diferentes de um
+arquivo ELF, observar os símbolos, etc.
+
+%description -l uk
+ăŃ ÂŚÂĚŚĎÔĹËÁ ÎÁÄÁ¤ ÄĎÓÔŐĐ ÄĎ ×ÎŐÔŇŚŰÎŘϧ ÓÔŇŐËÔŐŇÉ ĎÂ'¤ËÔÎÉČ ĆÁĘĚŚ×
+ĆĎŇÍÁÔŐ ELF. ÷ĎÎÁ ÄĎÚ×ĎĚѤ ×É×ŢÁÔÉ ŇŚÚÎŚ ÓĹËĂŚ§ ELF-ĆÁĘĚŐ, ĐĹŇĹ׌ŇŃÔÉ
+ÓÉÍ×ĎĚÉ Ś Ô.Đ.
+
+%description -l ru
+üÔÁ ÂÉÂĚÉĎÔĹËÁ ĐŇĹÄĎÓÔÁ×ĚŃĹÔ ÄĎÓÔŐĐ Ë ×ÎŐÔŇĹÎÎĎÓÔŃÍ ĎÂßĹËÔÎŮČ ĆÁĘĚĎ× ×
+ĆĎŇÍÁÔĹ ELF. ďÎÁ ĐĎÚ×ĎĚŃĹÔ ÉÚŐŢÁÔŘ ŇÁÚĚÉŢÎŮĹ ÓĹËĂÉÉ ELF-ĆÁĘĚÁ,
+ĐŇĎ×ĹŇŃÔŘ ÓÉÍ×ĎĚŮ É Ô.Ä.
+
+%description -l tr
+Bu kitaplýk, ELF ara kod dosyasý içeriđine eriţimi sađlar. ELF
+dosyalarýnýn çeţitli yerleri ile oynama, sembolleri kontrol etme gibi
+olanaklar sunar.
+
+%description -l uk
+ăŃ ÂŚÂĚŚĎÔĹËÁ ÎÁÄÁ¤ ÄĎÓÔŐĐ ÄĎ ×ÎŐÔŇŚŰÎŘϧ ÓÔŇŐËÔŐŇÉ ĎÂ'¤ËÔÎÉČ ĆÁĘĚŚ×
+ĆĎŇÍÁÔŐ ELF. ÷ĎÎÁ ÄĎÚ×ĎĚѤ ×É×ŢÁÔÉ ŇŚÚÎŚ ÓĹËĂŚ§ ELF-ĆÁĘĚŐ, ĐĹŇĹ׌ŇŃÔÉ
+ÓÉÍ×ĎĚÉ Ś Ô.Đ.
+
+%package devel
+Summary:	Development files for libelf
+Summary(pl):	Pliki dla programistów libelf
+Summary(ru):	ćÁĘĚŮ ÄĚŃ ŇÁÚŇÁÂĎÔËÉ Ó ÉÓĐĎĚŘÚĎ×ÁÎÉĹÍ ÂÉÂĚÉĎÔĹËÉ libelf
+Summary(uk):	ćÁĘĚÉ ÄĚŃ ŇĎÚŇĎÂËÉ Ú ×ÉËĎŇÉÓÔÁÎÎŃÍ ÂŚÂĚŚĎÔĹËÉ libelf
+Group:		Development/Libraries
+Requires:	%{name} = %{version}
+Obsoletes:	libelf0-devel
+
+%description devel
+Development files for libelf.
+
+%description devel -l pl
+Pliki dla programistów tworzących programy używające libelf.
+
+%description devel -l ru
+üÔĎÔ ĐÁËĹÔ ÓĎÄĹŇÖÉÔ ĆÁĘĚŮ, ÎĹĎÂČĎÄÉÍŮĹ ÄĚŃ ŇÁÚŇÁÂĎÔËÉ ĐŇĎÇŇÁÍÍ Ó
+ÉÓĐĎĚŘÚĎ×ÁÎÉĹÍ ÂÉÂĚÉĎÔĹËÉ libelf.
+
+%description devel -l uk
+ăĹĘ ĐÁËĹÔ ÍŚÓÔÉÔŘ ĆÁĘĚÉ, ÎĹĎÂČŚÄÎŚ ÄĚŃ ŇĎÚŇĎÂËÉ ĐŇĎÇŇÁÍ Ú
+×ÉËĎŇÉÓÔÁÎÎŃÍ ÂŚÂĚŚĎÔĹËÉ libelf.
+
+%package static
+Summary:	Static libelf library
+Summary(pl):	Statyczna biblioteka libelf
+Summary(ru):	óÔÁÔÉŢĹÓËÉĹ ÂÉÂĚÉĎÔĹËÉ ÄĚŃ ŇÁÚŇÁÂĎÔËÉ Ó ÉÓĐĎĚŘÚĎ×ÁÎÉĹÍ libelf
+Summary(uk):	óÔÁÔÉŢÎŚ ÂŚÂĚŚĎÔĹËÉ ÄĚŃ ŇĎÚŇĎÂËÉ Ú ×ÉËĎŇÉÓÔÁÎÎŃÍ libelf
+Group:		Development/Libraries
+Requires:	%{name}-devel = %{version}
+
+%description static
+Static libelf library.
+
+%description static -l pl
+Statyczna biblioteka libelf.
+
+%description static -l ru
+üÔĎÔ ĐÁËĹÔ ÓĎÄĹŇÖÉÔ ÓÔÁÔÉŢĹÓËÉĹ ÂÉÂĚÉĎÔĹËÉ ÄĚŃ ŇÁÚŇÁÂĎÔËÉ ĐŇĎÇŇÁÍÍ.
+
+%description static -l uk
+ăĹĘ ĐÁËĹÔ ÍŚÓÔÉÔŘ ÓÔÁÔÉŢÎŚ ÂŚÂŚĚŚĎÔĹËÉ ÄĚŃ ŇĎÚŇĎÂËÉ ĐŇĎÇŇÁÍ.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+
+%build
+install -m755 /usr/share/automake/config.{sub,guess} .
+%{__aclocal}
+%{__autoconf}
+%configure \
+	--enable-shared
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} install \
+	DESTDIR=$RPM_BUILD_ROOT
+
+%find_lang %{name}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/lib*.so.*.*
+
+%files devel
+%defattr(644,root,root,755)
+%doc README
+%attr(755,root,root) %{_libdir}/lib*.so
+%{_includedir}/libelf
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libelf.a
diff --git a/libelf-DESTDIR.patch b/libelf-DESTDIR.patch
new file mode 100644
index 0000000..bc929b5
--- /dev/null
+++ b/libelf-DESTDIR.patch
@@ -0,0 +1,114 @@
+--- libelf-0.8.2/lib/Makefile.in.orig	Sat Oct 13 23:35:22 2001
++++ libelf-0.8.2/lib/Makefile.in	Fri Jul 26 01:16:42 2002
+@@ -21,7 +21,6 @@
+ exec_prefix = @exec_prefix@
+ libdir = @libdir@
+ includedir = @includedir@
+-installdirs = $(libdir) $(includedir) $(includedir)/libelf
+ 
+ CC = @CC@
+ LD = @LD@
+@@ -164,20 +163,18 @@
+ 	@$(RM) -r $(picdir)
+ 	mkdir $(picdir)
+ 
+-install: all installdirs install-data \
++install: all install-data \
+ 	install-shared-$(DO_SHLIB) install-compat-$(DO_COMPAT)
+ 
+-installdirs: $(top_srcdir)/mkinstalldirs
+-	$(SHELL) $(top_srcdir)/mkinstalldirs $(installdirs)
+-
+ install-data:
+-	$(INSTALL_DATA) libelf.a $(libdir)
++	$(INSTALL) -d $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)/libelf
++	$(INSTALL_DATA) libelf.a $(DESTDIR)$(libdir)
+ 	-cd $(libdir) && $(RANLIB) libelf.a
+ 	files="$(HDRS) $(AUXHDRS) elf_repl.h"; for file in $$files; do \
+ 	  if test -r $$file; then \
+-	    $(INSTALL_DATA) $$file $(includedir)/libelf; \
++	    $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/libelf; \
+ 	  else \
+-	    $(INSTALL_DATA) $(srcdir)/$$file $(includedir)/libelf; \
++	    $(INSTALL_DATA) $(srcdir)/$$file $(DESTDIR)$(includedir)/libelf; \
+ 	  fi; \
+ 	done
+ 
+@@ -185,31 +182,33 @@
+ 	uninstall-shared-$(DO_SHLIB) uninstall-compat-$(DO_COMPAT)
+ 
+ uninstall-data:
+-	$(RM) $(libdir)/libelf.a
+-	$(RM) -r $(includedir)/libelf
++	$(RM) $(DESTDIR)$(libdir)/libelf.a
++	$(RM) -r $(DESTDIR)$(includedir)/libelf
+ 
+ install-shared-yes: install-shared
+ install-shared-no:
+ install-shared: $(SHLIB)
+-	$(INSTALL_SHLIB) $(SHLIB) $(libdir)
++	$(INSTALL) -d $(DESTDIR)$(libdir)
++	$(INSTALL_SHLIB) $(SHLIB) $(DESTDIR)$(libdir)
+ 	if test "$(SONAME)" = "$(SHLIB)"; then true; else \
+-	  cd $(libdir) && $(RM) $(SONAME) && $(LN_S) $(SHLIB) $(SONAME); \
++	  cd $(DESTDIR)$(libdir) && $(RM) $(SONAME) && $(LN_S) $(SHLIB) $(SONAME); \
+ 	fi
+ 	if test "$(SHLINK)" = "$(SHLIB)"; then true; else \
+-	  cd $(libdir) && $(RM) $(SHLINK) && $(LN_S) $(SHLIB) $(SHLINK); \
++	  cd $(DESTDIR)$(libdir) && $(RM) $(SHLINK) && $(LN_S) $(SHLIB) $(SHLINK); \
+ 	fi
+ 
+ uninstall-shared-yes: uninstall-shared
+ uninstall-shared-no:
+ uninstall-shared:
+-	cd $(libdir) && $(RM) $(SHLIB) $(SONAME) $(SHLINK)
++	cd $(DESTDIR)$(libdir) && $(RM) $(SHLIB) $(SONAME) $(SHLINK)
+ 
+ install-compat-yes: install-compat
+ install-compat-no:
+ install-compat:
++	$(INSTALL) -d $(DESTDIR)$(includedir)
+ 	files="$(HDRS)"; for file in $$files; do \
+-	  if test -f $(includedir)/$$file; then true; else \
+-	    echo "#include <libelf/$$file>" > $(includedir)/$$file; \
++	  if test -f $(DESTDIR)$(includedir)/$$file; then true; else \
++	    echo "#include <libelf/$$file>" > $(DESTDIR)$(includedir)/$$file; \
+ 	  fi; \
+ 	done
+ 
+@@ -217,8 +216,8 @@
+ uninstall-compat-no:
+ uninstall-compat:
+ 	files="$(HDRS)"; for file in $$files; do \
+-	  if grep "^#include <libelf/$$file>$" $(includedir)/$$file >/dev/null 2>&1; then \
+-	    $(RM) $(includedir)/$$file; \
++	  if grep "^#include <libelf/$$file>$" $(DESTDIR)$(includedir)/$$file >/dev/null 2>&1; then \
++	    $(RM) $(DESTDIR)$(includedir)/$$file; \
+ 	  else true; fi; \
+ 	done
+ 
+--- libelf-0.8.2/po/Makefile.in~	Fri Jul 26 01:29:01 2002
++++ libelf-0.8.2/po/Makefile.in	Fri Jul 26 01:27:42 2002
+@@ -91,18 +91,18 @@
+ 	catalogs="$(CATALOGS)"; for cat in $$catalogs; do \
+ 	  lang=`echo $$cat | sed 's,$(CATOBJEXT)$$,,'`; \
+ 	  dir=$(localedir)/$$lang/LC_MESSAGES; \
+-	  $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
++	  $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$$dir; \
+ 	  if test -r $$cat; then \
+-	    $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
++	    $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT); \
+ 	  else \
+-	    $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
++	    $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT); \
+ 	  fi; \
+ 	done
+ 
+ uninstall:
+ 	catalogs="$(CATALOGS)"; for cat in $$catalogs; do \
+ 	  lang=`echo $$cat | sed 's,$(CATOBJEXT)$$,,'`; \
+-	  $(RM) $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
++	  $(RM) $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ 	done
+ 
+ mostlyclean:
diff --git a/libelf-hash.patch b/libelf-hash.patch
new file mode 100644
index 0000000..7fcf7f3
--- /dev/null
+++ b/libelf-hash.patch
@@ -0,0 +1,20 @@
+2002-06-14  Jakub Jelinek  <jakub at redhat.com>
+
+	* update.c (_elf64_layout): Don't overwrite sh_entsize
+	unconditionally for ELF64 - some platforms use
+	64 bit DT_HASH entries.
+
+--- libelf-0.7.0/lib/update.c.jj	Fri Jun 12 15:42:39 1998
++++ libelf-0.7.0/lib/update.c	Fri Jun 14 10:22:19 2002
+@@ -317,7 +317,10 @@ _elf64_layout(Elf *elf, unsigned *flag) 
+ 
+ 	entsize = scn_entsize(elf, version, shdr->sh_type);
+ 	if (entsize > 1) {
+-	    rewrite(shdr->sh_entsize, entsize, scn->s_shdr_flags);
++	    /* Some architectures use 64-bit hash entries.  */
++	    if (shdr->sh_type != SHT_HASH
++		|| shdr->sh_entsize != _fsize(elf->e_class, version, ELF_T_ADDR))
++		rewrite(shdr->sh_entsize, entsize, scn->s_shdr_flags);
+ 	}
+ 
+ 	if (layout) {
diff --git a/libelf-symver.patch b/libelf-symver.patch
new file mode 100644
index 0000000..09f01ce
--- /dev/null
+++ b/libelf-symver.patch
@@ -0,0 +1,30 @@
+2002-08-26  Jakub Jelinek  <jakub at redhat.com>
+
+	* lib/verdef.h (xlt_verdef): Don't crash if calculating size of
+	section which hasn't been loaded yet.
+	* lib/verneed.h (xlt_verneed): Likewise.
+
+--- libelf-0.8.2/lib/verdef.h.jj	2001-10-07 22:03:02.000000000 +0200
++++ libelf-0.8.2/lib/verdef.h	2002-08-26 19:04:54.000000000 +0200
+@@ -138,6 +138,9 @@ xlt_verdef(unsigned char *dst, const uns
+     if (n < sizeof(verdef_stype)) {
+ 	return 0;
+     }
++    if (dst == NULL && src == NULL) {
++	return n;
++    }
+     soff = doff = 0;
+     for (;;) {
+ 	const verdef_stype *svd;
+--- libelf-0.8.2/lib/verneed.h.jj	2001-10-07 22:03:02.000000000 +0200
++++ libelf-0.8.2/lib/verneed.h	2002-08-26 19:05:18.000000000 +0200
+@@ -142,6 +142,9 @@ xlt_verneed(unsigned char *dst, const un
+     if (n < sizeof(verneed_stype)) {
+ 	return 0;
+     }
++    if (dst == NULL && src == NULL) {
++	return n;
++    }
+     soff = doff = 0;
+     for (;;) {
+ 	const verneed_stype *svn;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libelf.git/commitdiff/2a88245a78a6983fda2ea15ffb1d0dd014baac63



More information about the pld-cvs-commit mailing list