[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: