Bug#733202: root-system FTBFS on systems where multiarch dev packages are in use and lsb-release -d returns anything other than debian, ubuntu or mint
peter green
plugwash at p10link.net
Fri Dec 27 00:24:20 UTC 2013
Package: root-system
I run a debian derivative called raspbian aiming primerally at the
raspberry pi but in principle also other armv6 devices (in practice
such devices seem to be relatively rare).
root-system failed to build for us with the following error.
Checking for F77 compiler ... gfortran
Checking for libX11 ... no
configure: libX11 MUST be installed
See http://root.cern.ch/drupal/content/build-prerequisites
make: *** [config.status] Error 1
I quickly confirmed that this was happening even though libx11-dev
most certainly was installed. After spending some time chasing up
blind allys I discovered the real cause.
The configure script contains the following logic.
if `$cwhich lsb_release > /dev/null 2>&1` ; then
if lsb_release -d | grep -i 'ubuntu' > /dev/null 2>& 1; then
linuxdist="multiarch"
fi
if lsb_release -d | grep -i 'debian' > /dev/null 2>& 1; then
linuxdist="multiarch"
fi
if lsb_release -d | grep -i 'mint' > /dev/null 2>& 1; then
linuxdist="multiarch"
fi
fi
It would obviously be possible to add more debian derivatives to the
list but I feel this is a bad soloution since it creates a
maintinance headache and also a barrier for people creating new
derivatives.
Unfortunately lsb-release doesn't seem to have a derives-from
option.
For raspbian I changed the code to
linuxdist=
if `$cwhich dpkg-architecture > /dev/null 2>&1` ; then
if dpkg-vendor --derives-from Debian > /dev/null 2>& 1; then
linuxdist="multiarch"
fi
fi
I've just noticed I made a screwup in the above code. It checks
for dpkg-architecture but then uses dpkg-vendor. DOH.
Furthermore even if it was fixed to check for dpkg-vendor such
a check would largely be pointless since dpkg-vendor and
dpkg-architecture are in the same package. So the above check
would not really be any improvement over simply testing if
dpkg-architecture exists and if so checking if it offers a
multiarch triplet.
Another possibility would be to check for Debian in the id and
id_like fields of /etc/os-release.
While I was working on this I also ran into a couple of cases
of insufficiently tight build-depends/conflicts which I also
fixed in the raspbian upload. Unfortunately I made a typo in
the changelog entry "Add build-depends on libqt4-private-dev"
should say "dd build-conflicts on libqt4-private-dev"
A debdiff of what I uploaded to raspbian can be found at
http://debdiffs.raspbian.org/main/r/root-system/root-system_5.34.14-1%2brpi1.debdiff
No intent to NMU.
More information about the debian-science-maintainers
mailing list