Re: Our build system may be broken: /bin vs /usr/bin
Dirk Eddelbuettel writes ("Re: Our build system may be broken: /bin vs /usr/bin"):
> That was very much my gut feel but I am a little removed from the more core
> moving and shaking and I didn't know what changed recently.
This usrmerge change has been discussed here on -devel recently and
IIRC has been associated with other lossage too.
> FWIW GNU R is an rather obsessively clean user of to the autotools stack, so
> I would agree that it failing here is a good-enough proof for having to
> possibly revisiting things in our stack. I would expect much more breakage to
I think the mechanism is probably as follows:
1. R's autoconfery is autodetecting the location of (say) `sed' at
build time by searching the PATH. R then bakes the discovered
path into the built binaries.
2. With usrmerge, /bin is a symlink to /usr/bin or vice versa
(I'm afraid I forget which.)
3. Consequently the R autoconfery always detects (say) `sed' in
the first place out of /usr/bin and /bin it looks, and bakes
/usr/bin/sed into its binaries.
4. On a system without usrmerge, /usr/bin/sed does not exist,
because sed is in /bin.
I think this demonstrates that build environments must not have
usrmerge. If they do, the information about where the file is on
non-usrmerge systems is not present.
I also think that the behaviour 1 above is poor practice; I think that
things in Debian should always search $PATH at runtime. But I know
that this is not universally agreed and some important programs
disagree and require absolute paths. Debian policy requires that
Debian-written scripts such as maintainer scripts honour $PATH, but I
think it does not make such a requirement for programs in general.
(Interestingly I think there is a cultural correlation between
communities in favour of usrmerge and communities in favour of baking
absolute paths into everything; this seems superficially a sensible
correlation but the analysis above reveals it to be troublesome.)
Hopefully someone will appear and remind us which package the usrmerge
change is in, so that you can file a bug report. I think that bug
report should be RC.
Ian Jackson <ijackson@xxxxxxxxxxxxxxxxxxxxxx> These opinions are my own.
If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.