Package: distcc
Version: 3.3.2-5
Severity: important

Debian's distcc includes a Perl-based `update-distcc-symlinks` script, but this 
misses rather a lot
of installed compilers when compared to the upstream package's 
update-distcc-symlinks.py (which
looks to be new as of 3.3).

I'm submitting this as important rather than merely normal as this breaks cross 
compiling and clang
compilation via distcc: the symlinks in /usr/lib/distcc have recently become a 
whitelist of allowed
compilers in distcc (see merged upstream PR #243), and thus the current 
approach of having only a
few compilers breaks using distcc for cross-compiling (or compiling with clang 
and likely various
other compilers that I don't happen to have installed).

Here's what I get in /usr/lib/distcc using the upstream version 
(update-distcc-symlinks.py) from the
source package (it *is* included in the source package, but not actually 
installed):

lrwxrwxrwx 1 root root 16 Jan 18 14:12 aarch64-linux-gnu-g++ -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 aarch64-linux-gnu-g++-8 -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 aarch64-linux-gnu-gcc -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 aarch64-linux-gnu-gcc-8 -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 c++ -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 c89 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 c89-gcc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 c99 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 c99-gcc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 cc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 clang -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 clang++ -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 clang++-6.0 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 clang-6.0 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 clang++-7 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 18 14:12 clang-7 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 g++ -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 10 15:57 g++-7 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 g++-8 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 gcc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 gcc-7 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 gcc-8 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-g++ -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 10 15:57 x86_64-linux-gnu-g++-7 -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-g++-8 -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-gcc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-gcc-7 -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-gcc-8 -> 
../../bin/distcc*

But the Debian-installed update-distcc-symlinks (which comes from 
debian/update-distcc-symlinks.in,
and is an entirely different implementation written in Perl) misses many of 
these compilers:

lrwxrwxrwx 1 root root 16 Jan  6 13:37 c++ -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 c89-gcc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 c99-gcc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 cc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 g++ -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 10 15:57 g++-7 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 g++-8 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 gcc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 gcc-7 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 gcc-8 -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-g++ -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan 10 15:57 x86_64-linux-gnu-g++-7 -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-g++-8 -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-gcc -> ../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-gcc-7 -> 
../../bin/distcc*
lrwxrwxrwx 1 root root 16 Jan  6 13:37 x86_64-linux-gnu-gcc-8 -> 
../../bin/distcc*

This in turn breaks distcc compilations that attempt to use installed 
cross-compilers or clang
(since, as I mentioned, these symlinks now do double-duty as distcc compiler 
whitelists).

An easy fix to this would thus appear to be replacing the package's 
update-distcc-symlinks with the
upstream version.




-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-1-amd64 (SMP w/16 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages distcc depends on:
ii  adduser                3.118
ii  debconf [debconf-2.0]  1.5.70
ii  libavahi-client3       0.7-4+b1
ii  libavahi-common3       0.7-4+b1
ii  libc6                  2.28-5
ii  libgssapi-krb5-2       1.17-1
ii  libpopt0               1.16-12
ii  lsb-base               10.2018112800
ii  netbase                5.5

distcc recommends no packages.

Versions of packages distcc suggests:
ii  ccache           3.5-1
ii  dbus             1.12.12-1
ii  distcc-pump      3.3.2-5
pn  distccmon-gnome  <none>
pn  dmucs            <none>

-- debconf information excluded

Reply via email to