summaryrefslogtreecommitdiff
path: root/libre/fakeroot-tcp
diff options
context:
space:
mode:
Diffstat (limited to 'libre/fakeroot-tcp')
-rw-r--r--libre/fakeroot-tcp/PKGBUILD66
-rw-r--r--libre/fakeroot-tcp/fakeroot.install14
-rw-r--r--libre/fakeroot-tcp/silence-dlerror.patch17
3 files changed, 97 insertions, 0 deletions
diff --git a/libre/fakeroot-tcp/PKGBUILD b/libre/fakeroot-tcp/PKGBUILD
new file mode 100644
index 000000000..2d5d26d05
--- /dev/null
+++ b/libre/fakeroot-tcp/PKGBUILD
@@ -0,0 +1,66 @@
+# 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>
+
+pkgname=fakeroot-tcp
+_pkgname=fakeroot
+pkgver=1.24
+pkgrel=2
+pkgrel+=.parabola1
+pkgdesc='Tool for simulating superuser privileges, with TCP IPC'
+arch=(x86_64)
+arch+=(i686 armv7h)
+license=(GPL)
+url='https://tracker.debian.org/pkg/fakeroot'
+install=fakeroot.install
+depends=(glibc filesystem sed util-linux sh)
+makedepends=(po4a)
+provides=(${_pkgname}=${pkgver}-${pkgrel})
+conflicts=(${_pkgname})
+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
+}
+
+build() {
+ cd $_pkgname-$pkgver
+
+ # librechroot ARM builds fail with sysv IPC
+ # https://labs.parabola.nu/issues/2775
+ # https://archlinuxarm.org/forum/viewtopic.php?p=63781
+ local ipc
+ 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
+}
+
+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-tcp/fakeroot.install b/libre/fakeroot-tcp/fakeroot.install
new file mode 100644
index 000000000..caab92243
--- /dev/null
+++ b/libre/fakeroot-tcp/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-tcp/silence-dlerror.patch b/libre/fakeroot-tcp/silence-dlerror.patch
new file mode 100644
index 000000000..a4472d8f7
--- /dev/null
+++ b/libre/fakeroot-tcp/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 */
+ }
+ }
+