diff options
-rw-r--r-- | libre/fakeroot/PKGBUILD | 76 | ||||
-rw-r--r-- | libre/fakeroot/fakeroot.install | 14 | ||||
-rw-r--r-- | libre/fakeroot/silence-dlerror.patch | 17 |
3 files changed, 107 insertions, 0 deletions
diff --git a/libre/fakeroot/PKGBUILD b/libre/fakeroot/PKGBUILD new file mode 100644 index 000000000..f834dafe3 --- /dev/null +++ b/libre/fakeroot/PKGBUILD @@ -0,0 +1,76 @@ +# Maintainer: David P. <megver83@parabola.nu> +# Maintainer (Arch): Bartłomiej Piotrowski <bpiotrowski@archlinux.org> +# Contributor (Arch): Allan McRae <allan@archlinux.org> +# Contributor (Arch): Jochem Kossen <j.kossen@home.nl> + +# NOTE: if building for armv7h, you may need to pass -N to libremakepkg, +# otherwise check() could fail + +pkgname=fakeroot +pkgver=1.24 +pkgrel=2 +pkgrel+=.parabola1 +pkgdesc='Tool for simulating superuser privileges' +arch=(x86_64) +arch+=(i686 armv7h) +license=(GPL) +url='https://packages.debian.org/fakeroot' +install=fakeroot.install +depends=(glibc filesystem sed util-linux sh) +makedepends=(po4a) +checkdepends=(sharutils) +source=("https://deb.debian.org/debian/pool/main/f/$pkgname/${pkgname}_${pkgver}.orig.tar.gz" + 'silence-dlerror.patch') +sha256sums=('2e045b3160370b8ab4d44d1f8d267e5d1d555f1bb522d650e7167b09477266ed' + '347f6496c93ed0d91dcb554db92602b50520a16308e3b8bc33822bd69966267b') + +prepare() { + cd $pkgname-$pkgver + patch -p1 -i "$srcdir"/silence-dlerror.patch + + ./bootstrap + + # fix chmod_dev, mknod and touchinstall tests + sed -e 's/\^b/\^-/' \ + -e 's/\<root\>/$USER/' \ + -i test/t.{chmod_dev,mknod,touchinstall} +} + +build() { + cd $pkgname-$pkgver + + # SYSV IPC makes fakeroot fail with ARM emulation + # https://labs.parabola.nu/issues/2775 + # https://archlinuxarm.org/forum/viewtopic.php?p=63781 + if [ $CARCH = armv7h ]; then + ipc=tcp + else + ipc=sysv + fi + + ./configure --prefix=/usr \ + --libdir=/usr/lib/libfakeroot \ + --disable-static \ + --with-ipc=$ipc + + make + + cd doc + po4a -k 0 --rm-backups --variable 'srcdir=../doc/' po4a/po4a.cfg +} + +check() { + cd $pkgname-$pkgver + make check +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + + install -dm755 "$pkgdir/etc/ld.so.conf.d/" + echo '/usr/lib/libfakeroot' > "$pkgdir/etc/ld.so.conf.d/fakeroot.conf" + + # install README for sysv/tcp usage + install -Dm644 README "$pkgdir/usr/share/doc/$pkgname/README" +} diff --git a/libre/fakeroot/fakeroot.install b/libre/fakeroot/fakeroot.install new file mode 100644 index 000000000..caab92243 --- /dev/null +++ b/libre/fakeroot/fakeroot.install @@ -0,0 +1,14 @@ +post_install() { + usr/bin/ldconfig -r . +} + +post_upgrade() { + if [ "$(vercmp $2 1.14.4-2)" -lt 0 ]; then + sed -i -e '/\/usr\/lib\/libfakeroot/d' etc/ld.so.conf + fi + usr/bin/ldconfig -r . +} + +pre_remove() { + usr/bin/ldconfig -r . +} diff --git a/libre/fakeroot/silence-dlerror.patch b/libre/fakeroot/silence-dlerror.patch new file mode 100644 index 000000000..a4472d8f7 --- /dev/null +++ b/libre/fakeroot/silence-dlerror.patch @@ -0,0 +1,17 @@ +diff --git a/libfakeroot.c b/libfakeroot.c +index f867758..7ef6e47 100644 +--- a/libfakeroot.c ++++ b/libfakeroot.c +@@ -256,10 +256,12 @@ void load_library_symbols(void){ + /* clear dlerror() just in case dlsym() legitimately returns NULL */ + msg = dlerror(); + *(next_wrap[i].doit)=dlsym(get_libc(), next_wrap[i].name); ++#ifdef LIBFAKEROOT_DEBUGGING + if ( (msg = dlerror()) != NULL){ + fprintf (stderr, "dlsym(%s): %s\n", next_wrap[i].name, msg); + /* abort ();*/ + } ++#endif /* LIBFAKEROOT_DEBUGGING */ + } + } + |