quilt: Fix paths for patch and perl

Currently some shebang lines end up as
    #! /usr/bin/env perl -w
env does not like the argument. Also the current sed to insert env
does not cover the copies ptests use. Fix these issues by:
 - using --with-perl to insert "env"
 - Replacing "-w" in shebang lines with a new "use warning;" line

Remove a EXTRA_OECONF_append_class_target from the native recipe.
Don't overwrite EXTRA_OECONF in native: the values should be correct
for native as well.

--with-patch is used within the gnu patch wrapper only: before this
commit the wrapper contained a (build host) path to native patch.

Also tweak one test so busybox mv output is accepted.

All ptests should now pass: Fixes [YOCTO #11221].

(From OE-Core rev: 4b667d268fe410a21cacaecd1b5e3bfbbe7d53d8)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jussi Kukkonen 2017-03-30 19:49:28 +03:00 committed by Richard Purdie
parent 9cacf8488c
commit e908ffe3cd
4 changed files with 38 additions and 13 deletions

View File

@ -5,8 +5,7 @@ INHIBIT_AUTOTOOLS_DEPS = "1"
inherit native
PATCHTOOL = "patch"
EXTRA_OECONF = "--disable-nls"
EXTRA_OECONF_append_class-target = "--with-perl=perl"
EXTRA_OECONF_append = " --disable-nls"
do_configure () {
oe_runconf

View File

@ -8,6 +8,7 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/quilt/quilt-${PV}.tar.gz \
file://run-ptest \
file://Makefile \
file://test.sh \
file://0001-tests-Allow-different-output-from-mv.patch \
"
SRC_URI[md5sum] = "c67ba0228f5b7b8bbe469474661f92d6"
@ -33,10 +34,16 @@ RDEPENDS_${PN} = "bash"
EXTRA_OE_MAKE_ARGS_darwin ?= ""
EXTRA_OE_MAKE_ARGS ?= "BUILD_ROOT=${D}"
EXTRA_OECONF = "--with-perl=perl"
EXTRA_OECONF = "--with-perl='${USRBINPATH}/env perl' --with-patch=patch"
CACHED_CONFIGUREVARS += "ac_cv_path_BASH=/bin/bash"
# Make sure we don't have "-w" in shebang lines: it breaks using
# "/usr/bin/env perl" as parser
do_configure_prepend () {
find ${S} -name "*.in" -exec sed -i -e "1s,^#\!.*@PERL@ -w$,#\! @PERL@\nuse warnings;," {} \;
}
# Don't setup symlinks to host utilities, we don't need them
do_configure_append () {
sed -e 's,^COMPAT_SYMLINKS.*:=.*,COMPAT_SYMLINKS :=,' -i ${S}/Makefile

View File

@ -0,0 +1,29 @@
From 1530138960cfafbeefb95f2a760954c00b4d0ef0 Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Wed, 29 Mar 2017 15:11:59 +0300
Subject: [PATCH] tests: Allow different output from mv
busybox mv has different error messages: fix the test
Upstream-Status: Inappropriate [embedded]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
test/failbackup.test | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/failbackup.test b/test/failbackup.test
index 37046f7..fce6725 100644
--- a/test/failbackup.test
+++ b/test/failbackup.test
@@ -16,7 +16,7 @@ What happens when refresh fails because of a permission error?
$ cat > test.txt
< This is updated test.txt.
$ quilt refresh --backup
- >~ mv: cannot move [`']?%{P}test.diff'? to [`']?%{P}test.diff~'?: Permission denied
+ >~ mv: .*: Permission denied
$ echo %{?}
> 1
--
2.1.4

View File

@ -4,13 +4,3 @@ RDEPENDS_${PN} += "patch diffstat bzip2 util-linux"
SRC_URI += "file://aclocal.patch \
file://gnu_patch_test_fix_target.patch \
"
# fix build-distro specific perl path in the target perl scripts
do_install_append() {
for perlscript in ${D}${datadir}/quilt/scripts/remove-trailing-ws ${D}${datadir}/quilt/scripts/dependency-graph ${D}${datadir}/quilt/scripts/edmail ${D}${bindir}/guards
do
if [ -f $perlscript ]; then
sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' $perlscript
fi
done
}