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