On Thu, Jul 07, 2005 at 12:37:17PM +0200, Nicolas François wrote:
> Hello Daniel,
> 
> This was introduced by the patch for #276419, which I still approve.
> Here is a fix for pbuilder.
It doesn't work.

> (I'm CCing the pbuilder maintainer to have his opinion, before reassigning
> this bug to pbuilder)
> 
> Note: This may require a versioned dependancy.
> 
> ("su <user> -- arg1 arg2" used to run "<shell> -c arg1 arg2" and it now
> launch "<shell> arg1 arg2", so a pbuilder with this patch and an old su
> will run "<shell> -c -c arg1 arg2", which is not an issue for bash, but
> may be annoying for another shell)

Actually 'su <user> -- arg1 arg2' used to run '<shell> -c "arg1 arg2"'
(ie arg1 and arg2 are grouped as one argument) and now it runs '<shell>
arg1 arg2' and '<shell> -c arg1 arg2' with your patch.

That's why your patch doesn't work as arg2 is ignored.

Please find attached a new patch that works with both the old and new
version of su (it is not possible to have a versioned dependency as it
is the su from inside the chroot which is called).

Bye,
Aurelien

-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian GNU/Linux developer | Electrical Engineer
 `. `'   [EMAIL PROTECTED]         | [EMAIL PROTECTED]
   `-    people.debian.org/~aurel32 | www.aurel32.net
--- pbuilder-buildpackage.orig  2005-07-02 08:33:47.000000000 +0200
+++ pbuilder-buildpackage       2005-07-07 17:11:10.190515660 +0200
@@ -32,7 +32,7 @@
 fi;
 
 if [ -n "$BUILDUSERNAME" -a -n "$BUILDUSERID" ]; then
-    SUTOUSER="su -p $BUILDUSERNAME -- "
+    SUTOUSER="su -p $BUILDUSERNAME -c "
     DEBBUILDOPTS="$DEBBUILDOPTS -rfakeroot"
     EXTRAPACKAGES="${EXTRAPACKAGES} fakeroot"
     echo "I: using fakeroot in build."
@@ -81,7 +81,7 @@
 copydsc "$PACKAGENAME" "$BUILDPLACE/tmp/buildd"
 
 echo "Extracting source"
-if ! $CHROOTEXEC /bin/bash -c "( cd tmp/buildd; chown 
$BUILDUSERNAME:$BUILDUSERNAME ../buildd *; $SUTOUSER /usr/bin/dpkg-source -x 
$(basename $PACKAGENAME) )"; then
+if ! $CHROOTEXEC /bin/bash -c "( cd tmp/buildd; chown 
$BUILDUSERNAME:$BUILDUSERNAME ../buildd *; $SUTOUSER \"/usr/bin/dpkg-source -x 
$(basename $PACKAGENAME) \")"; then
     echo "pbuilder: Failed extracting the source" >&2 
     exit 1;
 fi

Reply via email to