diff mbox

kbuild: deb-pkg fix install scripts for posix sh

Message ID 1246817854-27396-1-git-send-email-max@stro.at (mailing list archive)
State New, archived
Headers show

Commit Message

maximilian attems July 5, 2009, 6:17 p.m. UTC
bash versus dash and posh disagree on expanding $@ within double quotes:
export x="$@"
see http://bugs.debian.org/381091 for details
just use the arglist with $*.

dpkg: error processing linux-image-2.6.31-rc1_2.6.31-rc1-18_i386.deb (--install):
 subprocess pre-installation script returned error exit status 2
export: 6: 2.6.31-rc1-18: bad variable name
fixes http://bugzilla.kernel.org/show_bug.cgi?id=13567

seen on Ubuntu as there dash is the default sh,
versus bash on Debian.

Reported-by: Pauli <suokkos@gmail.com>
Cc: Frans Pop <elendil@planet.nl>
Cc: Andres Salomon <dilinger@debian.org>
Signed-off-by: maximilian attems <max@stro.at>
---
 scripts/package/builddeb |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Frans Pop July 8, 2009, 7:28 a.m. UTC | #1
On Sunday 05 July 2009, maximilian attems wrote:
> bash versus dash and posh disagree on expanding $@ within double
> quotes: export x="$@"
> see http://bugs.debian.org/381091 for details
> just use the arglist with $*.
[...]
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index b19f1f4..8b357b0 100644
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -89,7 +89,7 @@ for script in postinst postrm preinst prerm ; do
>  set -e
>
>  # Pass maintainer script parameters to hook scripts
> -export DEB_MAINT_PARAMS="\$@"
> +export DEB_MAINT_PARAMS="\$*"

Although blindly replacing "$@" by "$*" can cause regressions because they 
*do* expand differently [1], I do not see a problem in this case given 
that AFAIK Debian maintainer scripts only pass parameters without 
whitespace in them.

Acked-by: Frans Pop <elendil@planet.nl>


[1] $@ preserves quoting; try the following:
cat <<EOF >test.fjp
#! /bin/bash
for i in "$*"; do echo $i; done
for i in "$@"; do echo $i; done
EOF
chmod +x test.fjp
./test.fjp This "is a" test
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andres Salomon July 9, 2009, 9:49 p.m. UTC | #2
On Sun,  5 Jul 2009 20:17:34 +0200
maximilian attems <max@stro.at> wrote:

> bash versus dash and posh disagree on expanding $@ within double
> quotes: export x="$@"
> see http://bugs.debian.org/381091 for details
> just use the arglist with $*.
> 
> dpkg: error processing linux-image-2.6.31-rc1_2.6.31-rc1-18_i386.deb
> (--install): subprocess pre-installation script returned error exit
> status 2 export: 6: 2.6.31-rc1-18: bad variable name
> fixes http://bugzilla.kernel.org/show_bug.cgi?id=13567
> 
> seen on Ubuntu as there dash is the default sh,
> versus bash on Debian.
> 

Acked-By: Andres Salomon <dilinger@collabora.co.uk>

This should be applied ASAP, as it breaks things for every
ubuntu user who attempts to use 'make deb-pkg'.


> Reported-by: Pauli <suokkos@gmail.com>
> Cc: Frans Pop <elendil@planet.nl>
> Cc: Andres Salomon <dilinger@debian.org>
> Signed-off-by: maximilian attems <max@stro.at>
> ---
>  scripts/package/builddeb |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index b19f1f4..8b357b0 100644
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -89,7 +89,7 @@ for script in postinst postrm preinst prerm ; do
>  set -e
>  
>  # Pass maintainer script parameters to hook scripts
> -export DEB_MAINT_PARAMS="\$@"
> +export DEB_MAINT_PARAMS="\$*"
>  
>  test -d $debhookdir/$script.d && run-parts --arg="$version"
> $debhookdir/$script.d exit 0
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index b19f1f4..8b357b0 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -89,7 +89,7 @@  for script in postinst postrm preinst prerm ; do
 set -e
 
 # Pass maintainer script parameters to hook scripts
-export DEB_MAINT_PARAMS="\$@"
+export DEB_MAINT_PARAMS="\$*"
 
 test -d $debhookdir/$script.d && run-parts --arg="$version" $debhookdir/$script.d
 exit 0