diff options
-rw-r--r-- | debian/changelog | 5 | ||||
-rwxr-xr-x | pbuilder-buildpackage | 2 | ||||
-rw-r--r-- | pbuilder-buildpackage-funcs | 12 |
3 files changed, 13 insertions, 6 deletions
diff --git a/debian/changelog b/debian/changelog index 8212c79..2b55758 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ pbuilder (0.168) UNRELEASED; urgency=low - * set LOGNAME when build user is created within chroot. + * Bug fix: "Fix user/group name resolution inside chroot", thanks to + Anderson Lizardo (Closes: #398865). * do not always output 'Aborting with error' on create/update (bug introduced in 0.167) * fix man pages to have reference to pbuilder-doc.html, and fix home @@ -9,7 +10,7 @@ pbuilder (0.168) UNRELEASED; urgency=low * fix C10shell script to work with the new 'tee' log mode. (add '2> /dev/tty') - -- Junichi Uekawa <dancer@debian.org> Mon, 28 May 2007 20:30:07 +0900 + -- Junichi Uekawa <dancer@debian.org> Mon, 28 May 2007 20:36:43 +0900 pbuilder (0.167) unstable; urgency=low diff --git a/pbuilder-buildpackage b/pbuilder-buildpackage index becab23..18c781a 100755 --- a/pbuilder-buildpackage +++ b/pbuilder-buildpackage @@ -32,7 +32,7 @@ if [ ! -f "$PACKAGENAME" ]; then fi; if [ -n "$BUILDUSERNAME" -a -n "$BUILDUSERID" ]; then - SUTOUSER="su -p $BUILDUSERNAME" + SUTOUSER="env LOGNAME=$BUILDUSERNAME su -p $BUILDUSERNAME" DEBBUILDOPTS="$DEBBUILDOPTS -rfakeroot" EXTRAPACKAGES="${EXTRAPACKAGES} fakeroot" echo "I: using fakeroot in build." diff --git a/pbuilder-buildpackage-funcs b/pbuilder-buildpackage-funcs index 62726b0..a36fcb4 100644 --- a/pbuilder-buildpackage-funcs +++ b/pbuilder-buildpackage-funcs @@ -82,19 +82,25 @@ function cowprotect () { function createbuilduser () { # create the build user, if it is necessary and specified. if [ -n "$BUILDUSERNAME" -a -n "$BUILDUSERID" ]; then + if [ -e $BUILDPLACE/etc/shadow ]; then p='x'; else p='*'; fi + if [ -e $BUILDPLACE/etc/gshadow ]; then g='x'; else g='*'; fi if ! grep -q ^$BUILDUSERNAME: $BUILDPLACE/etc/passwd; then cowprotect $BUILDPLACE/etc/passwd - echo "$BUILDUSERNAME:x:$BUILDUSERID:$BUILDUSERID:,,,:/tmp/buildd:/bin/sh" >> $BUILDPLACE/etc/passwd + echo "$BUILDUSERNAME:$p:$BUILDUSERID:$BUILDUSERID:,,,:/tmp/buildd:/bin/sh" >> $BUILDPLACE/etc/passwd fi if ! grep -q ^$BUILDUSERNAME: $BUILDPLACE/etc/group; then cowprotect $BUILDPLACE/etc/group - echo "$BUILDUSERNAME:*:$BUILDUSERID:" >> $BUILDPLACE/etc/group + echo "$BUILDUSERNAME:$g:$BUILDUSERID:" >> $BUILDPLACE/etc/group fi if [ -e $BUILDPLACE/etc/shadow ] && ! grep -q ^$BUILDUSERNAME: $BUILDPLACE/etc/shadow; then cowprotect $BUILDPLACE/etc/shadow echo "$BUILDUSERNAME:!:::::::" >> $BUILDPLACE/etc/shadow fi - export LOGNAME="${BUILDUSERNAME}" + if [ -e $BUILDPLACE/etc/gshadow ] && ! grep -q ^$BUILDUSERNAME: $BUILDPLACE/etc/gshadow; then + cowprotect $BUILDPLACE/etc/gshadow + echo "$BUILDUSERNAME:!::" >> $BUILDPLACE/etc/gshadow + fi + unset LOGNAME || true else unset LOGNAME || true fi |