From b6541ea3807ccad597d4890b1a1eeb335f1268ac Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 14:47:57 +0200 Subject: Adding debian version 0.70.1+ds1-2. Signed-off-by: Daniel Baumann --- debian/README.source | 48 + debian/bin/cargo | 257 ++++++ debian/cargo-doc.docs | 1 + debian/cargo.bash-completion | 1 + debian/cargo.dirs | 1 + debian/cargo.manpages | 2 + debian/changelog | 958 ++++++++++++++++++++ debian/compat | 1 + debian/control | 77 ++ debian/copyright | 997 +++++++++++++++++++++ debian/debcargo-conf.patch | 114 +++ debian/gbp.conf | 15 + debian/install | 3 + debian/lintian-to-copyright.sh | 5 + debian/make_orig_multi-pre-vendor.sh | 16 + debian/make_orig_multi.sh | 71 ++ debian/missing-sources/prism.js | 599 +++++++++++++ ...3-tests-add-missing-cross-disabled-checks.patch | 43 + ...t-loose-overly-matches-for-git-cli-output.patch | 43 + .../1000-riscv64-skip-split-debuginfo-test.patch | 19 + debian/patches/2000-fix-test-stderr.patch | 12 + debian/patches/2002_disable-net-tests.patch | 615 +++++++++++++ ...3-workaround-qemu-vfork-command-not-found.patch | 19 + debian/patches/2200-workaround-x32-test.patch | 15 + debian/patches/README | 3 + debian/patches/disable-fs-specific-test.patch | 13 + debian/patches/series | 11 + debian/patches/update-libgit2.patch | 37 + debian/rules | 62 ++ debian/scripts/audit-vendor-source | 40 + debian/scripts/debian-cargo-vendor | 167 ++++ debian/scripts/guess-crate-copyright | 45 + debian/scripts/prune-checksums | 47 + debian/source/format | 1 + debian/source/lintian-overrides | 5 + debian/tests/control | 4 + debian/tests/self-build | 6 + debian/tests/self-build.config.toml | 5 + debian/vendor-tarball-unsuspicious.txt | 202 +++++ debian/watch | 4 + 40 files changed, 4584 insertions(+) create mode 100644 debian/README.source create mode 100755 debian/bin/cargo create mode 100644 debian/cargo-doc.docs create mode 100644 debian/cargo.bash-completion create mode 100644 debian/cargo.dirs create mode 100644 debian/cargo.manpages create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/debcargo-conf.patch create mode 100644 debian/gbp.conf create mode 100644 debian/install create mode 100755 debian/lintian-to-copyright.sh create mode 100755 debian/make_orig_multi-pre-vendor.sh create mode 100755 debian/make_orig_multi.sh create mode 100644 debian/missing-sources/prism.js create mode 100644 debian/patches/0003-tests-add-missing-cross-disabled-checks.patch create mode 100644 debian/patches/0004-test-loose-overly-matches-for-git-cli-output.patch create mode 100644 debian/patches/1000-riscv64-skip-split-debuginfo-test.patch create mode 100644 debian/patches/2000-fix-test-stderr.patch create mode 100644 debian/patches/2002_disable-net-tests.patch create mode 100644 debian/patches/2003-workaround-qemu-vfork-command-not-found.patch create mode 100644 debian/patches/2200-workaround-x32-test.patch create mode 100644 debian/patches/README create mode 100644 debian/patches/disable-fs-specific-test.patch create mode 100644 debian/patches/series create mode 100644 debian/patches/update-libgit2.patch create mode 100755 debian/rules create mode 100755 debian/scripts/audit-vendor-source create mode 100755 debian/scripts/debian-cargo-vendor create mode 100755 debian/scripts/guess-crate-copyright create mode 100755 debian/scripts/prune-checksums create mode 100644 debian/source/format create mode 100644 debian/source/lintian-overrides create mode 100644 debian/tests/control create mode 100755 debian/tests/self-build create mode 100644 debian/tests/self-build.config.toml create mode 100644 debian/vendor-tarball-unsuspicious.txt create mode 100644 debian/watch diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..3e552c3 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,48 @@ +Updating the package +==================== + +0. Update debcargo-conf.git so that cargo's dependencies are up-to-date. This + means less stuff will have to be patched (in debian/debcargo-conf.patch) in + the next step. This might take a while, ask other people for help if needed. +1. Empty d/make_orig_multi-pre-vendor.sh, then run d/make_orig_multi.sh . + + If cargo-vendor tries to use too-new crates that debcargo-conf doesn't have + patches for yet, downgrade them by tweaking d/make_orig_multi-pre-vendor.sh + + e.g. cargo update -p tempfile --precise 3.1.0 + + You will need to have cargo-lock available + $ cargo install cargo-lock --features=cli + +2. Verify the -vendor component tarball to make sure it looks good. + If not, edit d/make_orig_multi.sh and the surrounding files (such as patches + and exclude files) and repeat the above until it looks good. +3. $ git fetch upstream + You might have to first run: + $ git remote add upstream https://github.com/rust-lang/cargo +4. $ git checkout debian/experimental + $ gbp import-orig ../cargo_.orig.tar.gz + If you get errors, check the extra default flags in d/gbp.conf +5. Check that no old versions remain in vendor/. If there are, then your git + repo was messed up when you ran (4). Rewind the debian/sid, upstream, and + pristine-tar branches, delete the upstream/ tag; this reverts step + (4). Clean up your git repo, and then try (4) again. +6. Update d/patches and the rest of the packaging, as normal. + +General info +============ + +Cargo depends on a few hundred other crates (which themselves need cargo to +build). To avoid an insane bootstrapping loop, this package therefore embeds +all dependency crates. This is made convenient by the "vendor" subcommand. + +(The alternative method, that expresses the true upstream dependencies more +faithfully, can be found in the "rust-cargo" crate, which is packaged just like +any other Debian Rust package. That is used as a library by the Debian packages +of various Rust ecosystem tools that build on top of cargo, such as our very +own debcargo. By contrast, this package is used as the actual executable +package manager, with a smaller bootstrapping requirement.) + +As such, the original source is composed by two tarballs: + * cargo source + * dependencies crates (under vendor/), stripped of unused embedded C libraries diff --git a/debian/bin/cargo b/debian/bin/cargo new file mode 100755 index 0000000..5077234 --- /dev/null +++ b/debian/bin/cargo @@ -0,0 +1,257 @@ +#!/usr/bin/python3 +""" +Wrapper around cargo to have it build using Debian settings. + +Usage: + export PATH=/path/to/dir/of/this/script:$PATH + export CARGO_HOME=debian/cargo_home + cargo prepare-debian /path/to/local/registry [--link-from-system] + cargo build + cargo test + cargo install + cargo clean + [rm -rf /path/to/local/registry] + +The "prepare-debian" subcommand writes a config file to $CARGO_HOME that makes +the subsequent invocations use our Debian flags. The "--link-from-system" flag +is optional; if you use it we will create /path/to/local/registry and symlink +the contents of /usr/share/cargo/registry into it. You are then responsible for +cleaning it up afterwards (a simple `rm -rf` should do). + +See cargo:d/rules and dh-cargo:cargo.pm for more examples. + +Make sure you add "Build-Depends: python3:native" if you use this directly. +If using this only indirectly via dh-cargo, then you only need "Build-Depends: +dh-cargo"; this is a general principle when declaring dependencies. + +If CARGO_HOME doesn't end with debian/cargo_home, then this script does nothing +and passes through directly to cargo. + +Otherwise, you *must* set the following environment variables: + +- DEB_CARGO_CRATE + ${crate}_${version} of whatever you're building. + +- CFLAGS CXXFLAGS CPPFLAGS LDFLAGS [*] +- DEB_HOST_GNU_TYPE DEB_HOST_RUST_TYPE [*] + +- (required only for `cargo install`) DESTDIR + DESTDIR to install build artifacts under. If running via dh-cargo, this will + be set automatically by debhelper, see `dh_auto_install` for details. + +- (optional) DEB_BUILD_OPTIONS DEB_BUILD_PROFILES + +- (optional) DEB_CARGO_INSTALL_PREFIX + Prefix to install build artifacts under. Default: /usr. Sometimes you might + want to change this to /usr/lib/cargo if the binary clashes with something + else, and then symlink it into /usr/bin under an alternative name. + +- (optional) DEB_CARGO_CRATE_IN_REGISTRY + Whether the crate is in the local-registry (1) or cwd (0, empty, default). + +For the envvars marked [*], it is easiest to set these in your d/rules via: + + include /usr/share/dpkg/architecture.mk + include /usr/share/dpkg/buildflags.mk + include /usr/share/rustc/architecture.mk + export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE +""" + +import os +import os.path +import shutil +import subprocess +import sys + +FLAGS = "CFLAGS CXXFLAGS CPPFLAGS LDFLAGS" +ARCHES = "DEB_HOST_GNU_TYPE DEB_HOST_RUST_TYPE" +SYSTEM_REGISTRY = "/usr/share/cargo/registry" + +def log(*args): + print("debian cargo wrapper:", *args, file=sys.stderr, flush=True) + +def logrun(*args, **kwargs): + log("running subprocess", args, kwargs) + return subprocess.run(*args, **kwargs) + +def sourcepath(p=None): + return os.path.join(os.getcwd(), p) if p else os.getcwd() + +def prepare_debian(cargo_home, registry, cratespec, host_gnu_type, ldflags, link_from_system, extra_rustflags): + registry_path = sourcepath(registry) + if link_from_system: + log("linking %s/* into %s/" % (SYSTEM_REGISTRY, registry_path)) + os.makedirs(registry_path, exist_ok=True) + crates = os.listdir(SYSTEM_REGISTRY) if os.path.isdir(SYSTEM_REGISTRY) else [] + for c in crates: + target = os.path.join(registry_path, c) + if not os.path.islink(target): + os.symlink(os.path.join(SYSTEM_REGISTRY, c), target) + elif not os.path.exists(registry_path): + raise ValueError("non-existent registry: %s" % registry) + + rustflags = "-C debuginfo=2 --cap-lints warn".split() + rustflags.extend(["-C", "linker=%s-gcc" % host_gnu_type]) + for f in ldflags: + rustflags.extend(["-C", "link-arg=%s" % f]) + if link_from_system: + rustflags.extend([ + # Note that this order is important! Rust evaluates these options in + # priority of reverse order, so if the second option were in front, + # it would never be used, because any paths in registry_path are + # also in sourcepath(). + "--remap-path-prefix", "%s=%s/%s" % + (sourcepath(), SYSTEM_REGISTRY, cratespec.replace("_", "-")), + "--remap-path-prefix", "%s=%s" % (registry_path, SYSTEM_REGISTRY), + ]) + rustflags.extend(extra_rustflags.split()) + + # TODO: we cannot enable this until dh_shlibdeps works correctly; atm we get: + # dpkg-shlibdeps: warning: can't extract name and version from library name 'libstd-XXXXXXXX.so' + # and the resulting cargo.deb does not depend on the correct version of libstd-rust-1.XX + # We probably need to add override_dh_makeshlibs to d/rules of rustc + #rustflags.extend(["-C", "prefer-dynamic"]) + + os.makedirs(cargo_home, exist_ok=True) + with open("%s/config" % cargo_home, "w") as fp: + fp.write("""[source.crates-io] +replace-with = "dh-cargo-registry" + +[source.dh-cargo-registry] +directory = "{0}" + +[build] +rustflags = {1} +""".format(registry_path, repr(rustflags))) + + return 0 + +def install(destdir, cratespec, host_rust_type, crate_in_registry, install_prefix, *args): + crate, version = cratespec.rsplit("_", 1) + log("installing into destdir '%s' prefix '%s'" % (destdir, install_prefix)) + install_target = destdir + install_prefix + logrun(["env", "RUST_BACKTRACE=1", + # set CARGO_TARGET_DIR so build products are saved in target/ + # normally `cargo install` deletes them when it exits + "CARGO_TARGET_DIR=" + sourcepath("target"), + "/usr/bin/cargo"] + list(args) + + ([crate, "--vers", version] if crate_in_registry else ["--path", sourcepath()]) + + ["--root", install_target], check=True) + logrun(["rm", "-f", "%s/.crates.toml" % install_target]) + logrun(["rm", "-f", "%s/.crates2.json" % install_target]) + + # if there was a custom build output, symlink it to debian/cargo_out_dir + # hopefully cargo will provide a better solution in future https://github.com/rust-lang/cargo/issues/5457 + r = logrun('''ls -td "target/%s/release/build/%s"-*/out 2>/dev/null | head -n1''' + % (host_rust_type, crate), shell=True, stdout=subprocess.PIPE).stdout + r = r.decode("utf-8").rstrip() + if r: + logrun(["ln", "-sfT", "../%s" % r, "debian/cargo_out_dir"], check=True) + return 0 + +def main(*args): + cargo_home = os.getenv("CARGO_HOME", "") + if not cargo_home.endswith("/debian/cargo_home"): + os.execv("/usr/bin/cargo", ["cargo"] + list(args)) + + if any(f not in os.environ for f in FLAGS.split()): + raise ValueError("not all of %s set; did you call dpkg-buildflags?" % FLAGS) + + if any(f not in os.environ for f in ARCHES.split()): + raise ValueError("not all of %s set; did you include architecture.mk?" % ARCHES) + + build_options = os.getenv("DEB_BUILD_OPTIONS", "").split() + build_profiles = os.getenv("DEB_BUILD_PROFILES", "").split() + + parallel = [] + lto = 0 + for o in build_options: + if o.startswith("parallel="): + parallel = ["-j" + o[9:]] + elif o.startswith("optimize="): + opt_arg = o[9:] + for arg in opt_arg.split(","): + if opt_arg == "-lto": + lto = -1 + elif opt_arg == "+lto": + lto = 1 + else: + log(f"WARNING: unhandled optimization flag: {opt_arg}") + + nodoc = "nodoc" in build_options or "nodoc" in build_profiles + nocheck = "nocheck" in build_options or "nocheck" in build_profiles + + # note this is actually the "build target" type, see rustc's README.Debian + # for full details of the messed-up terminology here + host_rust_type = os.getenv("DEB_HOST_RUST_TYPE", "") + host_gnu_type = os.getenv("DEB_HOST_GNU_TYPE", "") + + log("options, profiles, parallel, lto:", build_options, build_profiles, parallel, lto) + log("rust_type, gnu_type:", ", ".join([host_rust_type, host_gnu_type])) + + if "RUSTFLAGS" in os.environ: + # see https://github.com/rust-lang/cargo/issues/6338 for explanation on why we must do this + log("unsetting RUSTFLAGS and assuming it will be (or already was) added to $CARGO_HOME/config") + extra_rustflags = os.environ["RUSTFLAGS"] + del os.environ["RUSTFLAGS"] + else: + extra_rustflags = "" + + if args[0] == "prepare-debian": + registry = args[1] + link_from_system = False + if len(args) > 2 and args[2] == "--link-from-system": + link_from_system = True + return prepare_debian(cargo_home, registry, + os.environ["DEB_CARGO_CRATE"], host_gnu_type, + os.getenv("LDFLAGS", "").split(), link_from_system, extra_rustflags) + + newargs = [] + subcmd = None + for a in args: + if (subcmd is None) and (a in ("build", "rustc", "doc", "test", "bench", "install")): + subcmd = a + newargs.extend(["-Zavoid-dev-deps", a, "--verbose", "--verbose"] + + parallel + ["--target", host_rust_type]) + elif (subcmd is None) and (a == "clean"): + subcmd = a + newargs.extend([a, "--verbose", "--verbose"]) + else: + newargs.append(a) + + if subcmd is not None and "--verbose" in newargs and "--quiet" in newargs: + newargs.remove("--quiet") + + if nodoc and subcmd == "doc": + return 0 + if nocheck and subcmd in ("test", "bench"): + return 0 + + if lto == 1: + newargs.append("--config profile.release.lto = \"thin\"") + elif lto == -1: + newargs.append("--config profile.release.lto = false") + + if subcmd == "clean": + logrun(["env", "RUST_BACKTRACE=1", "/usr/bin/cargo"] + list(newargs), check=True) + if os.path.exists(cargo_home): + shutil.rmtree(cargo_home) + return 0 + + cargo_config = "%s/config" % cargo_home + if not os.path.exists(cargo_config): + raise ValueError("does not exist: %s, did you run `cargo prepare-debian `?" % cargo_config) + + if subcmd == "install": + return install(os.getenv("DESTDIR", ""), + os.environ["DEB_CARGO_CRATE"], + host_rust_type, + os.getenv("DEB_CARGO_CRATE_IN_REGISTRY", "") == "1", + os.getenv("DEB_CARGO_INSTALL_PREFIX", "/usr"), + *newargs) + else: + return logrun(["env", "RUST_BACKTRACE=1", "/usr/bin/cargo"] + list(newargs)).returncode + +if __name__ == "__main__": + sys.exit(main(*sys.argv[1:])) diff --git a/debian/cargo-doc.docs b/debian/cargo-doc.docs new file mode 100644 index 0000000..102623b --- /dev/null +++ b/debian/cargo-doc.docs @@ -0,0 +1 @@ +target/*/doc diff --git a/debian/cargo.bash-completion b/debian/cargo.bash-completion new file mode 100644 index 0000000..db46459 --- /dev/null +++ b/debian/cargo.bash-completion @@ -0,0 +1 @@ +src/etc/cargo.bashcomp.sh cargo diff --git a/debian/cargo.dirs b/debian/cargo.dirs new file mode 100644 index 0000000..e772481 --- /dev/null +++ b/debian/cargo.dirs @@ -0,0 +1 @@ +usr/bin diff --git a/debian/cargo.manpages b/debian/cargo.manpages new file mode 100644 index 0000000..0b2e6bd --- /dev/null +++ b/debian/cargo.manpages @@ -0,0 +1,2 @@ +src/etc/man/cargo-*.1 +src/etc/man/cargo.1 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..30a4cf8 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,958 @@ +cargo (0.70.1+ds1-2) unstable; urgency=medium + + [ Fabian Gruenbichler ] + * riscv64: skip test for split debug info (support disabled in rustc) + + -- Fabian Grünbichler Sat, 30 Dec 2023 15:00:37 +0100 + +cargo (0.70.1+ds1-1) unstable; urgency=medium + + * Upload to unstable + + -- Fabian Grünbichler Sat, 16 Dec 2023 11:03:47 +0100 + +cargo (0.70.1+ds1-1~exp1) experimental; urgency=medium + + * update libgit2 to 1.7.1 + + -- Fabian Grünbichler Sat, 16 Dec 2023 10:46:19 +0100 + +cargo (0.70.1-1~exp1) experimental; urgency=medium + + * New upstream release + * Fix cargo-doc contents + * Update lintian overrides + * Add myself to Uploaders + * Disable flaky publish tests + + -- Fabian Grünbichler Tue, 24 Oct 2023 11:41:25 +0200 + +cargo (0.66.0+ds2-2) unstable; urgency=medium + + * disable more flaky publish tests + + -- Fabian Grünbichler Mon, 04 Dec 2023 07:57:07 +0100 + +cargo (0.66.0+ds2-1) unstable; urgency=medium + + [ Zixing Liu ] + * d/bin/cargo: handle LTO options from DEB_BUILD_OPTIONS ... + + [ Fabian Grünbichler ] + * update libgit2 to 1.7.1 + * disable flaky publish tests + + -- Fabian Grünbichler Sun, 03 Dec 2023 19:38:28 +0100 + +cargo (0.66.0+ds1-1) unstable; urgency=medium + + [ Fabian Grünbichler ] + * fix CVE-2022-46176 (Thanks Peter Green!) + * repack vendored sources with required libgit2-sys/git2/git2-curl versions + * update unsuspicious files + + -- Fabian Gruenbichler Wed, 11 Jan 2023 18:55:09 +0100 + +cargo (0.66.0-1) unstable; urgency=medium + + * new upstream version 0.66 + + [ Blair Noctis ] + * Update debcargo-conf.patch, unapply tempfile patch to match vendored + * Refresh patches and remove upstream applied CVE patches + * Patch test macro to work around qemu vfork bug when command not found + + [ Fabian Grünbichler ] + * no longer pin git2/libgit2-sys + * update debcargo-conf.patch (concolor, clap) + * update unsuspicious files + * d/control: depend on rustc 1.63 + * drop armel workaround + + [ Rob Shearman ] + * d/control: update minimum cargo, rustc and libstd-rust-dev versions + + -- Fabian Gruenbichler Sun, 08 Jan 2023 16:38:30 +0100 + +cargo (0.63.1-3) unstable; urgency=medium + + * workaround armel breakage + + -- Fabian Gruenbichler Wed, 07 Dec 2022 14:58:58 +0100 + +cargo (0.63.1-2) unstable; urgency=medium + + [ Ryan Gonzalez ] + * Fix path remapping for crate dependencies + + [ Fabian Grünbichler ] + * disable utf-8 fs-specific test + * fix i386 build / cross tests + + -- Fabian Gruenbichler Sat, 19 Nov 2022 10:48:29 +0100 + +cargo (0.63.1-1) unstable; urgency=medium + + * New upstream release + * switch to libgit2-1.5 (Closes: #1021504, #1017828) + * Update guess-crate-copyright to handle missing authors field gracefully + * Update audit-vendor-source to handle ZFS and similar file systems + * silence GZIP deprecation warning + * fix CVE-2022-36113/CVE-2022-36114 (Closes: #1021142) + + [ Helmut Grohne ] + * Fix FTCBFS: Missing Build-Depends: zlib1g-dev:native. (Closes: #1019491) + + -- Fabian Gruenbichler Sat, 17 Sep 2022 22:25:02 +0200 + +cargo (0.57.0-7) unstable; urgency=medium + + * Team upload. + * Upload to unstable. + + -- Peter Michael Green Mon, 02 May 2022 20:57:46 +0000 + +cargo (0.57.0-6) experimental; urgency=medium + + * Team upload. + * Fix debian cargo wrapper to stop looking for subcommands once it finds one + so that it is possible to test features whose name matches a subcommand. + * Limit autopkgtest to architectures where it does not run out of disk space. + * Remove patches for libgit2 1.1.x and adjust dependency for 0.3.x + (Closes: 1009015) + * Remove build-dependency on cmake (Closes: 981256) + + -- Peter Michael Green Sun, 10 Apr 2022 00:10:04 +0000 + +cargo (0.57.0-5) unstable; urgency=medium + + [ Simon Chopin ] + * Disable cross-build tests in autopkgtests + * d/p/0001-Change-test-to-not-trigger-emoji-error.patch: + Cherry-picked from upstream to fix testsuite against rustc 1.57 + * d/p/0002-Remove-eacces-test.patch: Cherry-picked from upstream as + cargo doesn't seem to trigger the error with recent Rust + + -- Ximin Luo Wed, 09 Mar 2022 13:52:14 +0000 + +cargo (0.57.0-4) unstable; urgency=medium + + [ Simon Chopin ] + * Add an autopkgtest for cargo to build itself + + [ Ximin Luo ] + * Fix FTBFS on x32. + + -- Ximin Luo Mon, 07 Mar 2022 20:35:00 +0000 + +cargo (0.57.0-3) unstable; urgency=medium + + * Actually fix failing tests. + * Fix armhf build by backporting a rust-cc patch. + + -- Ximin Luo Sun, 24 Oct 2021 14:11:00 +0100 + +cargo (0.57.0-2) unstable; urgency=medium + + * Fix failing tests. + + -- Ximin Luo Sun, 24 Oct 2021 13:13:07 +0100 + +cargo (0.57.0-1) unstable; urgency=medium + + * New upstream release for rustc 1.56.0, 2021 Edition. + + -- Ximin Luo Sun, 24 Oct 2021 01:59:08 +0100 + +cargo (0.47.0-3) unstable; urgency=medium + + * Disable close_output test for now, it is flaky. This is a test problem not + a cargo problem and will be re-enabled in 0.49.0. + + -- Ximin Luo Tue, 08 Dec 2020 01:43:58 +0000 + +cargo (0.47.0-2) unstable; urgency=medium + + * Backport a patch to fix a test on i386. + * Add +xgot to work around mips64el limitations. + + -- Ximin Luo Tue, 08 Dec 2020 00:29:08 +0000 + +cargo (0.47.0-1) unstable; urgency=medium + + * Upload to unstable. (Closes: #976434) + + -- Ximin Luo Sun, 06 Dec 2020 12:39:49 +0000 + +cargo (0.47.0-1~exp1) experimental; urgency=medium + + * New upstream release. + + -- Ximin Luo Fri, 02 Oct 2020 02:04:10 +0100 + +cargo (0.43.1-4) unstable; urgency=medium + + * Team upload. + * Fix build by applying two upstream patches. (Closes: #975857) + + -- Jan Niehusmann Sat, 28 Nov 2020 11:07:20 +0100 + +cargo (0.43.1-3) unstable; urgency=medium + + * Reupload, actually include the fix described in the previous entry. + + -- Ximin Luo Mon, 20 Apr 2020 14:30:01 +0100 + +cargo (0.43.1-2) unstable; urgency=medium + + * cargo-debian-wrapper: don't install /usr/.crates2.json. (Closes: #958301) + + -- Ximin Luo Mon, 20 Apr 2020 13:30:57 +0100 + +cargo (0.43.1-1) unstable; urgency=medium + + [ Fabian Grünbichler ] + * New upstream release. + + -- Ximin Luo Sat, 18 Apr 2020 19:54:01 +0100 + +cargo (0.40.0-3) unstable; urgency=medium + + * debian cargo wrapper: drop DEB_CARGO_PACKAGE in favour of the more + standardised DESTDIR. + * Experimental riscv64 support. + + -- Ximin Luo Sun, 05 Jan 2020 13:31:46 +0000 + +cargo (0.40.0-2) unstable; urgency=medium + + * Restore patch for pkg-config crate to auto-detect Debian cross-compiling. + * Add patch for backtrace-sys to auto-detect Debian cross-compiling. + + -- Ximin Luo Thu, 05 Dec 2019 22:31:57 +0000 + +cargo (0.40.0-1) unstable; urgency=medium + + [ Sylvestre Ledru ] + * Ship the zsh completion (Closes: #941437) + + [ Ximin Luo ] + * New upstream release. + + -- Ximin Luo Thu, 28 Nov 2019 10:24:46 +0000 + +cargo (0.37.0-3) unstable; urgency=medium + + * Update 2001_more_portable_rustflags.patch, fixes mips FTBFS + + -- Ximin Luo Sat, 20 Jul 2019 16:02:08 -0700 + +cargo (0.37.0-2) unstable; urgency=medium + + * Bump serde vendored crate version up to 1.0.96 to avoid issue when + compiling with atomics (the default). + + -- Ximin Luo Thu, 18 Jul 2019 02:34:48 -0700 + +cargo (0.37.0-1) unstable; urgency=medium + + * New upstream release. + + -- Ximin Luo Tue, 16 Jul 2019 23:06:49 -0700 + +cargo (0.35.0-2) unstable; urgency=medium + + * Use more portable flags in tests, fixing FTBFS on mips. + (Closes: #930218) + + -- Ximin Luo Sat, 08 Jun 2019 11:04:43 -0700 + +cargo (0.35.0-1) unstable; urgency=medium + + * New upstream release. + + -- Ximin Luo Fri, 31 May 2019 00:29:11 -0700 + +cargo (0.33.0-3) unstable; urgency=medium + + * Drop patch to capture rustc error output, it is unnecessary. + * Add upstream patch to fix typenum bug. + + -- Ximin Luo Sat, 18 May 2019 20:22:22 -0700 + +cargo (0.33.0-2) unstable; urgency=medium + + * Add patch to capture rustc error output if extra-verbose. + + -- Ximin Luo Sat, 18 May 2019 12:14:38 -0700 + +cargo (0.33.0-1) unstable; urgency=medium + + * New upstream release. + + -- Ximin Luo Tue, 05 Feb 2019 20:52:47 -0800 + +cargo (0.32.0-2~exp1) experimental; urgency=medium + + * Drop patch 2007, for disabling incremental build on sparc64. + Closes: bug#917048, Thanks to John Paul Adrian Glaubitz. + + -- Vasudev Kamath Sat, 02 Feb 2019 13:16:13 +0530 + +cargo (0.32.0-1) unstable; urgency=medium + + * debian-cargo-wrapper: Support DEB_CARGO_INSTALL_PREFIX for installing into + somewhere other than /usr, e.g. / or /usr/lib/cargo. + * Move dev scripts from /usr/share/cargo into /usr/share/cargo/scripts. + * Increase yet another timeout duration for slower architectures. + + -- Ximin Luo Thu, 24 Jan 2019 00:29:51 -0800 + +cargo (0.32.0-1~exp3) experimental; urgency=medium + + [ Matt Kraai ] + * Rename bash completion script so that it's used. + + [ Ximin Luo ] + * Further increase a timeout duration for mips. + * debian-cargo-wrapper: add --link-to-system option + + -- Ximin Luo Wed, 23 Jan 2019 19:44:05 -0800 + +cargo (0.32.0-1~exp2) experimental; urgency=medium + + * Try to deal with the various test failures as suggested by upstream. + + -- Ximin Luo Tue, 22 Jan 2019 20:08:29 -0800 + +cargo (0.32.0-1~exp1) experimental; urgency=medium + + [ upstream ] + * Cargo will now download crates in parallel using HTTP/2. + * You can now rename packages in your Cargo.toml We have a guide on how + to use the package key in your dependencies. + + [ Vasudev Kamath ] + * Fix the scripts related to tarball creation + * Update unsuspicious file list for 0.32.0 + * Update copyright information for 0.32.0. + * Add lintian-override for source-is-missing, for javascript file from + vendored crate documentation. File is not really shipped. + + -- Vasudev Kamath Wed, 12 Dec 2018 21:47:42 +0530 + +cargo (0.31.1-1) unstable; urgency=medium + + * Upload 0.31.1 to unstable. + + -- Vasudev Kamath Tue, 11 Dec 2018 20:57:21 +0530 + +cargo (0.31.1-1~exp1) experimental; urgency=medium + + [ upstream ] + * [1.30.0] Backport msys progress bar fix for stable. + + [ Ximin Luo ] + * debian-cargo-vendor: only store differences between vendor-patches and + debcargo-conf. + + [ Vasudev Kamath ] + * Do not delete Cargo.lock in debian-cargo-vendor script as its + referenced later in make_orig_multi.sh. + + -- Vasudev Kamath Tue, 11 Dec 2018 20:53:53 +0530 + +cargo (0.31.0-4) unstable; urgency=medium + + * Don't set RUSTFLAGS in d/rules. (Closes: #914110) + + -- Ximin Luo Mon, 19 Nov 2018 22:50:59 -0800 + +cargo (0.31.0-3) unstable; urgency=medium + + * Tweak the cargo wrapper script to be more robust. + + -- Ximin Luo Fri, 09 Nov 2018 02:56:54 -0800 + +cargo (0.31.0-2) unstable; urgency=medium + + * Fix test failure on some architectures due to hash ordering. + * Bump libgit2 dependency version constraint. (Closes: #899038) + + -- Ximin Luo Sun, 04 Nov 2018 11:32:26 -0800 + +cargo (0.31.0-1) unstable; urgency=medium + + * Don't run tests when doing arch-indep build. + * Fix package include/exclude tests. + + -- Ximin Luo Sun, 04 Nov 2018 10:10:24 -0800 + +cargo (0.31.0-1~exp1) experimental; urgency=medium + + * New upstream release. + * Simplify build scripts and add a Debian wrapper for cargo. + + -- Ximin Luo Sun, 04 Nov 2018 03:50:33 -0800 + +cargo (0.30.0-1) unstable; urgency=medium + + * Upload to unstable. + + -- Vasudev Kamath Sun, 21 Oct 2018 11:59:11 +0530 + +cargo (0.30.0-1~exp1) experimental; urgency=medium + + [ upstream ] + * Cargo can silently fix some bad lockfiles You can use --locked to + disable this behaviour. + * cargo-install will now allow you to cross compile an install using + --target. + * Added the cargo-fix subcommand to automatically move project code from + 2015 edition to 2018. + + [ Vasudev Kamath ] + * Refresh patch 2004 for new release. + * Add openssl crates fuzz,test doc and apps file to unsuspicious list. + * debian/patches: + + Drop patch 0774e97da3894f07ed5b6f7db175027a9bc4718b.patch for adding + cross compile support. Its merged upstream. + + Refresh patch 2001 to newer version of libgit2-sys. + + Refresh patch 2003 to newer version of libssh2-sys. + + Drop patch 1001 which is merged upstream. + + Refresh patch 2005 and 2007 to remove fuzz. + + Refresh patch 2002 with newer release. + * debian/control: + + Mark package compliance with Debian policy 4.2.1. + * Update copyright information for new release. + * debian/rules: + + Use DEB_BUILD_OPTIONS to disable tests on powerpc and powerpcspe + architecture. + Closes: bug#908961, Thanks to Helmut Grohne. + + -- Vasudev Kamath Sun, 07 Oct 2018 10:39:49 +0530 + +cargo (0.29.0-1) unstable; urgency=medium + + * Merge changes of 0.28.0-2, which was missed in first release of 0.29.0 + * Upload to unstable. + * Refresh patch for `install --target` feature for release 0.29.0 + + -- Vasudev Kamath Mon, 13 Aug 2018 20:37:13 +0530 + +cargo (0.29.0-1~exp1) experimental; urgency=medium + [ upstream ] + * Cargo will now no longer allow you to publish crates with build + scripts that modify the src directory. The src directory in a crate + should be considered to be immutable. + + [ Vasudev Kamath ] + * Update unsuspicious text for new release 0.29.0 + * Change pattern for embedded zlib + * debian/patches: + + Refresh patches 2001, 2002, 2003, 2004 to work with new release and + new vendor files. + + Add patch 1001 to fix deprecated warnings on usage of "casues" from + failure crate, + * Update copyright information for new release. + * Make package compliant with policy 4.2.0. + + -- Vasudev Kamath Sun, 12 Aug 2018 22:25:42 +0530 + +cargo (0.28.0-2) unstable; urgency=medium + + * Re-add `install --target` functionality, needed by dh-cargo. + + -- Ximin Luo Sun, 12 Aug 2018 00:15:23 -0700 + +cargo (0.28.0-1) unstable; urgency=medium + + * Upload to unstable + + -- Vasudev Kamath Tue, 07 Aug 2018 22:14:46 +0530 + +cargo (0.28.0-1~exp3) experimental; urgency=medium + + * Disable incremental compilation tests on sparc64 architecture. + Closes: bug#905623, Thanks to John Paul Adrian Glaubitz. + + -- Vasudev Kamath Tue, 07 Aug 2018 22:01:31 +0530 + +cargo (0.28.0-1~exp2) experimental; urgency=medium + + * Add patch 2005 to disable fetch_platform_specific_dependencies unit + tests. Upstream issue #5864. + + -- Vasudev Kamath Sun, 05 Aug 2018 17:17:00 +0530 + +cargo (0.28.0-1~exp1) experimental; urgency=medium + + [ upstream ] + * cargo-metadata now includes authors, categories, keywords, readme, and + repository fields. + * cargo-metadata now includes a package's metadata table. + * Added the --target-dir optional argument. This allows you to specify a + different directory than target for placing compilation artifacts. + * Cargo will be adding automatic target inference for binaries, + benchmarks, examples, and tests in the Rust 2018 edition. If your + project specifies specific targets e.g. using [[bin]] and have other + binaries in locations where cargo would infer a binary, Cargo will + produce a warning. You can disable this feature ahead of time by + setting any of the following autobins, autobenches, autoexamples, + autotests to false. + * Cargo will now cache compiler information. This can be disabled by + setting CARGO_CACHE_RUSTC_INFO=0 in your environment. + + [ Sylvestre Ledru ] + * Update of the alioth ML address. + + [ Vasudev Kamath ] + * Update README.source to mention preferred way of upload. + * Update unsuspicious files for new release. + * debian/patches: + + Refresh patch 2007 for new release. + + Refresh patch 2001 for new version of libgit2-sys + + Drop patch 2008 as its merged upstream. + + Add patch 2003 for forcing use of libssh2 from system, which was now + controlled by environment variable. + * debian/copyright: + + Update copyright information for new release. + * Mark package compliance with Debian Policy 4.1.5. + + -- Vasudev Kamath Sun, 29 Jul 2018 22:07:36 +0530 + +cargo (0.27.0-2) unstable; urgency=medium + + * Support cross-compile install (upstream PR #5614). + + -- Ximin Luo Wed, 06 Jun 2018 22:35:30 -0700 + +cargo (0.27.0-1) unstable; urgency=medium + + * Upload to unstable. + + -- Vasudev Kamath Sun, 03 Jun 2018 20:42:13 +0530 + +cargo (0.27.0-1~exp1) experimental; urgency=medium + + [ upstream ] + * Cargo will now output path to custom commands when -v is passed with + --list. + * Cargo binary version is now same as the Rust version. + * Cargo.lock files are now included in published crates. + + [ Vasudev Kamath ] + * Update patch 2004 for the new release. + * Add files from clap and vec_map to unsuspicious list. + * debian/patches: + + Update path to libgit2-sys in patch 2001. + + Adjust file name and paths to test files to be patched in patch + 2002. + + Drop all unused imports and comment out functions not just drop + #[test] in patch 2002. + + Drop patch 1001 as its now part of new cargo release. + + Refresh patch 2007. + * debian/copyright: + + Update copyright information for new vendored crates. + + -- Vasudev Kamath Sat, 02 Jun 2018 15:10:38 +0530 + +cargo (0.26.0-1) unstable; urgency=medium + + * Upload to unstable. + + -- Vasudev Kamath Tue, 01 May 2018 13:02:05 +0530 + +cargo (0.26.0-1~exp1) experimental; urgency=medium + + [upstream] + * cargo new now defaults to create binary crate instead of library + crate. + * cargo new will no longer name crates with name starting with rust- or + ending with -rs. + * cargo doc is faster as it uses cargo check instead of full rebuild. + + [Vasudev Kamath] + * Refresh the patch 2004 against newer Cargo.toml + * Mark package compliance with Debian Policy 4.1.4 + * debian/patches: + + Drop patch 2003 and 2005, the doc should be built from source using + mdbook. + + Drop patch 2006, the wasm32 related test seems to be dropped + upstream. + + Drop patch 1002, merged upstream. + + Add tests/generate_lock_file.rs to patch 2002 to disable + no_index_update test, this tries to access network. + + Refresh patch 1001 with new upstream release. + * debian/rules: disable execution of src/ci/dox.sh, this script is no + longer present in new release. + * debian/copyright: + + Add copyright for humantime crate. + + Add copyright for lazycell crate. + + Add copyright for quick-error crate + + Add copyright for proc-macro2 crate. + + -- Vasudev Kamath Sat, 21 Apr 2018 20:59:39 +0530 + +cargo (0.25.0-3) unstable; urgency=medium + + [ Ximin Luo ] + * Update Vcs-* fields to salsa + + [ Vasudev Kamath ] + * Add patch to prevent incremental builds on sparc64. + Closes: bug#895300, Thanks to John Paul Adrian Glaubitz. + + -- Vasudev Kamath Sun, 15 Apr 2018 12:28:29 +0530 + +cargo (0.25.0-2) unstable; urgency=medium + + [ Ximin Luo ] + * Depend on rustc 1.24 or later. + * Backport a patch to not require dev-dependencies when not needed. + + -- Vasudev Kamath Thu, 22 Mar 2018 20:08:17 +0530 + +cargo (0.25.0-1) unstable; urgency=medium + + * Upload to unstable. + + -- Vasudev Kamath Fri, 09 Mar 2018 21:09:38 +0530 + +cargo (0.25.0-1~exp2) experimental; urgency=medium + + * Disable test running on powerpc and powerpcspe for now. Will be + enabled once issue in test suites are fixed. + Request from John Paul Adrian Glaubitz in IRC. + + -- Vasudev Kamath Sun, 25 Feb 2018 10:27:23 +0530 + +cargo (0.25.0-1~exp1) experimental; urgency=medium + + [upstream] + * Added a workspace.default-members config that overrides implied --all + in virtual workspaces. + * Enable incremental by default on development builds. + + [ Vasudev Kamath ] + * debian/vendor-tarball-filter.txt: Filter out git test data from + libgit2-sys crate. + * debian/vendor-tarball-unsusupiciousAudit unsuspicious files for 0.25.0 + release. + * debian/make_orig_multi.sh: Make sure we take filter and unsuspiciaus + texts from debian folder. + * debian/patches: + + Drop patch 0001 it is merged upstream. + + Fix the typo in description of patch 2006. + * Drop source/lintian-override. README under patches directory is no + longer considered as a patch file by lintian. + * debian/copyright: + + Drop unused vendor crates copyright information. + + Add new crates copyright information to copyright. + + -- Vasudev Kamath Sat, 24 Feb 2018 14:43:48 +0530 + +cargo (0.24.0-1) unstable; urgency=medium + + * Upload to unstable. + + -- Ximin Luo Sat, 27 Jan 2018 10:41:06 +0100 + +cargo (0.24.0-1~exp1) experimental; urgency=medium + + [upstream] + * Supports uninstallation of multiple crates. + * `cargo check` unit testing. + * Install a specific version using `cargo install --version` + + [ Vasudev Kamath ] + * Update vendor-tarball-unsuspicious.txt vendor-tarball-filter.txt for + new upstream release. + * debian/control: + + Mark package compliance with Debian Policy 4.1.3. + * debian/patches: + + Update patch 2001 to work with libgit2-sys-0.6.19. + + Update 1002 patch to drop url crate specific hunk as its merged + upstream. + + Add patch 0001 to fix bad_git_dependency test failure. + * debian/copyright: + + Add new vendor crates to copyright. + + Track rustfmt.toml in top level copyright section. + * Add lintian-override for ignoring README from + patch-file-present-but-not-mentioned-in-series tag. + + -- Vasudev Kamath Thu, 25 Jan 2018 14:57:43 +0530 + +cargo (0.23.0-1) unstable; urgency=medium + + * Upload to unstable. + * Mark package as compliant with Debian Policy 4.1.2. + No change required to source. + + -- Vasudev Kamath Sun, 10 Dec 2017 15:33:55 +0530 + +cargo (0.23.0-1~exp1) experimental; urgency=medium + + * [upstream] + + Cargo will now build multi file examples in subdirectories of the + examples folder that have a main.rs file. + + Changed [root] to [package] in Cargo.lock. Old format packages will + continue to work and can be updated using cargo update. + + Supports vendoring git repositories. + * Refresh patch 2004 for new release. + * Audit logo.svg file from termion crate. + * debian/patches: + + Drop patch 1001, its merged upstream. + + Refresh patch 2002 with new upstream changes. + + Refresh patch 2001 with newer libgit2-sys changes. + + Add patch 2005 to prevent executing non-existing mdbook command + during build. + + Move part of typo fix for url crate to patch 1001 to 1002. url crate + is not updated in new cargo release. + * debian/copyright: + + Remove copyright for gcc crate. + + Add copyright information for cc, commoncrypto, crypto-hash, + redox_syscall. redox_termios and termion crate. + + Add CONTRIBUTING.md to top Files section. + + Drop magnet-sys from copyright. + + + -- Vasudev Kamath Tue, 05 Dec 2017 22:03:49 +0530 + +cargo (0.22.0-1~exp1) experimental; urgency=medium + + * New upstream release. + + Can now install multiple crates with cargo install. + + cargo commands inside a virtual workspace will now implicitly pass + --all. + + Added [patch] section to Cargo.toml to handle prepublication + dependencies RFC 1969. + + include and exclude fields in Cargo.toml now accept gitignore like + patterns. + + Added --all-target option. + + Using required dependencies as a feature is now deprecated and emits + a warning. + * Put upstream PR url for patch 1001. + * Add conv crate file to unsuspicious files. + * debian/patches: + + Refresh patches 1001, 2002 and 2004 with new upstream release. + + Fix typo in cargo search command and related tests. + * debian/control: + + Mark package compliance with Debian Policy 4.1.1. + + Mark priority for package as optional from extra. Priority extra is + deprecated from Debian Policy 4.0.1. + * debian/copyright: + + Add newly added vendor copyright information. + + -- Vasudev Kamath Sun, 29 Oct 2017 19:50:42 +0530 + +cargo (0.21.1-2) unstable; urgency=medium + + * Upload to unstable. + + -- Ximin Luo Wed, 25 Oct 2017 23:30:46 +0200 + +cargo (0.21.1-1) experimental; urgency=medium + + * debian/control: + + Add myself as uploader for cargo package. + + Mark package compliance with Debian Policy 4.1.0. + * Mark tables.rs from unicode-normalization as unsuspicious. + * Ignore sublime workspace file from hex crate. + * debian/copyright: + + Drop wildcards representing the old crates under vendor folder. + + Add copyright information for newer crates under vendor + + Add ARCHITECTURE.* to copyright. + * debian/patches: + + Rename patches to follow patch naming guidelines mentioned in + debian/patches/README. + + Add patch 1001 to fix spelling errors in cargo output messages. + + Make patch 2003 DEP-3 compliant. + + Adjust make_orig_multi.sh to renamed clean-cargo-deps.patch + + -- Vasudev Kamath Sat, 23 Sep 2017 10:41:07 +0530 + +cargo (0.20.0-2) unstable; urgency=medium + + * Work around #865549, fixes FTBFS on ppc64el. + + -- Ximin Luo Thu, 14 Sep 2017 15:47:55 +0200 + +cargo (0.20.0-1) unstable; urgency=medium + + * New upstream release. + * Fix cross-compiling declarations, Multi-Arch: foreign => allowed + * Un-embed libgit2 0.25.1 again. (Closes: #860990) + * Update to latest Standards-Version; no changes required. + + -- Ximin Luo Thu, 24 Aug 2017 19:13:00 +0200 + +cargo (0.17.0-2) unstable; urgency=medium + + * Re-embed libgit2 0.25.1 due to the Debian testing freeze. It will be + removed again after the freeze is over, when libgit2 0.25.1 can again + enter Debian unstable. + + -- Ximin Luo Wed, 03 May 2017 16:56:03 +0200 + +cargo (0.17.0-1) unstable; urgency=medium + + * Upload to unstable so we have something to build rustc 1.17.0 with. + + -- Ximin Luo Wed, 03 May 2017 11:24:08 +0200 + +cargo (0.17.0-1~exp3) experimental; urgency=medium + + * Add git to Build-Depends to fix FTBFS. + * Mention cross-compiling in the previous changelog entry. + + -- Ximin Luo Tue, 02 May 2017 13:18:53 +0200 + +cargo (0.17.0-1~exp2) experimental; urgency=medium + + * Bring in some changes from Ubuntu. + - Rename deps/ to vendor/ as that's what upstream uses, and update + other files with the new paths too. + - Remove cargo-vendor-unpack since we no longer need to postprocess + cargo-vendor output in that way. + * Document that bootstrap.py probably doesn't work now. + * Include /usr/share/rustc/architecture.mk in d/rules instead of duplicating + awkward arch-dependent Makefile snippets. + * Don't embed libgit2, add a versioned B-D to libgit2-dev. + * Add support for cross-compiling bootstrap. + + -- Ximin Luo Mon, 01 May 2017 20:49:45 +0200 + +cargo (0.17.0-1~exp1) experimental; urgency=medium + + * New upstream release. (Closes: #851089, #859312) + + -- Ximin Luo Thu, 20 Apr 2017 03:16:04 +0200 + +cargo (0.15.0~dev-1) unstable; urgency=medium + + * New upstream snapshot (git 1877f59d6b2cb057f7ef6c6b34b926fd96a683c1) + - Compatible with OpenSSL 1.1.0 (Closes: #828259) + * rules: use new link-arg options (Closes: #834980, #837433) + - Requires rustc >= 1.13 + + -- Luca Bruno Fri, 25 Nov 2016 23:30:03 +0000 + +cargo (0.11.0-2) unstable; urgency=high + + * debian/rules: fix RUSTFLAGS quoting (Closes: #834980) + + -- Luca Bruno Sun, 21 Aug 2016 18:21:21 +0000 + +cargo (0.11.0-1) unstable; urgency=medium + + [ Daniele Tricoli ] + * New upstream release. (Closes: #826938) + - Update deps tarball. + - Refresh patches. + - Drop clean-win-crates.patch since time crate is not a dependency + anymore. + - Drop deps-url-fix-toml.patch since merged upstream. + + [ Luca Bruno ] + * Install subcommand manpages too + * Move to a bootstrapped (stage1) build by default + + -- Luca Bruno Mon, 15 Aug 2016 13:59:04 +0000 + +cargo (0.9.0-1) unstable; urgency=medium + + * New upstream version + + Fix deprecation errors (Closes: #822178, #823652) + + Updated deps tarball + + Refreshed patches + + -- Luca Bruno Sat, 07 May 2016 17:56:28 +0200 + +cargo (0.8.0-2) unstable; urgency=low + + * Prefer libcurl4-gnutls-dev for building (Closes: #819831) + + -- Luca Bruno Tue, 05 Apr 2016 22:23:44 +0200 + +cargo (0.8.0-1) unstable; urgency=medium + + * New upstream version 0.8.0 + + Updated deps tarball + + Refreshed patches + * cargo: removed unused lintian overrides + + -- Luca Bruno Sat, 05 Mar 2016 22:39:06 +0100 + +cargo (0.7.0-2) unstable; urgency=medium + + * Bump standards version + * cargo: + + add a new stage2 profile + + preserve original Cargo.lock for clean + + clean environment to allow multiple builds + * cargo-doc: + + update docbase paths after package split + + do not reference remote jquery + + do not build under nodoc profile + * control: update build-deps for build-profiles + + -- Luca Bruno Thu, 03 Mar 2016 22:18:32 +0100 + +cargo (0.7.0-1) unstable; urgency=medium + + * New upstream version 0.7.0 + + Updated deps tarball and repack filter + + Refreshed patches + * Fixes to debian packaging + + Updated deps repack script + + index packing: use the same TAR format as cargo + + rules: ask cargo to build verbosely + * Update README.source to match current packaging + + -- Luca Bruno Sun, 14 Feb 2016 16:12:55 +0100 + +cargo (0.6.0-2) unstable; urgency=medium + + * Introduce a cargo-doc package + * Fails to build when wget is installed. Force curl + (Closes: #809298) + * Add the missing VCS- fields + + -- Sylvestre Ledru Tue, 26 Jan 2016 13:01:16 +0100 + +cargo (0.6.0-1) unstable; urgency=medium + + * New upstream version 0.6.0 + + Updated deps tarball + + Not shipping a registry index anymore + * Refreshed bootstrap.py script + + Skip optional dependencies in stage0 + * Added some crude pack/unpack helpers + * copyright: cleaned up unused entries + * rules: major update for new 0.6.0 bootstrap + + -- Luca Bruno Fri, 04 Dec 2015 00:42:55 +0100 + +cargo (0.3.0-2) unstable; urgency=medium + + * Fix install target, removing arch-specific path + + -- Luca Bruno Sat, 14 Nov 2015 19:46:57 +0100 + +cargo (0.3.0-1) unstable; urgency=medium + + * Team upload. + * First upload to unstable. + * Update gbp.conf according to git repo structure. + * patches: downgrade missing_docs lints to simple warnings + to avoid build failures on newer rustc. + + -- Luca Bruno Sat, 14 Nov 2015 17:29:15 +0100 + +cargo (0.3.0-0~exp1) experimental; urgency=low + + * Team upload. + * Initial Debian release. (Closes: #786432) + + -- Luca Bruno Tue, 11 Aug 2015 20:15:54 +0200 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..48082f7 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +12 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..92eaf2b --- /dev/null +++ b/debian/control @@ -0,0 +1,77 @@ +Source: cargo +Section: devel +Maintainer: Rust Maintainers +Uploaders: Luca Bruno , + Angus Lees , + Fabian Grünbichler , + Ximin Luo , + Vasudev Kamath +Priority: optional +# :native annotations are to support cross-compiling, see README.Debian of rustc +Build-Depends: + debhelper (>= 12~), + dpkg-dev (>= 1.17.14), + cargo:native (>= 0.56.0), + rustc:native (>= 1.63), + libstd-rust-dev (>= 1.63), + pkg-config, + bash-completion, + python3:native, + libcurl4-gnutls-dev | libcurl4-openssl-dev, + libssh2-1-dev, + libgit2-dev (>= 1.7.1), + libgit2-dev (<< 1.8~~), + libhttp-parser-dev, + libssl-dev, + zlib1g-dev, + zlib1g-dev:native, + git +Homepage: https://crates.io/ +Standards-Version: 4.2.1 +Vcs-Git: https://salsa.debian.org/rust-team/cargo.git +Vcs-Browser: https://salsa.debian.org/rust-team/cargo + +Package: cargo +Architecture: any +Multi-Arch: allowed +Depends: ${shlibs:Depends}, ${misc:Depends}, + rustc (>= 1.24), + binutils, + gcc | clang | c-compiler +Suggests: cargo-doc, python3 +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. + . + 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. + +Package: cargo-doc +Section: doc +Architecture: all +Build-Profiles: +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 diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..56b7244 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,997 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: cargo +Source: https://github.com/rust-lang/cargo + +Files: + benches/* + crates/* + src/* + tests/* + .* + build.rs + Cargo.* + LICENSE-* + README.* + CHANGELOG.* + CONTRIBUTING.* + CODE_OF_CONDUCT.* + ci/* + publish.py + triagebot.toml +Copyright: 2014 The Rust Project Developers +License: MIT or Apache-2.0 +Comment: please do not add * to the above paragraph, so we can use lintian to + help us update this file properly + +Files: vendor/bitflags/* + vendor/bitflags-1.*/* + vendor/env_logger/* + vendor/env_logger-0*/* + vendor/flate2/* + vendor/glob/* + vendor/libc/* + vendor/log/* + vendor/regex/* + vendor/regex-syntax/* + vendor/semver/* + vendor/shell-escape/* + vendor/unicode-width/* +Copyright: 2010-2019 The Rust Project Developers +License: MIT or Apache-2.0 +Comment: + This is a collection of external crates embedded here to bootstrap cargo. + Most of them come from the original upstream Rust project, thus share the + same MIT/Apache-2.0 dual-license. See https://github.com/rust-lang. + Exceptions are noted below. + +Files: + vendor/cc/* + vendor/cfg-if/* + vendor/filetime/* + vendor/fnv/* + vendor/git2/* + vendor/git2-curl/* + vendor/jobserver/* + vendor/libz-sys/* + vendor/libgit2-sys/* + vendor/libssh2-sys/* + vendor/miow/* + vendor/openssl-probe/* + vendor/pkg-config/* + vendor/proc-macro2/* + vendor/rustc-workspace-hack/* + vendor/tar/* + vendor/socket2/* + vendor/libnghttp2-sys/* +Copyright: 2014-2018 Alex Crichton + 2014-2018 The Rust Project Developers +License: MIT or Apache-2.0 +Comment: + see https://github.com/alexcrichton/ + see https://github.com/servo/rust-fnv + +Files: + vendor/rand_core/* + vendor/rand_xoshiro/* +Copyright: + 2019-2020 The Rand Project Developers + 2010-2020 The Rust Project Developers +License: MIT or Apache-2.0 +Comment: see https://github.com/rust-random/rand + +Files: + vendor/aho-corasick/* + vendor/bytesize/* + vendor/globset/* + vendor/ignore/* + vendor/memchr/* + vendor/same-file/* + vendor/termcolor/* + vendor/walkdir/* + vendor/winapi-util/* +Copyright: 2015-2018 Andrew Gallant +License: MIT or Unlicense +Comment: see upstream projects, + * https://github.com/BurntSushi/aho-corasick + * https://github.com/BurntSushi/ripgrep/tree/master/globset + * https://github.com/BurntSushi/ripgrep/tree/master/ignore + * https://github.com/BurntSushi/rust-memchr + * https://github.com/BurntSushi/same-file + * https://github.com/BurntSushi/ripgrep/tree/master/termcolor + * https://github.com/BurntSushi/walkdir + * https://github.com/BurntSushi/winapi-util + +Files: vendor/anyhow/* +Copyright: 2019-2020 David Tolnay +License: MIT OR Apache-2.0 +Comment: see https://github.com/dtolnay/anyhow + +Files: vendor/adler/* +Copyright: 2020-2020 Jonas Schievink +License: 0BSD OR MIT OR Apache-2.0 +Comment: see https://github.com/jonas-schievink/adler.git + +Files: + vendor/anstream/* + vendor/anstyle/* + vendor/anstyle-parse/* + vendor/anstyle-query/* + vendor/colorchoice/* +Copyright: 2023 Ed Page +License: MIT or Apache-2.0 +Comment: see https://github.com/rust-cli/anstyle.git + +Files: + vendor/arrayvec/* + vendor/either/* + vendor/itertools/* +Copyright: 2014-2021 bluss +License: MIT or Apache-2.0 +Comment: + see https://github.com/bluss/arrayvec + see https://github.com/bluss/either + see https://github.com/rust-itertools/itertools + +Files: vendor/base64/* +Copyright: 2015-2023 Alice Maz + 2015-2023 Marshall Pierce +License: MIT or Apache-2.0 +Comment: see https://github.com/marshallpierce/rust-base64 + +Files: vendor/bitmaps/* +Copyright: 2019-2020 Bodil Stokke +License: MPL-2.0+ +Comment: see https://github.com/bodil/bitmaps + +Files: + vendor/base16ct/* + vendor/base64ct/* + vendor/const-oid/* + vendor/der/* + vendor/pem-rfc7468/* + vendor/pkcs8/* + vendor/sec1/* +Copyright: 2016-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/formats + +Files: + vendor/block-buffer/* + vendor/cpufeatures/* + vendor/zeroize/* +Copyright: 2016-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/utils + +Files: vendor/bstr/* +Copyright: 2015-2019 Andrew Gallant +License: MIT or Apache-2.0 +Comment: + see https://github.com/BurntSushi/bstr + +Files: vendor/atty/* +Copyright: 2015-2016, Doug Tangren +License: MIT +Comment: see https://github.com/softprops/atty + +Files: vendor/autocfg/* +Copyright: 2018-2019 Josh Stone +License: Apache-2.0 or MIT +Comment: see https://github.com/cuviper/autocfg + +Files: + vendor/clap/* + vendor/clap_builder/* + vendor/clap_lex/* +Copyright: 2015-2023, Kevin B. Knapp + 2015-2023, Clap Contributors +License: MIT or Apache-2.0 +Comment: see https://github.com/clap-rs/clap + +Files: vendor/content_inspector/* +Copyright: 2018-2018 David Peter +License: MIT or Apache-2.0 +Comment: see https://github.com/sharkdp/content_inspector + +Files: vendor/core-foundation/* + vendor/core-foundation-sys/* +Copyright: 2012-2013, The Servo Project Developers, + 2012-2013, Mozilla Foundation +License: MIT or Apache-2.0 +Comment: see https://github.com/servo/core-foundation-rs + +Files: vendor/crc32fast/* +Copyright: 2018, Sam Rijs + 2018, Alex Crichton +License: MIT or Apache-2.0 + +Files: vendor/crypto-bigint/* +Copyright: 2021-2023 RustCrypto Developers +License: Apache-2.0 OR MIT +Comment: see https://github.com/RustCrypto/crypto-bigint + +Files: + vendor/crypto-common/* + vendor/digest/* + vendor/elliptic-curve/* + vendor/signature/* + vendor/spki/* +Copyright: 2017-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/traits + +Files: vendor/commoncrypto/* + vendor/commoncrypto-sys/* + vendor/crypto-hash/* +Copyright: 2016, Mark Lee + 2015-2016, Mark Lee +License: MIT +Comment: + * see https://github.com/malept/rust-commoncrypto + * see https://github.com/malept/crypto-hash + +Files: vendor/ct-codecs/* +Copyright: 2020-2022 Frank Denis +License: MIT +Comment: see https://github.com/jedisct1/rust-ct-codecs + +Files: vendor/curl/* + vendor/curl-sys/* +Copyright: 2014-2019 Alex Crichton +License: MIT +Comment: see https://github.com/alexcrichton/curl-rust + +Files: vendor/deranged/* +Copyright: 2020-2023 Jacob Pratt +License: MIT OR Apache-2.0 +Comment: see https://github.com/jhpratt/deranged + +Files: vendor/dunce/* +Copyright: 2017-2021 Kornel +License: CC0-1.0 +Comment: see https://gitlab.com/kornelski/dunce + +Files: + vendor/ecdsa/* + vendor/rfc6979/* +Copyright: 2016-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/signatures + +Files: vendor/ed25519-compact/* +Copyright: 2020-2023 Frank Denis +License: MIT +Comment: see https://github.com/jedisct1/rust-ed25519-compact + +Files: vendor/equivalent/* +Copyright: 2016-2023 Josh Stone +License: Apache-2.0 OR MIT +Comment: see https://github.com/cuviper/equivalent + +Files: vendor/errno/* +Copyright: 2015-2023 Chris Wong +License: MIT OR Apache-2.0 +Comment: see https://github.com/lambda-fairy/rust-errno + +Files: vendor/fastrand/* +Copyright: 2020-2022 Stjepan Glavina +License: Apache-2.0 OR MIT +Comment: see https://github.com/smol-rs/fastrand + +Files: vendor/ff/* +Copyright: 2017-2022 Sean Bowe + 2017-2022 Jack Grigg +License: MIT or Apache-2.0 +Comment: see https://github.com/zkcrypto/ff + +Files: vendor/fiat-crypto/* +Copyright: 2015-2023 Fiat Crypto library authors +License: MIT OR Apache-2.0 OR BSD-1-Clause-fiat-crypto +Comment: see https://github.com/mit-plv/fiat-crypto + +Files: vendor/foreign-types/* + vendor/foreign-types-shared/* +Copyright: 2017-2017 Steven Fackler +License: MIT or Apache-2.0 +Comment: see https://github.com/sfackler/foreign-types + +Files: vendor/fwdansi/* +Copyright: 2018-2018 kennytm +License: MIT +Comment: see https://github.com/kennytm/fwdansi + +Files: vendor/generic-array/* +Copyright: 2015-2022 Bartłomiej Kamiński + 2015-2022 Aaron Trent +License: MIT +Comment: see https://github.com/fizyk20/generic-array.git + +Files: vendor/getrandom/* +Copyright: 2019-2023 The Rand Project Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/rust-random/getrandom + +Files: vendor/group/* +Copyright: 2018-2022 Sean Bowe + 2018-2022 Jack Grigg +License: MIT or Apache-2.0 +Comment: see https://github.com/zkcrypto/group + +Files: + vendor/hashbrown/* + vendor/hashbrown-0.*/* +Copyright: 2018-2023 Amanieu d'Antras +License: MIT OR Apache-2.0 +Comment: see https://github.com/rust-lang/hashbrown + +Files: vendor/hex/* +Copyright: + 2015-2019 KokaKiwi + 2015-2019 rust-hex Developers +License: MIT or Apache-2.0 +Comment: see https://github.com/KokaKiwi/rust-hex + +Files: vendor/hkdf/* +Copyright: 2015-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/KDFs/ + +Files: vendor/hmac/* +Copyright: 2017-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/MACs + +Files: vendor/home/* +Copyright: Brian Anderson +License: MIT or Apache-2.0 +Comment: see https://github.com/brson/home + +Files: vendor/http-auth/* +Copyright: 2021 Scott Lamb +License: MIT or Apache-2.0 +Comment: see https://github.com/scottlamb/http-auth + +Files: + vendor/humantime/* + vendor/humantime-1*/* +Copyright: 2016, The humantime Developers +License: MIT or Apache-2.0 +Comment: + Includes parts of http date with copyright: 2016, Pyfisch and portions of musl + libc with copyright 2005-2013 Rich Felker. + . + See https://github.com/tailhook/humantime + +Files: + vendor/im-rc/* + vendor/sized-chunks/* +Copyright: 2017-2019 Bodil Stokke +License: MPL-2.0+ +Comment: + see https://github.com/bodil/im-rs + see https://github.com/bodil/sized-chunks + +Files: + vendor/indexmap/* + vendor/indexmap-1.*/* +Copyright: + 2016-2021 bluss + 2017-2022 Josh Stone +License: Apache-2.0 OR MIT +Comment: see https://github.com/bluss/indexmap + +Files: vendor/is-terminal/* +Copyright: 2022-2023 softprops + 2022-2023 Dan Gohman +License: MIT +Comment: see https://github.com/sunfishcode/is-terminal + +Files: vendor/itoa/* + vendor/quote/* +Copyright: 2016-2017 David Tolnay +License: MIT or Apache-2.0 +Comment: see https://github.com/dtolnay + +Files: vendor/idna/* +Copyright: 2013 Simon Sapin + 2013-2014 Valentin Gosu + 1991-2015 Unicode, Inc +License: MIT or Apache-2.0 + +Files: vendor/lazycell/* +Copyright: 20014, The Rust Project Developers + 2016-2017, Nikita Pekin and lazycell contributors +License: MIT or Apache-2.0 + +Files: vendor/lazy_static/* +Copyright: 2014-2016 Marvin Löbel +License: MIT or Apache-2.0 + +Files: vendor/linux-raw-sys/* +Copyright: 2021-2023 Dan Gohman +License: Apache-2.0 with LLVM exception OR Apache-2.0 OR MIT +Comment: see https://github.com/sunfishcode/linux-raw-sys + +Files: vendor/miniz_oxide/* +Copyright: + 2017-2019 Frommi + 2017-2019 oyvindln +License: MIT +Comment: see https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide + +Files: vendor/normalize-line-endings/* +Copyright: 2016-2018 Richard Dodd +License: Apache-2.0 +Comment: see https://github.com/derekdreery/normalize-line-endings + +Files: vendor/num-traits/* +Copyright: 2014-2023 The Rust Project Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/rust-num/num-traits + +Files: vendor/once_cell/* +Copyright: 2018-2021 Aleksey Kladov +License: MIT OR Apache-2.0 +Comment: see https://github.com/matklad/once_cell + +Files: vendor/opener/* +Copyright: 2018 Brian Bowman +License: MIT or Apache-2.0 +Comment: see https://github.com/Seeker14491/opener + +Files: vendor/openssl/* +Copyright: 2013-2022 Steven Fackler + 2013 Jack Lloyd + 2011 Google Inc. +License: Apache-2.0 + +Files: vendor/openssl-macros/* +Copyright: 2022 Steven Fackler +License: MIT or Apache-2.0 +Comment: see https://github.com/sfackler/rust-openssl + +Files: vendor/openssl-sys/* +Copyright: 2015 Steven Fackler + 2015 Alex Crichton +License: MIT +Comment: see https://github.com/sfackler/rust-openssl + +Files: vendor/ordered-float/* +Copyright: 2014-2023 Jonathan Reem + 2014-2023 Matt Brubeck +License: MIT +Comment: see https://github.com/reem/rust-ordered-float + +Files: vendor/orion/* +Copyright: 2018-2023 brycx +License: MIT +Comment: see https://github.com/orion-rs/orion + +Files: vendor/os_info/* +Copyright: 2015-2022 Jan Schulte + 2015-2022 Stanislav Tkach +License: MIT +Comment: see https://github.com/stanislav-tkach/os_info + +Files: vendor/pasetors/* +Copyright: 2020-2023 brycx +License: MIT +Comment: see https://github.com/brycx/pasetors + +Files: vendor/pathdiff/* +Copyright: 2017-2021 Manish Goregaokar +License: MIT or Apache-2.0 +Comment: see https://github.com/Manishearth/pathdiff + +Files: + vendor/p384/* + vendor/primeorder/* +Copyright: 2016-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/elliptic-curves + +Files: vendor/powerfmt/* +Copyright: 2023-2023 Jacob Pratt +License: MIT OR Apache-2.0 +Comment: see https://github.com/jhpratt/powerfmt + +Files: vendor/pretty_env_logger/* +Copyright: 2016-2019 Sean McArthur +License: MIT or Apache-2.0 +Comment: see https://github.com/seanmonstar/pretty-env-logger + +Files: vendor/quick-error/* +Copyright: 2015, The quick-error developers +License: MIT or Apache-2.0 + +Files: vendor/redox_syscall/* +Copyright: 2017, Redox OS Developers +License: MIT + +Files: vendor/regex-automata/* +Copyright: 2018-2021 Andrew Gallant +License: Unlicense or MIT +Comment: see https://github.com/BurntSushi/regex-automata + +Files: vendor/rustfix/* +Copyright: 2016, Pascal Hertleif + 2016, Oliver Schneider +License: MIT or Apache-2.0 + +Files: vendor/rustix/* +Copyright: 2020-2023 Dan Gohman + 2020-2023 Jakub Konka +License: Apache-2.0 with LLVM exception OR Apache-2.0 OR MIT +Comment: see https://github.com/bytecodealliance/rustix + +Files: vendor/ryu/* +Copyright: David Tolnay +License: BSL-1.0 or Apache-2.0 + +Files: vendor/schannel/* +Copyright: 2015, Steffen Butzer +License: MIT +Comment: see https://github.com/steffengy/schannel-rs/ + +Files: vendor/serde/* + vendor/serde_derive/* + vendor/serde_ignored/* + vendor/serde_json/* +Copyright: 2014-2017 Erick Tryzelaar + 2014-2017 David Tolnay +License: MIT or Apache-2.0 +Comment: see https://github.com/serde-rs + see https://github.com/dtolnay/serde-ignored + +Files: + vendor/serde_spanned/* + vendor/toml/* + vendor/toml_datetime/* +Copyright: + 2014-2023 Alex Crichton + 2023 Ed Page +License: MIT OR Apache-2.0 +Comment: see https://github.com/toml-rs/toml + +Files: vendor/serde-value/* +Copyright: 2016-2020 arcnmx +License: MIT +Comment: see https://github.com/arcnmx/serde-value + +Files: + vendor/sha1/* + vendor/sha2/* +Copyright: 2016-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/hashes + +Files: vendor/similar/* +Copyright: 2021-2022 Armin Ronacher + 2021-2022 Pierre-Étienne Meunier + 2021-2022 Brandon Williams +License: Apache-2.0 +Comment: see https://github.com/mitsuhiko/similar + +Files: vendor/snapbox/* + vendor/snapbox-macros/* +Copyright: 2015-2022 The assert_cli Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/assert-rs/trycmd/ + +Files: vendor/strip-ansi-escapes/* +Copyright: 2017-2018 Ted Mielczarek +License: Apache-2.0 or MIT +Comment: see https://github.com/luser/strip-ansi-escapes + +Files: vendor/strsim/* +Copyright: 2015 Danny Guo +License: MIT +Comment: see https://github.com/dguo/strsim-rs + +Files: vendor/subtle/* +Copyright: 2017-2021 Isis Lovecruft + 2017-2021 Henry de Valence +License: BSD-3-Clause +Comment: see https://github.com/dalek-cryptography/subtle + +Files: vendor/syn/* +Copyright: 2016-2017 David Tolnay +License: MIT or Apache-2.0 +Comment: see https://github.com/dtolnay/syn + +Files: vendor/tempfile/* +Copyright: 2015, Steven Allen +License: MIT or Apache-2.0 + +Files: vendor/thread_local/* +Copyright: 2016 Amanieu d'Antras +License: MIT or Apache-2.0 +Comment: see https://github.com/Amanieu/thread_local-rs + +Files: + vendor/time/* + vendor/time-core/* + vendor/time-macros/* +Copyright: 2019-2023 Jacob Pratt + 2019-2023 Time contributors +License: MIT OR Apache-2.0 +Comment: see https://github.com/time-rs/time + +Files: vendor/tinyvec/* +Copyright: 2020-2020 Lokathor +License: Zlib OR Apache-2.0 OR MIT +Comment: see https://github.com/Lokathor/tinyvec + +Files: vendor/tinyvec_macros/* +Copyright: 2020-2020 Soveu +License: MIT OR Apache-2.0 OR Zlib +Comment: see https://github.com/Soveu/tinyvec_macros + +Files: vendor/toml_edit/* +Copyright: 2017-2022 Andronik Ordian + 2017-2022 Ed Page +License: MIT or Apache-2.0 +Comment: see https://github.com/ordian/toml_edit + +Files: vendor/typenum/* +Copyright: 2015-2018 Paho Lurie-Gregg + 2015-2018 Andre Bogus +License: MIT or Apache-2.0 +Comment: see https://github.com/paholg/typenum + +Files: vendor/unicode-bidi/* +Copyright: 2015 The Servo Project Developers +License: MIT or Apache-2.0 +Comment: see https://github.com/servo/unicode-bidi + +Files: vendor/unicode-ident/* +Copyright: 2022-2022 David Tolnay +License: (MIT OR Apache-2.0) AND Unicode-DFS-2016 +Comment: see https://github.com/dtolnay/unicode-ident + +Files: vendor/unicode-normalization/* +Copyright: 2016 kwantam +License: MIT or Apache-2.0 + +Files: vendor/unicode-xid/* +Copyright: 2015-2017 erick.tryzelaar + 2015-2017 kwantam +License: MIT or Apache-2.0 +Comment: see https://github.com/unicode-rs/unicode-xid + +Files: + vendor/form_urlencoded/* + vendor/url/* + vendor/percent-encoding/* +Copyright: + 2015-2016 Simon Sapin + 2013-2021 The rust-url developers +License: MIT or Apache-2.0 +Comment: + see https://github.com/servo/rust-url + see https://github.com/servo/rust-url/tree/master/percent_encoding + +Files: vendor/utf8parse/* +Copyright: 2016-2019 Joe Wilm +License: Apache-2.0 or MIT +Comment: see https://github.com/jwilm/vte + +Files: vendor/vcpkg/* +Copyright: 2017-2017 Jim McGrath +License: MIT or Apache-2.0 +Comment: see https://github.com/mcgoo/vcpkg-rs + +Files: vendor/version_check/* +Copyright: 2017-2019 Sergio Benitez +License: MIT or Apache-2.0 +Comment: see https://github.com/SergioBenitez/version_check + +Files: vendor/vte/* +Copyright: 2016-2019 Joe Wilm +License: Apache-2.0 or MIT +Comment: see https://github.com/jwilm/vte + +Files: vendor/vte_generate_state_changes/* +Copyright: 2016-2021 Christian Duerr +License: Apache-2.0 OR MIT +Comment: see https://github.com/jwilm/vte + +Files: vendor/winapi/* +Copyright: + 2014-2017 Peter Atashian + 2014-2017 winapi-rs developers +License: MIT +Comment: see https://github.com/retep998/winapi-rs + +Files: vendor/winapi-*-pc-windows-gnu/* +Copyright: 2014-2018 Peter Atashian +License: MIT or Apache-2.0 +Comment: see https://github.com/retep998/winapi-rs + +Files: + vendor/windows_*_gnu/* + vendor/windows_*_gnullvm/* + vendor/windows_*_msvc/* + vendor/windows_*_gnu-0.*/* + vendor/windows_*_gnullvm-0.*/* + vendor/windows_*_msvc-0.*/* + vendor/windows-sys/* + vendor/windows-sys-0.*/* + vendor/windows-targets/* + vendor/windows-targets-0.*/* +Copyright: 2019-2023 Microsoft +License: MIT OR Apache-2.0 +Comment: see https://github.com/microsoft/windows-rs + +Files: vendor/winnow/* +Copyright: + 2023 winnow contributors + 2014-2023 nom contributors + 2014-2023 Geoffroy Couprie +License: MIT +Comment: see https://github.com/winnow-rs/winnow - fork of nom, hence the original copyright of Geoffroy Couprie applies + +Files: debian/* +Copyright: + 2016-2019 Ximin Luo + 2017-2019 Vasudeva Kamath + 2015-2016 Luca Bruno +License: MIT or Apache-2.0 + +License: 0BSD + Permission to use, copy, modify, and/or distribute this software for + any purpose with or without fee is hereby granted. + . + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT + OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +License: Apache-2.0 + On Debian systems, see /usr/share/common-licenses/Apache-2.0 for + the full text of the Apache License version 2. + +License: Apache-2.0 with LLVM exception + On Debian systems, the full text of the Apache License Version 2.0 + can be found in the file `/usr/share/common-licenses/Apache-2.0'. + Additionally, the LLVM exception is as follows: + . + As an exception, if, as a result of your compiling your source code, portions + of this Software are embedded into an Object form of such source code, you + may redistribute such embedded portions in such Object form without complying + with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + . + In addition, if you combine or link compiled forms of this Software with + software that is licensed under the GPLv2 ("Combined Software") and if a + court of competent jurisdiction determines that the patent provision (Section + 3), the indemnity provision (Section 9) or other Section of the License + conflicts with the conditions of the GPLv2, you may retroactively and + prospectively choose to deem waived or otherwise exclude such Section(s) of + the License, but only in their entirety and only with respect to the Combined + Software. + +License: BSD-1-Clause-fiat-crypto + Copyright (c) 2015-2020 the fiat-crypto authors (see the AUTHORS file) + All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + THIS SOFTWARE IS PROVIDED BY the fiat-crypto authors "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Berkeley Software Design, + Inc. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the + distribution. + 3. Neither the name of the Creytiv.com nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 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, see /usr/share/common-licenses/CC0-1.0 for + the full text of the CC0 1.0 Universal license. + +License: ISC + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + . + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +License: MPL-2.0 + Debian systems provide the MPL 2.0 in /usr/share/common-licenses/MPL-2.0 + +License: Unlicense + This is free and unencumbered software released into the public domain. + . + Anyone is free to copy, modify, publish, use, compile, sell, or + distribute this software, either in source code form or as a compiled + binary, for any purpose, commercial or non-commercial, and by any + means. + . + In jurisdictions that recognize copyright laws, the author or authors + of this software dedicate any and all copyright interest in the + software to the public domain. We make this dedication for the benefit + of the public at large and to the detriment of our heirs and + successors. We intend this dedication to be an overt act of + relinquishment in perpetuity of all present and future rights to this + software under copyright law. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +License: BSL-1.0 + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by this + license (the "Software") to use, reproduce, display, distribute, execute, and + transmit the Software, and to prepare derivative works of the Software, and to + permit third-parties to whom the Software is furnished to do so, all subject to + the following: + . + The copyright notices in the Software and this entire statement, including the + above license grant, this restriction and the following disclaimer, must be + included in all copies of the Software, in whole or in part, and all derivative + works of the Software, unless such copies or derivative works are solely in the + form of machine-executable object code generated by a source language + processor. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL + THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY + DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +License: Zlib + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + . + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + . + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + +License: Unicode-DFS-2016 + UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + . + See Terms of Use + for definitions of Unicode Inc.’s Data Files and Software. + . + NOTICE TO USER: Carefully read the following legal agreement. + BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S + DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), + YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE + TERMS AND CONDITIONS OF THIS AGREEMENT. + IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE + THE DATA FILES OR SOFTWARE. + . + COPYRIGHT AND PERMISSION NOTICE + . + Copyright © 1991-2022 Unicode, Inc. All rights reserved. + Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + . + Permission is hereby granted, free of charge, to any person obtaining + a copy of the Unicode data files and any associated documentation + (the "Data Files") or Unicode software and any associated documentation + (the "Software") to deal in the Data Files or Software + without restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, and/or sell copies of + the Data Files or Software, and to permit persons to whom the Data Files + or Software are furnished to do so, provided that either + (a) this copyright and permission notice appear with all copies + of the Data Files or Software, or + (b) this copyright and permission notice appear in associated + Documentation. + . + THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF + ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT OF THIRD PARTY RIGHTS. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS + NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL + DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THE DATA FILES OR SOFTWARE. + . + Except as contained in this notice, the name of a copyright holder + shall not be used in advertising or otherwise to promote the sale, + use or other dealings in these Data Files or Software without prior + written authorization of the copyright holder. diff --git a/debian/debcargo-conf.patch b/debian/debcargo-conf.patch new file mode 100644 index 0000000..296b37b --- /dev/null +++ b/debian/debcargo-conf.patch @@ -0,0 +1,114 @@ +For various reasons sometimes the debcargo-conf patches can't be applied as-is, +so we further patch them here. The reasons are as follows: + +- commoncrypto, commoncrypto-sys: these crates were released before crates.io + automatically re-wrote all Cargo.toml files. cargo-vendor outputs the + un-re-written original Cargo.toml files, but debcargo will forcibly rewrite + even un-re-written ones that were published to crates.io. The patch below + rewrites our existing patches so they work against the un-re-written ones. + +- tempfile: has dependency relaxation that applies but doesn't match the vendored copy +- hashbrown, indexmap, regex-automata: outdated in debcargo-conf, would require + big transitions at the moment, patches only fix tests/disable unpackaged + dependencies + +diff --git a/src/commoncrypto-sys/debian/patches/no-clippy.patch b/src/commoncrypto-sys/debian/patches/no-clippy.patch +index 3e4c8850e..93789f3b8 100644 +--- a/src/commoncrypto-sys/debian/patches/no-clippy.patch ++++ b/src/commoncrypto-sys/debian/patches/no-clippy.patch +@@ -1,17 +1,16 @@ +---- a/Cargo.toml 2017-01-24 06:56:51.000000000 +0000 +-+++ b/Cargo.toml 2018-09-15 15:37:47.602333479 +0000 +-@@ -19,14 +19,8 @@ ++--- a/Cargo.toml +++++ b/Cargo.toml ++@@ -8,13 +8,8 @@ + keywords = ["crypto", "hash", "digest", "osx", "commoncrypto"] + license = "MIT" +- repository = "https://github.com/malept/rust-commoncrypto" +--[dependencies.clippy] +--version = "0.0" +--optional = true + +- [dependencies.libc] +- version = "0.2" +- [dev-dependencies.hex] +- version = "0.2" +-- + -[features] + -lint = ["clippy"] ++- ++ [dependencies] ++ libc = "0.2" ++ ++-clippy = { version = "0.0", optional = true } ++- ++ [dev-dependencies] ++ hex = "0.2" +diff --git a/src/commoncrypto/debian/patches/no-clippy.patch b/src/commoncrypto/debian/patches/no-clippy.patch +index 38d9c9255..b21a7cae5 100644 +--- a/src/commoncrypto/debian/patches/no-clippy.patch ++++ b/src/commoncrypto/debian/patches/no-clippy.patch +@@ -1,17 +1,16 @@ +---- a/Cargo.toml 2017-01-24 06:56:51.000000000 +0000 +-+++ b/Cargo.toml 2018-09-15 17:37:01.354423224 +0000 +-@@ -19,14 +19,8 @@ ++--- a/Cargo.toml +++++ b/Cargo.toml ++@@ -8,13 +8,8 @@ + keywords = ["crypto", "hash", "digest", "osx", "commoncrypto"] + license = "MIT" +- repository = "https://github.com/malept/rust-commoncrypto" +--[dependencies.clippy] +--version = "0.0" +--optional = true + +- [dependencies.commoncrypto-sys] +- version = "0.2.0" +- [dev-dependencies.hex] +- version = "0.2" +-- + -[features] + -lint = ["clippy"] ++- ++ [dependencies] ++ commoncrypto-sys = { version = "0.2.0", path = "../commoncrypto-sys" } ++ ++-clippy = { version = "0.0", optional = true } ++- ++ [dev-dependencies] ++ hex = "0.2" +diff --git a/src/hashbrown/debian/patches/series b/src/hashbrown/debian/patches/series +index b84c40f49..e961ca4ee 100644 +--- a/src/hashbrown/debian/patches/series ++++ b/src/hashbrown/debian/patches/series +@@ -1 +1 @@ +-disable-alloc.diff ++#disable-alloc.diff +diff --git a/src/indexmap/debian/patches/series b/src/indexmap/debian/patches/series +index 8804a7d0c..4020f576f 100644 +--- a/src/indexmap/debian/patches/series ++++ b/src/indexmap/debian/patches/series +@@ -1,2 +1,2 @@ +-drop-rustc-rayon.diff +-drop-quickcheck.diff ++#drop-rustc-rayon.diff ++#drop-quickcheck.diff +diff --git a/src/regex-automata/debian/patches/series b/src/regex-automata/debian/patches/series +index b41d6ce94..b0c6f806a 100644 +--- a/src/regex-automata/debian/patches/series ++++ b/src/regex-automata/debian/patches/series +@@ -1,3 +1,3 @@ +-disable-tests-missing-testdata.patch +-remove-regex-test.patch +-relax-dep.diff ++#disable-tests-missing-testdata.patch ++#remove-regex-test.patch ++#relax-dep.diff +diff --git a/src/tempfile/debian/patches/series b/src/tempfile/debian/patches/series +index 75abb7f14..2378a84ba 100644 +--- a/src/tempfile/debian/patches/series ++++ b/src/tempfile/debian/patches/series +@@ -1 +1 @@ +-relax-dep.diff ++#relax-dep.diff diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..e39258b --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,15 @@ +[DEFAULT] +upstream-tag = upstream/%(version)s +debian-tag = debian/%(version)s +pristine-tar = True +upstream-branch = upstream +component = vendor + +[buildpackage] +submodules = True +ignore-branch = True +sign-tags = True + +[import-orig] +upstream-vcs-tag = %(version)s +debian-branch = debian/experimental diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..9deff97 --- /dev/null +++ b/debian/install @@ -0,0 +1,3 @@ +debian/scripts/* usr/share/cargo/scripts +debian/bin/cargo usr/share/cargo/bin +src/etc/_cargo usr/share/zsh/vendor-completions diff --git a/debian/lintian-to-copyright.sh b/debian/lintian-to-copyright.sh new file mode 100755 index 0000000..ab7960e --- /dev/null +++ b/debian/lintian-to-copyright.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Pipe the output of lintian into this. +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 --git a/debian/make_orig_multi-pre-vendor.sh b/debian/make_orig_multi-pre-vendor.sh new file mode 100755 index 0000000..843e3f2 --- /dev/null +++ b/debian/make_orig_multi-pre-vendor.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# Sometimes, by the time we get around to packaging cargo, the crates.io +# ecosystem has moved on from the versions that cargo-vendor *would have* used +# when that version of cargo was released. This places a lot of maintenance +# burden on us, since it requires us to keep debcargo-conf always up-to-date. +# +# This script allows us to force cargo-vendor to use old versions of dependency +# crates, that better match our debcargo-conf patches, as well as the versions +# of crates used when a particular version of cargo was actually released. +# +# Example: +# cargo update -p filetime --precise 0.2.12 +# + +# Drop the "vendored" feature since we patch it out of debcargo +sed -i /vendored/d Cargo.toml diff --git a/debian/make_orig_multi.sh b/debian/make_orig_multi.sh new file mode 100755 index 0000000..8564744 --- /dev/null +++ b/debian/make_orig_multi.sh @@ -0,0 +1,71 @@ +#!/bin/sh +set -e +echo "This needs the following packages:" +echo " python3-toml devscripts cargo cargo-lock" +echo "" + +TMPDIR=`mktemp -d` +echo "Using '${TMPDIR}'..." +cat > "${TMPDIR}/Makefile" <<'EOF' +include /usr/share/dpkg/pkg-info.mk +all: + @echo $(DEB_VERSION_UPSTREAM) +EOF +SRCDIR="$PWD" + +if [ -z "$1" ] + then + USCAN_ARGS=""; + CARGO_VER=$(make -f "${TMPDIR}/Makefile"); + else + USCAN_ARGS="--download-version $1"; + CARGO_VER="$1"; +fi; + +BOOTSTRAP_PY=$(find "${PWD}" -name bootstrap.py -type f) +VENDOR_SUS_WHITELIST=$(find "${PWD}/debian" -name vendor-tarball-unsuspicious.txt -type f) + +# Download cargo tarball +uscan --rename ${USCAN_ARGS} --force-download --destdir "${TMPDIR}/" + +# Extract cargo source +cd "${TMPDIR}" +mkdir cargo +tar -xaf "${TMPDIR}/cargo_${CARGO_VER}.orig.tar.gz" -C cargo --strip-components=1 +cd cargo + +# Download build-deps via cargo-vendor +export GIT_AUTHOR_NAME="deb-build" +export GIT_AUTHOR_EMAIL="<>" +export GIT_COMMITTER_NAME="${GIT_AUTHOR_NAME}" +export GIT_COMMITTER_EMAIL="${GIT_AUTHOR_EMAIL}" + +SRCDIR="$SRCDIR" \ +CARGO_PRE_VENDOR="$SRCDIR/debian/make_orig_multi-pre-vendor.sh" \ +"$SRCDIR/debian/scripts/debian-cargo-vendor" + +cp -R vendor vendor-scan + +( cd vendor-scan +"$SRCDIR/debian/scripts/audit-vendor-source" \ + "$VENDOR_SUS_WHITELIST" \ + "the 'excludes' key of the relevant debcargo.toml in debcargo-conf.git" \ + -m text/x-script.python +) + +rm -rf vendor-scan + +# Pack it up, reproducibly +tar --sort=name \ + --use-compress-program='gzip -9n' \ + --mtime="./Cargo.lock" \ + --owner=root --group=root \ + -cf "${TMPDIR}/cargo_${CARGO_VER}.orig-vendor.tar.gz" vendor + +# All is good, we are done! +echo "Your files are available at:" +echo "${TMPDIR}/cargo_${CARGO_VER}.orig.tar.gz \\" +echo "${TMPDIR}/cargo_${CARGO_VER}.orig-vendor.tar.gz" +echo "" +echo "Unpacked cargo sources are available under:" +echo "${TMPDIR}/cargo/" diff --git a/debian/missing-sources/prism.js b/debian/missing-sources/prism.js new file mode 100644 index 0000000..b3ff71f --- /dev/null +++ b/debian/missing-sources/prism.js @@ -0,0 +1,599 @@ +/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */ +var _self = (typeof window !== 'undefined') + ? window // if in browser + : ( + (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) + ? self // if in worker + : {} // if in node js + ); + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * MIT license http://www.opensource.org/licenses/mit-license.php/ + * @author Lea Verou http://lea.verou.me + */ + +var Prism = (function(){ + +// Private helper vars +var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i; + +var _ = _self.Prism = { + util: { + encode: function (tokens) { + if (tokens instanceof Token) { + return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); + } else if (_.util.type(tokens) === 'Array') { + return tokens.map(_.util.encode); + } else { + return tokens.replace(/&/g, '&').replace(/ text.length) { + // Something went terribly wrong, ABORT, ABORT! + break tokenloop; + } + + if (str instanceof Token) { + continue; + } + + pattern.lastIndex = 0; + + var match = pattern.exec(str); + + if (match) { + if(lookbehind) { + lookbehindLength = match[1].length; + } + + var from = match.index - 1 + lookbehindLength, + match = match[0].slice(lookbehindLength), + len = match.length, + to = from + len, + before = str.slice(0, from + 1), + after = str.slice(to + 1); + + var args = [i, 1]; + + if (before) { + args.push(before); + } + + var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias); + + args.push(wrapped); + + if (after) { + args.push(after); + } + + Array.prototype.splice.apply(strarr, args); + } + } + } + } + + return strarr; + }, + + hooks: { + all: {}, + + add: function (name, callback) { + var hooks = _.hooks.all; + + hooks[name] = hooks[name] || []; + + hooks[name].push(callback); + }, + + run: function (name, env) { + var callbacks = _.hooks.all[name]; + + if (!callbacks || !callbacks.length) { + return; + } + + for (var i=0, callback; callback = callbacks[i++];) { + callback(env); + } + } + } +}; + +var Token = _.Token = function(type, content, alias) { + this.type = type; + this.content = content; + this.alias = alias; +}; + +Token.stringify = function(o, language, parent) { + if (typeof o == 'string') { + return o; + } + + if (_.util.type(o) === 'Array') { + return o.map(function(element) { + return Token.stringify(element, language, o); + }).join(''); + } + + var env = { + type: o.type, + content: Token.stringify(o.content, language, parent), + tag: 'span', + classes: ['token', o.type], + attributes: {}, + language: language, + parent: parent + }; + + if (env.type == 'comment') { + env.attributes['spellcheck'] = 'true'; + } + + if (o.alias) { + var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; + Array.prototype.push.apply(env.classes, aliases); + } + + _.hooks.run('wrap', env); + + var attributes = ''; + + for (var name in env.attributes) { + attributes += name + '="' + (env.attributes[name] || '') + '"'; + } + + return '<' + env.tag + ' class="' + env.classes.join(' ') + '" ' + attributes + '>' + env.content + ''; + +}; + +if (!_self.document) { + if (!_self.addEventListener) { + // in Node.js + return _self.Prism; + } + // In worker + _self.addEventListener('message', function(evt) { + var message = JSON.parse(evt.data), + lang = message.language, + code = message.code; + + _self.postMessage(JSON.stringify(_.util.encode(_.tokenize(code, _.languages[lang])))); + _self.close(); + }, false); + + return _self.Prism; +} + +// Get current script and highlight +var script = document.getElementsByTagName('script'); + +script = script[script.length - 1]; + +if (script) { + _.filename = script.src; + + if (document.addEventListener && !script.hasAttribute('data-manual')) { + document.addEventListener('DOMContentLoaded', _.highlightAll); + } +} + +return _self.Prism; + +})(); + +if (typeof module !== 'undefined' && module.exports) { + module.exports = Prism; +} +; +Prism.languages.markup = { + 'comment': //, + 'prolog': /<\?[\w\W]+?\?>/, + 'doctype': //, + 'cdata': //i, + 'tag': { + pattern: /<\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i, + inside: { + 'tag': { + pattern: /^<\/?[^\s>\/]+/i, + inside: { + 'punctuation': /^<\/?/, + 'namespace': /^[^\s>\/:]+:/ + } + }, + 'attr-value': { + pattern: /=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i, + inside: { + 'punctuation': /[=>"']/ + } + }, + 'punctuation': /\/?>/, + 'attr-name': { + pattern: /[^\s>\/]+/, + inside: { + 'namespace': /^[^\s>\/:]+:/ + } + } + + } + }, + 'entity': /&#?[\da-z]{1,8};/i +}; + +// Plugin to make entity title show the real entity, idea by Roman Komarov +Prism.hooks.add('wrap', function(env) { + + if (env.type === 'entity') { + env.attributes['title'] = env.content.replace(/&/, '&'); + } +}); +; +Prism.languages.css = { + 'comment': /\/\*[\w\W]*?\*\//, + 'atrule': { + pattern: /@[\w-]+?.*?(;|(?=\s*\{))/i, + inside: { + 'rule': /@[\w-]+/ + // See rest below + } + }, + 'url': /url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, + 'selector': /[^\{\}\s][^\{\};]*?(?=\s*\{)/, + 'string': /("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/, + 'property': /(\b|\B)[\w-]+(?=\s*:)/i, + 'important': /\B!important\b/i, + 'function': /[-a-z0-9]+(?=\()/i, + 'punctuation': /[(){};:]/ +}; + +Prism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css); + +if (Prism.languages.markup) { + Prism.languages.insertBefore('markup', 'tag', { + 'style': { + pattern: /[\w\W]*?<\/style>/i, + inside: { + 'tag': { + pattern: /|<\/style>/i, + inside: Prism.languages.markup.tag.inside + }, + rest: Prism.languages.css + }, + alias: 'language-css' + } + }); + + Prism.languages.insertBefore('inside', 'attr-value', { + 'style-attr': { + pattern: /\s*style=("|').*?\1/i, + inside: { + 'attr-name': { + pattern: /^\s*style/i, + inside: Prism.languages.markup.tag.inside + }, + 'punctuation': /^\s*=\s*['"]|['"]\s*$/, + 'attr-value': { + pattern: /.+/i, + inside: Prism.languages.css + } + }, + alias: 'language-css' + } + }, Prism.languages.markup.tag); +}; +Prism.languages.clike = { + 'comment': [ + { + pattern: /(^|[^\\])\/\*[\w\W]*?\*\//, + lookbehind: true + }, + { + pattern: /(^|[^\\:])\/\/.*/, + lookbehind: true + } + ], + 'string': /("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + 'class-name': { + pattern: /((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i, + lookbehind: true, + inside: { + punctuation: /(\.|\\)/ + } + }, + 'keyword': /\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, + 'boolean': /\b(true|false)\b/, + 'function': /[a-z0-9_]+(?=\()/i, + 'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/, + 'operator': /[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|~|\^|%/, + 'punctuation': /[{}[\];(),.:]/ +}; +; +Prism.languages.javascript = Prism.languages.extend('clike', { + 'keyword': /\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/, + 'number': /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/, + 'function': /(?!\d)[a-z0-9_$]+(?=\()/i +}); + +Prism.languages.insertBefore('javascript', 'keyword', { + 'regex': { + pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/, + lookbehind: true + } +}); + +Prism.languages.insertBefore('javascript', 'class-name', { + 'template-string': { + pattern: /`(?:\\`|\\?[^`])*`/, + inside: { + 'interpolation': { + pattern: /\$\{[^}]+\}/, + inside: { + 'interpolation-punctuation': { + pattern: /^\$\{|\}$/, + alias: 'punctuation' + }, + rest: Prism.languages.javascript + } + }, + 'string': /[\s\S]+/ + } + } +}); + +if (Prism.languages.markup) { + Prism.languages.insertBefore('markup', 'tag', { + 'script': { + pattern: /[\w\W]*?<\/script>/i, + inside: { + 'tag': { + pattern: /|<\/script>/i, + inside: Prism.languages.markup.tag.inside + }, + rest: Prism.languages.javascript + }, + alias: 'language-javascript' + } + }); +} +; diff --git a/debian/patches/0003-tests-add-missing-cross-disabled-checks.patch b/debian/patches/0003-tests-add-missing-cross-disabled-checks.patch new file mode 100644 index 0000000..8a6f569 --- /dev/null +++ b/debian/patches/0003-tests-add-missing-cross-disabled-checks.patch @@ -0,0 +1,43 @@ +From 981279ccd8f7855faaed010bff0891afff588210 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= + +Date: Sat, 19 Nov 2022 10:24:08 +0100 +Subject: [PATCH] tests: add missing cross disabled checks +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +cross_conmpile::alternate states it should only be used in test cases +after checking cross_compile::disabled(), which is missing here. these +tests fail despite setting CFG_DISABLE_CROSS_TESTS on i386, since both +the host and the alternate cross target would be i686 in that case. + +Signed-off-by: Fabian Grünbichler +--- + tests/testsuite/build_script.rs | 6 ++++++ + 1 file changed, 6 insertions(+) + +Index: cargo/tests/testsuite/build_script.rs +=================================================================== +--- cargo.orig/tests/testsuite/build_script.rs ++++ cargo/tests/testsuite/build_script.rs +@@ -697,6 +697,9 @@ fn custom_build_linker_bad_host_with_arc + #[cargo_test] + fn custom_build_env_var_rustc_linker_cross_arch_host() { + let target = rustc_host(); ++ if cross_compile::disabled() { ++ return; ++ } + let cross_target = cross_compile::alternate(); + let p = project() + .file( +@@ -735,6 +738,9 @@ fn custom_build_env_var_rustc_linker_cro + #[cargo_test] + fn custom_build_linker_bad_cross_arch_host() { + let target = rustc_host(); ++ if cross_compile::disabled() { ++ return; ++ } + let cross_target = cross_compile::alternate(); + let p = project() + .file( diff --git a/debian/patches/0004-test-loose-overly-matches-for-git-cli-output.patch b/debian/patches/0004-test-loose-overly-matches-for-git-cli-output.patch new file mode 100644 index 0000000..0fd6248 --- /dev/null +++ b/debian/patches/0004-test-loose-overly-matches-for-git-cli-output.patch @@ -0,0 +1,43 @@ +From 51ebba2fc1c581e4ec30b308c07f7b70ef3d2f10 Mon Sep 17 00:00:00 2001 +From: Weihang Lo +Date: Wed, 7 Jun 2023 22:47:25 +0100 +Subject: [PATCH] test: loose overly matches for git cli output +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The output format should be stable I believe, but it turns out not. +This is how `git fetch` man page says [1]: + +``` + -> [] +``` + +In Git 2.41 they've changed the fetch output a bit [2]. + +I think let's just loose it to prevent future breakages. + +[1]: https://git-scm.com/docs/git-fetch#_output +[2]: https://github.blog/2023-06-01-highlights-from-git-2-41/ + +Signed-off-by: Fabian Grünbichler +--- + tests/testsuite/git.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/testsuite/git.rs b/tests/testsuite/git.rs +index 091192037..7c717e967 100644 +--- a/tests/testsuite/git.rs ++++ b/tests/testsuite/git.rs +@@ -2711,7 +2711,7 @@ fn use_the_cli() { + [UPDATING] git repository `[..]` + [RUNNING] `git fetch [..]` + From [..] +- * [new ref] -> origin/HEAD ++ * [new ref] [..] -> origin/HEAD[..] + [CHECKING] dep1 [..] + [RUNNING] `rustc [..]` + [CHECKING] foo [..] +-- +2.39.2 + diff --git a/debian/patches/1000-riscv64-skip-split-debuginfo-test.patch b/debian/patches/1000-riscv64-skip-split-debuginfo-test.patch new file mode 100644 index 0000000..68fd43d --- /dev/null +++ b/debian/patches/1000-riscv64-skip-split-debuginfo-test.patch @@ -0,0 +1,19 @@ +Subject: riscv64 skip split debuginfo test +Author: Fabian Grünbichler + +See corresponding rustc change for details. + +diff --git a/tests/testsuite/build.rs.orig b/tests/testsuite/build.rs +index 56130c6..369a3e9 100644 +--- a/tests/testsuite/build.rs.orig ++++ b/tests/testsuite/build.rs +@@ -5313,7 +5313,7 @@ fn uplift_pdb_of_bin_on_windows() { + } + + #[cargo_test] +-#[cfg(target_os = "linux")] ++#[cfg(all(target_os = "linux", target_arch = "riscv"))] + fn uplift_dwp_of_bin_on_linux() { + let p = project() + .file("src/main.rs", "fn main() { panic!(); }") + diff --git a/debian/patches/2000-fix-test-stderr.patch b/debian/patches/2000-fix-test-stderr.patch new file mode 100644 index 0000000..add1ab7 --- /dev/null +++ b/debian/patches/2000-fix-test-stderr.patch @@ -0,0 +1,12 @@ +Index: cargo/tests/testsuite/build_script.rs +=================================================================== +--- cargo.orig/tests/testsuite/build_script.rs ++++ cargo/tests/testsuite/build_script.rs +@@ -33,6 +33,7 @@ fn custom_build_script_failed() { + .file("build.rs", "fn main() { std::process::exit(101); }") + .build(); + p.cargo("build -v") ++ .env("RUST_BACKTRACE", "0") + .with_status(101) + .with_stderr( + "\ diff --git a/debian/patches/2002_disable-net-tests.patch b/debian/patches/2002_disable-net-tests.patch new file mode 100644 index 0000000..3623165 --- /dev/null +++ b/debian/patches/2002_disable-net-tests.patch @@ -0,0 +1,615 @@ +Description: Disable network tests +Author: Ximin Luo +Forwarded: TODO +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: cargo/tests/testsuite/git_auth.rs +=================================================================== +--- cargo.orig/tests/testsuite/git_auth.rs ++++ cargo/tests/testsuite/git_auth.rs +@@ -102,7 +102,7 @@ fn setup_failed_auth_test() -> (SocketAd + } + + // Tests that HTTP auth is offered from `credential.helper`. +-#[cargo_test] ++#[allow(dead_code)] + fn http_auth_offered() { + let (addr, t, connections) = setup_failed_auth_test(); + let p = project() +@@ -167,7 +167,7 @@ Caused by: + } + + // Boy, sure would be nice to have a TLS implementation in rust! +-#[cargo_test] ++#[allow(dead_code)] + fn https_something_happens() { + let server = TcpListener::bind("127.0.0.1:0").unwrap(); + let addr = server.local_addr().unwrap(); +Index: cargo/tests/testsuite/net_config.rs +=================================================================== +--- cargo.orig/tests/testsuite/net_config.rs ++++ cargo/tests/testsuite/net_config.rs +@@ -2,7 +2,7 @@ + + use cargo_test_support::project; + +-#[cargo_test] ++#[allow(dead_code)] + fn net_retry_loads_from_config() { + let p = project() + .file( +@@ -38,7 +38,7 @@ fn net_retry_loads_from_config() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn net_retry_git_outputs_warning() { + let p = project() + .file( +Index: cargo/tests/testsuite/publish.rs +=================================================================== +--- cargo.orig/tests/testsuite/publish.rs ++++ cargo/tests/testsuite/publish.rs +@@ -85,7 +85,7 @@ fn validate_upload_li() { + ); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn simple() { + let registry = RegistryBuilder::new().http_api().http_index().build(); + +@@ -124,7 +124,7 @@ See [..] + + // Check that the `token` key works at the root instead of under a + // `[registry]` table. +-#[cargo_test] ++#[allow(dead_code)] + fn simple_publish_with_http() { + let _reg = registry::RegistryBuilder::new() + .http_api() +@@ -161,7 +161,7 @@ See [..] + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn simple_publish_with_asymmetric() { + let _reg = registry::RegistryBuilder::new() + .http_api() +@@ -201,7 +201,7 @@ See [..] + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn old_token_location() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -255,7 +255,7 @@ See [..] + // Other tests will verify the endpoint gets the right payload. + } + +-#[cargo_test] ++#[allow(dead_code)] + fn simple_with_index() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -297,7 +297,7 @@ fn simple_with_index() { + // Other tests will verify the endpoint gets the right payload. + } + +-#[cargo_test] ++#[allow(dead_code)] + fn git_deps() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -335,7 +335,7 @@ the `git` specification will be removed + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn path_dependency_no_version() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -375,7 +375,7 @@ the `path` specification will be removed + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn unpublishable_crate() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -408,7 +408,7 @@ fn unpublishable_crate() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn dont_publish_dirty() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -450,7 +450,7 @@ to proceed despite this and include the + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_clean() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -495,7 +495,7 @@ fn publish_clean() { + // Other tests will verify the endpoint gets the right payload. + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_in_sub_repo() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -541,7 +541,7 @@ fn publish_in_sub_repo() { + // Other tests will verify the endpoint gets the right payload. + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_when_ignored() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -587,7 +587,7 @@ fn publish_when_ignored() { + // Other tests will verify the endpoint gets the right payload. + } + +-#[cargo_test] ++#[allow(dead_code)] + fn ignore_when_crate_ignored() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -632,7 +632,7 @@ fn ignore_when_crate_ignored() { + // Other tests will verify the endpoint gets the right payload. + } + +-#[cargo_test] ++#[allow(dead_code)] + fn new_crate_rejected() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -665,7 +665,7 @@ fn new_crate_rejected() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn dry_run() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -708,7 +708,7 @@ See [..] + assert!(!registry::api_path().join("api/v1/crates/new").exists()); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn registry_not_in_publish_list() { + let p = project() + .file( +@@ -741,7 +741,7 @@ The registry `alternative` is not listed + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_empty_list() { + let p = project() + .file( +@@ -770,7 +770,7 @@ fn publish_empty_list() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_allowed_registry() { + let _registry = RegistryBuilder::new() + .http_api() +@@ -827,7 +827,7 @@ fn publish_allowed_registry() { + ); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_implicitly_to_only_allowed_registry() { + let _registry = RegistryBuilder::new() + .http_api() +@@ -885,7 +885,7 @@ fn publish_implicitly_to_only_allowed_re + ); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_fail_with_no_registry_specified() { + let p = project().build(); + +@@ -919,7 +919,7 @@ The registry `crates-io` is not listed i + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn block_publish_no_registry() { + let p = project() + .file( +@@ -949,7 +949,7 @@ fn block_publish_no_registry() { + } + + // Explicitly setting `crates-io` in the publish list. +-#[cargo_test] ++#[allow(dead_code)] + fn publish_with_crates_io_explicit() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -999,7 +999,7 @@ The registry `alternative` is not listed + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_with_select_features() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -1047,7 +1047,7 @@ fn publish_with_select_features() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_with_all_features() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -1095,7 +1095,7 @@ fn publish_with_all_features() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_with_no_default_features() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -1131,7 +1131,7 @@ fn publish_with_no_default_features() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_with_patch() { + let registry = RegistryBuilder::new().http_api().http_index().build(); + Package::new("bar", "1.0.0").publish(); +@@ -1233,7 +1233,7 @@ fn publish_with_patch() { + ); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_checks_for_token_before_verify() { + let registry = registry::RegistryBuilder::new() + .no_configure_token() +@@ -1282,7 +1282,7 @@ fn publish_checks_for_token_before_verif + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_with_bad_source() { + let p = project() + .file( +@@ -1331,7 +1331,7 @@ include `--registry crates-io` to use cr + } + + // A dependency with both `git` and `version`. +-#[cargo_test] ++#[allow(dead_code)] + fn publish_git_with_version() { + let registry = RegistryBuilder::new().http_api().http_index().build(); + +@@ -1471,7 +1471,7 @@ fn publish_git_with_version() { + ); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_dev_dep_no_version() { + let registry = RegistryBuilder::new().http_api().http_index().build(); + +@@ -1557,7 +1557,7 @@ repository = "foo" + ); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn credentials_ambiguous_filename() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -1610,7 +1610,7 @@ fn credentials_ambiguous_filename() { + + // --index will not load registry.token to avoid possibly leaking + // crates.io token to another server. +-#[cargo_test] ++#[allow(dead_code)] + fn index_requires_token() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -1645,7 +1645,7 @@ fn index_requires_token() { + } + + // publish with source replacement without --registry +-#[cargo_test] ++#[allow(dead_code)] + fn cratesio_source_replacement() { + registry::init(); + let p = project() +@@ -1674,7 +1674,7 @@ include `--registry dummy-registry` or ` + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish_with_missing_readme() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -1719,7 +1719,7 @@ Caused by: + } + + // Registry returns an API error. +-#[cargo_test] ++#[allow(dead_code)] + fn api_error_json() { + let _registry = registry::RegistryBuilder::new() + .alternative() +@@ -1767,7 +1767,7 @@ Caused by: + } + + // Registry returns an API error with a 200 status code. +-#[cargo_test] ++#[allow(dead_code)] + fn api_error_200() { + let _registry = registry::RegistryBuilder::new() + .alternative() +@@ -1815,7 +1815,7 @@ Caused by: + } + + // Registry returns an error code without a JSON message. +-#[cargo_test] ++#[allow(dead_code)] + fn api_error_code() { + let _registry = registry::RegistryBuilder::new() + .alternative() +@@ -1869,7 +1869,7 @@ Caused by: + } + + // Registry has a network error. +-#[cargo_test] ++#[allow(dead_code)] + fn api_curl_error() { + let _registry = registry::RegistryBuilder::new() + .alternative() +@@ -1919,7 +1919,7 @@ Caused by: + } + + // Registry returns an invalid response. +-#[cargo_test] ++#[allow(dead_code)] + fn api_other_error() { + let _registry = registry::RegistryBuilder::new() + .alternative() +@@ -1969,7 +1969,7 @@ Caused by: + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn in_package_workspace() { + let registry = RegistryBuilder::new().http_api().http_index().build(); + +@@ -2017,7 +2017,7 @@ See [..] + validate_upload_li(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn with_duplicate_spec_in_members() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -2069,7 +2069,7 @@ fn with_duplicate_spec_in_members() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn in_package_workspace_with_members_with_features_old() { + let registry = RegistryBuilder::new().http_api().http_index().build(); + +@@ -2116,7 +2116,7 @@ See [..] + validate_upload_li(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn in_virtual_workspace() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -2152,7 +2152,7 @@ fn in_virtual_workspace() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn in_virtual_workspace_with_p() { + // `publish` generally requires a remote registry + let registry = registry::RegistryBuilder::new().http_api().build(); +@@ -2206,7 +2206,7 @@ See [..] + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn in_package_workspace_not_found() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -2251,7 +2251,7 @@ error: package ID specification `li` did + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn in_package_workspace_found_multiple() { + // Use local registry for faster test times since no publish will occur + let registry = registry::init(); +@@ -2308,7 +2308,7 @@ error: the `-p` argument must be specifi + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + // https://github.com/rust-lang/cargo/issues/10536 + fn publish_path_dependency_without_workspace() { + // Use local registry for faster test times since no publish will occur +@@ -2355,7 +2355,7 @@ error: package ID specification `bar` di + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn http_api_not_noop() { + let registry = registry::RegistryBuilder::new().http_api().build(); + +@@ -2413,7 +2413,7 @@ fn http_api_not_noop() { + p.cargo("build").run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn wait_for_first_publish() { + // Counter for number of tries before the package is "published" + let arc: Arc> = Arc::new(Mutex::new(0)); +@@ -2493,7 +2493,7 @@ See [..] + /// A separate test is needed for package names with - or _ as they hit + /// the responder twice per cargo invocation. If that ever gets changed + /// this test will need to be changed accordingly. +-#[cargo_test] ++#[allow(dead_code)] + fn wait_for_first_publish_underscore() { + // Counter for number of tries before the package is "published" + let arc: Arc> = Arc::new(Mutex::new(0)); +@@ -2570,7 +2570,7 @@ See [..] + p.cargo("build").with_status(0).run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn wait_for_subsequent_publish() { + // Counter for number of tries before the package is "published" + let arc: Arc> = Arc::new(Mutex::new(0)); +@@ -2660,7 +2660,7 @@ See [..] + p.cargo("build").with_status(0).run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn skip_wait_for_publish() { + // Intentionally using local registry so the crate never makes it to the index + let registry = registry::init(); +Index: cargo/tests/testsuite/credential_process.rs +=================================================================== +--- cargo.orig/tests/testsuite/credential_process.rs ++++ cargo/tests/testsuite/credential_process.rs +@@ -8,7 +8,7 @@ fn toml_bin(proj: &Project, name: &str) + proj.bin(name).display().to_string().replace('\\', "\\\\") + } + +-#[cargo_test] ++#[allow(dead_code)] + fn gated() { + let _alternative = registry::RegistryBuilder::new() + .alternative() +@@ -65,7 +65,7 @@ or use environment variable CARGO_REGIST + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn warn_both_token_and_process() { + // Specifying both credential-process and a token in config should issue a warning. + let _server = registry::RegistryBuilder::new() +@@ -209,7 +209,7 @@ fn get_token_test() -> (Project, TestReg + (p, server) + } + +-#[cargo_test] ++#[allow(dead_code)] + fn publish() { + // Checks that credential-process is used for `cargo publish`. + let (p, _t) = get_token_test(); +@@ -231,7 +231,7 @@ fn publish() { + assert_eq!(calls, 1); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn basic_unsupported() { + // Non-action commands don't support login/logout. + let registry = registry::RegistryBuilder::new() +@@ -274,7 +274,7 @@ the credential-process configuration val + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn login() { + let server = registry::RegistryBuilder::new() + .no_configure_token() +@@ -331,7 +331,7 @@ fn login() { + ); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn logout() { + let server = registry::RegistryBuilder::new() + .no_configure_token() +@@ -386,7 +386,7 @@ token for `crates-io` has been erased! + ); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn yank() { + let (p, _t) = get_token_test(); + +@@ -401,7 +401,7 @@ fn yank() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn owner() { + let (p, _t) = get_token_test(); + +@@ -416,7 +416,7 @@ fn owner() { + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn libexec_path() { + // cargo: prefixed names use the sysroot + let server = registry::RegistryBuilder::new() +@@ -450,7 +450,7 @@ Caused by: + .run(); + } + +-#[cargo_test] ++#[allow(dead_code)] + fn invalid_token_output() { + // Error when credential process does not output the expected format for a token. + let _server = registry::RegistryBuilder::new() diff --git a/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch b/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch new file mode 100644 index 0000000..d7f6424 --- /dev/null +++ b/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch @@ -0,0 +1,19 @@ +Index: cargo/crates/cargo-test-macro/src/lib.rs +=================================================================== +--- cargo.orig/crates/cargo-test-macro/src/lib.rs ++++ cargo/crates/cargo-test-macro/src/lib.rs +@@ -223,6 +223,14 @@ fn has_command(command: &str) -> bool { + } + }; + if !output.status.success() { ++ // Debian specific patch, upstream wontfix: ++ // qemu has a faulty vfork where it fails to fail if a command is not ++ // found, with a unix_wait_status of 32512, or 0x7f00, 7f meaning ++ // exit code 127. See https://github.com/rust-lang/rust/issues/90825 ++ use std::os::unix::process::ExitStatusExt; ++ if output.status.into_raw() == 0x7f00 { ++ return false; ++ } + panic!( + "expected command `{}` to be runnable, got error {}:\n\ + stderr:{}\n\ diff --git a/debian/patches/2200-workaround-x32-test.patch b/debian/patches/2200-workaround-x32-test.patch new file mode 100644 index 0000000..82937b2 --- /dev/null +++ b/debian/patches/2200-workaround-x32-test.patch @@ -0,0 +1,15 @@ +Bug: https://github.com/rust-lang/cargo/issues/10005 + +Index: cargo/tests/testsuite/cfg.rs +=================================================================== +--- cargo.orig/tests/testsuite/cfg.rs ++++ cargo/tests/testsuite/cfg.rs +@@ -272,7 +272,7 @@ fn any_ok() { + + // https://github.com/rust-lang/cargo/issues/5313 + #[cargo_test] +-#[cfg(all(target_arch = "x86_64", target_os = "linux", target_env = "gnu"))] ++#[cfg(all(target_arch = "x86_64", target_os = "linux", target_env = "gnu", target_pointer_width = "64"))] + fn cfg_looks_at_rustflags_for_target() { + let p = project() + .file( diff --git a/debian/patches/README b/debian/patches/README new file mode 100644 index 0000000..80c1584 --- /dev/null +++ b/debian/patches/README @@ -0,0 +1,3 @@ +0xxx: Grabbed from upstream development. +1xxx: Possibly relevant for upstream adoption. +2xxx: Only relevant for official Debian release. diff --git a/debian/patches/disable-fs-specific-test.patch b/debian/patches/disable-fs-specific-test.patch new file mode 100644 index 0000000..518665b --- /dev/null +++ b/debian/patches/disable-fs-specific-test.patch @@ -0,0 +1,13 @@ +Index: cargo/tests/testsuite/metadata.rs +=================================================================== +--- cargo.orig/tests/testsuite/metadata.rs ++++ cargo/tests/testsuite/metadata.rs +@@ -3935,7 +3935,7 @@ fn dep_kinds_workspace() { + // Creating non-utf8 path is an OS-specific pain, so let's run this only on + // linux, where arbitrary bytes work. + #[cfg(target_os = "linux")] +-#[cargo_test] ++#[allow(dead_code)] + fn cargo_metadata_non_utf8() { + use std::ffi::OsString; + use std::os::unix::ffi::OsStringExt; diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..501cb5f --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,11 @@ +2002_disable-net-tests.patch +2003-workaround-qemu-vfork-command-not-found.patch + +2200-workaround-x32-test.patch +disable-fs-specific-test.patch +0003-tests-add-missing-cross-disabled-checks.patch +2000-fix-test-stderr.patch +0004-test-loose-overly-matches-for-git-cli-output.patch + +update-libgit2.patch +1000-riscv64-skip-split-debuginfo-test.patch diff --git a/debian/patches/update-libgit2.patch b/debian/patches/update-libgit2.patch new file mode 100644 index 0000000..499de6a --- /dev/null +++ b/debian/patches/update-libgit2.patch @@ -0,0 +1,37 @@ +Index: cargo/Cargo.toml +=================================================================== +--- cargo.orig/Cargo.toml ++++ cargo/Cargo.toml +@@ -28,8 +28,8 @@ curl-sys = "0.4.59" + env_logger = "0.10.0" + filetime = "0.2.9" + flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } +-git2 = "0.16.0" +-git2-curl = "0.17.0" ++git2 = "0.18.0" ++git2-curl = "0.19.0" + glob = "0.3.0" + hex = "0.4" + hmac = "0.12.1" +@@ -47,7 +47,7 @@ lazycell = "1.2.0" + libc = "0.2" + # Temporarily pin libgit2-sys due to some issues with SSH not working on + # Windows. +-libgit2-sys = "=0.14.1" ++libgit2-sys = "0.16.1" + log = "0.4.6" + memchr = "2.1.3" + opener = "0.5" +Index: cargo/crates/cargo-test-support/Cargo.toml +=================================================================== +--- cargo.orig/crates/cargo-test-support/Cargo.toml ++++ cargo/crates/cargo-test-support/Cargo.toml +@@ -14,7 +14,7 @@ cargo-util = { path = "../cargo-util" } + crates-io = { path = "../crates-io" } + filetime = "0.2" + flate2 = { version = "1.0", default-features = false, features = ["zlib"] } +-git2 = "0.16.0" ++git2 = "0.18.0" + glob = "0.3" + itertools = "0.10.0" + lazy_static = "1.0" diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..73e1e8a --- /dev/null +++ b/debian/rules @@ -0,0 +1,62 @@ +#!/usr/bin/make -f + +include /usr/share/dpkg/pkg-info.mk +include /usr/share/dpkg/architecture.mk +include /usr/share/dpkg/buildflags.mk +include /usr/share/rustc/architecture.mk + +export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS +export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE + +CARGO = $(CURDIR)/debian/bin/cargo + +export CARGO_HOME = $(CURDIR)/debian/cargo_home +export DEB_CARGO_CRATE=cargo_$(DEB_VERSION_UPSTREAM) +RUSTFLAGS := --remap-path-prefix=$(CURDIR)=/usr/src/cargo-$(DEB_VERSION_UPSTREAM) + +# https://github.com/rust-lang/rust/issues/52108 +ifneq (,$(filter $(DEB_HOST_ARCH), mips64el)) + RUSTFLAGS += -Ctarget-feature=+xgot +endif + +export RUSTFLAGS + +# don't shrink, this can take ages +# see https://github.com/rust-lang/cargo/issues/6490 for details +export PROPTEST_MAX_SHRINK_ITERS = 0 +export CARGO_TEST_SLOW_CPU_MULTIPLIER = 4 + +# To run a specific test, run something like: +# $ debian/rules override_dh_auto_test-arch \ +# CARGO_TEST_FLAGS="package::include -- " +# See `cargo test --help` for more options. +CARGO_TEST_FLAGS = + +%: + dh $@ --with bash-completion + +override_dh_auto_configure: + $(CARGO) prepare-debian $(CURDIR)/vendor + +override_dh_auto_build-arch: + $(CARGO) build + +override_dh_auto_build-indep: + $(CARGO) doc --no-deps + +override_dh_auto_test-arch: + CFG_DISABLE_CROSS_TESTS=1 $(CARGO) test $(CARGO_TEST_FLAGS) + +override_dh_auto_test-indep: + # no arch-indep tests + +override_dh_auto_install: + DESTDIR=$(CURDIR)/debian/cargo $(CARGO) install + +override_dh_auto_clean: + $(CARGO) clean + +override_dh_clean: + # Upstream contains a lot of these + dh_clean -XCargo.toml.orig + rm -f Cargo.lock diff --git a/debian/scripts/audit-vendor-source b/debian/scripts/audit-vendor-source new file mode 100755 index 0000000..08a46d8 --- /dev/null +++ b/debian/scripts/audit-vendor-source @@ -0,0 +1,40 @@ +#!/bin/sh +# Audit Rust crate source for suspicious files in the current directory, that +# shouldn't or can't be part of a Debian source package. +# +# NOTE: this overwrites & deletes files in the current directory!!! Make a +# backup before running this script. +# +# Usage: $0 [] + +set -e + +whitelist="$1" +filter_description="$2" +shift 2 # everything else is args to suspicious-source + +# Remove tiny files 4 bytes or less +find . -size -4c -type f -delete +# Remove non-suspicious files, warning on patterns that match nothing +echo "Excluding (i.e. removing) whitelisted files..." +grep -v '^#' "$whitelist" | xargs -I% sh -c 'rm -r ./% || true' +echo "Checking for suspicious files..." +# Remove cargo metadata files +find . '(' -name '.cargo-checksum.json' -or -name '.cargo_vcs_info.json' ')' -delete +# Strip comments & blank lines before testing rust source code - +# some authors like to write really long comments +find . -name '*.rs' -execdir sed -i -e '\,^\s*//,d' -e '/^\s*$/d' '{}' \; + +# TODO: merge the -m stuff into suspicious-source(1). +suspicious-source -v "$@" +# The following shell snippet is a bit more strict than suspicious-source(1) +find . -type f -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 . -name '*.c' -o -name '*.js' + +echo "The above files (if any) seem suspicious, please audit them." +echo "If good, add them to $whitelist." +echo "If bad, add them to $filter_description." diff --git a/debian/scripts/debian-cargo-vendor b/debian/scripts/debian-cargo-vendor new file mode 100755 index 0000000..9fa9be4 --- /dev/null +++ b/debian/scripts/debian-cargo-vendor @@ -0,0 +1,167 @@ +#!/bin/bash +# To run this, you need to first install cargo-lock. +# +# TODO: this script has a known bug in: if the Debian patches being applied, +# changes the set of dependencies, then "cargo vendor" is not re-run in order +# to pick up this new set of dependencies. This is manifested by an error +# message like: "perhaps a crate was updated and forgotten to be re-vendored?" +# +set -e + +SCRIPTDIR="$(dirname "$(readlink -f "$0")")" + +not_needed() { + diff -ur packages-before packages-after | grep "^-- " | cut -d' ' -f2-3 +} + +ghetto_parse_cargo() { + cat "$1" \ + | tr '\n' '\t' \ + | sed -e 's/\t\[/\n[/g' \ + | perl -ne 'print if s/^\[(?:package|project)\].*\tname\s*=\s*"(.*?)".*\tversion\s*=\s*"(.*?)".*/\1 \2/g' +} + +pruned_paths() { + for i in vendor/*/Cargo.toml; do + pkgnamever= + pkgnamever=$(ghetto_parse_cargo "$i") + if [ -z "$pkgnamever" ]; then + echo >&2 "failed to parse: $i" + exit 1 + fi + echo "$pkgnamever $i" + done | grep -F -f <(not_needed) | cut '-d ' -f3 | while read x; do + echo " $(dirname $x)" + done +} + +crate_to_debcargo_conf() { + echo "$1" | sed -e 's/_/-/g' +} + +rm -rf vendor/ +if [ -e "$CARGO_PRE_VENDOR" ]; then + "$CARGO_PRE_VENDOR" +fi +cargo vendor --verbose vendor/ +mkdir -p .cargo +cat >.cargo/config < packages-before +cp Cargo.lock Cargo.lock.orig + +if [ -d debcargo-conf ]; then ( cd debcargo-conf && git pull ); +else git clone "${DEBCARGO_CONF:-https://salsa.debian.org/rust-team/debcargo-conf}"; fi + +# keep applying patches, and drop to a subshell for manual fixing, until it succeeds +while ! ( cd vendor +x=true +for i in *; do + debname=$(crate_to_debcargo_conf "$i") + cd $i + # if there is a d/rules then don't mess with it, it's too custom for this + # script to deal with - just use the upstream version. example: backtrace-sys + # TODO: deal with those better, especially backtrace-sys + if [ -e ../../debcargo-conf/src/$debname/debian/rules ]; then + echo >&2 "$0: the debcargo-conf for crate $i has a custom rules file, but applying patches anyway" + echo >&2 "$0: you may want to examine this situation more closely" + fi + if [ -d ../../debcargo-conf/src/$debname/debian/patches ]; then + echo >&2 "$0: patching $i" + mkdir -p debian + if [ ! -d debian/patches ]; then + cp -a -n "../../debcargo-conf/src/$debname/debian/patches" debian/ + fi + # first unapply any patches applied in the previous iteration + QUILT_PATCHES=debian/patches quilt pop -af + QUILT_PATCHES=debian/patches quilt push -a + case $? in + 0|2) true;; + *) echo >&2 "$0: patching $i failed <<<<<<<<<<<<<<<<<<<<<<<<" + QUILT_PATCHES=debian/patches quilt pop -af + x=false;; + esac + fi + if [ -f ../../debcargo-conf/src/$debname/debian/build.rs ]; then + echo >&2 "$0: overwriting build.rs with our custom one" + if [ ! -f build.rs.orig ]; then + cp -f build.rs build.rs.orig + fi + cp -f ../../debcargo-conf/src/$i/debian/build.rs build.rs + fi + cd .. +done; $x ); do + echo >&2 "================================================================================" + echo >&2 "$0: You are now in a sub-shell!" + echo >&2 "$0: Fix the failed patches in debcargo-conf/, then exit the sub-shell by pressing ctrl-D ONCE." + echo >&2 "$0: If you need to abort this process, press ctrl-D then quickly ctrl-C." + if [ -f "${SRCDIR:-$PWD}/debian/debcargo-conf.patch" ]; then + echo >&2 "$0: Previous patch changes exist, to apply them run:" + echo >&2 " $ patch -d vendor -p2 < '${SRCDIR:-$PWD}/debian/debcargo-conf.patch'" + fi + echo >&2 "================================================================================" + bash || true + echo >&2 "$0: trying patches again..." +done +rm -rf vendor/*/.pc +find vendor/*/debian/patches -name '*~' -delete || true +cargo update +cargo lock list > packages-after +pruned_paths | while read x; do echo >&2 "$0: removing, because debcargo-conf patches makes it obsolete: $x"; rm -rf "$x"; done + +# remove excluded files +( cd vendor +for i in *; do ( + debname=$(crate_to_debcargo_conf "$i") + shopt -s globstar # needed for double-glob to work in excludes + cd $i + if [ -e ../../debcargo-conf/src/$debname/debian/rules ]; then + echo >&2 "$0: the debcargo-conf for crate $i has a custom rules file, but applying excludes anyway" + echo >&2 "$0: you may want to examine this situation more closely" + fi + if grep -q excludes ../../debcargo-conf/src/$debname/debian/debcargo.toml 2>/dev/null; then + sed -nre 's/.*excludes\s*=\s*(\[[^]]*\]).*/\1/p' \ + ../../debcargo-conf/src/$i/debian/debcargo.toml \ + | python3 -c "import ast, sys; x=ast.literal_eval(sys.stdin.read()); print('\n'.join((i[:-3] if i.endswith('/**') else i) for i in x));" \ + | while read x; do echo >&2 "$0: removing, since it's excluded by debcargo-conf: vendor/$i/$x"; rm -rf $x; done + fi +); done; ) + +# TODO: rm special logic from debcargo and put into debcargo-conf instead +echo >&2 "$0: removing winapi/windows_* archives" +rm -rf vendor/winapi-*-pc-windows-gnu/lib/*.a +rm -rf vendor/windows_*_*/lib/*.lib +rm -rf vendor/windows_*_*/lib/*.a + +echo >&2 "$0: pruning all checksums.." +for i in vendor/*; do ${SCRIPTDIR}/prune-checksums "$i"; done + +( cd vendor +for i in *; do ( + cd $i + debname=$(crate_to_debcargo_conf "$i") + if [ -d debian/patches ]; then + rm -rf "../../debcargo-conf/src/$debname/debian/patches" + cp -a debian/patches "../../debcargo-conf/src/$debname/debian/" + fi +); done; ) +( cd debcargo-conf +git add . +if ! git diff --cached --quiet; then + git commit -m "Manual changes from debian-cargo-vendor" + git diff @~ > ../../debcargo-conf.patch || true + (cd ../.. ; echo >&2 "$0: backed up patch changes to $PWD/debcargo-conf.patch") + echo >&2 "$0: you should backport/merge them back into debcargo-conf.git" +fi +) + +echo >&2 "$0: cleaning up..." +rm -rf .cargo Cargo.lock debcargo-conf packages-before packages-after + +echo >&2 "$0: restoring original Cargo.lock" +mv Cargo.lock.orig Cargo.lock diff --git a/debian/scripts/guess-crate-copyright b/debian/scripts/guess-crate-copyright new file mode 100755 index 0000000..15f35f6 --- /dev/null +++ b/debian/scripts/guess-crate-copyright @@ -0,0 +1,45 @@ +#!/usr/bin/python3 +# Copyright: 2015-2017 The Debian Project +# License: MIT or Apache-2.0 +# +# Guess the copyright of a cargo crate by looking at its git history. + +import datetime +import toml +import os +import subprocess +import sys + +this_year = datetime.datetime.now().year +crates = sys.argv[1:] +get_initial_commit = len(crates) == 1 + +for crate in crates: + with open(os.path.join(crate, "Cargo.toml")) as fp: + data = toml.load(fp) + repo = data["package"].get("repository", None) + if get_initial_commit and repo: + output = subprocess.check_output( + """git clone -q --bare "%s" tmp.crate-copyright >&2 && +cd tmp.crate-copyright && +git log --format=%%cI --reverse | head -n1 | cut -b1-4 && +git log --format=%%cI | head -n1 | cut -b1-4 && +cd .. && +rm -rf tmp.crate-copyright""" % repo, shell=True).decode("utf-8") + first_year, last_year = output.strip().split(maxsplit=2) + else: + first_year = "20XX" + last_year = this_year + + authors = data["package"].get("authors", ["UNKNOWN AUTHORS"]) + + print("""Files: {0} +Copyright: {1} +License: {2} +Comment: see {3} +""".format( + os.path.join(crate, "*"), + "\n ".join("%s-%s %s" % (first_year, last_year, a.replace(" <>", "")) for a in authors), + data["package"].get("license", "???").replace("/", " or "), + repo or "???" + )) diff --git a/debian/scripts/prune-checksums b/debian/scripts/prune-checksums new file mode 100755 index 0000000..0c895cf --- /dev/null +++ b/debian/scripts/prune-checksums @@ -0,0 +1,47 @@ +#!/usr/bin/python3 +# Copyright: 2015-2017 The Debian Project +# License: MIT or Apache-2.0 +# +# Helper to remove removed-files from .cargo-checksum +# TODO: rewrite to perl and add to dh-cargo, maybe? + +from collections import OrderedDict +import argparse +import json +import os +import sys + +def prune_keep(cfile): + with open(cfile) as fp: + sums = json.load(fp, object_pairs_hook=OrderedDict) + + oldfiles = sums["files"] + newfiles = OrderedDict([entry for entry in oldfiles.items() if os.path.exists(entry[0])]) + sums["files"] = newfiles + + if len(oldfiles) == len(newfiles): + return + + with open(cfile, "w") as fp: + json.dump(sums, fp, separators=(',', ':')) + +def prune(cfile): + with open(cfile, "r+") as fp: + sums = json.load(fp, object_pairs_hook=OrderedDict) + sums["files"] = {} + fp.seek(0) + json.dump(sums, fp, separators=(',', ':')) + fp.truncate() + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("-k", "--keep", action="store_true", help="keep " + "checksums of files that still exist, and assume they haven't changed.") + parser.add_argument('crates', nargs=argparse.REMAINDER, + help="crates whose checksums to prune. (default: ./)") + args = parser.parse_args(sys.argv[1:]) + crates = args.crates or ["."] + f = prune_keep if args.keep else prune + for c in crates: + cfile = os.path.join(c, ".cargo-checksum.json") if os.path.isdir(c) else c + f(cfile) diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides new file mode 100644 index 0000000..bf563b5 --- /dev/null +++ b/debian/source/lintian-overrides @@ -0,0 +1,5 @@ +# debian policy bug #649530 +cargo source: missing-license-paragraph-in-dep5-copyright mpl-2.0+ [debian/copyright:*] + +# lintian is superfluous +cargo source: superfluous-file-pattern debian/copyright * (*) diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..b9d1863 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,4 @@ +Tests: self-build +Restrictions: rw-build-tree, allow-stderr +Architecture: amd64, armhf, i386, s390x #arm64 and ppc64el run out of disk space when running this test +Depends: @builddeps@ diff --git a/debian/tests/self-build b/debian/tests/self-build new file mode 100755 index 0000000..91e7381 --- /dev/null +++ b/debian/tests/self-build @@ -0,0 +1,6 @@ +#!/bin/sh + +mkdir -p .cargo +cp ./debian/tests/self-build.config.toml .cargo/config.toml +export CFG_DISABLE_CROSS_TESTS=1 +exec cargo test -Zavoid-dev-deps diff --git a/debian/tests/self-build.config.toml b/debian/tests/self-build.config.toml new file mode 100644 index 0000000..8838d32 --- /dev/null +++ b/debian/tests/self-build.config.toml @@ -0,0 +1,5 @@ +[source.crates-io] +replace-with = "dh-cargo-registry" + +[source.dh-cargo-registry] +directory = "vendor" diff --git a/debian/vendor-tarball-unsuspicious.txt b/debian/vendor-tarball-unsuspicious.txt new file mode 100644 index 0000000..ad03f53 --- /dev/null +++ b/debian/vendor-tarball-unsuspicious.txt @@ -0,0 +1,202 @@ +# This is a list of files and dirs that are omitted from our custom +# "suspicious files" scanner. DO NOT ADD STUFF HERE WITHOUT UNDERSTANDING WHY. + +# docs +*/CHANGELOG.md +*/LICENSE +*/LICENSE.md +*/README.md +*/readme.md +*/Cargo.toml +base64/RELEASE-NOTES.md + +# ignore +base64/icon_CLion.svg + +# test data +base64ct/tests/proptests.proptest-regressions +block-buffer/tests/mod.rs +bstr/src/unicode/data/*Test.txt +content_inspector/testdata/* +der/tests/examples/*.der +elliptic-curve/tests/examples/*.der +flate2/examples/hello_world.txt.gz +flate2/tests/ +hkdf/tests/data/*.blb +hmac/tests/data/*.blb +idna/tests/IdnaTestV2.txt +idna/tests/punycode_tests.json +im-rc/proptest-regressions/ +itertools/examples/iris.data +memchr/src/tests/x86_64-soft_float.json +openssl/test/ +p384/src/test_vectors/data/*.blb +pasetors/test_vectors/*.json +pasetors/test_vectors/*/*.json +pem-rfc7468/tests/examples/*.der +pem-rfc7468/tests/examples/*.pem +pkcs8/tests/examples/*.der +pkcs8/tests/private_key.rs +regex-automata/tests/fuzz/testdata/* +regex-automata/tests/gen/dense/*.dfa +regex-automata/tests/gen/sparse/*.dfa +regex/record/compile-test/*.csv +regex/testdata/fowler/dat/basic.dat +regex/tests/ +schannel/test/cert.der +schannel/test/cert.pem +schannel/test/identity.p12 +schannel/test/key.key +schannel/test/key_wrong_header.pem +schannel/test/self-signed.badssl.com.cer +sec1/tests/examples/*.der +sec1/tests/examples/*.pem +sha1/tests/data/*.blb +sha2/tests/data/*.blb +spki/tests/examples/*.der +toml_edit/tests/fixtures/* +unicode-ident/tests/fst/*.fst +url/tests/*.json +vcpkg/test-data/*/installed/vcpkg/updates/* +vte/tests/demo.vte +winnow/benches/contains_token.rs +winnow/benches/iter.rs +winnow/examples/css/parser.rs +winnow/examples/ndjson/example.ndjson + +# ideally should be autogenerated, but too difficult today +bstr/src/unicode/fsm/*.dfa +regex-syntax/src/unicode_tables/*.rs + +# "verylongtext" but OK source code, manually audited: +anstyle-parse/src/state/table.rs +elliptic-curve/src/hash2curve/hash2field/expand_msg/xmd.rs +elliptic-curve/src/hash2curve/hash2field/expand_msg/xof.rs +elliptic-curve/src/jwk.rs +fiat-crypto/src/p448_solinas_32.rs +fiat-crypto/src/p521_32.rs +fiat-crypto/src/secp256k1_dettman_32.rs +fiat-crypto/src/secp256k1_dettman_64.rs +git2/src/cred.rs +libz-sys/src/smoke.c +linux-raw-sys/CODE_OF_CONDUCT.md +miniz_oxide/Readme.md +openssl-sys/build/expando.c +p384/src/arithmetic/hash2curve.rs +pasetors/src/footer.rs +pasetors/src/token.rs +pasetors/src/version2.rs +pasetors/src/version3.rs +pasetors/src/version4.rs +rustix/CODE_OF_CONDUCT.md +serde_json/tests/lexical/parse.rs +spki/tests/spki.rs +tinyvec/LICENSE-MIT.md +unicode-normalization/src/stream_safe.rs +vcpkg/notes.md +walkdir/compare/nftw.c +winapi/src/lib.rs +windows-sys/src/*.rs +windows-sys/src/*/*.rs +windows-sys/src/*/*/*.rs +windows-sys/src/*/*/*/*.rs +windows-sys/src/*/*/*/*/*.rs +windows-sys/src/*/*/*/*/*/*.rs +windows-sys/src/*/*/*/*/*/*/*.rs +windows-sys-0.*/src/*.rs +windows-sys-0.*/src/*/*.rs +windows-sys-0.*/src/*/*/*.rs +windows-sys-0.*/src/*/*/*/*.rs +windows-sys-0.*/src/*/*/*/*/*.rs +windows-sys-0.*/src/*/*/*/*/*/*.rs + +idna/src/make_uts46_mapping_table.py +walkdir/compare/walk.py +unicode-normalization/scripts/unicode.py +unicode-width/scripts/unicode.py + +# false positive (Dyalog APL transfer) +clap/examples/tutorial_*/*.md +clap/examples/*.md + +# false positive (random assorted) +fiat-crypto/COPYRIGHT + +# false positive (Algol68) +aho-corasick/src/ahocorasick.rs +base16ct/src/lower.rs +base16ct/src/mixed.rs +base16ct/src/upper.rs +base64/src/decode.rs +base64/src/encode.rs +base64ct/src/decoder.rs +base64ct/src/encoder.rs +base64ct/src/encoding.rs +base64ct/tests/bcrypt.rs +base64ct/tests/crypt.rs +base64ct/tests/shacrypt.rs +base64ct/tests/standard.rs +base64ct/tests/url.rs +bitflags/src/traits.rs +clap_builder/src/derive.rs +digest/src/core_api/rt_variable.rs +digest/src/core_api/wrapper.rs +digest/src/dev.rs +ecdsa/src/der.rs +ed25519-compact/src/sha512.rs +env_logger-0.7.1/src/fmt/writer/mod.rs +env_logger/src/fmt/writer/mod.rs +flate2/src/mem.rs +flate2/src/zio.rs +miniz_oxide/src/deflate/mod.rs +miniz_oxide/src/inflate/mod.rs +openssl/src/cms.rs +openssl/src/envelope.rs +orion/src/test_framework/aead_interface.rs +orion/src/test_framework/streamcipher_interface.rs +os_info/src/matcher.rs +proc-macro2/src/parse.rs +regex-automata/src/dfa/automaton.rs +regex-automata/src/hybrid/dfa.rs +regex-automata/src/meta/regex.rs +regex/src/regex/bytes.rs +semver/src/parse.rs +snapbox/src/substitutions.rs +syn/src/attr.rs +syn/src/custom_punctuation.rs +syn/src/group.rs +syn/src/meta.rs +syn/src/pat.rs +syn/src/path.rs +syn/src/punctuated.rs +syn/src/stmt.rs +syn/src/token.rs +syn/src/ty.rs +syn/tests/test_meta.rs +time/src/parsing/combinator/mod.rs +time/src/parsing/combinator/rfc/iso8601.rs +time/src/parsing/combinator/rfc/rfc2822.rs +time/src/parsing/component.rs +time/src/parsing/iso8601.rs +time/src/parsing/parsable.rs +time/src/parsing/parsed.rs +time/src/primitive_date_time.rs +toml_edit/src/parser/document.rs +toml_edit/src/parser/errors.rs +toml_edit/src/parser/key.rs +toml_edit/src/parser/mod.rs +toml_edit/src/raw_string.rs +toml_edit/tests/testsuite/parse.rs +url/src/parser.rs +winnow/benches/number.rs +winnow/src/ascii/mod.rs +winnow/src/binary/bits/mod.rs +winnow/src/binary/bits/tests.rs +winnow/src/binary/mod.rs +winnow/src/combinator/branch.rs +winnow/src/combinator/core.rs +winnow/src/combinator/parser.rs +winnow/src/combinator/tests.rs +winnow/src/error.rs +winnow/src/parser.rs +winnow/src/token/mod.rs diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..4a9b9f2 --- /dev/null +++ b/debian/watch @@ -0,0 +1,4 @@ +version=4 +opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%cargo-$1.tar.gz%" \ + https://github.com/rust-lang/cargo/tags \ + (?:.*?/)?v?(\d[\d.]*)\.tar\.gz -- cgit v1.2.3