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

Reply via email to