Re: many packages FTBFS, if $TAPE is set
Hi,
Manoj Srivastava <srivasta@debian.org> wrote:
> On Tue, 28 Aug 2007 21:15:35 +0300, Riku Voipio <riku.voipio@iki.fi> said:
>
>>> >> Many packages FTBFS (silently!) if an environment variable TAPE is
>>> >> set.
>>> Perhaps dpkg-buildpackage should unset TAPE...?
>
>> pbuilder and other tools already do that when chrooting? Tar's $TAPE
>> behaviour fails the principle of least suprise. Tar developers should
>> reconsider the usability implications of such feature.
>
>> For packages, I think $TAPE is hardly the only environment variable
>> that can change package outcome. Atleast the locale variables can
>> wreck havoc for builds. Or consider setting AWKPATH or even PATH to
>> something strange... Clearly packagers should not need to take care of
>> all possible enviroment misconfigurations.
>
>> That's why we tell people to use pbuilder.
>
> I think I disagree with the reason given for this advice. What
> is the end goal that we are trying to achieve? Is it to upload binary
> packages that build despite leaving flaws i the build process? Always
> building in pbuilder masks errors like the $TAPE error; we would have
> been better off having the build fail and be corrected.
If you really suggest to take care of broken environemts, you should
think about such ugliness:
% cat Makefile
# I need this, because /bin/sh is dash at me.
SHELL=/bin/bash
clean:
rm bla
ls -ld /proc/$$$$/exe
% env -i rm='() { echo I am not rm; }' ls='() { echo I am not ls; }' PATH=$PATH make clean
rm bla
I am not rm
ls -ld /proc/$$/exe
I am not ls
I think there are so much possibilities in the environement to break
anything that there's no other way to clean the environement.
SHELL := /usr/bin/env -i PATH=$(PATH) $(SHELL)
Bye, Jörg.
--
Der Pessimist ist jemand, der vorzeitig die Wahrheit erzählt.
(Cyrano de Bergerac)
Reply to: