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