summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/fakeroot
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/fakeroot')
-rw-r--r--meta/recipes-devtools/fakeroot/fakeroot-1.14.4/absolutepaths.patch47
-rw-r--r--meta/recipes-devtools/fakeroot/fakeroot_1.14.4.bb33
2 files changed, 80 insertions, 0 deletions
diff --git a/meta/recipes-devtools/fakeroot/fakeroot-1.14.4/absolutepaths.patch b/meta/recipes-devtools/fakeroot/fakeroot-1.14.4/absolutepaths.patch
new file mode 100644
index 000000000..ae18e8a28
--- /dev/null
+++ b/meta/recipes-devtools/fakeroot/fakeroot-1.14.4/absolutepaths.patch
@@ -0,0 +1,47 @@
+Image creation runs under a fakeroot context and calls a script which refers
+to the build systems's python. This loads but can find a libpython from staging
+if these are incompatible, anything can break. These scripts should *not* be
+changing LD_LIBRARY_PATH, just adding an LD_PRELOAD with an absolute path. The
+dyanmic linker can figure out anything else with rpaths.
+
+RP - 23/1/10
+
+Index: fakeroot-1.9.4/configure.ac
+===================================================================
+--- fakeroot-1.9.4.orig/configure.ac 2010-01-23 22:34:39.000000000 +0000
++++ fakeroot-1.9.4/configure.ac 2010-01-23 22:35:14.000000000 +0000
+@@ -414,6 +414,8 @@
+ ;;
+ esac
+
++LDPRELOADABS=1
++
+ AC_DEFINE_UNQUOTED([LIBCPATH], "$libcpath", [path to libc shared object])
+ AC_SUBST(DLSUFFIX)
+ AC_SUBST(LDLIBPATHVAR)
+Index: fakeroot-1.9.4/scripts/fakeroot.in
+===================================================================
+--- fakeroot-1.9.4.orig/scripts/fakeroot.in 2010-01-23 22:34:53.000000000 +0000
++++ fakeroot-1.9.4/scripts/fakeroot.in 2010-01-23 22:37:17.000000000 +0000
+@@ -135,7 +135,7 @@
+ if [ "$WAITINTRAP" -eq 0 ]; then
+ trap "kill -s @signal@ $PID" EXIT INT
+ else
+- trap 'FAKEROOTKEY=$FAKEROOTKEY LD_LIBRARY_PATH="$PATHS" LD_PRELOAD="$LIB" /bin/ls -l / >/dev/null 2>&1; while kill -s @signal@ $PID 2>/dev/null; do sleep 0.1; done' EXIT INT
++ trap 'FAKEROOTKEY=$FAKEROOTKEY LD_PRELOAD="$LIB" /bin/ls -l / >/dev/null 2>&1; while kill -s @signal@ $PID 2>/dev/null; do sleep 0.1; done' EXIT INT
+ fi
+
+ if test -z "$FAKEROOTKEY" || test -z "$PID"; then
+@@ -158,10 +158,10 @@
+ export FAKEROOT_FD_BASE
+
+ if test -z "$*"; then
+- FAKEROOTKEY=$FAKEROOTKEY @LDLIBPATHVAR@="$PATHS" @LDEXTRAVAR@ @LDPRELOADVAR@="$LIB" ${SHELL:-/bin/sh}
++ FAKEROOTKEY=$FAKEROOTKEY @LDEXTRAVAR@ @LDPRELOADVAR@="$LIB" ${SHELL:-/bin/sh}
+ RESULT=$?
+ else
+- FAKEROOTKEY=$FAKEROOTKEY @LDLIBPATHVAR@="$PATHS" @LDEXTRAVAR@ @LDPRELOADVAR@="$LIB" "$@"
++ FAKEROOTKEY=$FAKEROOTKEY @LDEXTRAVAR@ @LDPRELOADVAR@="$LIB" "$@"
+ RESULT=$?
+ fi
+
diff --git a/meta/recipes-devtools/fakeroot/fakeroot_1.14.4.bb b/meta/recipes-devtools/fakeroot/fakeroot_1.14.4.bb
new file mode 100644
index 000000000..4edeccfe6
--- /dev/null
+++ b/meta/recipes-devtools/fakeroot/fakeroot_1.14.4.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Provides a fake \"root environment\" by means of LD_PRELOAD and SYSV IPC or TCP trickery"
+HOMEPAGE = "http://fakeroot.alioth.debian.org/"
+SECTION = "base"
+LICENSE = "GPLv2"
+# fakeroot needs getopt which is provided by the util-linux package
+RDEPENDS = "util-linux"
+RDEPENDS_virtclass-native = "util-linux-native"
+PR = "r0"
+PROVIDES += "virtual/fakeroot"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/f/fakeroot/fakeroot_${PV}.orig.tar.bz2 \
+ file://absolutepaths.patch"
+
+inherit autotools
+
+do_configure_prepend() {
+ # fakeroot's own bootstrap includes other autoreconf stuff we don't need here
+ # so manually create the aux directory
+ mkdir -p ${S}/build-aux
+}
+
+do_install_append() {
+ install -d ${D}${STAGING_INCDIR}/fakeroot/
+ install -m 644 *.h ${D}${STAGING_INCDIR}/fakeroot
+}
+
+# Compatability for the rare systems not using or having SYSV
+python () {
+ if bb.data.inherits_class("native", d) and bb.data.getVar('HOST_NONSYSV', d, True) and bb.data.getVar('HOST_NONSYSV', d, True) != '0':
+ bb.data.setVar('EXTRA_OECONF', ' --with-ipc=tcp ', d)
+}
+
+BBCLASSEXTEND = "native"