[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20110403124004.293c90c5.rdunlap@xenotime.net>
Date: Sun, 3 Apr 2011 12:40:04 -0700
From: Randy Dunlap <rdunlap@...otime.net>
To: Andreas Mohr <andi@...as.de>
Cc: Sam Ravnborg <sam@...nborg.org>,
Herbert Xu <herbert@...dor.apana.org.au>,
Andrew Morton <akpm@...ux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] Re: [PATCH] eradicate bashisms in scripts/patch-kernel
On Sun, 3 Apr 2011 20:58:28 +0200 Andreas Mohr wrote:
> Silence a remaining annoying (or worse, irritating - "is my entire patched tree
> broken now!?") bashism-related message that occurs when /bin/sh is configured
> to instead deploy dash, a POSIX-compliant shell, as is the pretty much
> standard case on e.g. Debian.
>
> # linux-2.6.38.patch-kernel_test/scripts/patch-kernel linux-2.6.38.patch-kernel_test patch-2.6
> Current kernel version is 2.6.38 ( Flesh-Eating Bats with Fangs)
> ===> linux-2.6.38.patch-kernel_test/scripts/patch-kernel: line 253: [: =: unary operator expected <===
> cannot find patch file: patch-2.6.39
Hi,
Are you trying to update a 2.6.38 kernel directory to 2.6.39?
I'm a little confused since the command line does not say anything about 2.6.39.
> ---
>
> Debug log of uncorrected script:
>
> # sh -x linux-2.6.38.patch-kernel_test/scripts/patch-kernel linux-2.6.38.patch-kernel_test patch-2.6
> + PNAME=patch-kernel
> + sourcedir=linux-2.6.38.patch-kernel_test
> + patchdir=patch-2.6
> + stopvers=default
> + '[' linux-2.6.38.patch-kernel_test = -h -o linux-2.6.38.patch-kernel_test = --help -o '!' -r linux-2.6.38.patch-kernel_test/Makefile ']'
> + for PARM in '$*'
> + case $PARM in
> + for PARM in '$*'
> + case $PARM in
> ++ mktemp ./.tmpver.XXXXXX
> + TMPFILE=./.tmpver.2Yv11Y
> + grep -E '^(VERSION|PATCHLEVEL|SUBLEVEL|EXTRAVERSION)' linux-2.6.38.patch-kernel_test/Makefile
> + tr -d '[:blank:]'
> + . ./.tmpver.2Yv11Y.1
> ++ VERSION=2
> ++ PATCHLEVEL=6
> ++ SUBLEVEL=38
> ++ EXTRAVERSION=
> + rm -f ./.tmpver.2Yv11Y ./.tmpver.2Yv11Y.1
> + '[' -z 2 -o -z 6 -o -z 38 ']'
> ++ grep '^NAME' linux-2.6.38.patch-kernel_test/Makefile
> + NAME='NAME = Flesh-Eating Bats with Fangs'
> + NAME=' Flesh-Eating Bats with Fangs'
> + echo 'Current kernel version is 2.6.38 ( Flesh-Eating Bats with Fangs)'
> Current kernel version is 2.6.38 ( Flesh-Eating Bats with Fangs)
> + EXTRAVER=
> + '[' x '!=' x ']'
> + '[' default '!=' default ']'
> + STOPSUBLEVEL=9999
> + STOPEXTRA=9999
> + '[' 9999 -lt 38 ']'
> + '[' x '!=' x ']'
> + CURRENTFULLVERSION=2.6.38
> + '[' x '!=' x ']'
> + '[' 9999 -gt 38 ']'
> + :
> + CURRENTFULLVERSION=2.6.38
> + EXTRAVER=
> + '[' = 2.6.38 ']'
> linux-2.6.38.patch-kernel_test/scripts/patch-kernel: line 253: [: =: unary operator expected
> + SUBLEVEL=39
> + FULLVERSION=2.6.39
> + '[' 39 -gt 9999 ']'
> + patch=patch-2.6.39
> + findFile patch-2.6/patch-2.6.39
> + filebase=patch-2.6/patch-2.6.39
> + '[' -r patch-2.6/patch-2.6.39.gz ']'
> + '[' -r patch-2.6/patch-2.6.39.bz ']'
> + '[' -r patch-2.6/patch-2.6.39.bz2 ']'
> + '[' -r patch-2.6/patch-2.6.39.zip ']'
> + '[' -r patch-2.6/patch-2.6.39.Z ']'
> + '[' -r patch-2.6/patch-2.6.39 ']'
> + return 1
> + noFile patch-2.6.39
> + echo 'cannot find patch file: patch-2.6.39'
> cannot find patch file: patch-2.6.39
> + exit 1
>
>
>
>
> Debug log of patched script (condensed to relevant parts):
>
> + STOPSUBLEVEL=9999
> + STOPEXTRA=9999
> + '[' 9999 -lt 38 ']'
> + '[' x '!=' x ']'
> + CURRENTFULLVERSION=2.6.38
> + '[' x '!=' x ']'
> + '[' 9999 -gt 38 ']'
> + :
> + CURRENTFULLVERSION=2.6.38
> + EXTRAVER=
> + '[' x = x2.6.38 ']'
> + SUBLEVEL=39
> + FULLVERSION=2.6.39
>
>
> Since my last patch (the parent mail) happened to modify the very same line,
Parent email from 2007??? wow. :)
Why doesn't the debug/trace info show the value of STOPFULLVERSION?
Is it empty?
> I'm slightly wondering why last time it didn't exhibit this issue
> (IIRC this occurred for the first time a couple months later,
> perhaps in newer shell versions).
>
> Patch has been created on git 2.6.39-rc1,
> run through checkpatch.pl,
> tested to work on dash and still work on bash,
> and tested to apply cleanly to 2.6.37, too.
>
> IMHO this is a low-priority item,
> certainly not requiring service within current -rc handling,
> and neither at -stable (I assume that only point versions
> could make good use of this patch anyway).
> IOW standard patch circulation.
> I'm assuming that Sam would be the one to queue it up,
> just like last time.
Michal is the new kbuild maintainer, so he could queue it, or I can.
> Thanks!
>
> Signed-off-by: Andreas Mohr <andi@...as.de>
>
>
> diff --git a/scripts/patch-kernel b/scripts/patch-kernel
> index 46a59ca..20fb25c 100755
> --- a/scripts/patch-kernel
> +++ b/scripts/patch-kernel
> @@ -250,7 +250,7 @@ while : # incrementing SUBLEVEL (s in v.p.s)
> do
> CURRENTFULLVERSION="$VERSION.$PATCHLEVEL.$SUBLEVEL"
> EXTRAVER=
> - if [ $STOPFULLVERSION = $CURRENTFULLVERSION ]; then
> + if [ x$STOPFULLVERSION = x$CURRENTFULLVERSION ]; then
> echo "Stopping at $CURRENTFULLVERSION base as requested."
> break
> fi
Patch is OK, but I still wonder about the value of $STOPFULLVERSION.
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists