[pacman-dev] makepkg, su and output - Was: [PATCH 1/3] makepkg: simplify su/sudo calling logic

Allan McRae allan at archlinux.org
Sat Jun 19 02:29:57 EDT 2010

On 19/06/10 10:50, Andres P wrote:
> Note that this still has the "using su fucks up the terminal" bug present in
> 3.4.

Still has?  This is the first I am hearing of it...  Is there a bug 
report about this?

> When makepkg uses su for any reason, fallback or not, the terminal will no
> longer display stdin and has to be reset(1).
> To reproduce:
> # mv /usr/bin/sudo{,~}
> Then use a makepkg operation that requires root; e.g. -i or -s.

I just tested this and there is even worse things happening.

I have a PKGBUILD which has depends=('pacman>4') in it for testing out 
another bug.

When using su I get:

--start output--
 > makepkg -sf
==> WARNING: Sudo can not be found. Will use su to acquire root privileges.
==> Making package: pacman-contrib 3.4.0-1 (Sat Jun 19 16:24:35 EST 2010)
==> Checking Runtime Dependencies...
==> Installing missing dependencies...
Proceed with installation? [Y/n]
==> Missing Dependencies:
   -> pacman>4
==> Checking Buildtime Dependencies...
==> ERROR: Could not resolve all dependencies.
--end output--

Note it processed trying to install pacman, even though >4 does not 
exist.   Then if find a file called "4" in my $startdir with:

--start 4--
warning: pacman-3.4.0-1 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...

Targets (1): pacman-3.4.0-1

Total Download Size:    0.00 MB
Total Installed Size:   1.98 MB

checking package integrity...
checking for file conflicts...
upgrading pacman...
--end 4--

It appears that the 'pacman>4' is not staying quoted and is causing the 
output to be redirected.

> I can reproduce outside of makepkg:
> $ fakeroot bash -c "su -c 'pacman -Q foo'"

I can not see anything wrong when using that.


More information about the pacman-dev mailing list