Package: release.debian.org Severity: normal Tags: buster User: release.debian....@packages.debian.org Usertags: pu X-Debbugs-Cc: pkg-rust-maintain...@alioth-lists.debian.net, team+pkg-mozi...@tracker.debian.org
Hi, This update to cargo (with a renamed name to avoid disruption in the rust/cargo ecosystem) is needed by the firefox / thunderbird updates. It's a backport of the version in bullseye, which is enough for our purposes. I've had to embed a newer version of libgit2, just like we've done in previous cargo updates for buster and stretch. This time I've used the tarball from a debian upload so that it's dfsg and easy to verify. I've used this to build and test firefox ESR 91.3 on amd64. Cheers, Emilio
diff -Nru cargo-0.47.0/debian/cargo.bash-completion cargo-mozilla-0.47.0/debian/cargo.bash-completion --- cargo-0.47.0/debian/cargo.bash-completion 2019-01-24 05:34:05.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/cargo.bash-completion 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -src/etc/cargo.bashcomp.sh cargo diff -Nru cargo-0.47.0/debian/cargo.dirs cargo-mozilla-0.47.0/debian/cargo.dirs --- cargo-0.47.0/debian/cargo.dirs 2018-11-04 12:47:23.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/cargo.dirs 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -usr/bin diff -Nru cargo-0.47.0/debian/cargo-doc.docs cargo-mozilla-0.47.0/debian/cargo-doc.docs --- cargo-0.47.0/debian/cargo-doc.docs 2018-11-04 12:47:23.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/cargo-doc.docs 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -target/doc diff -Nru cargo-0.47.0/debian/cargo.manpages cargo-mozilla-0.47.0/debian/cargo.manpages --- cargo-0.47.0/debian/cargo.manpages 2018-11-04 12:47:23.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/cargo.manpages 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -src/etc/man/cargo-*.1 -src/etc/man/cargo.1 diff -Nru cargo-0.47.0/debian/cargo-mozilla.bash-completion cargo-mozilla-0.47.0/debian/cargo-mozilla.bash-completion --- cargo-0.47.0/debian/cargo-mozilla.bash-completion 1970-01-01 01:00:00.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/cargo-mozilla.bash-completion 2019-01-24 05:34:05.000000000 +0100 @@ -0,0 +1 @@ +src/etc/cargo.bashcomp.sh cargo diff -Nru cargo-0.47.0/debian/cargo-mozilla.dirs cargo-mozilla-0.47.0/debian/cargo-mozilla.dirs --- cargo-0.47.0/debian/cargo-mozilla.dirs 1970-01-01 01:00:00.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/cargo-mozilla.dirs 2018-11-04 12:47:23.000000000 +0100 @@ -0,0 +1 @@ +usr/bin diff -Nru cargo-0.47.0/debian/cargo-mozilla-doc.docs cargo-mozilla-0.47.0/debian/cargo-mozilla-doc.docs --- cargo-0.47.0/debian/cargo-mozilla-doc.docs 1970-01-01 01:00:00.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/cargo-mozilla-doc.docs 2018-11-04 12:47:23.000000000 +0100 @@ -0,0 +1 @@ +target/doc diff -Nru cargo-0.47.0/debian/cargo-mozilla.manpages cargo-mozilla-0.47.0/debian/cargo-mozilla.manpages --- cargo-0.47.0/debian/cargo-mozilla.manpages 1970-01-01 01:00:00.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/cargo-mozilla.manpages 2018-11-04 12:47:23.000000000 +0100 @@ -0,0 +1,2 @@ +src/etc/man/cargo-*.1 +src/etc/man/cargo.1 diff -Nru cargo-0.47.0/debian/changelog cargo-mozilla-0.47.0/debian/changelog --- cargo-0.47.0/debian/changelog 2020-12-08 02:43:58.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/changelog 2021-12-14 13:46:50.000000000 +0100 @@ -1,3 +1,16 @@ +cargo-mozilla (0.47.0-3~deb10u1) buster; urgency=medium + + * Non-maintainer upload. + * Backport to buster. + * Vendor libgit2 1.0.1, the system one is too old. + * Build-dep on rustc-mozilla. + * Build-dep on libpcre3-dev, for libgit2. + * Fix tests that now have execution time in the output. + * Rename to cargo-mozilla to avoid disruption in the rustc/cargo ecosystem, + and don't build the doc package. + + -- Emilio Pozuelo Monfort <po...@debian.org> Tue, 14 Dec 2021 13:46:50 +0100 + cargo (0.47.0-3) unstable; urgency=medium * Disable close_output test for now, it is flaky. This is a test problem not diff -Nru cargo-0.47.0/debian/control cargo-mozilla-0.47.0/debian/control --- cargo-0.47.0/debian/control 2020-12-06 13:32:13.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/control 2021-12-14 13:46:50.000000000 +0100 @@ -1,4 +1,4 @@ -Source: cargo +Source: cargo-mozilla Section: devel Maintainer: Rust Maintainers <pkg-rust-maintain...@alioth-lists.debian.net> Uploaders: Luca Bruno <lu...@debian.org>, @@ -10,16 +10,17 @@ Build-Depends: debhelper (>= 12~), dpkg-dev (>= 1.17.14), cargo:native (>= 0.17.0), - rustc:native (>= 1.16), - libstd-rust-dev (>= 1.16), + rustc-mozilla:native (>= 1.16), + libstd-rust-mozilla-dev (>= 1.16), pkg-config, cmake, bash-completion, python3:native, libcurl4-gnutls-dev | libcurl4-openssl-dev, libssh2-1-dev, - libgit2-dev (>= 1), +# libgit2-dev (>= 1), libhttp-parser-dev, + libpcre3-dev, libssl-dev, zlib1g-dev, git <!nocheck> @@ -28,7 +29,7 @@ Vcs-Git: https://salsa.debian.org/rust-team/cargo.git Vcs-Browser: https://salsa.debian.org/rust-team/cargo -Package: cargo +Package: cargo-mozilla Architecture: any Multi-Arch: allowed Depends: ${shlibs:Depends}, ${misc:Depends}, @@ -36,6 +37,9 @@ binutils, gcc | clang | c-compiler Suggests: cargo-doc, python3 +Conflicts: cargo +Replaces: cargo +Provides: cargo (= ${binary:Version}) Description: Rust package manager Cargo is a tool that allows Rust projects to declare their various dependencies, and ensure that you'll always get a repeatable build. @@ -50,25 +54,25 @@ Cargo downloads your Rust project’s dependencies and compiles your project. -Package: cargo-doc -Section: doc -Architecture: all -Build-Profiles: <!nodoc> -Depends: ${misc:Depends} -Description: Rust package manager, documentation - Cargo is a tool that allows Rust projects to declare their various - dependencies, and ensure that you'll always get a repeatable build. - . - To accomplish this goal, Cargo does four things: - * Introduces two metadata files with various bits of project information. - * Fetches and builds your project's dependencies. - * Invokes rustc or another build tool with the correct parameters to build - your project. - * Introduces conventions, making working with Rust projects easier. - . - Cargo downloads your Rust project’s dependencies and compiles your - project. - . - This package contains the documentation. +#Package: cargo-mozilla-doc +#Section: doc +#Architecture: all +#Build-Profiles: <!nodoc> +#Depends: ${misc:Depends} +#Description: Rust package manager, documentation +# Cargo is a tool that allows Rust projects to declare their various +# dependencies, and ensure that you'll always get a repeatable build. +# . +# To accomplish this goal, Cargo does four things: +# * Introduces two metadata files with various bits of project information. +# * Fetches and builds your project's dependencies. +# * Invokes rustc or another build tool with the correct parameters to build +# your project. +# * Introduces conventions, making working with Rust projects easier. +# . +# Cargo downloads your Rust project’s dependencies and compiles your +# project. +# . +# This package contains the documentation. # TODO: add a cargo-src package Binary files /tmp/8V2EEsxbJI/cargo-0.47.0/debian/libgit2_1.0.1+dfsg.1.orig.tar.xz and /tmp/AKgYiopGR_/cargo-mozilla-0.47.0/debian/libgit2_1.0.1+dfsg.1.orig.tar.xz differ diff -Nru cargo-0.47.0/debian/patches/accept-test-execution-time.patch cargo-mozilla-0.47.0/debian/patches/accept-test-execution-time.patch --- cargo-0.47.0/debian/patches/accept-test-execution-time.patch 1970-01-01 01:00:00.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/patches/accept-test-execution-time.patch 2021-12-03 13:17:58.000000000 +0100 @@ -0,0 +1,128 @@ +From 62ddaf343ef261a4da457f6334874d1413b64783 Mon Sep 17 00:00:00 2001 +From: Jakob Schikowski <jakob.schikow...@gmx.de> +Date: Mon, 23 Nov 2020 00:25:46 +0100 +Subject: [PATCH] Relaxes expectation of `cargo test` tests to accept test + execution time + +--- + tests/testsuite/test.rs | 26 +++++++++++++------------- + 1 file changed, 13 insertions(+), 13 deletions(-) + +diff --git a/tests/testsuite/test.rs b/tests/testsuite/test.rs +index 4ba9a4db833..55345c216c8 100644 +--- a/tests/testsuite/test.rs ++++ b/tests/testsuite/test.rs +@@ -175,7 +175,7 @@ fn cargo_test_quiet_with_harness() { + " + running 1 test + . +-test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ++test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..] + + ", + ) +@@ -1552,7 +1552,7 @@ fn test_filtered_excludes_compiling_examples() { + running 1 test + test tests::foo ... ok + +-test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ++test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..] + + ", + ) +@@ -3724,13 +3724,13 @@ pub fn foo() -> u8 { 1 } + running 1 test + test tests::it_works ... ok + +-test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ++test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..] + + + running 1 test + test src/lib.rs - foo (line 1) ... ok + +-test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ++test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..] + \n", + ) + .run(); +@@ -3746,7 +3746,7 @@ test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out + running 1 test + test tests::it_works ... ok + +-test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ++test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..] + \n", + ) + .run(); +@@ -3763,7 +3763,7 @@ test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out + running 1 test + test src/lib.rs - foo (line 1) ... ok + +-test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ++test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..] + + ", + ) +@@ -3877,14 +3877,14 @@ fn cargo_test_doctest_xcompile_ignores() { + #[cfg(not(target_arch = "x86_64"))] + p.cargo("test") + .with_stdout_contains( +- "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out", ++ "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..]", + ) + .run(); + #[cfg(target_arch = "x86_64")] + p.cargo("test") + .with_status(101) + .with_stdout_contains( +- "test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out", ++ "test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out[..]", + ) + .run(); + +@@ -3892,7 +3892,7 @@ fn cargo_test_doctest_xcompile_ignores() { + p.cargo("test -Zdoctest-xcompile") + .masquerade_as_nightly_cargo() + .with_stdout_contains( +- "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out", ++ "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..]", + ) + .run(); + +@@ -3900,7 +3900,7 @@ fn cargo_test_doctest_xcompile_ignores() { + p.cargo("test -Zdoctest-xcompile") + .masquerade_as_nightly_cargo() + .with_stdout_contains( +- "test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out", ++ "test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out[..]", + ) + .run(); + } +@@ -3940,7 +3940,7 @@ fn cargo_test_doctest_xcompile() { + )) + .masquerade_as_nightly_cargo() + .with_stdout_contains( +- "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out", ++ "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..]", + ) + .run(); + } +@@ -4020,7 +4020,7 @@ fn cargo_test_doctest_xcompile_runner() { + )) + .masquerade_as_nightly_cargo() + .with_stdout_contains( +- "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out", ++ "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..]", + ) + .with_stderr_contains("this is a runner") + .run(); +@@ -4064,7 +4064,7 @@ fn cargo_test_doctest_xcompile_no_runner() { + )) + .masquerade_as_nightly_cargo() + .with_stdout_contains( +- "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out", ++ "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..]", + ) + .run(); + } diff -Nru cargo-0.47.0/debian/patches/series cargo-mozilla-0.47.0/debian/patches/series --- cargo-0.47.0/debian/patches/series 2020-12-08 02:39:33.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/patches/series 2021-12-03 13:17:58.000000000 +0100 @@ -2,3 +2,5 @@ 1005_relax_deprecated_diagnostic_message_check.patch 2002_disable-net-tests.patch 2003_disable_close_output.patch +use-vendored-libgit.patch +accept-test-execution-time.patch diff -Nru cargo-0.47.0/debian/patches/use-vendored-libgit.patch cargo-mozilla-0.47.0/debian/patches/use-vendored-libgit.patch --- cargo-0.47.0/debian/patches/use-vendored-libgit.patch 1970-01-01 01:00:00.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/patches/use-vendored-libgit.patch 2021-12-03 13:17:58.000000000 +0100 @@ -0,0 +1,54 @@ +Author: Emilio Pozuelo Monfort <po...@debian.org> + +Use vendored libgit + +--- a/vendor/libgit2-sys/build.rs ++++ b/vendor/libgit2-sys/build.rs +@@ -9,7 +9,7 @@ fn main() { + let zlib_ng_compat = env::var("CARGO_FEATURE_ZLIB_NG_COMPAT").is_ok(); + + // To use zlib-ng in zlib-compat mode, we have to build libgit2 ourselves. +- if !zlib_ng_compat { ++ if false { + let mut cfg = pkg_config::Config::new(); + if let Ok(lib) = cfg.probe("libgit2") { + for include in &lib.include_paths { +@@ -51,8 +51,8 @@ fn main() { + add_c_files(&mut cfg, "libgit2/src/streams"); + + // Always use bundled http-parser for now +- cfg.include("libgit2/deps/http-parser") +- .file("libgit2/deps/http-parser/http_parser.c"); ++ //cfg.include("libgit2/deps/http-parser") ++ // .file("libgit2/deps/http-parser/http_parser.c"); + + // Use the included PCRE regex backend. + // +@@ -61,7 +61,7 @@ fn main() { + // reasons, just define on the command-line for everything. Perhaps there + // is some way with cc to have different instructions per-file? + cfg.define("GIT_REGEX_BUILTIN", "1") +- .include("libgit2/deps/pcre") ++ //.include("libgit2/deps/pcre") + .define("HAVE_STDINT_H", Some("1")) + .define("HAVE_MEMMOVE", Some("1")) + .define("NO_RECURSE", Some("1")) +@@ -75,7 +75,8 @@ fn main() { + .define("MAX_NAME_COUNT", Some("10000")); + // "no symbols" warning on pcre_string_utils.c is because it is only used + // when when COMPILE_PCRE8 is not defined, which is the default. +- add_c_files(&mut cfg, "libgit2/deps/pcre"); ++ //add_c_files(&mut cfg, "libgit2/deps/pcre"); ++ println!("cargo:rustc-link-lib=pcre"); + + cfg.file("libgit2/src/allocators/stdalloc.c"); + +@@ -168,6 +169,8 @@ fn main() { + + println!("cargo:root={}", dst.display()); + ++ println!("cargo:rustc-link-lib=http_parser"); ++ + if target.contains("windows") { + println!("cargo:rustc-link-lib=winhttp"); + println!("cargo:rustc-link-lib=rpcrt4"); diff -Nru cargo-0.47.0/debian/rules cargo-mozilla-0.47.0/debian/rules --- cargo-0.47.0/debian/rules 2020-12-08 01:27:26.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/rules 2021-12-14 13:46:50.000000000 +0100 @@ -36,11 +36,15 @@ override_dh_auto_configure: $(CARGO) prepare-debian $(CURDIR)/vendor + set -e; \ + tar xf debian/libgit2_1.0.1+dfsg.1.orig.tar.xz; \ + mv libgit2-1.0.1 vendor/libgit2-sys/libgit2 + override_dh_auto_build-arch: $(CARGO) build -override_dh_auto_build-indep: - $(CARGO) doc +#override_dh_auto_build-indep: +# $(CARGO) doc override_dh_auto_test-arch: CFG_DISABLE_CROSS_TESTS=1 $(CARGO) test $(CARGO_TEST_FLAGS) @@ -49,11 +53,13 @@ # no arch-indep tests override_dh_auto_install: - DESTDIR=$(CURDIR)/debian/cargo $(CARGO) install + DESTDIR=$(CURDIR)/debian/cargo-mozilla $(CARGO) install override_dh_auto_clean: $(CARGO) clean + -$(RM) -rf vendor/libgit2-sys/libgit2 + override_dh_clean: # Upstream contains a lot of these dh_clean -XCargo.toml.orig diff -Nru cargo-0.47.0/debian/source/include-binaries cargo-mozilla-0.47.0/debian/source/include-binaries --- cargo-0.47.0/debian/source/include-binaries 1970-01-01 01:00:00.000000000 +0100 +++ cargo-mozilla-0.47.0/debian/source/include-binaries 2021-12-03 13:17:58.000000000 +0100 @@ -0,0 +1 @@ +debian/libgit2_1.0.1+dfsg.1.orig.tar.xz