Package: pbuilder
Version: 0.230.4
Severity: wishlist
Tags: upstream patch

Dear Maintainer,

«pbuilder --login» is implemented as follows:

    58      --login|login|l)
    ⋮
    76          executehooks "F"
    77          (${CHROOTEXEC} bash -c 'exec -a -bash bash')
    78          RET=$?

This launches bash even if the chroot's /etc/passwd specifies another
shell.

Please execute the passwd(5)-specified login shell by default.

The following works for me, but please review.

[[[
diff --git a/pbuilder b/pbuilder
index ccd7cc0..3067656 100755
--- a/pbuilder
+++ b/pbuilder
@@ -74,7 +74,8 @@ case "$1" in
         fi
 
         executehooks "F"
-        (${CHROOTEXEC} bash -c 'exec -a -bash bash')
+        loginshell=$(${CHROOTEXEC} getent passwd root | cut -d: -f7)
+        (${CHROOTEXEC} bash -c 'exec -a "-$1" "$1"' . "${loginshell}")
         RET=$?
 
         save_aptcache
]]]

Cheers,

Daniel

P.S. For completeness, my use-case: I have an F hook that chsh's to zsh
because I'd like --login sessions to use zsh by default.

Reply via email to