create_wrapper was previously abused to invoke the Perl interpretter directly
instead of relying on #! parsing, which is read into a 128 byte buffer so breaks
with deep build directories.

However we already install a "nativeperl" binary into the native sysroot, so
use sed to change the #! line to /usr/bin/env nativeperl.

Signed-off-by: Ross Burton <[email protected]>
---
 meta/recipes-devtools/dpkg/dpkg.inc |   10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/meta/recipes-devtools/dpkg/dpkg.inc 
b/meta/recipes-devtools/dpkg/dpkg.inc
index 28c4f89..b9d4da1 100644
--- a/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/meta/recipes-devtools/dpkg/dpkg.inc
@@ -45,21 +45,13 @@ do_install_append () {
        if [ "${PN}" = "dpkg-native" ]; then
                # update-alternatives doesn't have an offline mode
                rm ${D}${bindir}/update-alternatives
+               sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env 
nativeperl|' ${D}${bindir}/dpkg-*
        else
                mv ${D}${bindir}/update-alternatives ${D}${sbindir}
                sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env 
perl|' ${D}${bindir}/dpkg-*
        fi
 }
 
-# Create a wrapper for the perl script to avoid the "bad interpreter"
-# error when the tmpdir is longer than 150.
-do_install_append_class-native () {
-       tmp=`find ${D}${bindir} -type f -exec grep -m 1 -l 
'#!/.*/perl-native/perl' {} \;`
-       for i in $tmp; do
-               create_wrapper $i ${STAGING_BINDIR_NATIVE}/perl-native/perl
-       done
-}
-
 pkg_postinst_${PN} () {
 #!/bin/sh
 if [ "x$D" != "x" ] && [ -f $D/var/lib/dpkg/status ]; then
-- 
1.7.10.4

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to