-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
app-admin/chrpath: EAPI=7, version bump (0.16)
Closes: https://bugs.gentoo.org/686298 Signed-off-by: Michael Mair-Keimberger <m.mairkeimberger@gmail.com>
- Loading branch information
Showing
4 changed files
with
215 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
DIST chrpath-0.13.tar.gz 125129 BLAKE2B 004db7e3567ceeb700d018e7e32036843413605466c218bf40252927b169775c5a86f81f8ea355f0d141821313d114ec24654ed62d75443e31739118e31bc497 SHA512 9ec2ab2731fb553497996939b421130ae221d478dab8887c184ae91f7d3ae697688e7a30e3bea30cc0cf765f1dc8c7f47d2a1f4369b36079b4033e8d0303d75e | ||
DIST chrpath-0.16.tar.gz 134506 BLAKE2B 7003cc1cb2332ffbe6fe0873c6d30cbc3ea696e041be33b39c3d36ae34a2497b8dd40bb373773c546b8d63cfd8534e796fd7d7cbc99d37fb8751fc960907070f SHA512 aa04d490f78bff20a56fe20539cec10218c0772a668909eda8324ca825f51e8ef92001e95d9c316e79a145a043c9c327ec94d1a82e104ab408ca1021832745aa |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Copyright 1999-2019 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
inherit autotools | ||
|
||
DESCRIPTION="Chrpath can modify the rpath and runpath of ELF executables" | ||
HOMEPAGE="https://directory.fsf.org/wiki/Chrpath" | ||
SRC_URI="https://alioth-archive.debian.org/releases/${PN}/${PN}/${PV}/${P}.tar.gz" | ||
|
||
LICENSE="GPL-2+" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" | ||
IUSE="static-libs" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/${P}-multilib.patch | ||
"${FILESDIR}"/${P}-testsuite-1.patch | ||
) | ||
|
||
src_prepare() { | ||
default | ||
# disable installing redundant docs in the wrong dir | ||
sed -i -e '/doc_DATA/d' Makefile.am || die | ||
# fix for automake-1.13, #467538 | ||
sed -i -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.ac || die | ||
eautoreconf | ||
} | ||
|
||
src_configure() { | ||
econf $(use_enable static-libs static) | ||
} | ||
|
||
src_install() { | ||
default | ||
if ! use static-libs; then | ||
find "${D}" -name "*.la" -delete || die | ||
fi | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
--- chrpath-0.16/Makefile.am 2014-01-12 08:52:21.000000000 +0100 | ||
+++ chrpath-0.16-ng/Makefile.am 2019-05-19 11:23:48.352936406 +0200 | ||
@@ -12,11 +12,18 @@ | ||
fakeroot debian/rules binary | ||
|
||
chrpath_SOURCES = \ | ||
- chrpath.c \ | ||
- killrpath.c \ | ||
main.c \ | ||
- elf.c \ | ||
protos.h | ||
+ | ||
+chrpath_LDADD = $(LDLIBS) | ||
+ | ||
+lib_LTLIBRARIES = libchrpath32.la libchrpath64.la | ||
+libchrpath32_la_SOURCES = chrpath.c killrpath.c elf.c protos.h | ||
+libchrpath32_la_CFLAGS = -DSIZEOF_VOID_P=4 | ||
+libchrpath32_la_LDFLAGS = -avoid-version | ||
+libchrpath64_la_SOURCES = chrpath.c killrpath.c elf.c protos.h | ||
+libchrpath64_la_CFLAGS = -DSIZEOF_VOID_P=8 | ||
+libchrpath64_la_LDFLAGS = -avoid-version | ||
|
||
EXTRA_DIST = $(man_MANS) | ||
|
||
--- chrpath-0.16/configure.ac 2014-01-12 09:01:52.000000000 +0100 | ||
+++ chrpath-0.16-ng/configure.ac 2019-05-19 11:25:07.158665075 +0200 | ||
@@ -16,6 +16,7 @@ | ||
dnl Checks for programs. | ||
AC_PROG_CC | ||
AC_PROG_INSTALL | ||
+AC_PROG_LIBTOOL | ||
|
||
dnl Checks for libraries. | ||
|
||
@@ -26,11 +27,19 @@ | ||
dnl Checks for typedefs, structures, and compiler characteristics. | ||
AC_C_CONST | ||
AC_C_BIGENDIAN | ||
-AC_CHECK_SIZEOF(void *) | ||
|
||
dnl Checks for library functions. | ||
AC_CHECK_FUNCS(getopt_long) | ||
|
||
+dnl See if we need -ldl on this platform for dlopen | ||
+LDLIBS= | ||
+save_LIBS="$LIBS" | ||
+LIBS= | ||
+AC_SEARCH_LIBS([dlopen], [dl]) | ||
+LDLIBS=${LIBS} | ||
+LIBS="${save_LIBS}" | ||
+AC_SUBST([LDLIBS]) | ||
+ | ||
if eval "test x$GCC = xyes"; then | ||
for flag in \ | ||
-W \ | ||
--- chrpath-0.16/main.c 2014-01-14 10:15:59.000000000 +0100 | ||
+++ chrpath-0.16-ng/main.c 2019-05-19 11:29:34.648390032 +0200 | ||
@@ -12,13 +12,19 @@ | ||
# include "config.h" | ||
#endif | ||
|
||
+#include <dlfcn.h> | ||
+#include <elf.h> | ||
+#include <fcntl.h> | ||
#include <stdio.h> | ||
#include <stdlib.h> | ||
+#include <string.h> | ||
#include <unistd.h> | ||
#ifdef HAVE_GETOPT_H | ||
#include <getopt.h> | ||
#endif | ||
-#include "protos.h" | ||
+ | ||
+typedef int (*killrpath_t)(const char *filename); | ||
+typedef int (*chrpath_t)(const char *filename, const char *newpath, int convert); | ||
|
||
#ifdef HAVE_GETOPT_LONG | ||
# define GETOPT_LONG getopt_long | ||
@@ -63,6 +69,30 @@ | ||
printf("\n"); | ||
} | ||
|
||
+static unsigned | ||
+elf_class(const char *filename) | ||
+{ | ||
+ Elf32_Ehdr ehdr; | ||
+ int fd; | ||
+ | ||
+ fd = open(filename, O_RDONLY); | ||
+ if (fd == -1) | ||
+ return 0; | ||
+ if (read(fd, &ehdr, sizeof(ehdr)) != sizeof(ehdr)) | ||
+ { | ||
+ close(fd); | ||
+ return 0; | ||
+ } | ||
+ close(fd); | ||
+ if ((memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0) | ||
+ || (ehdr.e_ident[EI_VERSION] != EV_CURRENT)) | ||
+ { | ||
+ fprintf(stderr, "`%s' probably isn't an ELF file.\n", filename); | ||
+ return 0; | ||
+ } | ||
+ return ehdr.e_ident[EI_CLASS]; | ||
+} | ||
+ | ||
int | ||
main(int argc, char * const argv[]) | ||
{ | ||
@@ -75,6 +105,10 @@ | ||
#ifdef HAVE_GETOPT_LONG | ||
int option_index = 0; | ||
#endif /* HAVE_GETOPT_LONG */ | ||
+ | ||
+ void* dll[2]; | ||
+ killrpath_t killrpath[2]; | ||
+ chrpath_t chrpath[2]; | ||
|
||
if (argc < 2) | ||
{ | ||
@@ -118,15 +152,32 @@ | ||
break; | ||
} | ||
} while (-1 != opt); | ||
+ | ||
+ dll[0] = dlopen("libchrpath32.so", RTLD_LAZY); | ||
+ killrpath[0] = (killrpath_t)dlsym(dll[0], "killrpath"); | ||
+ chrpath[0] = (chrpath_t)dlsym(dll[0], "chrpath"); | ||
+ | ||
+ dll[1] = dlopen("libchrpath64.so", RTLD_LAZY); | ||
+ killrpath[1] = (killrpath_t)dlsym(dll[1], "killrpath"); | ||
+ chrpath[1] = (chrpath_t)dlsym(dll[1], "chrpath"); | ||
|
||
while (optind < argc && (!retval || keep_going)) | ||
{ | ||
+ const char* program = argv[optind++]; | ||
+ unsigned eclass = elf_class(program); | ||
+ if (!eclass) | ||
+ { | ||
+ retval = 1; | ||
+ continue; | ||
+ } | ||
if (remove) | ||
- retval |= killrpath(argv[optind++]); | ||
+ retval |= killrpath[eclass - ELFCLASS32](program); | ||
else | ||
/* list by default, replace if path is set */ | ||
- retval |= chrpath(argv[optind++], newpath, convert); | ||
+ retval |= chrpath[eclass - ELFCLASS32](program, newpath, convert); | ||
} | ||
|
||
+ dlclose(dll[0]); | ||
+ dlclose(dll[1]); | ||
return retval; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
Submitted By: Mario Fetka (geos_one) (mario dot fetka at gmail dot com) | ||
Date: 2010-04-04 | ||
Initial Package Version: 0.16 | ||
Origin: me | ||
Upstream Status: unknown | ||
Description: make the testsuite run with the new mltilib design | ||
|
||
diff -Naur a/chrpath-0.16/testsuite/runtest.sh b/chrpath-0.16/testsuite/runtest.sh | ||
--- a/testsuite/runtest.sh 2010-04-04 09:02:21.859114159 +0000 | ||
+++ b/testsuite/runtest.sh 2010-04-04 09:42:08.762112560 +0000 | ||
@@ -2,6 +2,8 @@ | ||
|
||
set -x | ||
|
||
+export LD_LIBRARY_PATH=$PWD/../.libs:$LD_LIBRARY_PATH | ||
+ | ||
CHRPATH=../chrpath | ||
|
||
retval=0 |