[Pkg-rust-maintainers] Bug#809124: rustc: FTBFS when built with dpkg-buildpackage -A (No such file or directory)

Santiago Vila sanvila at debian.org
Sun Dec 27 12:33:22 UTC 2015


Package: src:rustc
Version: 1.5.0+dfsg1-1
User: sanvila at debian.org
Usertags: binary-indep
Severity: important

Dear maintainer:

I tried to build this package with "dpkg-buildpackage -A"
(i.e. only architecture-independent packages), and it failed:

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
dh build-indep --parallel
   dh_testdir -i -O--parallel
   debian/rules override_dh_auto_configure
make[1]: Entering directory '/<<BUILDDIR>>/rustc-1.5.0+dfsg1'
SHELL=/bin/sh \
    ./configure --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu --disable-manage-submodules --release-channel=stable --prefix=/usr --llvm-root=/usr/lib/llvm-3.7
configure: looking for configure programs
configure: found program 'cmp'
configure: found program 'mkdir'
configure: found program 'printf'
configure: found program 'cut'

[... snipped ...]

ln -sf ../../../x86_64-linux-gnu/librustc-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_back-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_back-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_borrowck-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_borrowck-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_data_structures-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_data_structures-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_driver-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_driver-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_front-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_front-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_lint-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_lint-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_llvm-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_llvm-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_mir-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_mir-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_platform_intrinsics-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_platform_intrinsics-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_privacy-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_privacy-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_resolve-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_resolve-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_trans-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_trans-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustc_typeck-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_typeck-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/librustdoc-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustdoc-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/libserialize-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserialize-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/libstd-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/libsyntax-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/libterm-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-35c36e89.so
ln -sf ../../../x86_64-linux-gnu/libtest-35c36e89.so /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-35c36e89.so
# Brute force to remove privacy-breach-logo lintian warning.
# We could have updated the upstream sources but it would complexify
# the rebase
find /<<BUILDDIR>>/rustc-1.5.0+dfsg1/debian/tmp \( -iname '*.html' -empty -o -name .lock -o -name '*.inc' \) -delete
make[1]: Leaving directory '/<<BUILDDIR>>/rustc-1.5.0+dfsg1'
   debian/rules override_dh_install
make[1]: Entering directory '/<<BUILDDIR>>/rustc-1.5.0+dfsg1'
dh_install
dh_install -plibstd-rust-1.5 usr/lib/x86_64-linux-gnu/
dh_install: No packages to build.
chmod -x \
  debian/rust-gdb/usr/share/rust-gdb/*.py \
  debian/rust-lldb/usr/share/rust-lldb/*.py
chmod: cannot access 'debian/rust-gdb/usr/share/rust-gdb/*.py': No such file or directory
chmod: cannot access 'debian/rust-lldb/usr/share/rust-lldb/*.py': No such file or directory
debian/rules:118: recipe for target 'override_dh_install' failed
make[1]: *** [override_dh_install] Error 1
make[1]: Leaving directory '/<<BUILDDIR>>/rustc-1.5.0+dfsg1'
debian/rules:63: recipe for target 'binary-indep' failed
make: *** [binary-indep] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary-indep gave error exit status 2
--------------------------------------------------------------------------------

Sorry not to have a fix, as I am reporting many bugs similar to
this one. The common hints are:

* If the only architecture-independent packages are dummy transitional
ones and they were released with jessie, the easy fix is to drop them
now.

* When using "dh", it is allowed to use (independently)
optional targets override_dh_foo-arch and override_dh_foo-indep
(for several values of "foo").


Once that both "dpkg-buildpackage -A" and "dpkg-buildpackage -B" work
properly, the package would be suitable to be uploaded in source-only
form if you wish.

Thanks.



More information about the Pkg-rust-maintainers mailing list