--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: unblock: rustc/1.32.0+dfsg1-3
- From: Ximin Luo <infinity0@debian.org>
- Date: Mon, 18 Mar 2019 19:24:19 -0700
- Message-id: <155296225984.9263.8916144427732777477.reportbug@localhost>
Package: release.debian.org
Severity: normal
User: release.debian.org@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 <infinity0@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 <infinity0@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 <dl@cs.oswego.edu>
+License: CC0-1.0
+
Files: vendor/ammonia/*
Copyright: 2015-2018 Michael Howell <michael@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
--- End Message ---