Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package rustc The version currently in Testing, 1.32.0+dfsg1-1, suffers from a silent bug that causes tests not to be run during the build. It is fixed in -3. The upstream bug is here: https://github.com/rust-lang/rust/issues/59264 unblock rustc/1.32.0+dfsg1-3 -- System Information: Debian Release: buster/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'stable'), (300, 'unstable'), (100, 'experimental'), (1, 'experimental-debug') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.19.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
diff -Nru rustc-1.32.0+dfsg1/debian/changelog rustc-1.32.0+dfsg1/debian/changelog --- rustc-1.32.0+dfsg1/debian/changelog 2019-01-27 22:02:48.000000000 -0800 +++ rustc-1.32.0+dfsg1/debian/changelog 2019-03-17 16:40:05.000000000 -0700 @@ -1,3 +1,17 @@ +rustc (1.32.0+dfsg1-3) unstable; urgency=medium + + * Conditionally-apply u-compiletest.patch based on stage0 compiler. + * Fix syntax error in d/rules compiletest check. + + -- Ximin Luo <infini...@debian.org> Sun, 17 Mar 2019 16:40:05 -0700 + +rustc (1.32.0+dfsg1-2) unstable; urgency=medium + + * More verbose logging during builds. + * Fix compiletest compile error, and check log has at least 1 pass. + + -- Ximin Luo <infini...@debian.org> Sun, 17 Mar 2019 12:52:57 -0700 + rustc (1.32.0+dfsg1-1) unstable; urgency=medium * New upstream release. diff -Nru rustc-1.32.0+dfsg1/debian/check-orig-suspicious.sh rustc-1.32.0+dfsg1/debian/check-orig-suspicious.sh --- rustc-1.32.0+dfsg1/debian/check-orig-suspicious.sh 2019-01-27 21:51:57.000000000 -0800 +++ rustc-1.32.0+dfsg1/debian/check-orig-suspicious.sh 2019-02-05 21:03:40.000000000 -0800 @@ -1,35 +1,16 @@ #!/bin/bash - set -e ver="$1" test -n "$ver" || exit 2 -FILTER="Files-Excluded: in debian/copyright and run a repack." -SUS_WHITELIST=$(find "${PWD}" -name upstream-tarball-unsuspicious.txt -type f) +SUS_WHITELIST=$(find "${PWD}/debian" -name upstream-tarball-unsuspicious.txt -type f) rm -rf rustc-${ver/*~*/beta}-src/ tar xf ../rustc_$ver+dfsg1.orig.tar.xz && cd rustc-${ver/*~*/beta}-src/ -# Remove tiny files 4 bytes or less -find . -size -4c -delete -# Remove non-suspicious files, warning on patterns that match nothing -echo "Excluding (i.e. removing) whitelisted files..." -grep -v '^#' ${SUS_WHITELIST} | xargs -I% sh -c 'rm -r ./% || true' -echo "Checking for suspicious files..." - -# TODO: merge the -m stuff into suspicious-source(1). -suspicious-source -v -m text/x-objective-c -m text/x-awk -# The following shell snippet is a bit more strict than suspicious-source(1) -find . -type f -and -not -name '.cargo-checksum.json' -exec file '{}' \; | \ - sed -e 's/\btext\b\(.*\), with very long lines/verylongtext\1/g' | \ - grep -v '\b\(text\|empty\)\b' || true - -# Most C and JS code should be in their own package -find vendor/ -name '*.c' -o -name '*.js' - -echo "The above files (if any) seem suspicious, please audit them." -echo "If good, add them to ${SUS_WHITELIST}." -echo "If bad, add them to ${FILTER}." +/usr/share/cargo/scripts/audit-vendor-source \ + "$SUS_WHITELIST" \ + "Files-Excluded: in debian/copyright and run a repack." echo "Artifacts left in rustc-$ver-src, please remove them yourself." diff -Nru rustc-1.32.0+dfsg1/debian/copyright rustc-1.32.0+dfsg1/debian/copyright --- rustc-1.32.0+dfsg1/debian/copyright 2019-01-27 21:38:59.000000000 -0800 +++ rustc-1.32.0+dfsg1/debian/copyright 2019-03-17 16:39:44.000000000 -0700 @@ -306,6 +306,10 @@ License: MIT or Apache-2.0 Comment: see https://github.com/alexcrichton/ +Files: src/dlmalloc/src/dlmalloc.c +Copyright: 2000-2012 Doug Lea <d...@cs.oswego.edu> +License: CC0-1.0 + Files: vendor/ammonia/* Copyright: 2015-2018 Michael Howell <mich...@notriddle.com> License: MIT or Apache-2.0 @@ -872,6 +876,11 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +License: CC0-1.0 + On Debian systems, the full text of the CC0 1.0 Universal + License can be found in the file + `/usr/share/common-licenses/CC0-1.0'. + License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated diff -Nru rustc-1.32.0+dfsg1/debian/lintian-to-copyright.sh rustc-1.32.0+dfsg1/debian/lintian-to-copyright.sh --- rustc-1.32.0+dfsg1/debian/lintian-to-copyright.sh 2018-12-15 11:41:57.000000000 -0800 +++ rustc-1.32.0+dfsg1/debian/lintian-to-copyright.sh 2019-02-05 20:32:07.000000000 -0800 @@ -1,5 +1,5 @@ #!/bin/sh # Pipe the output of lintian into this. -sed -ne 's/.* file-without-copyright-information //p' | cut -d/ -f1-3 | sort -u | while read x; do - /usr/share/cargo/guess-crate-copyright "$x" +sed -ne 's/.* file-without-copyright-information //p' | cut -d/ -f1-2 | sort -u | while read x; do + /usr/share/cargo/scripts/guess-crate-copyright "$x" done diff -Nru rustc-1.32.0+dfsg1/debian/patches/d-sparc64-fix-fnctls.patch rustc-1.32.0+dfsg1/debian/patches/d-sparc64-fix-fnctls.patch --- rustc-1.32.0+dfsg1/debian/patches/d-sparc64-fix-fnctls.patch 2019-01-27 21:28:45.000000000 -0800 +++ rustc-1.32.0+dfsg1/debian/patches/d-sparc64-fix-fnctls.patch 2019-03-17 16:14:34.000000000 -0700 @@ -18,17 +18,17 @@ - pub const F_SETLKW: libc::c_int = 7; + cfg_if! { + if #[cfg(target_arch = "sparc64")] { -+ pub const F_RDLCK: libc::c_short = 1; -+ pub const F_WRLCK: libc::c_short = 2; -+ pub const F_UNLCK: libc::c_short = 3; -+ pub const F_SETLK: libc::c_int = 8; -+ pub const F_SETLKW: libc::c_int = 9; ++ pub const F_RDLCK: libc::c_short = 1; ++ pub const F_WRLCK: libc::c_short = 2; ++ pub const F_UNLCK: libc::c_short = 3; ++ pub const F_SETLK: libc::c_int = 8; ++ pub const F_SETLKW: libc::c_int = 9; + } else { -+ pub const F_RDLCK: libc::c_short = 0; -+ pub const F_WRLCK: libc::c_short = 1; -+ pub const F_UNLCK: libc::c_short = 2; -+ pub const F_SETLK: libc::c_int = 6; -+ pub const F_SETLKW: libc::c_int = 7; ++ pub const F_RDLCK: libc::c_short = 0; ++ pub const F_WRLCK: libc::c_short = 1; ++ pub const F_UNLCK: libc::c_short = 2; ++ pub const F_SETLK: libc::c_int = 6; ++ pub const F_SETLKW: libc::c_int = 7; + } + } } diff -Nru rustc-1.32.0+dfsg1/debian/patches/series rustc-1.32.0+dfsg1/debian/patches/series --- rustc-1.32.0+dfsg1/debian/patches/series 2019-01-27 22:02:48.000000000 -0800 +++ rustc-1.32.0+dfsg1/debian/patches/series 2019-03-17 14:36:57.000000000 -0700 @@ -1,6 +1,7 @@ # Patches for upstream # pending, or forwarded +#u-compiletest.patch # needs to be applied conditionally, see d/rules u-0001-lldb_batchmode.py-try-import-_thread-for-Python-3.patch u-0001-Fix-new-renamed_and_removed_lints-warning-247.patch u-0001-librustc_codegen_llvm-Don-t-eliminate-empty-structs-.patch diff -Nru rustc-1.32.0+dfsg1/debian/patches/u-compiletest.patch rustc-1.32.0+dfsg1/debian/patches/u-compiletest.patch --- rustc-1.32.0+dfsg1/debian/patches/u-compiletest.patch 1969-12-31 16:00:00.000000000 -0800 +++ rustc-1.32.0+dfsg1/debian/patches/u-compiletest.patch 2019-03-17 12:43:46.000000000 -0700 @@ -0,0 +1,18 @@ +Bug: https://github.com/rust-lang/rust/issues/57709 + +Index: src/tools/compiletest/src/main.rs +--- a/src/tools/compiletest/src/main.rs.orig ++++ b/src/tools/compiletest/src/main.rs +@@ -511,7 +511,11 @@ pub fn test_opts(config: &Config) -> test::TestOpts { + test::TestOpts { + filter: config.filter.clone(), + filter_exact: config.filter_exact, +- run_ignored: config.run_ignored, ++ run_ignored: if config.run_ignored { ++ test::RunIgnored::Yes ++ } else { ++ test::RunIgnored::No ++ }, + format: if config.quiet { + test::OutputFormat::Terse + } else { diff -Nru rustc-1.32.0+dfsg1/debian/rules rustc-1.32.0+dfsg1/debian/rules --- rustc-1.32.0+dfsg1/debian/rules 2019-01-27 21:56:46.000000000 -0800 +++ rustc-1.32.0+dfsg1/debian/rules 2019-03-17 15:11:41.000000000 -0700 @@ -42,7 +42,7 @@ endif RUSTBUILD = RUST_BACKTRACE=1 ./x.py -RUSTBUILD_FLAGS = --config debian/config.toml -vv --on-fail env +RUSTBUILD_FLAGS = --config debian/config.toml -vvv --on-fail env # TODO: This should simply be "$(RUSTBUILD) test" but unfortunately this causes # an insane blow up in the time it takes to run tests. See upstream #37477 for # details. Upstream worked around it in #38984 but in Debian we can't take @@ -173,6 +173,13 @@ # work around #842634 if test $$(grep "127.0.0.1\s*localhost" /etc/hosts | wc -l) -gt 1; then \ debian/ensure-patch -N debian/patches/d-host-duplicates.patch; fi + # work around https://github.com/rust-lang/rust/issues/59264 + # TODO: remove this in 1.33 and later + if dpkg --compare-versions $(LOCAL_RUST_VERSION) '>=' 1.32.0; then \ + debian/ensure-patch -N debian/patches/u-compiletest.patch; \ + else \ + debian/ensure-patch -R debian/patches/u-compiletest.patch; \ + fi # We patched some crates so have to rm the checksums find vendor -name .cargo-checksum.json -execdir "$(CURDIR)/debian/prune-checksums" "{}" ";" # Unfortunately upstream uses a duplicate copy of libbacktrace and wants to @@ -222,7 +229,7 @@ endif FAILED_TESTS = grep "FAILED\|^command did not execute successfully" $(TEST_LOG) | grep -v '^test result: FAILED' override_dh_auto_test-arch: -# ensure that rustc_llvm is actually dynamically linked to libLLVM + # ensure that rustc_llvm is actually dynamically linked to libLLVM set -e; find build/*/stage2/lib/rustlib/* -name '*rustc_llvm*.so' | \ while read x; do \ stat -c '%s %n' "$$x"; \ @@ -232,7 +239,8 @@ ifeq (, $(filter nocheck,$(DEB_BUILD_PROFILES))) ifeq (, $(filter nocheck,$(DEB_BUILD_OPTIONS))) { $(RUSTBUILD_TEST) --no-fail-fast $(RUSTBUILD_FLAGS) $(RUSTBUILD_TEST_FLAGS); echo $$?; } | tee -a $(TEST_LOG) - test -f $(TEST_LOG) + # test that the log has at least 1 pass, to prevent e.g. #57709 + grep -l "^test .* \.\.\. ok$$" $(TEST_LOG) echo "==== Debian rustc test report ===="; \ echo "Specific test failures:"; \ $(FAILED_TESTS); \ diff -Nru rustc-1.32.0+dfsg1/debian/upstream-tarball-unsuspicious.txt rustc-1.32.0+dfsg1/debian/upstream-tarball-unsuspicious.txt --- rustc-1.32.0+dfsg1/debian/upstream-tarball-unsuspicious.txt 2019-01-27 21:51:57.000000000 -0800 +++ rustc-1.32.0+dfsg1/debian/upstream-tarball-unsuspicious.txt 2019-02-05 21:16:33.000000000 -0800 @@ -45,14 +45,41 @@ vendor/winapi-*/src/winnt.rs vendor/winapi/src/lib.rs +# False-positive, audit-vendor-source automatically flags JS/C files +src/ci/docker/scripts/qemu-bare-bones-addentropy.c +src/dlmalloc/src/dlmalloc.c +src/doc/book/*/ferris.js +src/doc/book/ferris.js +src/etc/wasm32-shim.js +src/grammar/parser-lalr-main.c +src/libbacktrace/*.c +src/libcompiler_builtins/compiler-rt/lib/BlocksRuntime/*.c +src/libcompiler_builtins/compiler-rt/lib/builtins/*.c +src/libcompiler_builtins/compiler-rt/lib/builtins/*/*.c +src/librustdoc/html/static/*.js +src/test/auxiliary/rust_test_helpers.c +src/test/run-make/wasm-*/*.js +src/test/run-make-fulldeps/*.c +src/test/run-make-fulldeps/*/*.c +src/test/rustdoc-js/*.js +src/tools/rustdoc-js/tester.js + # Embedded libraries, justified in README.source # None atm # False-positive, misc +src/etc/platform-intrinsics/*/*.json +src/etc/platform-intrinsics/*.json +src/libcompiler_builtins/compiler-rt/.arcconfig +src/libcompiler_builtins/*.json src/stdsimd/.travis.yml -vendor/num/ci/deploy.enc -vendor/elasticlunr-rs/src/lang/*.rs +src/test/run-make-fulldeps/target-specs/*.json +src/test/run-make-fulldeps/libtest-json/output.json +vendor/clap/.mention-bot vendor/cloudabi/cloudabi.rs +vendor/elasticlunr-rs/src/lang/*.rs +vendor/markup5ever/data/entities.json +vendor/num/ci/deploy.enc # False-positive, hand-editable small image src/etc/installer/gfx/ @@ -94,9 +121,12 @@ vendor/elasticlunr-rs/tests/data/tr.in.txt vendor/flate2/tests/*.gz vendor/idna/tests/IdnaTest.txt +vendor/idna/tests/punycode_tests.json vendor/html5ever/data/bench/*.html vendor/html5ever/html5lib-tests/*/*.dat vendor/html5ever/html5lib-tests/*/*.test +vendor/minifier/tests/files/test.json +vendor/pest/benches/data.json vendor/pretty_assertions/src/format_changeset.rs vendor/regex/src/testdata/basic.dat vendor/regex/tests/crates_regex.rs @@ -107,7 +137,7 @@ vendor/tar/tests/archives/*.tar vendor/toml/tests/*/*.toml vendor/toml/tests/*/*.json -vendor/pest/benches/data.json +vendor/url/tests/*.json vendor/yaml-rust/tests/specexamples.rs.inc # Compromise, ideally we'd autogenerate these