openwrtv4/tools/quilt/patches/000-relocatable.patch
Felix Fietkau bdbd0dce2e tools/quilt: fix build error during kernel_menuconfig on a cleaned env
When running "make kernel_menuconfig" right after "make clean", we error
out with the following message:

Makefile:22: recipe for target '.../build_dir/target-arm_cortex-a7_musl-1.1.10_eabi/linux-.../linux-3.18.18/.quilt_checked' failed
make[2]: [.../build_dir/target-arm_cortex-a7_musl-1.1.10_eabi/linux-.../linux-3.18.18/.quilt_checked]
Error 127 (ignored)

The root cause of the problem is located in the OpenWrt specific quilt
patch, which sets the quilt install directory to $STAGING_DIR/../host.
However, on a clean environment (right after running "make clean"),
$STAGING_DIR doesn't exist. The "quilt" executable doesn't find its
different commands, errors out, and creates this message.

We're fixing it by using $STAGING_DIR_HOST rather than $STAGING_DIR,
which is absolute. It will work even if there is no target directory
yet.

Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 47410
2015-11-07 12:52:14 +00:00

170 lines
4 KiB
Diff

--- a/bin/quilt.in
+++ b/bin/quilt.in
@@ -15,14 +15,22 @@ unset POSIXLY_CORRECT
unset GREP_OPTIONS
export TEXTDOMAIN=quilt
-export TEXTDOMAINDIR=@LOCALEDIR@
-: ${QUILT_DIR=@QUILT_DIR@}
+if test -n "$STAGING_DIR_HOST"; then
+ export TEXTDOMAINDIR="$STAGING_DIR_HOST/share/locale"
+ : ${QUILT_DIR=$STAGING_DIR_HOST/share/quilt} ${QUILT_LIB=$STAGING_DIR_HOST/lib/quilt}
+ : ${QUILT_ETC=$STAGING_DIR_HOST/etc}
+else
+ export TEXTDOMAINDIR=@LOCALEDIR@
+ : ${QUILT_DIR=@QUILT_DIR@}
+ : ${QUILT_ETC=@ETCDIR@}
+fi
+
export QUILT_DIR
if [ -z "$QUILTRC" ]
then
- for QUILTRC in $HOME/.quiltrc @ETCDIR@/quilt.quiltrc; do
+ for QUILTRC in $HOME/.quiltrc $QUILT_ETC/quilt.quiltrc; do
[ -e $QUILTRC ] && break
done
export QUILTRC
--- a/quilt/scripts/edmail.in
+++ b/quilt/scripts/edmail.in
@@ -1,4 +1,6 @@
-#! @PERL@ -w
+#! @PERL@
+
+use warnings;
# RFCs important for this script:
#
@@ -29,7 +31,7 @@ BEGIN {
}
setlocale(LC_MESSAGES, "");
-bindtextdomain("quilt", "@LOCALEDIR@");
+bindtextdomain("quilt", $ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/locale' : "@LOCALEDIR@");
textdomain("quilt");
sub _($) {
--- a/quilt/scripts/patchfns.in
+++ b/quilt/scripts/patchfns.in
@@ -8,7 +8,11 @@
# See the COPYING and AUTHORS files for more details.
export TEXTDOMAIN=quilt
-export TEXTDOMAINDIR=@LOCALEDIR@
+if [ -n "$STAGING_DIR_HOST" ]; then
+ export TEXTDOMAINDIR="$STAGING_DIR_HOST/share/locale"
+else
+ export TEXTDOMAINDIR=@LOCALEDIR@
+fi
: ${LC_CTYPE:=$LANG}
: ${LC_MESSAGES:=$LANG}
--- a/quilt/scripts/remove-trailing-ws.in
+++ b/quilt/scripts/remove-trailing-ws.in
@@ -1,4 +1,6 @@
-#! @PERL@ -w
+#! @PERL@
+
+use warnings;
# Remove trailing whitespace from modified lines in working files.
#
@@ -31,7 +33,7 @@ BEGIN {
}
setlocale(LC_MESSAGES, "");
-bindtextdomain("quilt", "@LOCALEDIR@");
+bindtextdomain("quilt", $ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/locale' : "@LOCALEDIR@");
textdomain("quilt");
sub _($) {
--- a/Makefile.in
+++ b/Makefile.in
@@ -21,8 +21,8 @@ COLUMN := @COLUMN@
GETOPT := @GETOPT@
CP := @CP@
DATE := @DATE@
-PERL := @PERL@
-BASH := @BASH@
+PERL := /usr/bin/env perl
+BASH := /usr/bin/env bash
SHELL:= @BASH@ # It does not work if dash is used as a shell, for example
GREP := @GREP@
TAIL := @TAIL@
@@ -32,7 +32,7 @@ AWK := @AWK@
FIND := @FIND@
XARGS := @XARGS@
DIFF := @DIFF@
-PATCH := @PATCH@
+PATCH := /usr/bin/env patch
MKTEMP := @MKTEMP@
MSGMERGE := @MSGMERGE@
MSGFMT := @MSGFMT@
@@ -48,8 +48,8 @@ USE_NLS := @USE_NLS@
STAT_HARDLINK := @STAT_HARDLINK@
PATCH_WRAPPER := @PATCH_WRAPPER@
-COMPAT_SYMLINKS := @COMPAT_SYMLINKS@
-COMPAT_PROGRAMS := @COMPAT_PROGRAMS@
+COMPAT_SYMLINKS :=
+COMPAT_PROGRAMS :=
default: all
--- a/quilt/scripts/backup-files.in
+++ b/quilt/scripts/backup-files.in
@@ -53,7 +53,12 @@ usage ()
"
}
-: ${QUILT_DIR=@QUILT_DIR@}
+if test -n "$STAGING_DIR_HOST"; then
+ : ${QUILT_DIR="$STAGING_DIR_HOST/share/quilt"}
+else
+ : ${QUILT_DIR=@QUILT_DIR@}
+fi
+
. $QUILT_DIR/scripts/utilfns
ensure_nolinks()
--- a/bin/guards.in
+++ b/bin/guards.in
@@ -1,4 +1,6 @@
-#!@PERL@ -w
+#!@PERL@
+
+use warnings;
# This script is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
--- a/compat/date.in
+++ b/compat/date.in
@@ -1,4 +1,6 @@
-#! @PERL@ -w
+#! @PERL@
+
+use warnings;
# This script is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
--- a/compat/getopt.in
+++ b/compat/getopt.in
@@ -1,4 +1,6 @@
-#! @PERL@ -w
+#! @PERL@
+
+use warnings;
# This script is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
--- a/quilt/scripts/dependency-graph.in
+++ b/quilt/scripts/dependency-graph.in
@@ -1,4 +1,6 @@
-#!@PERL@ -w
+#!@PERL@
+
+use warnings;
# This script is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as