Version in base suite: 0.57.0-7~deb11u1 Base version: cargo-mozilla_0.57.0-7~deb11u1 Target version: cargo-mozilla_0.66.0+ds1-1~deb11u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/c/cargo-mozilla/cargo-mozilla_0.57.0-7~deb11u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/c/cargo-mozilla/cargo-mozilla_0.66.0+ds1-1~deb11u1.dsc /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/cargo.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/diem.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/empty.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/gecko-dev.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/rust-ws-inherit.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/rust.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/servo.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/substrate.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/tikv.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/toml-rs.tgz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/debian/libgit2_1.3.0+dfsg.1.orig.tar.xz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/debian/libgit2_1.5.1+ds.orig.tar.xz |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/grapheme_break_fwd.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/grapheme_break_fwd.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/grapheme_break_rev.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/grapheme_break_rev.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/regional_indicator_rev.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/regional_indicator_rev.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/sentence_break_fwd.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/sentence_break_fwd.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/simple_word_fwd.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/simple_word_fwd.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/whitespace_anchored_fwd.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/whitespace_anchored_fwd.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/whitespace_anchored_rev.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/whitespace_anchored_rev.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/word_break_fwd.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/word_break_fwd.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/grapheme_break_fwd.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/grapheme_break_fwd.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/grapheme_break_rev.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/grapheme_break_rev.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/sentence_break_fwd.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/sentence_break_fwd.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/simple_word_fwd.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/simple_word_fwd.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/word_break_fwd.bigendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/word_break_fwd.littleendian.dfa |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/test.jpg |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/test.png |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/text_UTF-16BE-BOM.txt |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/text_UTF-16LE-BOM.txt |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/text_UTF-32BE-BOM.txt |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/text_UTF-32LE-BOM.txt |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/md5.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/sha224.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/sha256.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/sha384.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/sha512.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/streebog256.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/streebog512.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/wycheproof-sha1.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/wycheproof-sha256.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/wycheproof-sha384.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/data/wycheproof-sha512.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/sha1/tests/data/sha1.blb |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/fst/xid_continue.fst |binary /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/fst/xid_start.fst |binary cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/bug_report.md | 28 cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/bug_report.yml | 43 cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/config.yml | 10 cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/feature_request.md | 16 cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/feature_request.yml | 35 cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/tracking_issue.md | 35 cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/tracking_issue.yml | 50 cargo-mozilla-0.66.0+ds1/.github/PULL_REQUEST_TEMPLATE.md | 43 cargo-mozilla-0.66.0+ds1/.github/dependabot.yml | 15 cargo-mozilla-0.66.0+ds1/.github/workflows/contrib.yml | 12 cargo-mozilla-0.66.0+ds1/.github/workflows/main.yml | 78 cargo-mozilla-0.66.0+ds1/.ignore | 6 cargo-mozilla-0.66.0+ds1/CHANGELOG.md | 633 cargo-mozilla-0.66.0+ds1/CONTRIBUTING.md | 16 cargo-mozilla-0.66.0+ds1/Cargo.toml | 35 cargo-mozilla-0.66.0+ds1/README.md | 50 cargo-mozilla-0.66.0+ds1/benches/README.md | 124 cargo-mozilla-0.66.0+ds1/benches/benchsuite/Cargo.toml | 28 cargo-mozilla-0.66.0+ds1/benches/benchsuite/benches/resolve.rs | 146 cargo-mozilla-0.66.0+ds1/benches/benchsuite/benches/workspace_initialization.rs | 27 cargo-mozilla-0.66.0+ds1/benches/benchsuite/src/lib.rs | 197 cargo-mozilla-0.66.0+ds1/benches/capture/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/benches/capture/src/main.rs | 165 cargo-mozilla-0.66.0+ds1/build.rs | 29 cargo-mozilla-0.66.0+ds1/ci/dump-environment.sh | 13 cargo-mozilla-0.66.0+ds1/ci/fetch-smoke-test.sh | 27 cargo-mozilla-0.66.0+ds1/crates/cargo-platform/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/crates/cargo-test-macro/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/crates/cargo-test-macro/src/lib.rs | 198 cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/Cargo.toml | 16 cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/compare.rs | 53 cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/cross_compile.rs | 5 cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/lib.rs | 355 cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/paths.rs | 66 cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/registry.rs | 738 cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/tools.rs | 53 cargo-mozilla-0.66.0+ds1/crates/cargo-util/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/crates/cargo-util/src/paths.rs | 33 cargo-mozilla-0.66.0+ds1/crates/cargo-util/src/process_builder.rs | 365 cargo-mozilla-0.66.0+ds1/crates/cargo-util/src/process_error.rs | 7 cargo-mozilla-0.66.0+ds1/crates/crates-io/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/crates/crates-io/lib.rs | 2 cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-1password/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-gnome-secret/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-macos-keychain/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-wincred/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/crates/mdman/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/crates/mdman/src/hbs.rs | 4 cargo-mozilla-0.66.0+ds1/crates/resolver-tests/Cargo.toml | 1 cargo-mozilla-0.66.0+ds1/crates/resolver-tests/src/lib.rs | 19 cargo-mozilla-0.66.0+ds1/debian/README.source | 4 cargo-mozilla-0.66.0+ds1/debian/bin/cargo | 11 cargo-mozilla-0.66.0+ds1/debian/changelog | 69 cargo-mozilla-0.66.0+ds1/debian/control | 11 cargo-mozilla-0.66.0+ds1/debian/copyright | 390 cargo-mozilla-0.66.0+ds1/debian/debcargo-conf.patch | 503 cargo-mozilla-0.66.0+ds1/debian/lintian-to-copyright.sh | 2 cargo-mozilla-0.66.0+ds1/debian/make_orig_multi-pre-vendor.sh | 6 cargo-mozilla-0.66.0+ds1/debian/make_orig_multi.sh | 21 cargo-mozilla-0.66.0+ds1/debian/patches/0001-Change-test-to-not-trigger-emoji-error.patch | 37 cargo-mozilla-0.66.0+ds1/debian/patches/0002-Remove-eacces-test.patch | 93 cargo-mozilla-0.66.0+ds1/debian/patches/0003-tests-add-missing-cross-disabled-checks.patch | 46 cargo-mozilla-0.66.0+ds1/debian/patches/2002_disable-net-tests.patch | 6 cargo-mozilla-0.66.0+ds1/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch | 17 cargo-mozilla-0.66.0+ds1/debian/patches/2110-use-mfpu-on-armhf.patch | 18 cargo-mozilla-0.66.0+ds1/debian/patches/2111-curl-no-rebuild.patch | 12 cargo-mozilla-0.66.0+ds1/debian/patches/2112-handle-4-siphasher-algorithms.patch | 19 cargo-mozilla-0.66.0+ds1/debian/patches/2300-disable-close_output_during_drain-test.patch | 23 cargo-mozilla-0.66.0+ds1/debian/patches/cargo-no-namespaced-features.patch | 46 cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-01-validate-ssh-host.keys.patch | 586 cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-02-add-support-for-deserializing-vec-value-string.patch | 157 cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-03-support-configuring-ssh-known-hosts.patch | 299 cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-04-add-some-known-hosts-tests-and-fix-comma-bug.patch | 244 cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-05-remove-let-else.patch | 26 cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-06-add-test-for-config-value-in-toml-array.patch | 79 cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-07-support-hashed-hostnames.patch | 125 cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-08-eliminate-let-else.patch | 61 cargo-mozilla-0.66.0+ds1/debian/patches/disable-fs-specific-test.patch | 13 cargo-mozilla-0.66.0+ds1/debian/patches/series | 22 cargo-mozilla-0.66.0+ds1/debian/patches/use-vendored-libgit.patch | 25 cargo-mozilla-0.66.0+ds1/debian/rules | 4 cargo-mozilla-0.66.0+ds1/debian/scripts/audit-vendor-source | 2 cargo-mozilla-0.66.0+ds1/debian/scripts/guess-crate-copyright | 5 cargo-mozilla-0.66.0+ds1/debian/source/include-binaries | 2 cargo-mozilla-0.66.0+ds1/debian/vendor-tarball-unsuspicious.txt | 92 cargo-mozilla-0.66.0+ds1/src/bin/cargo/cli.rs | 323 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/add.rs | 356 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/bench.rs | 38 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/build.rs | 5 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/check.rs | 10 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/clean.rs | 8 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/config.rs | 30 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/doc.rs | 20 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/fetch.rs | 4 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/fix.rs | 87 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/generate_lockfile.rs | 4 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/git_checkout.rs | 6 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/help.rs | 105 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/init.rs | 6 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/install.rs | 99 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/locate_project.rs | 14 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/login.rs | 16 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/logout.rs | 6 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/metadata.rs | 12 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/mod.rs | 7 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/new.rs | 10 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/owner.rs | 28 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/package.rs | 23 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/pkgid.rs | 11 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/publish.rs | 19 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/read_manifest.rs | 8 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/report.rs | 26 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/run.rs | 30 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/rustc.rs | 30 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/rustdoc.rs | 13 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/search.rs | 14 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/test.rs | 96 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/tree.rs | 89 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/uninstall.rs | 13 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/update.rs | 16 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/vendor.rs | 93 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/verify_project.rs | 16 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/version.rs | 6 cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/yank.rs | 50 cargo-mozilla-0.66.0+ds1/src/bin/cargo/main.rs | 128 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/artifact.rs | 57 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/build_config.rs | 62 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/build_context/mod.rs | 5 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/build_context/target_info.rs | 227 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/build_plan.rs | 2 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/compilation.rs | 18 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/compile_kind.rs | 55 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/context/compilation_files.rs | 62 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/context/mod.rs | 122 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/custom_build.rs | 72 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/fingerprint.rs | 46 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/future_incompat.rs | 335 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/job_queue.rs | 284 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/layout.rs | 14 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/mod.rs | 278 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/output_depinfo.rs | 26 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/rustdoc.rs | 4 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/standard_lib.rs | 54 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/timings.js | 9 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/timings.rs | 63 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/unit.rs | 8 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/unit_dependencies.rs | 541 cargo-mozilla-0.66.0+ds1/src/cargo/core/compiler/unit_graph.rs | 6 cargo-mozilla-0.66.0+ds1/src/cargo/core/dependency.rs | 238 cargo-mozilla-0.66.0+ds1/src/cargo/core/features.rs | 133 cargo-mozilla-0.66.0+ds1/src/cargo/core/manifest.rs | 21 cargo-mozilla-0.66.0+ds1/src/cargo/core/mod.rs | 8 cargo-mozilla-0.66.0+ds1/src/cargo/core/package.rs | 121 cargo-mozilla-0.66.0+ds1/src/cargo/core/package_id_spec.rs | 45 cargo-mozilla-0.66.0+ds1/src/cargo/core/profiles.rs | 346 cargo-mozilla-0.66.0+ds1/src/cargo/core/registry.rs | 253 cargo-mozilla-0.66.0+ds1/src/cargo/core/resolver/dep_cache.rs | 110 cargo-mozilla-0.66.0+ds1/src/cargo/core/resolver/encode.rs | 2 cargo-mozilla-0.66.0+ds1/src/cargo/core/resolver/errors.rs | 65 cargo-mozilla-0.66.0+ds1/src/cargo/core/resolver/features.rs | 399 cargo-mozilla-0.66.0+ds1/src/cargo/core/resolver/mod.rs | 13 cargo-mozilla-0.66.0+ds1/src/cargo/core/resolver/resolve.rs | 29 cargo-mozilla-0.66.0+ds1/src/cargo/core/resolver/types.rs | 7 cargo-mozilla-0.66.0+ds1/src/cargo/core/resolver/version_prefs.rs | 4 cargo-mozilla-0.66.0+ds1/src/cargo/core/shell.rs | 80 cargo-mozilla-0.66.0+ds1/src/cargo/core/source/mod.rs | 112 cargo-mozilla-0.66.0+ds1/src/cargo/core/source/source_id.rs | 32 cargo-mozilla-0.66.0+ds1/src/cargo/core/summary.rs | 62 cargo-mozilla-0.66.0+ds1/src/cargo/core/workspace.rs | 300 cargo-mozilla-0.66.0+ds1/src/cargo/lib.rs | 217 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_add/crate_spec.rs | 63 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_add/dependency.rs | 1127 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_add/manifest.rs | 516 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_add/mod.rs | 886 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_clean.rs | 184 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_compile.rs | 518 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_config.rs | 15 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_doc.rs | 5 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_fetch.rs | 20 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_generate_lockfile.rs | 31 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_install.rs | 114 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_new.rs | 33 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_output_metadata.rs | 16 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_package.rs | 230 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_read_manifest.rs | 15 cargo-mozilla-0.66.0+ds1/src/cargo/ops/cargo_test.rs | 382 cargo-mozilla-0.66.0+ds1/src/cargo/ops/common_for_install_and_uninstall.rs | 33 cargo-mozilla-0.66.0+ds1/src/cargo/ops/fix.rs | 234 cargo-mozilla-0.66.0+ds1/src/cargo/ops/lockfile.rs | 24 cargo-mozilla-0.66.0+ds1/src/cargo/ops/mod.rs | 6 cargo-mozilla-0.66.0+ds1/src/cargo/ops/registry.rs | 226 cargo-mozilla-0.66.0+ds1/src/cargo/ops/registry/auth.rs | 15 cargo-mozilla-0.66.0+ds1/src/cargo/ops/resolve.rs | 152 cargo-mozilla-0.66.0+ds1/src/cargo/ops/tree/graph.rs | 103 cargo-mozilla-0.66.0+ds1/src/cargo/ops/tree/mod.rs | 2 cargo-mozilla-0.66.0+ds1/src/cargo/ops/vendor.rs | 43 cargo-mozilla-0.66.0+ds1/src/cargo/sources/config.rs | 11 cargo-mozilla-0.66.0+ds1/src/cargo/sources/directory.rs | 44 cargo-mozilla-0.66.0+ds1/src/cargo/sources/git/source.rs | 62 cargo-mozilla-0.66.0+ds1/src/cargo/sources/git/utils.rs | 216 cargo-mozilla-0.66.0+ds1/src/cargo/sources/path.rs | 191 cargo-mozilla-0.66.0+ds1/src/cargo/sources/registry/download.rs | 122 cargo-mozilla-0.66.0+ds1/src/cargo/sources/registry/http_remote.rs | 675 cargo-mozilla-0.66.0+ds1/src/cargo/sources/registry/index.rs | 374 cargo-mozilla-0.66.0+ds1/src/cargo/sources/registry/local.rs | 58 cargo-mozilla-0.66.0+ds1/src/cargo/sources/registry/mod.rs | 216 cargo-mozilla-0.66.0+ds1/src/cargo/sources/registry/remote.rs | 238 cargo-mozilla-0.66.0+ds1/src/cargo/sources/replaced.rs | 45 cargo-mozilla-0.66.0+ds1/src/cargo/util/canonical_url.rs | 13 cargo-mozilla-0.66.0+ds1/src/cargo/util/command_prelude.rs | 371 cargo-mozilla-0.66.0+ds1/src/cargo/util/config/key.rs | 2 cargo-mozilla-0.66.0+ds1/src/cargo/util/config/mod.rs | 229 cargo-mozilla-0.66.0+ds1/src/cargo/util/config/target.rs | 50 cargo-mozilla-0.66.0+ds1/src/cargo/util/dependency_queue.rs | 32 cargo-mozilla-0.66.0+ds1/src/cargo/util/diagnostic_server.rs | 9 cargo-mozilla-0.66.0+ds1/src/cargo/util/errors.rs | 127 cargo-mozilla-0.66.0+ds1/src/cargo/util/flock.rs | 6 cargo-mozilla-0.66.0+ds1/src/cargo/util/lev_distance.rs | 13 cargo-mozilla-0.66.0+ds1/src/cargo/util/mod.rs | 4 cargo-mozilla-0.66.0+ds1/src/cargo/util/network.rs | 15 cargo-mozilla-0.66.0+ds1/src/cargo/util/progress.rs | 2 cargo-mozilla-0.66.0+ds1/src/cargo/util/rustc.rs | 25 cargo-mozilla-0.66.0+ds1/src/cargo/util/semver_ext.rs | 76 cargo-mozilla-0.66.0+ds1/src/cargo/util/toml/mod.rs | 1466 cargo-mozilla-0.66.0+ds1/src/cargo/util/toml/targets.rs | 161 cargo-mozilla-0.66.0+ds1/src/cargo/util/vcs.rs | 4 cargo-mozilla-0.66.0+ds1/src/cargo/version.rs | 80 cargo-mozilla-0.66.0+ds1/src/doc/book.toml | 1 cargo-mozilla-0.66.0+ds1/src/doc/contrib/src/SUMMARY.md | 3 cargo-mozilla-0.66.0+ds1/src/doc/contrib/src/process/index.md | 12 cargo-mozilla-0.66.0+ds1/src/doc/contrib/src/process/release.md | 57 cargo-mozilla-0.66.0+ds1/src/doc/contrib/src/process/unstable.md | 26 cargo-mozilla-0.66.0+ds1/src/doc/contrib/src/process/working-on-cargo.md | 30 cargo-mozilla-0.66.0+ds1/src/doc/contrib/src/tests/crater.md | 122 cargo-mozilla-0.66.0+ds1/src/doc/contrib/src/tests/profiling.md | 26 cargo-mozilla-0.66.0+ds1/src/doc/contrib/src/tests/writing.md | 282 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-add.md | 162 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-bench.md | 42 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-build.md | 11 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-check.md | 9 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-clean.md | 7 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-doc.md | 8 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-fetch.md | 4 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-fix.md | 8 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-install.md | 13 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-metadata.md | 2 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-package.md | 18 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-pkgid.md | 6 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-publish.md | 2 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-report.md | 42 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-run.md | 7 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-rustc.md | 43 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-rustdoc.md | 8 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-test.md | 59 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-vendor.md | 4 cargo-mozilla-0.66.0+ds1/src/doc/man/cargo-yank.md | 7 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-add.txt | 192 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-bench.txt | 93 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-build.txt | 93 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-check.txt | 93 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-clean.txt | 21 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-doc.txt | 80 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-fetch.txt | 21 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-fix.txt | 89 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-generate-lockfile.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-init.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-install.txt | 82 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-locate-project.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-login.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-metadata.txt | 16 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-new.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-owner.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-package.txt | 39 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-pkgid.txt | 18 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-publish.txt | 26 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-report.txt | 34 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-run.txt | 77 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-rustc.txt | 127 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-rustdoc.txt | 80 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-search.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-test.txt | 134 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-tree.txt | 14 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-uninstall.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-update.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-vendor.txt | 17 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-verify-project.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo-yank.txt | 19 cargo-mozilla-0.66.0+ds1/src/doc/man/generated_txt/cargo.txt | 12 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-display.md | 4 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-future-incompat.md | 6 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-jobs.md | 4 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-keep-going.md | 5 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-message-format.md | 2 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-profile-legacy-check.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-profile.md | 7 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-release.md | 7 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-target-triple.md | 7 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-targets-bin-auto-built.md | 8 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/options-timings.md | 16 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/section-features.md | 2 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/section-options-common.md | 6 cargo-mozilla-0.66.0+ds1/src/doc/man/includes/section-profiles.md | 16 cargo-mozilla-0.66.0+ds1/src/doc/semver-check/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/src/doc/semver-check/src/main.rs | 131 cargo-mozilla-0.66.0+ds1/src/doc/src/SUMMARY.md | 4 cargo-mozilla-0.66.0+ds1/src/doc/src/appendix/git-authentication.md | 12 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/build-commands.md | 1 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-add.md | 234 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-bench.md | 96 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-build.md | 88 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-check.md | 83 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-clean.md | 22 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-doc.md | 76 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-fetch.md | 19 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-fix.md | 81 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-generate-lockfile.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-init.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-install.md | 81 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-locate-project.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-login.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-metadata.md | 13 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-new.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-owner.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-package.md | 43 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-pkgid.md | 16 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-publish.md | 27 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-report.md | 43 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-run.md | 73 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-rustc.md | 113 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-rustdoc.md | 76 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-search.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-test.md | 126 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-tree.md | 11 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-uninstall.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-update.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-vendor.md | 14 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-verify-project.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo-yank.md | 16 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/cargo.md | 10 cargo-mozilla-0.66.0+ds1/src/doc/src/commands/manifest-commands.md | 1 cargo-mozilla-0.66.0+ds1/src/doc/src/faq.md | 9 cargo-mozilla-0.66.0+ds1/src/doc/src/getting-started/first-steps.md | 2 cargo-mozilla-0.66.0+ds1/src/doc/src/getting-started/installation.md | 3 cargo-mozilla-0.66.0+ds1/src/doc/src/guide/build-cache.md | 36 cargo-mozilla-0.66.0+ds1/src/doc/src/guide/cargo-home.md | 4 cargo-mozilla-0.66.0+ds1/src/doc/src/guide/cargo-toml-vs-cargo-lock.md | 3 cargo-mozilla-0.66.0+ds1/src/doc/src/guide/continuous-integration.md | 34 cargo-mozilla-0.66.0+ds1/src/doc/src/guide/creating-a-new-project.md | 2 cargo-mozilla-0.66.0+ds1/src/doc/src/guide/dependencies.md | 6 cargo-mozilla-0.66.0+ds1/src/doc/src/guide/tests.md | 18 cargo-mozilla-0.66.0+ds1/src/doc/src/images/profile-selection.svg | 3 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/build-script-examples.md | 6 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/build-scripts.md | 63 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/cargo-targets.md | 6 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/config.md | 180 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/environment-variables.md | 70 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/features.md | 82 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/future-incompat-report.md | 37 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/index.md | 2 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/manifest.md | 15 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/overriding-dependencies.md | 6 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/pkgid-spec.md | 14 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/profiles.md | 150 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/publishing.md | 24 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/registries.md | 59 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/resolver.md | 3 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/semver.md | 2 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/specifying-dependencies.md | 98 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/timings.md | 51 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/unstable.md | 543 cargo-mozilla-0.66.0+ds1/src/doc/src/reference/workspaces.md | 87 cargo-mozilla-0.66.0+ds1/src/etc/_cargo | 58 cargo-mozilla-0.66.0+ds1/src/etc/cargo.bashcomp.sh | 60 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-add.1 | 264 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-bench.1 | 95 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-build.1 | 114 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-check.1 | 112 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-clean.1 | 23 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-doc.1 | 99 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-fetch.1 | 18 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-fix.1 | 106 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-generate-lockfile.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-init.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-install.1 | 99 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-locate-project.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-login.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-metadata.1 | 14 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-new.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-owner.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-package.1 | 44 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-pkgid.1 | 19 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-publish.1 | 28 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-report.1 | 48 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-run.1 | 97 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-rustc.1 | 158 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-rustdoc.1 | 99 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-search.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-test.1 | 156 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-tree.1 | 12 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-uninstall.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-update.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-vendor.1 | 15 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-verify-project.1 | 11 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo-yank.1 | 20 cargo-mozilla-0.66.0+ds1/src/etc/man/cargo.1 | 11 cargo-mozilla-0.66.0+ds1/tests/build-std/main.rs | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/advanced_env.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/alt_registry.rs | 35 cargo-mozilla-0.66.0+ds1/tests/testsuite/artifact_dep.rs | 2266 cargo-mozilla-0.66.0+ds1/tests/testsuite/bad_config.rs | 67 cargo-mozilla-0.66.0+ds1/tests/testsuite/bench.rs | 263 cargo-mozilla-0.66.0+ds1/tests/testsuite/binary_name.rs | 36 cargo-mozilla-0.66.0+ds1/tests/testsuite/build.rs | 700 cargo-mozilla-0.66.0+ds1/tests/testsuite/build_plan.rs | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/build_script.rs | 355 cargo-mozilla-0.66.0+ds1/tests/testsuite/build_script_env.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/build_script_extra_link_arg.rs | 111 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add-basic.in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_basic/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_basic/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_basic/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_basic/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_multiple/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_multiple/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_multiple/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_multiple/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_normalized_name_external/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_normalized_name_external/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_normalized_name_external/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/add_normalized_name_external/stderr.log | 18 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build_prefer_existing_version/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build_prefer_existing_version/in/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build_prefer_existing_version/mod.rs | 28 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build_prefer_existing_version/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build_prefer_existing_version/out/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/build_prefer_existing_version/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/change_rename_target/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/change_rename_target/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/change_rename_target/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/change_rename_target/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/default_features/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/default_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/default_features/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/default_features/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/deprecated_default_features/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/deprecated_default_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/deprecated_default_features/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/deprecated_default_features/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/deprecated_section/in/Cargo.toml | 11 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/deprecated_section/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/deprecated_section/out/Cargo.toml | 11 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/deprecated_section/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_features/stderr.log | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_optional/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/detect_workspace_inherit_optional/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_build_conflict/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_build_conflict/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_build_conflict/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_build_conflict/stderr.log | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_prefer_existing_version/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_prefer_existing_version/in/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_prefer_existing_version/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_prefer_existing_version/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_prefer_existing_version/out/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dev_prefer_existing_version/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dry_run/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dry_run/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dry_run/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/dry_run/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_empty/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_empty/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_empty/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_empty/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_multiple_occurrences/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_multiple_occurrences/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_multiple_occurrences/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_multiple_occurrences/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_preserve/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_preserve/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_preserve/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_preserve/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_spaced_values/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_spaced_values/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_spaced_values/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_spaced_values/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_unknown/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_unknown/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_unknown/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/features_unknown/stderr.log | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git/mod.rs | 34 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_branch/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_branch/mod.rs | 37 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_branch/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_branch/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_conflicts_namever/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_conflicts_namever/mod.rs | 29 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_conflicts_namever/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_conflicts_namever/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_dev/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_dev/mod.rs | 34 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_dev/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_dev/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_inferred_name/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_inferred_name/mod.rs | 34 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_inferred_name/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_inferred_name/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_inferred_name_multiple/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs | 39 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_inferred_name_multiple/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_inferred_name_multiple/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_multiple_names/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_multiple_names/mod.rs | 39 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_multiple_names/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_multiple_names/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_normalized_name/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_normalized_name/mod.rs | 34 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_normalized_name/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_normalized_name/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_registry/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_registry/mod.rs | 40 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_registry/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_registry/stderr.log | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_rev/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_rev/mod.rs | 36 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_rev/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_rev/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_tag/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_tag/mod.rs | 36 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_tag/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/git_tag/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/infer_prerelease/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/infer_prerelease/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/infer_prerelease/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/infer_prerelease/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_arg/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_arg/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_arg/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_arg/stderr.log | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_git_external/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_git_external/mod.rs | 28 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_git_external/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_git_external/stderr.log | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_git_name/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_git_name/mod.rs | 34 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_git_name/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_git_name/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_inherit_dependency/mod.rs | 23 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_inherit_dependency/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/mod.rs | 23 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency-alt/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/mod.rs | 23 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/dependency-alt/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_manifest/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_manifest/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_manifest/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_manifest/stderr.log | 11 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_name_external/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_name_external/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_name_external/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_name_external/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path/stderr.log | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_name/in/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_name/in/primary/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_name/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_name/out/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_name/out/primary/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_name/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_self/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_self/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_self/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_path_self/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_target_empty/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_target_empty/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_target_empty/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_target_empty/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_vers/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_vers/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_vers/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/invalid_vers/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path/in/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path/in/dependency/Cargo.toml | 13 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path/in/optional/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path/out/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path/out/dependency/Cargo.toml | 13 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path_no_default/in/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path_no_default/in/dependency/Cargo.toml | 13 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path_no_default/in/optional/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path_no_default/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path_no_default/mod.rs | 30 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path_no_default/out/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path_no_default/out/dependency/Cargo.toml | 13 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path_no_default/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/list_features_path_no_default/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/locked_changed/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/locked_changed/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/locked_changed/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/locked_changed/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.lock | 16 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/locked_unchanged/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/locked_unchanged/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/locked_unchanged/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.lock | 17 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/lockfile_updated/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.lock | 23 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/lockfile_updated/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/manifest_path_package/in/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/manifest_path_package/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/manifest_path_package/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/manifest_path_package/mod.rs | 31 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/manifest_path_package/out/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/manifest_path_package/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/manifest_path_package/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/manifest_path_package/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/merge_activated_features/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/merge_activated_features/in/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/merge_activated_features/in/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/merge_activated_features/mod.rs | 23 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/merge_activated_features/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/merge_activated_features/out/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/merge_activated_features/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/merge_activated_features/stderr.log | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/mod.rs | 194 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/multiple_conflicts_with_features/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/multiple_conflicts_with_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/multiple_conflicts_with_features/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/multiple_conflicts_with_features/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/multiple_conflicts_with_rename/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/multiple_conflicts_with_rename/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/multiple_conflicts_with_rename/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/multiple_conflicts_with_rename/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/namever/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/namever/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/namever/out/Cargo.toml | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/namever/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_args/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_args/mod.rs | 24 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_args/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_args/stderr.log | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_default_features/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_default_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_default_features/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_default_features/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_optional/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_optional/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_optional/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/no_optional/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/offline_empty_cache/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/offline_empty_cache/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/offline_empty_cache/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/offline_empty_cache/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/optional/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/optional/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/optional/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/optional/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_default_features/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_default_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_default_features/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_default_features/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_features/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_features/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_features/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_git_with_path/in/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_git_with_path/in/primary/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_git_with_path/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_git_with_path/out/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_git_with_path/out/primary/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_git_with_path/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/dependency/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_features_noop/mod.rs | 23 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/dependency/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_features_noop/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_noop/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_noop/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_noop/in/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_noop/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_noop/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_noop/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_noop/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_noop/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inline_features/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inline_features/mod.rs | 27 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inline_features/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_inline_features/stderr.log | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_dev_noop/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_dev_noop/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_dev_noop/out/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_dev_noop/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_noop/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_noop/in/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_noop/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_noop/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_noop/out/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_name_noop/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_default_features/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_default_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_default_features/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_default_features/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_optional/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_optional/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_optional/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_optional/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_optional/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_optional/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_optional/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_optional/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/in/Cargo.toml | 13 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/out/Cargo.toml | 13 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/stderr.log | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_noop/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_noop/in/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_noop/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_noop/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_noop/out/dependency/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_noop/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_with_version/in/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_with_version/in/primary/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_with_version/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_with_version/out/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_with_version/out/primary/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_path_with_version/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_preserves_inline_table/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_preserves_inline_table/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_preserves_inline_table/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_preserves_inline_table/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_rename/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_rename/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_rename/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_rename/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_git/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_git/mod.rs | 34 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_git/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_git/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_path/in/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_path/in/primary/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_path/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_path/out/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_path/out/primary/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_version_with_path/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_with_rename/in/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_with_rename/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_with_rename/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_with_rename/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep/in/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep_features/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/overwrite_workspace_dep_features/stderr.log | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path/in/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path/in/primary/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path/out/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path/out/primary/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_dev/in/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_dev/in/primary/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_dev/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_dev/out/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_dev/out/primary/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_dev/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name/in/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name/in/primary/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name/out/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name/out/primary/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/optional/Cargo.toml | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_normalized_name/in/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_normalized_name/in/primary/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_normalized_name/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_normalized_name/out/dependency/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_normalized_name/out/primary/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/path_normalized_name/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/preserve_sorted/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/preserve_sorted/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/preserve_sorted/out/Cargo.toml | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/preserve_sorted/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/preserve_unsorted/in/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/preserve_unsorted/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/preserve_unsorted/out/Cargo.toml | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/preserve_unsorted/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/quiet/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/quiet/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/quiet/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/registry/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/registry/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/registry/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/registry/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/rename/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/rename/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/rename/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/rename/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/require_weak/in/Cargo.toml | 11 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/require_weak/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/require_weak/out/Cargo.toml | 11 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/require_weak/stderr.log | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/target/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/target/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/target/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/target/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/target_cfg/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/target_cfg/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/target_cfg/out/Cargo.toml | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/target_cfg/stderr.log | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/unknown_inherited_feature/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/unknown_inherited_feature/in/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/unknown_inherited_feature/in/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/unknown_inherited_feature/mod.rs | 23 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/unknown_inherited_feature/out/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/unknown_inherited_feature/out/dependency/Cargo.toml | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/unknown_inherited_feature/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/unknown_inherited_feature/stderr.log | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/vers/in/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/vers/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/vers/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/vers/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_name/in/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_name/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_name/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_name/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_name/out/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_name/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_name/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_name/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path/in/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path/out/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path_dev/in/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path_dev/in/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path_dev/in/primary/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path_dev/mod.rs | 25 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path_dev/out/Cargo.toml | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path_dev/out/dependency/Cargo.toml | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path_dev/out/primary/Cargo.toml | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_add/workspace_path_dev/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_alias_config.rs | 48 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_command.rs | 155 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_config.rs | 68 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_env_config.rs | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/cargo_features.rs | 94 cargo-mozilla-0.66.0+ds1/tests/testsuite/check.rs | 29 cargo-mozilla-0.66.0+ds1/tests/testsuite/check_cfg.rs | 588 cargo-mozilla-0.66.0+ds1/tests/testsuite/clean.rs | 47 cargo-mozilla-0.66.0+ds1/tests/testsuite/collisions.rs | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/concurrent.rs | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/config.rs | 42 cargo-mozilla-0.66.0+ds1/tests/testsuite/config_cli.rs | 198 cargo-mozilla-0.66.0+ds1/tests/testsuite/config_include.rs | 30 cargo-mozilla-0.66.0+ds1/tests/testsuite/credential_process.rs | 111 cargo-mozilla-0.66.0+ds1/tests/testsuite/cross_compile.rs | 61 cargo-mozilla-0.66.0+ds1/tests/testsuite/custom_target.rs | 68 cargo-mozilla-0.66.0+ds1/tests/testsuite/dep_info.rs | 33 cargo-mozilla-0.66.0+ds1/tests/testsuite/doc.rs | 702 cargo-mozilla-0.66.0+ds1/tests/testsuite/edition.rs | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/features.rs | 95 cargo-mozilla-0.66.0+ds1/tests/testsuite/features2.rs | 78 cargo-mozilla-0.66.0+ds1/tests/testsuite/features_namespaced.rs | 193 cargo-mozilla-0.66.0+ds1/tests/testsuite/fix.rs | 86 cargo-mozilla-0.66.0+ds1/tests/testsuite/freshness.rs | 26 cargo-mozilla-0.66.0+ds1/tests/testsuite/future_incompat_report.rs | 210 cargo-mozilla-0.66.0+ds1/tests/testsuite/generate_lockfile.rs | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/git.rs | 380 cargo-mozilla-0.66.0+ds1/tests/testsuite/git_gc.rs | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/glob_targets.rs | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/help.rs | 83 cargo-mozilla-0.66.0+ds1/tests/testsuite/inheritable_workspace_fields.rs | 1302 cargo-mozilla-0.66.0+ds1/tests/testsuite/init.rs | 673 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/auto_git/in/mod.rs | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/auto_git/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/auto_git/out/.gitignore | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/auto_git/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/auto_git/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/auto_git/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit/in/src/main.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit/out/src/main.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit_nosrc/in/main.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit_nosrc/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit_nosrc/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit_nosrc/out/main.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_explicit_nosrc/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit/in/src/main.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit/out/src/main.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namenosrc/in/case.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namenosrc/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namenosrc/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namenosrc/out/case.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namenosrc/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namesrc/in/src/case.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namesrc/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namesrc/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namesrc/out/src/case.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_namesrc/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_nosrc/in/main.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_nosrc/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_nosrc/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_nosrc/out/main.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/bin_already_exists_implicit_nosrc/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/both_lib_and_bin/mod.rs | 19 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/both_lib_and_bin/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/cant_create_library_when_both_binlib_present/in/case.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/cant_create_library_when_both_binlib_present/in/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/cant_create_library_when_both_binlib_present/mod.rs | 18 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/cant_create_library_when_both_binlib_present/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/confused_by_multiple_lib_files/in/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/confused_by_multiple_lib_files/in/src/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/confused_by_multiple_lib_files/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/confused_by_multiple_lib_files/out/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/confused_by_multiple_lib_files/out/src/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/confused_by_multiple_lib_files/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_both_binlib_present/in/case.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_both_binlib_present/in/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_both_binlib_present/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_both_binlib_present/out/Cargo.toml | 16 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_both_binlib_present/out/case.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_both_binlib_present/out/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_both_binlib_present/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_instructed_and_has_lib_file/in/case.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_instructed_and_has_lib_file/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_instructed_and_has_lib_file/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_instructed_and_has_lib_file/out/case.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_binary_when_instructed_and_has_lib_file/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_library_when_instructed_and_has_bin_file/in/case.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_library_when_instructed_and_has_bin_file/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_library_when_instructed_and_has_bin_file/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_library_when_instructed_and_has_bin_file/out/case.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/creates_library_when_instructed_and_has_bin_file/stderr.log | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/empty_dir/mod.rs | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/explicit_bin_with_git/in/mod.rs | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/explicit_bin_with_git/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/explicit_bin_with_git/out/.gitignore | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/explicit_bin_with_git/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/explicit_bin_with_git/out/src/main.rs | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/explicit_bin_with_git/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/formats_source/in/rustfmt.toml | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/formats_source/mod.rs | 29 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/formats_source/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/formats_source/out/rustfmt.toml | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/formats_source/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/formats_source/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/fossil_autodetect/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/fossil_autodetect/out/.fossil-settings/clean-glob | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/fossil_autodetect/out/.fossil-settings/ignore-glob | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/fossil_autodetect/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/fossil_autodetect/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/fossil_autodetect/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_autodetect/mod.rs | 24 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_autodetect/out/.gitignore | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_autodetect/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_autodetect/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_autodetect/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_ignore_exists_no_conflicting_entries/in/.gitignore | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_ignore_exists_no_conflicting_entries/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_ignore_exists_no_conflicting_entries/out/.gitignore | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_ignore_exists_no_conflicting_entries/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_ignore_exists_no_conflicting_entries/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/git_ignore_exists_no_conflicting_entries/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/ignores_failure_to_format_source/in/rustfmt.toml | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/ignores_failure_to_format_source/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/ignores_failure_to_format_source/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/ignores_failure_to_format_source/out/rustfmt.toml | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/ignores_failure_to_format_source/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/ignores_failure_to_format_source/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_bin_with_git/in/main.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_bin_with_git/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_bin_with_git/out/.gitignore | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_bin_with_git/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_bin_with_git/out/main.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_bin_with_git/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_lib_with_git/in/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_lib_with_git/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_lib_with_git/out/.gitignore | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_lib_with_git/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_lib_with_git/out/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/inferred_lib_with_git/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/invalid_dir_name/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/invalid_dir_name/stderr.log | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/lib_already_exists_nosrc/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/lib_already_exists_nosrc/out/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/lib_already_exists_nosrc/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/lib_already_exists_src/in/src/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/lib_already_exists_src/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/lib_already_exists_src/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/lib_already_exists_src/out/src/lib.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/lib_already_exists_src/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/mercurial_autodetect/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/mercurial_autodetect/out/.hgignore | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/mercurial_autodetect/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/mercurial_autodetect/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/mercurial_autodetect/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/mod.rs | 40 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/multibin_project_name_clash/in/case.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/multibin_project_name_clash/in/main.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/multibin_project_name_clash/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/multibin_project_name_clash/out/case.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/multibin_project_name_clash/out/main.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/multibin_project_name_clash/stderr.log | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/no_filename/mod.rs | 16 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/no_filename/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/pijul_autodetect/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/pijul_autodetect/out/.ignore | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/pijul_autodetect/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/pijul_autodetect/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/pijul_autodetect/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/reserved_name/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/reserved_name/stderr.log | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_bin/in/mod.rs | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_bin/mod.rs | 29 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_bin/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_bin/out/src/main.rs | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_bin/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git/in/mod.rs | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git/out/.gitignore | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git_ignore_exists/in/.gitignore | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git_ignore_exists/mod.rs | 28 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git_ignore_exists/out/.gitignore | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git_ignore_exists/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git_ignore_exists/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_git_ignore_exists/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg/in/mod.rs | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg/out/.hgignore | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg_ignore_exists/in/.hgignore | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg_ignore_exists/mod.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg_ignore_exists/out/.hgignore | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg_ignore_exists/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg_ignore_exists/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_hg_ignore_exists/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_lib/in/mod.rs | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_lib/mod.rs | 29 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_lib/out/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_lib/out/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/simple_lib/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/unknown_flags/mod.rs | 15 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/unknown_flags/stderr.log | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/with_argument/mod.rs | 21 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/with_argument/out/foo/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/with_argument/out/foo/src/main.rs | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/init/with_argument/stderr.log | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/install.rs | 218 cargo-mozilla-0.66.0+ds1/tests/testsuite/install_upgrade.rs | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/jobserver.rs | 122 cargo-mozilla-0.66.0+ds1/tests/testsuite/local_registry.rs | 38 cargo-mozilla-0.66.0+ds1/tests/testsuite/lockfile_compat.rs | 52 cargo-mozilla-0.66.0+ds1/tests/testsuite/login.rs | 116 cargo-mozilla-0.66.0+ds1/tests/testsuite/logout.rs | 9 cargo-mozilla-0.66.0+ds1/tests/testsuite/lto.rs | 154 cargo-mozilla-0.66.0+ds1/tests/testsuite/main.rs | 6 cargo-mozilla-0.66.0+ds1/tests/testsuite/messages.rs | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/metabuild.rs | 38 cargo-mozilla-0.66.0+ds1/tests/testsuite/metadata.rs | 973 cargo-mozilla-0.66.0+ds1/tests/testsuite/minimal_versions.rs | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/multitarget.rs | 133 cargo-mozilla-0.66.0+ds1/tests/testsuite/new.rs | 51 cargo-mozilla-0.66.0+ds1/tests/testsuite/offline.rs | 17 cargo-mozilla-0.66.0+ds1/tests/testsuite/old_cargos.rs | 105 cargo-mozilla-0.66.0+ds1/tests/testsuite/out_dir.rs | 20 cargo-mozilla-0.66.0+ds1/tests/testsuite/package.rs | 306 cargo-mozilla-0.66.0+ds1/tests/testsuite/package_features.rs | 3 cargo-mozilla-0.66.0+ds1/tests/testsuite/patch.rs | 133 cargo-mozilla-0.66.0+ds1/tests/testsuite/path.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/pkgid.rs | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/plugins.rs | 30 cargo-mozilla-0.66.0+ds1/tests/testsuite/proc_macro.rs | 33 cargo-mozilla-0.66.0+ds1/tests/testsuite/profile_config.rs | 60 cargo-mozilla-0.66.0+ds1/tests/testsuite/profile_custom.rs | 188 cargo-mozilla-0.66.0+ds1/tests/testsuite/profile_overrides.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/profile_targets.rs | 173 cargo-mozilla-0.66.0+ds1/tests/testsuite/profiles.rs | 233 cargo-mozilla-0.66.0+ds1/tests/testsuite/pub_priv.rs | 22 cargo-mozilla-0.66.0+ds1/tests/testsuite/publish.rs | 500 cargo-mozilla-0.66.0+ds1/tests/testsuite/publish_lockfile.rs | 12 cargo-mozilla-0.66.0+ds1/tests/testsuite/read_manifest.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/registry.rs | 842 cargo-mozilla-0.66.0+ds1/tests/testsuite/replace.rs | 10 cargo-mozilla-0.66.0+ds1/tests/testsuite/required_features.rs | 93 cargo-mozilla-0.66.0+ds1/tests/testsuite/run.rs | 158 cargo-mozilla-0.66.0+ds1/tests/testsuite/rust_version.rs | 7 cargo-mozilla-0.66.0+ds1/tests/testsuite/rustc.rs | 245 cargo-mozilla-0.66.0+ds1/tests/testsuite/rustdoc.rs | 4 cargo-mozilla-0.66.0+ds1/tests/testsuite/rustdoc_extern_html.rs | 64 cargo-mozilla-0.66.0+ds1/tests/testsuite/rustdocflags.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/rustflags.rs | 270 cargo-mozilla-0.66.0+ds1/tests/testsuite/search.rs | 268 cargo-mozilla-0.66.0+ds1/tests/testsuite/standard_lib.rs | 191 cargo-mozilla-0.66.0+ds1/tests/testsuite/test.rs | 407 cargo-mozilla-0.66.0+ds1/tests/testsuite/timings.rs | 24 cargo-mozilla-0.66.0+ds1/tests/testsuite/tool_paths.rs | 19 cargo-mozilla-0.66.0+ds1/tests/testsuite/tree.rs | 265 cargo-mozilla-0.66.0+ds1/tests/testsuite/tree_graph_features.rs | 1 cargo-mozilla-0.66.0+ds1/tests/testsuite/unit_graph.rs | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/update.rs | 225 cargo-mozilla-0.66.0+ds1/tests/testsuite/vendor.rs | 178 cargo-mozilla-0.66.0+ds1/tests/testsuite/verify_project.rs | 2 cargo-mozilla-0.66.0+ds1/tests/testsuite/version.rs | 15 cargo-mozilla-0.66.0+ds1/tests/testsuite/weak_dep_features.rs | 166 cargo-mozilla-0.66.0+ds1/tests/testsuite/workspaces.rs | 85 cargo-mozilla-0.66.0+ds1/tests/testsuite/yank.rs | 121 cargo-mozilla-0.66.0+ds1/triagebot.toml | 3 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/Cargo.toml | 25 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/DESIGN.md | 8 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/README.md | 10 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/src/ahocorasick.rs | 24 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/src/automaton.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/src/lib.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/src/nfa.rs | 321 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/src/packed/api.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/src/packed/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/src/packed/rabinkarp.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/src/packed/teddy/README.md | 20 cargo-mozilla-0.66.0+ds1/vendor/aho-corasick/src/tests.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/Cargo.toml | 27 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/LICENCE | 21 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/README.md | 174 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/examples/colours.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/src/ansi.rs | 258 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/src/debug.rs | 122 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/src/difference.rs | 179 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/src/display.rs | 279 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/src/lib.rs | 205 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/src/style.rs | 259 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/src/windows.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/ansi_term/src/write.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/anyhow/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/anyhow/Cargo.toml | 29 cargo-mozilla-0.66.0+ds1/vendor/anyhow/README.md | 12 cargo-mozilla-0.66.0+ds1/vendor/anyhow/build.rs | 46 cargo-mozilla-0.66.0+ds1/vendor/anyhow/debian/patches/drop-backtrace.patch | 13 cargo-mozilla-0.66.0+ds1/vendor/anyhow/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/anyhow/rust-toolchain.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/anyhow/src/backtrace.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/anyhow/src/context.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/anyhow/src/ensure.rs | 834 cargo-mozilla-0.66.0+ds1/vendor/anyhow/src/error.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/anyhow/src/kind.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/anyhow/src/lib.rs | 101 cargo-mozilla-0.66.0+ds1/vendor/anyhow/src/macros.rs | 82 cargo-mozilla-0.66.0+ds1/vendor/anyhow/src/ptr.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/anyhow/src/wrapper.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/drop/mod.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/test_chain.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/test_context.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/test_downcast.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/test_ensure.rs | 718 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/test_macros.rs | 42 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/chained-comparison.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/chained-comparison.stderr | 10 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/empty-ensure.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/empty-ensure.stderr | 12 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/must-use.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/must-use.stderr | 12 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/no-impl.stderr | 22 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/temporary-value.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/wrong-interpolation.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/anyhow/tests/ui/wrong-interpolation.stderr | 5 cargo-mozilla-0.66.0+ds1/vendor/autocfg/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/autocfg/Cargo.lock | 5 cargo-mozilla-0.66.0+ds1/vendor/autocfg/Cargo.toml | 11 cargo-mozilla-0.66.0+ds1/vendor/autocfg/README.md | 3 cargo-mozilla-0.66.0+ds1/vendor/autocfg/src/lib.rs | 79 cargo-mozilla-0.66.0+ds1/vendor/autocfg/src/tests.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/autocfg/tests/rustflags.rs | 24 cargo-mozilla-0.66.0+ds1/vendor/base64/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/base64/Cargo.lock | 826 cargo-mozilla-0.66.0+ds1/vendor/base64/Cargo.toml | 53 cargo-mozilla-0.66.0+ds1/vendor/base64/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/base64/LICENSE-MIT | 21 cargo-mozilla-0.66.0+ds1/vendor/base64/README.md | 114 cargo-mozilla-0.66.0+ds1/vendor/base64/RELEASE-NOTES.md | 109 cargo-mozilla-0.66.0+ds1/vendor/base64/benches/benchmarks.rs | 210 cargo-mozilla-0.66.0+ds1/vendor/base64/examples/base64.rs | 89 cargo-mozilla-0.66.0+ds1/vendor/base64/examples/make_tables.rs | 179 cargo-mozilla-0.66.0+ds1/vendor/base64/icon_CLion.svg | 34 cargo-mozilla-0.66.0+ds1/vendor/base64/src/chunked_encoder.rs | 247 cargo-mozilla-0.66.0+ds1/vendor/base64/src/decode.rs | 893 cargo-mozilla-0.66.0+ds1/vendor/base64/src/display.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/base64/src/encode.rs | 675 cargo-mozilla-0.66.0+ds1/vendor/base64/src/lib.rs | 245 cargo-mozilla-0.66.0+ds1/vendor/base64/src/read/decoder.rs | 282 cargo-mozilla-0.66.0+ds1/vendor/base64/src/read/decoder_tests.rs | 335 cargo-mozilla-0.66.0+ds1/vendor/base64/src/read/mod.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/base64/src/tables.rs | 1957 cargo-mozilla-0.66.0+ds1/vendor/base64/src/tests.rs | 81 cargo-mozilla-0.66.0+ds1/vendor/base64/src/write/encoder.rs | 381 cargo-mozilla-0.66.0+ds1/vendor/base64/src/write/encoder_string_writer.rs | 176 cargo-mozilla-0.66.0+ds1/vendor/base64/src/write/encoder_tests.rs | 568 cargo-mozilla-0.66.0+ds1/vendor/base64/src/write/mod.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/base64/tests/decode.rs | 330 cargo-mozilla-0.66.0+ds1/vendor/base64/tests/encode.rs | 105 cargo-mozilla-0.66.0+ds1/vendor/base64/tests/helpers.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/base64/tests/tests.rs | 194 cargo-mozilla-0.66.0+ds1/vendor/bitflags/debian/patches/disable-tests-permission-denied.patch | 27 cargo-mozilla-0.66.0+ds1/vendor/bitflags/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/bitflags/tests/compile.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/block-buffer/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/block-buffer/CHANGELOG.md | 47 cargo-mozilla-0.66.0+ds1/vendor/block-buffer/Cargo.toml | 32 cargo-mozilla-0.66.0+ds1/vendor/block-buffer/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/block-buffer/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/block-buffer/README.md | 40 cargo-mozilla-0.66.0+ds1/vendor/block-buffer/src/lib.rs | 344 cargo-mozilla-0.66.0+ds1/vendor/block-buffer/src/sealed.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/block-buffer/tests/mod.rs | 196 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/COPYING | 8 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/Cargo.lock | 136 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/Cargo.toml | 63 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/LICENSE-MIT | 21 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/README.md | 251 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/examples/graphemes-std.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/examples/graphemes.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/examples/lines-std.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/examples/lines.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/examples/uppercase-std.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/examples/uppercase.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/examples/words-std.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/examples/words.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/rustfmt.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/scripts/generate-unicode-data | 149 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/scripts/regex/grapheme.sh | 50 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/scripts/regex/sentence.sh | 176 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/scripts/regex/word.sh | 111 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/ascii.rs | 336 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/bstr.rs | 74 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/bstring.rs | 59 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/byteset/mod.rs | 114 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/byteset/scalar.rs | 295 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/ext_slice.rs | 3655 + cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/ext_vec.rs | 1105 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/impls.rs | 987 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/io.rs | 514 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/lib.rs | 437 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/tests.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/data/GraphemeBreakTest.txt | 630 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/data/LICENSE-UNICODE | 45 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/data/SentenceBreakTest.txt | 530 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/data/WordBreakTest.txt | 1851 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/grapheme_break_fwd.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/grapheme_break_rev.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/mod.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/regional_indicator_rev.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/sentence_break_fwd.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/simple_word_fwd.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/whitespace_anchored_fwd.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/whitespace_anchored_rev.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/fsm/word_break_fwd.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/grapheme.rs | 355 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/mod.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/sentence.rs | 220 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/whitespace.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/unicode/word.rs | 406 cargo-mozilla-0.66.0+ds1/vendor/bstr-0.2.17/src/utf8.rs | 1370 cargo-mozilla-0.66.0+ds1/vendor/bstr/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/bstr/COPYING | 4 cargo-mozilla-0.66.0+ds1/vendor/bstr/Cargo.lock | 73 cargo-mozilla-0.66.0+ds1/vendor/bstr/Cargo.toml | 80 cargo-mozilla-0.66.0+ds1/vendor/bstr/README.md | 72 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/ascii.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/bstr.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/bstring.rs | 46 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/byteset/mod.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/byteset/scalar.rs | 46 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/ext_slice.rs | 685 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/ext_vec.rs | 125 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/impls.rs | 217 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/io.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/lib.rs | 115 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/tests.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/data/GraphemeBreakTest.txt | 6 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/data/SentenceBreakTest.txt | 6 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/data/WordBreakTest.txt | 6 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/grapheme_break_fwd.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/grapheme_break_rev.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/regional_indicator_rev.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/sentence_break_fwd.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/simple_word_fwd.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/whitespace_anchored_fwd.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/whitespace_anchored_rev.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/fsm/word_break_fwd.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/grapheme.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/mod.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/sentence.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/whitespace.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/unicode/word.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/bstr/src/utf8.rs | 31 cargo-mozilla-0.66.0+ds1/vendor/bytes/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/bytes/CHANGELOG.md | 268 cargo-mozilla-0.66.0+ds1/vendor/bytes/Cargo.toml | 54 cargo-mozilla-0.66.0+ds1/vendor/bytes/LICENSE | 25 cargo-mozilla-0.66.0+ds1/vendor/bytes/README.md | 47 cargo-mozilla-0.66.0+ds1/vendor/bytes/benches/buf.rs | 186 cargo-mozilla-0.66.0+ds1/vendor/bytes/benches/bytes.rs | 120 cargo-mozilla-0.66.0+ds1/vendor/bytes/benches/bytes_mut.rs | 266 cargo-mozilla-0.66.0+ds1/vendor/bytes/ci/miri.sh | 11 cargo-mozilla-0.66.0+ds1/vendor/bytes/ci/test-stable.sh | 28 cargo-mozilla-0.66.0+ds1/vendor/bytes/ci/tsan.sh | 13 cargo-mozilla-0.66.0+ds1/vendor/bytes/clippy.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/buf_impl.rs | 1392 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/buf_mut.rs | 1492 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/chain.rs | 242 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/iter.rs | 132 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/limit.rs | 75 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/mod.rs | 41 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/reader.rs | 81 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/take.rs | 155 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/uninit_slice.rs | 213 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/vec_deque.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/buf/writer.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/bytes.rs | 1276 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/bytes_mut.rs | 1812 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/fmt/debug.rs | 49 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/fmt/hex.rs | 37 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/fmt/mod.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/lib.rs | 116 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/loom.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/bytes/src/serde.rs | 89 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_buf.rs | 120 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_buf_mut.rs | 178 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_bytes.rs | 1165 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_bytes_odd_alloc.rs | 97 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_bytes_vec_alloc.rs | 143 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_chain.rs | 177 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_debug.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_iter.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_reader.rs | 29 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_serde.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/bytes/tests/test_take.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/cc/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/cc/Cargo.lock | 85 cargo-mozilla-0.66.0+ds1/vendor/cc/Cargo.toml | 18 cargo-mozilla-0.66.0+ds1/vendor/cc/README.md | 6 cargo-mozilla-0.66.0+ds1/vendor/cc/src/com.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/cc/src/lib.rs | 429 cargo-mozilla-0.66.0+ds1/vendor/cc/src/registry.rs | 53 cargo-mozilla-0.66.0+ds1/vendor/cc/src/setup_config.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/cc/src/winapi.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/cc/src/windows_registry.rs | 54 cargo-mozilla-0.66.0+ds1/vendor/cc/tests/support/mod.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/cc/tests/test.rs | 58 cargo-mozilla-0.66.0+ds1/vendor/cfg-if-0.1.10/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/cfg-if-0.1.10/Cargo.toml | 36 cargo-mozilla-0.66.0+ds1/vendor/cfg-if-0.1.10/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/cfg-if-0.1.10/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/cfg-if-0.1.10/README.md | 47 cargo-mozilla-0.66.0+ds1/vendor/cfg-if-0.1.10/src/lib.rs | 176 cargo-mozilla-0.66.0+ds1/vendor/cfg-if-0.1.10/tests/xcrate.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/clap/CHANGELOG.md | 2890 cargo-mozilla-0.66.0+ds1/vendor/clap/CONTRIBUTORS.md | 91 cargo-mozilla-0.66.0+ds1/vendor/clap/Cargo.lock | 836 cargo-mozilla-0.66.0+ds1/vendor/clap/Cargo.toml | 477 cargo-mozilla-0.66.0+ds1/vendor/clap/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/clap/LICENSE-MIT | 2 cargo-mozilla-0.66.0+ds1/vendor/clap/README.md | 553 cargo-mozilla-0.66.0+ds1/vendor/clap/SPONSORS.md | 17 cargo-mozilla-0.66.0+ds1/vendor/clap/clap-test.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/clap/debian/patches/disable-derive-deprecated.patch | 11 cargo-mozilla-0.66.0+ds1/vendor/clap/debian/patches/disable-snapbox.patch | 12 cargo-mozilla-0.66.0+ds1/vendor/clap/debian/patches/disable-trycmd.diff | 18 cargo-mozilla-0.66.0+ds1/vendor/clap/debian/patches/disable-unstable-doc.patch | 38 cargo-mozilla-0.66.0+ds1/vendor/clap/debian/patches/disable-unstable-v4.patch | 13 cargo-mozilla-0.66.0+ds1/vendor/clap/debian/patches/no-clippy.patch | 22 cargo-mozilla-0.66.0+ds1/vendor/clap/debian/patches/once-cell-non-optional.patch | 29 cargo-mozilla-0.66.0+ds1/vendor/clap/debian/patches/relax-dep-versions.patch | 29 cargo-mozilla-0.66.0+ds1/vendor/clap/debian/patches/series | 8 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/cargo-example-derive.md | 43 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/cargo-example-derive.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/cargo-example.md | 43 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/cargo-example.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/demo.md | 19 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/demo.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/derive_ref/augment_args.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/derive_ref/augment_subcommands.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/derive_ref/custom-bool.md | 47 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/derive_ref/custom-bool.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/derive_ref/flatten_hand_args.rs | 81 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/derive_ref/hand_subcommand.rs | 81 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/derive_ref/interop_tests.md | 256 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/escaped-positional-derive.md | 63 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/escaped-positional-derive.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/escaped-positional.md | 63 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/escaped-positional.rs | 36 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/git-derive.md | 138 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/git-derive.rs | 105 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/git.md | 136 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/git.rs | 101 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/multicall-busybox.md | 42 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/multicall-busybox.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/multicall-hostname.md | 10 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/multicall-hostname.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/pacman.md | 85 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/pacman.rs | 111 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/repl.rs | 92 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/01_quick.md | 37 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/01_quick.rs | 63 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/02_app_settings.md | 19 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/02_app_settings.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/02_apps.md | 19 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/02_apps.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/02_crate.md | 18 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/02_crate.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_01_flag_bool.md | 23 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_01_flag_bool.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_01_flag_count.md | 23 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_01_flag_count.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_02_option.md | 32 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_02_option.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_03_positional.md | 22 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_03_positional.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_04_subcommands.md | 64 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_04_subcommands.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_05_default_values.md | 22 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/03_05_default_values.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_01_enum.md | 29 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_01_enum.rs | 66 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_01_possible.md | 29 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_01_possible.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_02_parse.md | 31 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_02_parse.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_02_validate.md | 31 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_02_validate.rs | 36 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_03_relations.md | 58 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_03_relations.rs | 80 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_04_custom.md | 57 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/04_04_custom.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_builder/05_01_assert.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/01_quick.md | 37 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/01_quick.rs | 69 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/02_app_settings.md | 19 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/02_app_settings.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/02_apps.md | 19 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/02_apps.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/02_crate.md | 18 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/02_crate.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_01_flag_bool.md | 23 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_01_flag_bool.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_01_flag_count.md | 23 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_01_flag_count.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_02_option.md | 32 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_02_option.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_03_positional.md | 22 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_03_positional.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_04_subcommands.md | 64 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_04_subcommands.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_04_subcommands_alt.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_05_default_values.md | 22 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/03_05_default_values.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_01_enum.md | 29 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_01_enum.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_02_parse.md | 31 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_02_parse.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_02_validate.md | 31 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_02_validate.rs | 34 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_03_relations.md | 58 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_03_relations.rs | 72 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_04_custom.md | 57 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/04_04_custom.rs | 93 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/tutorial_derive/05_01_assert.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/typed-derive.md | 84 cargo-mozilla-0.66.0+ds1/vendor/clap/examples/typed-derive.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/clap/justfile | 39 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/cargo_example.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/cargo_example_derive.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/escaped_positional.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/escaped_positional_derive.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/git.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/git_derive.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/mod.rs | 55 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/multicall_busybox.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/multicall_hostname.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/pacman.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/repl.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_cookbook/typed_derive.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_derive/_tutorial.rs | 205 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_derive/mod.rs | 510 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_faq.rs | 95 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_features.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/clap/src/_tutorial.rs | 204 cargo-mozilla-0.66.0+ds1/vendor/clap/src/app/help.rs | 1031 cargo-mozilla-0.66.0+ds1/vendor/clap/src/app/meta.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/clap/src/app/mod.rs | 1904 cargo-mozilla-0.66.0+ds1/vendor/clap/src/app/parser.rs | 2241 cargo-mozilla-0.66.0+ds1/vendor/clap/src/app/settings.rs | 1192 cargo-mozilla-0.66.0+ds1/vendor/clap/src/app/usage.rs | 495 cargo-mozilla-0.66.0+ds1/vendor/clap/src/app/validator.rs | 583 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/any_arg.rs | 131 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg.rs | 3959 - cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg_builder/base.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg_builder/flag.rs | 211 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg_builder/mod.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg_builder/option.rs | 290 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg_builder/positional.rs | 280 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg_builder/switched.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg_builder/valued.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg_matcher.rs | 269 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/arg_matches.rs | 998 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/group.rs | 638 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/macros.rs | 121 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/matched_arg.rs | 29 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/mod.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/settings.rs | 237 cargo-mozilla-0.66.0+ds1/vendor/clap/src/args/subcommand.rs | 72 cargo-mozilla-0.66.0+ds1/vendor/clap/src/bin/stdio-fixture.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/action.rs | 345 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/app_settings.rs | 1308 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/arg.rs | 5618 + cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/arg_group.rs | 641 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/arg_predicate.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/arg_settings.rs | 684 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/command.rs | 5201 + cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/debug_asserts.rs | 851 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/macros.rs | 180 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/mod.rs | 61 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/possible_value.rs | 259 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/regex.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/tests.rs | 56 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/usage_parser.rs | 1277 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/value_hint.rs | 95 cargo-mozilla-0.66.0+ds1/vendor/clap/src/builder/value_parser.rs | 2186 cargo-mozilla-0.66.0+ds1/vendor/clap/src/completions/bash.rs | 222 cargo-mozilla-0.66.0+ds1/vendor/clap/src/completions/elvish.rs | 128 cargo-mozilla-0.66.0+ds1/vendor/clap/src/completions/fish.rs | 103 cargo-mozilla-0.66.0+ds1/vendor/clap/src/completions/macros.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/clap/src/completions/mod.rs | 182 cargo-mozilla-0.66.0+ds1/vendor/clap/src/completions/powershell.rs | 166 cargo-mozilla-0.66.0+ds1/vendor/clap/src/completions/shell.rs | 56 cargo-mozilla-0.66.0+ds1/vendor/clap/src/completions/zsh.rs | 485 cargo-mozilla-0.66.0+ds1/vendor/clap/src/derive.rs | 577 cargo-mozilla-0.66.0+ds1/vendor/clap/src/error/context.rs | 55 cargo-mozilla-0.66.0+ds1/vendor/clap/src/error/kind.rs | 440 cargo-mozilla-0.66.0+ds1/vendor/clap/src/error/mod.rs | 1153 cargo-mozilla-0.66.0+ds1/vendor/clap/src/errors.rs | 918 cargo-mozilla-0.66.0+ds1/vendor/clap/src/fmt.rs | 194 cargo-mozilla-0.66.0+ds1/vendor/clap/src/lib.rs | 825 cargo-mozilla-0.66.0+ds1/vendor/clap/src/macros.rs | 1392 cargo-mozilla-0.66.0+ds1/vendor/clap/src/map.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/clap/src/mkeymap.rs | 193 cargo-mozilla-0.66.0+ds1/vendor/clap/src/osstringext.rs | 200 cargo-mozilla-0.66.0+ds1/vendor/clap/src/output/fmt.rs | 158 cargo-mozilla-0.66.0+ds1/vendor/clap/src/output/help.rs | 1176 cargo-mozilla-0.66.0+ds1/vendor/clap/src/output/mod.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/clap/src/output/usage.rs | 449 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/arg_matcher.rs | 280 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/error.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/features/mod.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/features/suggestions.rs | 105 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/matches/any_value.rs | 112 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/matches/arg_matches.rs | 1980 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/matches/matched_arg.rs | 240 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/matches/mod.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/matches/value_source.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/mod.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/parser.rs | 1729 cargo-mozilla-0.66.0+ds1/vendor/clap/src/parser/validator.rs | 692 cargo-mozilla-0.66.0+ds1/vendor/clap/src/strext.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/clap/src/suggestions.rs | 147 cargo-mozilla-0.66.0+ds1/vendor/clap/src/usage_parser.rs | 1358 cargo-mozilla-0.66.0+ds1/vendor/clap/src/util/color.rs | 62 cargo-mozilla-0.66.0+ds1/vendor/clap/src/util/fnv.rs | 46 cargo-mozilla-0.66.0+ds1/vendor/clap/src/util/graph.rs | 49 cargo-mozilla-0.66.0+ds1/vendor/clap/src/util/id.rs | 92 cargo-mozilla-0.66.0+ds1/vendor/clap/src/util/mod.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/clap/src/util/str_to_bool.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/clap_lex/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/clap_lex/Cargo.toml | 87 cargo-mozilla-0.66.0+ds1/vendor/clap_lex/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/clap_lex/LICENSE-MIT | 21 cargo-mozilla-0.66.0+ds1/vendor/clap_lex/README.md | 19 cargo-mozilla-0.66.0+ds1/vendor/clap_lex/src/lib.rs | 484 cargo-mozilla-0.66.0+ds1/vendor/combine/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/combine/CHANGELOG.md | 749 cargo-mozilla-0.66.0+ds1/vendor/combine/Cargo.lock | 1400 cargo-mozilla-0.66.0+ds1/vendor/combine/Cargo.toml | 174 cargo-mozilla-0.66.0+ds1/vendor/combine/LICENSE | 22 cargo-mozilla-0.66.0+ds1/vendor/combine/README.md | 113 cargo-mozilla-0.66.0+ds1/vendor/combine/benches/data.json | 317 cargo-mozilla-0.66.0+ds1/vendor/combine/benches/http-requests.txt | 494 cargo-mozilla-0.66.0+ds1/vendor/combine/benches/http.rs | 184 cargo-mozilla-0.66.0+ds1/vendor/combine/benches/json.rs | 325 cargo-mozilla-0.66.0+ds1/vendor/combine/benches/mp4.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/combine/ci.sh | 18 cargo-mozilla-0.66.0+ds1/vendor/combine/debian/patches/disable-mp4-bench.diff | 24 cargo-mozilla-0.66.0+ds1/vendor/combine/debian/patches/drop-features.diff | 115 cargo-mozilla-0.66.0+ds1/vendor/combine/debian/patches/relax-dep.diff | 25 cargo-mozilla-0.66.0+ds1/vendor/combine/debian/patches/remove-async-std.diff | 14 cargo-mozilla-0.66.0+ds1/vendor/combine/debian/patches/remove-criterion.diff | 32 cargo-mozilla-0.66.0+ds1/vendor/combine/debian/patches/remove-partial-io.diff | 40 cargo-mozilla-0.66.0+ds1/vendor/combine/debian/patches/series | 5 cargo-mozilla-0.66.0+ds1/vendor/combine/examples/async.rs | 189 cargo-mozilla-0.66.0+ds1/vendor/combine/examples/date.rs | 235 cargo-mozilla-0.66.0+ds1/vendor/combine/examples/ini.rs | 179 cargo-mozilla-0.66.0+ds1/vendor/combine/examples/number.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/combine/examples/readme.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/combine/release.sh | 12 cargo-mozilla-0.66.0+ds1/vendor/combine/rustfmt.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/combine/src/error.rs | 1101 cargo-mozilla-0.66.0+ds1/vendor/combine/src/future_ext.rs | 29 cargo-mozilla-0.66.0+ds1/vendor/combine/src/lib.rs | 1012 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/byte.rs | 678 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/char.rs | 334 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/choice.rs | 849 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/combinator.rs | 1562 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/error.rs | 245 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/function.rs | 179 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/mod.rs | 1207 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/range.rs | 767 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/regex.rs | 549 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/repeat.rs | 1620 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/sequence.rs | 909 cargo-mozilla-0.66.0+ds1/vendor/combine/src/parser/token.rs | 700 cargo-mozilla-0.66.0+ds1/vendor/combine/src/stream/buf_reader.rs | 943 cargo-mozilla-0.66.0+ds1/vendor/combine/src/stream/buffered.rs | 141 cargo-mozilla-0.66.0+ds1/vendor/combine/src/stream/decoder.rs | 227 cargo-mozilla-0.66.0+ds1/vendor/combine/src/stream/easy.rs | 897 cargo-mozilla-0.66.0+ds1/vendor/combine/src/stream/mod.rs | 1897 cargo-mozilla-0.66.0+ds1/vendor/combine/src/stream/position.rs | 465 cargo-mozilla-0.66.0+ds1/vendor/combine/src/stream/read.rs | 210 cargo-mozilla-0.66.0+ds1/vendor/combine/src/stream/span.rs | 157 cargo-mozilla-0.66.0+ds1/vendor/combine/src/stream/state.rs | 91 cargo-mozilla-0.66.0+ds1/vendor/combine/tests/async.rs | 854 cargo-mozilla-0.66.0+ds1/vendor/combine/tests/buffered_stream.rs | 116 cargo-mozilla-0.66.0+ds1/vendor/combine/tests/parser.rs | 673 cargo-mozilla-0.66.0+ds1/vendor/combine/tests/parser_macro.rs | 38 cargo-mozilla-0.66.0+ds1/vendor/combine/tests/support/mod.rs | 186 cargo-mozilla-0.66.0+ds1/vendor/concolor-query/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/concolor-query/Cargo.toml | 24 cargo-mozilla-0.66.0+ds1/vendor/concolor-query/README.md | 15 cargo-mozilla-0.66.0+ds1/vendor/concolor-query/src/lib.rs | 109 cargo-mozilla-0.66.0+ds1/vendor/concolor-query/src/windows.rs | 76 cargo-mozilla-0.66.0+ds1/vendor/concolor/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/concolor/Cargo.toml | 45 cargo-mozilla-0.66.0+ds1/vendor/concolor/README.md | 44 cargo-mozilla-0.66.0+ds1/vendor/concolor/debian/patches/avoid-doctest-breakage.patch | 14 cargo-mozilla-0.66.0+ds1/vendor/concolor/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/concolor/debian/patches/switch-back-to-atty.patch | 47 cargo-mozilla-0.66.0+ds1/vendor/concolor/src/choice.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/concolor/src/color/choice.rs | 75 cargo-mozilla-0.66.0+ds1/vendor/concolor/src/color/lazy.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/concolor/src/color/mod.rs | 205 cargo-mozilla-0.66.0+ds1/vendor/concolor/src/lib.rs | 106 cargo-mozilla-0.66.0+ds1/vendor/concolor/src/no_color.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/concolor/src/stream.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/Cargo.toml | 25 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/LICENSE-MIT | 17 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/README.md | 65 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/examples/inspect.rs | 36 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/src/lib.rs | 218 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/create_text_files.py | 18 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/file_sources.md | 3 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/test.pdf | 58 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/text_UTF-8-BOM.txt | 2 cargo-mozilla-0.66.0+ds1/vendor/content_inspector/testdata/text_UTF-8.txt | 2 cargo-mozilla-0.66.0+ds1/vendor/core-foundation/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/core-foundation/Cargo.toml | 15 cargo-mozilla-0.66.0+ds1/vendor/core-foundation/debian/patches/update-dep-uuid-version.patch | 2 cargo-mozilla-0.66.0+ds1/vendor/core-foundation/src/filedescriptor.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/core-foundation/src/runloop.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/CHANGELOG.md | 93 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/Cargo.toml | 38 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/README.md | 90 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/debian/patches/dont-fail-build-on-unsupported-architectures.patch | 16 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/src/aarch64.rs | 182 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/src/lib.rs | 140 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/src/miri.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/src/x86.rs | 105 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/tests/aarch64.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/cpufeatures/tests/x86.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/Cargo.toml | 15 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/README.md | 42 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/benches/bench.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/debian/patches/dont-fail-bench-if-no-specialized.diff | 33 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/debian/patches/fix-tests-no-default-features.diff | 68 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/src/baseline.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/src/lib.rs | 77 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/src/specialized/aarch64.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/src/specialized/mod.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/src/specialized/pclmulqdq.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/crc32fast/src/table.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/CHANGELOG.md | 149 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/Cargo.toml | 40 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/LICENSE-MIT | 27 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/README.md | 73 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/benches/atomic_cell.rs | 156 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/build.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/debian/patches/relax-dep.diff | 11 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/no_atomic.rs | 59 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/atomic/atomic_cell.rs | 1005 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/atomic/consume.rs | 92 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/atomic/mod.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/atomic/seq_lock.rs | 112 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/atomic/seq_lock_wide.rs | 155 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/backoff.rs | 294 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/cache_padded.rs | 191 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/lib.rs | 104 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/sync/mod.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/sync/parker.rs | 409 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/sync/sharded_lock.rs | 630 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/sync/wait_group.rs | 146 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/src/thread.rs | 585 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/tests/atomic_cell.rs | 266 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/tests/cache_padded.rs | 113 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/tests/parker.rs | 41 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/tests/sharded_lock.rs | 249 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/tests/thread.rs | 215 cargo-mozilla-0.66.0+ds1/vendor/crossbeam-utils/tests/wait_group.rs | 64 cargo-mozilla-0.66.0+ds1/vendor/crypto-common/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/crypto-common/CHANGELOG.md | 47 cargo-mozilla-0.66.0+ds1/vendor/crypto-common/Cargo.toml | 51 cargo-mozilla-0.66.0+ds1/vendor/crypto-common/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/crypto-common/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/crypto-common/README.md | 53 cargo-mozilla-0.66.0+ds1/vendor/crypto-common/src/lib.rs | 311 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/Cargo.toml | 16 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/build.rs | 104 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/debian/patches/avoid-spurious-rebuilds.patch | 14 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/debian/patches/disable-libz-sys.patch | 27 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/debian/patches/disable-mesalink.patch | 17 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/debian/patches/disable-rustls.patch | 24 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/debian/patches/disable-vendor.patch | 17 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/debian/patches/series | 3 cargo-mozilla-0.66.0+ds1/vendor/curl-sys/lib.rs | 70 cargo-mozilla-0.66.0+ds1/vendor/curl/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/curl/Cargo.lock | 548 cargo-mozilla-0.66.0+ds1/vendor/curl/Cargo.toml | 39 cargo-mozilla-0.66.0+ds1/vendor/curl/README.md | 7 cargo-mozilla-0.66.0+ds1/vendor/curl/build.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/curl/ci/run.sh | 4 cargo-mozilla-0.66.0+ds1/vendor/curl/debian/patches/disable-features.patch | 25 cargo-mozilla-0.66.0+ds1/vendor/curl/debian/patches/disable-mesalink.patch | 11 cargo-mozilla-0.66.0+ds1/vendor/curl/debian/patches/disable-static-with-ftp-disabled-test.patch | 6 cargo-mozilla-0.66.0+ds1/vendor/curl/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/curl/examples/doh.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/curl/examples/https.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/curl/examples/multi-dl.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/curl/examples/ssl_proxy.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/curl/src/easy/handle.rs | 106 cargo-mozilla-0.66.0+ds1/vendor/curl/src/easy/handler.rs | 386 cargo-mozilla-0.66.0+ds1/vendor/curl/src/error.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/curl/src/lib.rs | 100 cargo-mozilla-0.66.0+ds1/vendor/curl/src/multi.rs | 232 cargo-mozilla-0.66.0+ds1/vendor/curl/src/version.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/curl/tests/easy.rs | 92 cargo-mozilla-0.66.0+ds1/vendor/curl/tests/multi.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/curl/tests/post.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/curl/tests/server/mod.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/digest/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/digest/CHANGELOG.md | 131 cargo-mozilla-0.66.0+ds1/vendor/digest/Cargo.toml | 70 cargo-mozilla-0.66.0+ds1/vendor/digest/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/digest/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/digest/README.md | 164 cargo-mozilla-0.66.0+ds1/vendor/digest/debian/patches/disable-const-oid.diff | 25 cargo-mozilla-0.66.0+ds1/vendor/digest/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/digest/src/core_api.rs | 119 cargo-mozilla-0.66.0+ds1/vendor/digest/src/core_api/ct_variable.rs | 204 cargo-mozilla-0.66.0+ds1/vendor/digest/src/core_api/rt_variable.rs | 166 cargo-mozilla-0.66.0+ds1/vendor/digest/src/core_api/wrapper.rs | 290 cargo-mozilla-0.66.0+ds1/vendor/digest/src/core_api/xof_reader.rs | 63 cargo-mozilla-0.66.0+ds1/vendor/digest/src/dev.rs | 78 cargo-mozilla-0.66.0+ds1/vendor/digest/src/dev/fixed.rs | 65 cargo-mozilla-0.66.0+ds1/vendor/digest/src/dev/mac.rs | 159 cargo-mozilla-0.66.0+ds1/vendor/digest/src/dev/rng.rs | 38 cargo-mozilla-0.66.0+ds1/vendor/digest/src/dev/variable.rs | 82 cargo-mozilla-0.66.0+ds1/vendor/digest/src/dev/xof.rs | 51 cargo-mozilla-0.66.0+ds1/vendor/digest/src/digest.rs | 236 cargo-mozilla-0.66.0+ds1/vendor/digest/src/lib.rs | 301 cargo-mozilla-0.66.0+ds1/vendor/digest/src/mac.rs | 305 cargo-mozilla-0.66.0+ds1/vendor/dunce/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/dunce/Cargo.toml | 42 cargo-mozilla-0.66.0+ds1/vendor/dunce/LICENSE | 121 cargo-mozilla-0.66.0+ds1/vendor/dunce/README.md | 17 cargo-mozilla-0.66.0+ds1/vendor/dunce/src/lib.rs | 324 cargo-mozilla-0.66.0+ds1/vendor/either/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/either/Cargo.toml | 34 cargo-mozilla-0.66.0+ds1/vendor/either/README.rst | 43 cargo-mozilla-0.66.0+ds1/vendor/either/src/lib.rs | 441 cargo-mozilla-0.66.0+ds1/vendor/either/src/serde_untagged.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/either/src/serde_untagged_optional.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/env_logger/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/env_logger/Cargo.toml | 48 cargo-mozilla-0.66.0+ds1/vendor/env_logger/LICENSE-MIT | 2 cargo-mozilla-0.66.0+ds1/vendor/env_logger/README.md | 12 cargo-mozilla-0.66.0+ds1/vendor/env_logger/src/filter/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/env_logger/src/fmt/humantime/extern_impl.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/env_logger/src/fmt/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/env_logger/src/fmt/writer/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/env_logger/src/fmt/writer/termcolor/extern_impl.rs | 52 cargo-mozilla-0.66.0+ds1/vendor/env_logger/src/fmt/writer/termcolor/shim_impl.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/env_logger/src/lib.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/fastrand/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/fastrand/CHANGELOG.md | 81 cargo-mozilla-0.66.0+ds1/vendor/fastrand/Cargo.toml | 39 cargo-mozilla-0.66.0+ds1/vendor/fastrand/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/fastrand/LICENSE-MIT | 23 cargo-mozilla-0.66.0+ds1/vendor/fastrand/README.md | 92 cargo-mozilla-0.66.0+ds1/vendor/fastrand/benches/bench.rs | 75 cargo-mozilla-0.66.0+ds1/vendor/fastrand/debian/patches/no-wasm.patch | 22 cargo-mozilla-0.66.0+ds1/vendor/fastrand/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/fastrand/src/lib.rs | 680 cargo-mozilla-0.66.0+ds1/vendor/fastrand/tests/char.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/fastrand/tests/smoke.rs | 117 cargo-mozilla-0.66.0+ds1/vendor/filetime/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/filetime/Cargo.toml | 38 cargo-mozilla-0.66.0+ds1/vendor/filetime/debian/patches/disable-windows.diff | 18 cargo-mozilla-0.66.0+ds1/vendor/filetime/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/filetime/src/lib.rs | 31 cargo-mozilla-0.66.0+ds1/vendor/filetime/src/redox.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/filetime/src/unix/android.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/filetime/src/unix/linux.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/filetime/src/unix/macos.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/filetime/src/unix/mod.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/filetime/src/unix/utimensat.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/filetime/src/unix/utimes.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/filetime/src/windows.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/flate2/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/flate2/Cargo.lock | 541 cargo-mozilla-0.66.0+ds1/vendor/flate2/Cargo.toml | 52 cargo-mozilla-0.66.0+ds1/vendor/flate2/README.md | 39 cargo-mozilla-0.66.0+ds1/vendor/flate2/debian/patches/disable-cloudflare-zlib.patch | 15 cargo-mozilla-0.66.0+ds1/vendor/flate2/debian/patches/disable-miniz.patch | 23 cargo-mozilla-0.66.0+ds1/vendor/flate2/debian/patches/disable-zlib-ng.patch | 24 cargo-mozilla-0.66.0+ds1/vendor/flate2/debian/patches/eliminate-any-zlib.patch | 136 cargo-mozilla-0.66.0+ds1/vendor/flate2/debian/patches/remove-futures-and-tokio.patch | 62 cargo-mozilla-0.66.0+ds1/vendor/flate2/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/flate2/examples/deflateencoder-read.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/flate2/examples/gzbuilder.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/flate2/examples/gzdecoder-bufread.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/flate2/examples/gzdecoder-read.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/bufreader.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/crc.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/deflate/bufread.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/deflate/mod.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/deflate/read.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/deflate/write.rs | 29 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/ffi/c.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/ffi/mod.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/gz/bufread.rs | 62 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/gz/mod.rs | 41 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/gz/read.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/gz/write.rs | 43 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/lib.rs | 54 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/mem.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/zio.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/zlib/bufread.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/zlib/mod.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/zlib/read.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/flate2/src/zlib/write.rs | 29 cargo-mozilla-0.66.0+ds1/vendor/flate2/tests/async-reader.rs | 98 cargo-mozilla-0.66.0+ds1/vendor/flate2/tests/tokio.rs | 133 cargo-mozilla-0.66.0+ds1/vendor/form_urlencoded/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/form_urlencoded/Cargo.toml | 18 cargo-mozilla-0.66.0+ds1/vendor/form_urlencoded/src/lib.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/generic-array/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/generic-array/CHANGELOG.md | 98 cargo-mozilla-0.66.0+ds1/vendor/generic-array/Cargo.toml | 75 cargo-mozilla-0.66.0+ds1/vendor/generic-array/LICENSE | 21 cargo-mozilla-0.66.0+ds1/vendor/generic-array/README.md | 62 cargo-mozilla-0.66.0+ds1/vendor/generic-array/build.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/generic-array/src/arr.rs | 125 cargo-mozilla-0.66.0+ds1/vendor/generic-array/src/functional.rs | 95 cargo-mozilla-0.66.0+ds1/vendor/generic-array/src/hex.rs | 105 cargo-mozilla-0.66.0+ds1/vendor/generic-array/src/impl_serde.rs | 108 cargo-mozilla-0.66.0+ds1/vendor/generic-array/src/impl_zeroize.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/generic-array/src/impls.rs | 269 cargo-mozilla-0.66.0+ds1/vendor/generic-array/src/iter.rs | 251 cargo-mozilla-0.66.0+ds1/vendor/generic-array/src/lib.rs | 679 cargo-mozilla-0.66.0+ds1/vendor/generic-array/src/sequence.rs | 380 cargo-mozilla-0.66.0+ds1/vendor/getrandom/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/getrandom/CHANGELOG.md | 188 cargo-mozilla-0.66.0+ds1/vendor/getrandom/Cargo.toml | 67 cargo-mozilla-0.66.0+ds1/vendor/getrandom/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/getrandom/LICENSE-MIT | 26 cargo-mozilla-0.66.0+ds1/vendor/getrandom/README.md | 78 cargo-mozilla-0.66.0+ds1/vendor/getrandom/benches/mod.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/getrandom/build.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/getrandom/debian/patches/drop-wasi.patch | 11 cargo-mozilla-0.66.0+ds1/vendor/getrandom/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/bsd_arandom.rs | 49 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/cloudabi.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/dummy.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/error.rs | 177 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/error_impls.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/fuchsia.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/ios.rs | 31 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/lib.rs | 292 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/linux_android.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/macos.rs | 34 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/openbsd.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/rdrand.rs | 90 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/solaris_illumos.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/use_file.rs | 137 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/util.rs | 64 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/util_libc.rs | 122 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/vxworks.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/wasi.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/wasm32_bindgen.rs | 128 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/wasm32_stdweb.rs | 114 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/windows.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/getrandom/src/windows_uwp.rs | 59 cargo-mozilla-0.66.0+ds1/vendor/getrandom/tests/common.rs | 68 cargo-mozilla-0.66.0+ds1/vendor/git2-curl/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/git2-curl/Cargo.toml | 30 cargo-mozilla-0.66.0+ds1/vendor/git2-curl/debian/patches/remove-zlib-ng-compat.patch | 19 cargo-mozilla-0.66.0+ds1/vendor/git2-curl/src/lib.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/git2/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/git2/CONTRIBUTING.md | 34 cargo-mozilla-0.66.0+ds1/vendor/git2/Cargo.lock | 232 cargo-mozilla-0.66.0+ds1/vendor/git2/Cargo.toml | 35 cargo-mozilla-0.66.0+ds1/vendor/git2/README.md | 15 cargo-mozilla-0.66.0+ds1/vendor/git2/debian/patches/disable-vendor.patch | 9 cargo-mozilla-0.66.0+ds1/vendor/git2/debian/patches/remove-zlib-ng-compat.patch | 4 cargo-mozilla-0.66.0+ds1/vendor/git2/debian/patches/skip-credential_helper5-if-no-git.patch | 8 cargo-mozilla-0.66.0+ds1/vendor/git2/src/blame.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/git2/src/buf.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/git2/src/build.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/git2/src/cert.rs | 81 cargo-mozilla-0.66.0+ds1/vendor/git2/src/commit.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/git2/src/config.rs | 111 cargo-mozilla-0.66.0+ds1/vendor/git2/src/cred.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/git2/src/diff.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/git2/src/email.rs | 183 cargo-mozilla-0.66.0+ds1/vendor/git2/src/error.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/git2/src/index.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/git2/src/lib.rs | 39 cargo-mozilla-0.66.0+ds1/vendor/git2/src/message.rs | 285 cargo-mozilla-0.66.0+ds1/vendor/git2/src/odb.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/git2/src/opts.rs | 89 cargo-mozilla-0.66.0+ds1/vendor/git2/src/packbuilder.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/git2/src/remote.rs | 65 cargo-mozilla-0.66.0+ds1/vendor/git2/src/remote_callbacks.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/git2/src/repo.rs | 36 cargo-mozilla-0.66.0+ds1/vendor/git2/src/revwalk.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/git2/src/status.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/git2/src/test.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/git2/src/time.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/git2/src/tracing.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/git2/src/tree.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/git2/tests/add_extensions.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/git2/tests/get_extensions.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/git2/tests/remove_extensions.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/glob/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/glob/Cargo.toml | 24 cargo-mozilla-0.66.0+ds1/vendor/glob/README.md | 6 cargo-mozilla-0.66.0+ds1/vendor/glob/src/lib.rs | 39 cargo-mozilla-0.66.0+ds1/vendor/glob/triagebot.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/globset/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/globset/Cargo.toml | 41 cargo-mozilla-0.66.0+ds1/vendor/globset/README.md | 8 cargo-mozilla-0.66.0+ds1/vendor/globset/debian/patches/disable-feature-serde.diff | 13 cargo-mozilla-0.66.0+ds1/vendor/globset/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/globset/src/glob.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/globset/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/CHANGELOG.md | 402 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/Cargo.toml | 107 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/README.md | 126 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/benches/bench.rs | 331 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/benches/insert_unique_unchecked.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/clippy.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/debian/patches/disable-alloc.diff | 22 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/external_trait_impls/mod.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/external_trait_impls/rayon/helpers.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/external_trait_impls/rayon/map.rs | 734 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/external_trait_impls/rayon/mod.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/external_trait_impls/rayon/raw.rs | 231 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/external_trait_impls/rayon/set.rs | 659 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/external_trait_impls/serde.rs | 201 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/lib.rs | 150 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/macros.rs | 70 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/map.rs | 8408 ++ cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/raw/alloc.rs | 73 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/raw/bitmask.rs | 122 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/raw/generic.rs | 154 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/raw/mod.rs | 2460 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/raw/sse2.rs | 146 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/rustc_entry.rs | 630 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/scopeguard.rs | 74 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/src/set.rs | 2790 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/tests/hasher.rs | 65 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/tests/rayon.rs | 533 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/tests/serde.rs | 65 cargo-mozilla-0.66.0+ds1/vendor/hashbrown/tests/set.rs | 34 cargo-mozilla-0.66.0+ds1/vendor/hmac/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/hmac/CHANGELOG.md | 97 cargo-mozilla-0.66.0+ds1/vendor/hmac/Cargo.toml | 51 cargo-mozilla-0.66.0+ds1/vendor/hmac/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/hmac/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/hmac/README.md | 53 cargo-mozilla-0.66.0+ds1/vendor/hmac/debian/patches/disable-streebog.diff | 50 cargo-mozilla-0.66.0+ds1/vendor/hmac/debian/patches/relax-dep.diff | 20 cargo-mozilla-0.66.0+ds1/vendor/hmac/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/hmac/src/lib.rs | 131 cargo-mozilla-0.66.0+ds1/vendor/hmac/src/optim.rs | 280 cargo-mozilla-0.66.0+ds1/vendor/hmac/src/simple.rs | 106 cargo-mozilla-0.66.0+ds1/vendor/hmac/tests/mod.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/home/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/home/Cargo.toml | 26 cargo-mozilla-0.66.0+ds1/vendor/home/src/env.rs | 106 cargo-mozilla-0.66.0+ds1/vendor/home/src/lib.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/idna/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/idna/Cargo.toml | 24 cargo-mozilla-0.66.0+ds1/vendor/idna/LICENSE-MIT | 2 cargo-mozilla-0.66.0+ds1/vendor/idna/debian/patches/remove-tester.diff | 22 cargo-mozilla-0.66.0+ds1/vendor/idna/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/idna/src/lib.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/idna/src/uts46.rs | 76 cargo-mozilla-0.66.0+ds1/vendor/idna/tests/punycode.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/idna/tests/tests.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/idna/tests/uts46.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/ignore/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/ignore/Cargo.lock | 55 cargo-mozilla-0.66.0+ds1/vendor/ignore/Cargo.toml | 32 cargo-mozilla-0.66.0+ds1/vendor/ignore/src/default_types.rs | 78 cargo-mozilla-0.66.0+ds1/vendor/ignore/src/dir.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/ignore/src/gitignore.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/ignore/src/types.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/ignore/src/walk.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/im-rc/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/im-rc/CHANGELOG.md | 16 cargo-mozilla-0.66.0+ds1/vendor/im-rc/Cargo.toml | 66 cargo-mozilla-0.66.0+ds1/vendor/im-rc/README.md | 2 cargo-mozilla-0.66.0+ds1/vendor/im-rc/debian/patches/disable-features.patch | 45 cargo-mozilla-0.66.0+ds1/vendor/im-rc/debian/patches/disable-tests-proptest-derive.patch | 129 cargo-mozilla-0.66.0+ds1/vendor/im-rc/debian/patches/replace-metrohash-with-keccak.patch | 80 cargo-mozilla-0.66.0+ds1/vendor/im-rc/debian/patches/series | 3 cargo-mozilla-0.66.0+ds1/vendor/im-rc/proptest-regressions/ord/map.txt | 1 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/arbitrary.rs | 97 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/hash/map.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/hash/set.rs | 42 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/nodes/btree.rs | 184 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/nodes/hamt.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/nodes/rrb.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/ord/map.rs | 109 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/ord/set.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/ord/test-fixtures/issue_124.txt | 3492 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/quickcheck.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/test.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/tests/hashset.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/tests/ordset.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/tests/vector.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/vector/focus.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/im-rc/src/vector/mod.rs | 80 cargo-mozilla-0.66.0+ds1/vendor/indexmap/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/indexmap/Cargo.toml | 103 cargo-mozilla-0.66.0+ds1/vendor/indexmap/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/indexmap/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/indexmap/README.md | 55 cargo-mozilla-0.66.0+ds1/vendor/indexmap/RELEASES.md | 384 cargo-mozilla-0.66.0+ds1/vendor/indexmap/benches/bench.rs | 763 cargo-mozilla-0.66.0+ds1/vendor/indexmap/benches/faststring.rs | 185 cargo-mozilla-0.66.0+ds1/vendor/indexmap/build.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/indexmap/debian/patches/drop-rustc-rayon.diff | 29 cargo-mozilla-0.66.0+ds1/vendor/indexmap/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/arbitrary.rs | 75 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/equivalent.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/lib.rs | 194 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/macros.rs | 178 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/map.rs | 1947 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/map/core.rs | 700 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/map/core/raw.rs | 191 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/mutable_keys.rs | 75 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/rayon/map.rs | 583 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/rayon/mod.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/rayon/set.rs | 741 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/rustc.rs | 158 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/serde.rs | 155 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/serde_seq.rs | 112 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/set.rs | 1912 cargo-mozilla-0.66.0+ds1/vendor/indexmap/src/util.rs | 31 cargo-mozilla-0.66.0+ds1/vendor/indexmap/tests/equivalent_trait.rs | 53 cargo-mozilla-0.66.0+ds1/vendor/indexmap/tests/macros_full_path.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/indexmap/tests/quick.rs | 573 cargo-mozilla-0.66.0+ds1/vendor/indexmap/tests/tests.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/itertools/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/itertools/CHANGELOG.md | 18 cargo-mozilla-0.66.0+ds1/vendor/itertools/Cargo.lock | 724 cargo-mozilla-0.66.0+ds1/vendor/itertools/Cargo.toml | 5 cargo-mozilla-0.66.0+ds1/vendor/itertools/README.md | 44 cargo-mozilla-0.66.0+ds1/vendor/itertools/README.rst | 55 cargo-mozilla-0.66.0+ds1/vendor/itertools/benches/extra/zipslices.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/itertools/clippy.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/adaptors/coalesce.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/adaptors/map.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/adaptors/mod.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/adaptors/multi_product.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/combinations_with_replacement.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/concat_impl.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/duplicates_impl.rs | 24 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/either_or_both.rs | 49 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/exactly_one_err.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/extrema_set.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/flatten_ok.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/free.rs | 63 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/groupbylazy.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/grouping_map.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/impl_macros.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/intersperse.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/kmerge_impl.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/lazy_buffer.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/lib.rs | 307 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/merge_join.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/multipeek_impl.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/pad_tail.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/peeking_take_while.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/permutations.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/process_results_impl.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/rciter_impl.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/size_hint.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/tuple_impl.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/unique_impl.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/unziptuple.rs | 80 cargo-mozilla-0.66.0+ds1/vendor/itertools/src/ziptuple.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/itertools/tests/adaptors_no_collect.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/itertools/tests/fold_specialization.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/itertools/tests/quick.rs | 116 cargo-mozilla-0.66.0+ds1/vendor/itertools/tests/specializations.rs | 85 cargo-mozilla-0.66.0+ds1/vendor/itertools/tests/test_core.rs | 34 cargo-mozilla-0.66.0+ds1/vendor/itertools/tests/test_std.rs | 118 cargo-mozilla-0.66.0+ds1/vendor/itertools/tests/zip.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/itoa/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/itoa/Cargo.toml | 25 cargo-mozilla-0.66.0+ds1/vendor/itoa/README.md | 73 cargo-mozilla-0.66.0+ds1/vendor/itoa/benches/bench.rs | 66 cargo-mozilla-0.66.0+ds1/vendor/itoa/src/lib.rs | 210 cargo-mozilla-0.66.0+ds1/vendor/itoa/src/udiv128.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/itoa/tests/test.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/jobserver/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/jobserver/Cargo.toml | 22 cargo-mozilla-0.66.0+ds1/vendor/jobserver/src/lib.rs | 49 cargo-mozilla-0.66.0+ds1/vendor/jobserver/src/unix.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/jobserver/src/wasm.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/jobserver/src/windows.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/jobserver/tests/client.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/jobserver/tests/make-as-a-client.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/jobserver/tests/server.rs | 29 cargo-mozilla-0.66.0+ds1/vendor/kstring/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/kstring/Cargo.lock | 814 cargo-mozilla-0.66.0+ds1/vendor/kstring/Cargo.toml | 76 cargo-mozilla-0.66.0+ds1/vendor/kstring/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/kstring/LICENSE-MIT | 21 cargo-mozilla-0.66.0+ds1/vendor/kstring/README.md | 58 cargo-mozilla-0.66.0+ds1/vendor/kstring/benches/access.rs | 134 cargo-mozilla-0.66.0+ds1/vendor/kstring/benches/clone.rs | 139 cargo-mozilla-0.66.0+ds1/vendor/kstring/debian/patches/disable-criterion.patch | 35 cargo-mozilla-0.66.0+ds1/vendor/kstring/debian/patches/disable-document-features.patch | 15 cargo-mozilla-0.66.0+ds1/vendor/kstring/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/kstring/examples/bench.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/kstring/src/backend.rs | 97 cargo-mozilla-0.66.0+ds1/vendor/kstring/src/lib.rs | 78 cargo-mozilla-0.66.0+ds1/vendor/kstring/src/stack.rs | 457 cargo-mozilla-0.66.0+ds1/vendor/kstring/src/string.rs | 865 cargo-mozilla-0.66.0+ds1/vendor/kstring/src/string_cow.rs | 383 cargo-mozilla-0.66.0+ds1/vendor/kstring/src/string_ref.rs | 277 cargo-mozilla-0.66.0+ds1/vendor/lazy_static/Cargo.toml | 4 cargo-mozilla-0.66.0+ds1/vendor/lazy_static/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/lazy_static/debian/patches/tweak-deps.patch | 17 cargo-mozilla-0.66.0+ds1/vendor/libc/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/libc/CONTRIBUTING.md | 6 cargo-mozilla-0.66.0+ds1/vendor/libc/Cargo.toml | 39 cargo-mozilla-0.66.0+ds1/vendor/libc/LICENSE-APACHE | 25 cargo-mozilla-0.66.0+ds1/vendor/libc/README.md | 8 cargo-mozilla-0.66.0+ds1/vendor/libc/build.rs | 52 cargo-mozilla-0.66.0+ds1/vendor/libc/src/fixed_width_ints.rs | 79 cargo-mozilla-0.66.0+ds1/vendor/libc/src/fuchsia/mod.rs | 51 cargo-mozilla-0.66.0+ds1/vendor/libc/src/lib.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/libc/src/macros.rs | 34 cargo-mozilla-0.66.0+ds1/vendor/libc/src/solid/aarch64.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/libc/src/solid/arm.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/libc/src/solid/mod.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/apple/b64/x86_64/mod.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/apple/mod.rs | 601 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs | 293 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs | 255 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 263 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs | 288 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs | 34 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs | 553 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs | 2585 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/riscv64.rs | 154 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs | 63 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/freebsdlike/mod.rs | 151 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/mod.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/netbsdlike/mod.rs | 47 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs | 473 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/netbsdlike/openbsd/arm.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mips64.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs | 343 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/haiku/b32.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/haiku/b64.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/haiku/mod.rs | 414 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/haiku/native.rs | 178 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/hermit/mod.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/b32/arm.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/b32/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/b32/x86/mod.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/b64/aarch64/int128.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/b64/mod.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/b64/riscv64/align.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/b64/riscv64/mod.rs | 342 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/b64/x86_64/mod.rs | 128 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/android/mod.rs | 608 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/emscripten/mod.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/align.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs | 187 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/arch/mips/mod.rs | 189 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/arch/powerpc/mod.rs | 149 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/arch/sparc/mod.rs | 140 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/align.rs | 46 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 107 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/align.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs | 849 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 71 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/powerpc.rs | 61 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs | 75 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs | 72 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 83 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs | 29 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 120 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs | 862 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs | 73 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/mod.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs | 71 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs | 87 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs | 72 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs | 76 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 97 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs | 285 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/mod.rs | 678 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs | 137 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs | 115 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs | 66 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b32/mod.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs | 66 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/align.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 808 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs | 66 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/align.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 78 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/mips64.rs | 59 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/powerpc64.rs | 64 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/align.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs | 742 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/s390x.rs | 57 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/align.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 64 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/musl/mod.rs | 64 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/no_align.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/non_exhaustive.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/uclibc/arm/mod.rs | 52 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mod.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/uclibc/mod.rs | 162 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/mod.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/linux_like/mod.rs | 154 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/mod.rs | 235 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/newlib/aarch64/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/newlib/arm/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/newlib/espidf/mod.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/newlib/generic.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/newlib/horizon/mod.rs | 268 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/newlib/mod.rs | 90 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/newlib/powerpc/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/nto/aarch64.rs | 36 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/nto/mod.rs | 3286 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/nto/neutrino.rs | 1288 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/nto/x86_64.rs | 132 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/redox/mod.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/solarish/compat.rs | 49 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/solarish/illumos.rs | 46 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/solarish/mod.rs | 577 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/solarish/solaris.rs | 57 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/solarish/x86.rs | 29 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/solarish/x86_64.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/libc/src/unix/solarish/x86_common.rs | 65 cargo-mozilla-0.66.0+ds1/vendor/libc/src/vxworks/mod.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/libc/src/wasi.rs | 127 cargo-mozilla-0.66.0+ds1/vendor/libc/src/windows/mod.rs | 24 cargo-mozilla-0.66.0+ds1/vendor/libc/src/windows/msvc/mod.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/libc/src/windows/msvc/x86_64/align.rs | 150 cargo-mozilla-0.66.0+ds1/vendor/libc/src/windows/msvc/x86_64/mod.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/libgit2-sys/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/libgit2-sys/Cargo.toml | 20 cargo-mozilla-0.66.0+ds1/vendor/libgit2-sys/build.rs | 55 cargo-mozilla-0.66.0+ds1/vendor/libgit2-sys/debian/patches/disable-vendor.patch | 15 cargo-mozilla-0.66.0+ds1/vendor/libgit2-sys/debian/patches/no-special-snowflake-env.patch | 11 cargo-mozilla-0.66.0+ds1/vendor/libgit2-sys/debian/patches/remove-zlib-ng-compat.patch | 9 cargo-mozilla-0.66.0+ds1/vendor/libgit2-sys/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/libgit2-sys/lib.rs | 172 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/Cargo.toml | 54 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/README-zng.md | 41 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/build.rs | 186 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/build_zng.rs | 55 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/ci/Dockerfile | 7 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/ci/run-docker.sh | 19 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/ci/set_rust_version.bash | 4 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/ci/test.bash | 36 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/debian/patches/disable-zlib-ng.patch | 32 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/debian/patches/remove-static.patch | 200 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/libz-sys/src/lib.rs | 299 cargo-mozilla-0.66.0+ds1/vendor/log/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/log/CHANGELOG.md | 28 cargo-mozilla-0.66.0+ds1/vendor/log/Cargo.toml | 69 cargo-mozilla-0.66.0+ds1/vendor/log/README.md | 39 cargo-mozilla-0.66.0+ds1/vendor/log/build.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/log/debian/patches/disable-tests-not-in-crates.io-release.diff | 21 cargo-mozilla-0.66.0+ds1/vendor/log/debian/patches/ignore-sval.diff | 42 cargo-mozilla-0.66.0+ds1/vendor/log/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/log/src/kv/error.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/log/src/kv/value.rs | 383 cargo-mozilla-0.66.0+ds1/vendor/log/src/lib.rs | 208 cargo-mozilla-0.66.0+ds1/vendor/log/src/macros.rs | 92 cargo-mozilla-0.66.0+ds1/vendor/matches/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/matches/Cargo.toml | 24 cargo-mozilla-0.66.0+ds1/vendor/matches/LICENSE | 25 cargo-mozilla-0.66.0+ds1/vendor/matches/lib.rs | 128 cargo-mozilla-0.66.0+ds1/vendor/matches/tests/macro_use_one.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/matches/tests/use_star.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/memchr/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/memchr/Cargo.toml | 29 cargo-mozilla-0.66.0+ds1/vendor/memchr/README.md | 2 cargo-mozilla-0.66.0+ds1/vendor/memchr/build.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/memchr/src/memmem/mod.rs | 127 cargo-mozilla-0.66.0+ds1/vendor/memchr/src/memmem/prefilter/mod.rs | 144 cargo-mozilla-0.66.0+ds1/vendor/memchr/src/memmem/prefilter/wasm.rs | 39 cargo-mozilla-0.66.0+ds1/vendor/memchr/src/memmem/prefilter/x86/sse.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/memchr/src/memmem/vector.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/memchr/src/memmem/wasm.rs | 75 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/Cargo.toml | 37 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/Readme.md | 34 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/build.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/debian/patches/fix-tests-no-default-features.patch | 66 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/debian/patches/remove-compiler-builtins.patch | 14 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/debian/patches/remove-rustc-dep-of-std-etc.patch | 28 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/debian/patches/remove-simd-adler32.patch | 10 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/debian/patches/use-adler32.patch | 36 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/deflate/buffer.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/deflate/core.rs | 124 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/deflate/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/deflate/stream.rs | 24 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/inflate/core.rs | 107 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/inflate/mod.rs | 239 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/inflate/output_buffer.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/inflate/stream.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/lib.rs | 77 cargo-mozilla-0.66.0+ds1/vendor/miniz_oxide/src/shared.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/normalize-line-endings/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/normalize-line-endings/Cargo.toml | 24 cargo-mozilla-0.66.0+ds1/vendor/normalize-line-endings/LICENSE | 201 cargo-mozilla-0.66.0+ds1/vendor/normalize-line-endings/README.md | 8 cargo-mozilla-0.66.0+ds1/vendor/normalize-line-endings/src/lib.rs | 82 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/CHANGELOG.md | 131 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/CONTRIBUTING.md | 16 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/Cargo.lock | 26 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/Cargo.toml | 25 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/LICENSE-MIT | 20 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/README.md | 28 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/ci/cgroups/Dockerfile | 9 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/debian/patches/disable-hermit-os.diff | 10 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/examples/values.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/fixtures/cgroups/cgroups/ceil/cpu.cfs_period_us | 2 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/fixtures/cgroups/cgroups/ceil/cpu.cfs_quota_us | 2 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/fixtures/cgroups/cgroups/good/cpu.cfs_period_us | 2 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/fixtures/cgroups/cgroups/good/cpu.cfs_quota_us | 2 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/fixtures/cgroups/cgroups/zero-period/cpu.cfs_period_us | 2 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/fixtures/cgroups/cgroups/zero-period/cpu.cfs_quota_us | 1 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/fixtures/cgroups/proc/cgroups/cgroup | 3 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/fixtures/cgroups/proc/cgroups/mountinfo | 8 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/src/lib.rs | 456 cargo-mozilla-0.66.0+ds1/vendor/num_cpus/src/linux.rs | 414 cargo-mozilla-0.66.0+ds1/vendor/once_cell/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/once_cell/CHANGELOG.md | 57 cargo-mozilla-0.66.0+ds1/vendor/once_cell/Cargo.lock | 191 cargo-mozilla-0.66.0+ds1/vendor/once_cell/Cargo.toml | 56 cargo-mozilla-0.66.0+ds1/vendor/once_cell/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/once_cell/debian/patches/disable-atomic-pollyfill.diff | 31 cargo-mozilla-0.66.0+ds1/vendor/once_cell/debian/patches/disable-critical-section.diff | 33 cargo-mozilla-0.66.0+ds1/vendor/once_cell/debian/patches/relax-test.diff | 12 cargo-mozilla-0.66.0+ds1/vendor/once_cell/debian/patches/series | 4 cargo-mozilla-0.66.0+ds1/vendor/once_cell/debian/patches/update-parking-lot.patch | 13 cargo-mozilla-0.66.0+ds1/vendor/once_cell/examples/lazy_static.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/once_cell/src/imp_cs.rs | 78 cargo-mozilla-0.66.0+ds1/vendor/once_cell/src/imp_pl.rs | 105 cargo-mozilla-0.66.0+ds1/vendor/once_cell/src/imp_std.rs | 279 cargo-mozilla-0.66.0+ds1/vendor/once_cell/src/lib.rs | 314 cargo-mozilla-0.66.0+ds1/vendor/once_cell/src/race.rs | 133 cargo-mozilla-0.66.0+ds1/vendor/once_cell/tests/it.rs | 131 cargo-mozilla-0.66.0+ds1/vendor/openssl-macros/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/openssl-macros/Cargo.toml | 30 cargo-mozilla-0.66.0+ds1/vendor/openssl-macros/LICENSE-APACHE | 202 cargo-mozilla-0.66.0+ds1/vendor/openssl-macros/LICENSE-MIT | 19 cargo-mozilla-0.66.0+ds1/vendor/openssl-macros/src/lib.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/openssl-probe/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/openssl-probe/Cargo.lock | 7 cargo-mozilla-0.66.0+ds1/vendor/openssl-probe/Cargo.toml | 11 cargo-mozilla-0.66.0+ds1/vendor/openssl-probe/examples/probe.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/openssl-probe/src/lib.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/CHANGELOG.md | 158 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/Cargo.toml | 22 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/build/cfgs.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/build/expando.c | 16 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/build/find_normal.rs | 64 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/build/find_vendored.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/build/main.rs | 128 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/build/run_bindgen.rs | 129 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/debian/patches/disable-bssl.patch | 21 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/debian/patches/disable-vendor.patch | 44 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/aes.rs | 37 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/asn1.rs | 56 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/bio.rs | 69 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/bn.rs | 159 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/cms.rs | 55 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/conf.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/crypto.rs | 172 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/dh.rs | 50 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/dsa.rs | 58 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/ec.rs | 245 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/err.rs | 59 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/evp.rs | 610 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/aes.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/asn1.rs | 60 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/bio.rs | 107 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/bn.rs | 168 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/cms.rs | 55 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/conf.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/crypto.rs | 85 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/dh.rs | 50 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/dsa.rs | 85 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/ec.rs | 255 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/err.rs | 55 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/evp.rs | 600 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/hmac.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/kdf.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/mod.rs | 65 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/object.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/ocsp.rs | 89 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/pem.rs | 191 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/pkcs12.rs | 53 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/pkcs7.rs | 70 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/provider.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/rand.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/rsa.rs | 129 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/safestack.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/sha.rs | 101 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/srtp.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/ssl.rs | 894 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/stack.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/tls1.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/types.rs | 1078 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/x509.rs | 640 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/x509_vfy.rs | 122 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/handwritten/x509v3.rs | 104 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/hmac.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/lib.rs | 322 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/macros.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/obj_mac.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/object.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/ocsp.rs | 87 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/ossl_typ.rs | 1068 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/pem.rs | 189 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/pkcs12.rs | 43 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/pkcs7.rs | 68 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/rand.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/rsa.rs | 125 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/safestack.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/sha.rs | 104 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/srtp.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/ssl.rs | 982 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/stack.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/tls1.rs | 39 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/types.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/x509.rs | 630 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/x509_vfy.rs | 110 cargo-mozilla-0.66.0+ds1/vendor/openssl-sys/src/x509v3.rs | 133 cargo-mozilla-0.66.0+ds1/vendor/openssl/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/openssl/CHANGELOG.md | 118 cargo-mozilla-0.66.0+ds1/vendor/openssl/Cargo.lock | 368 cargo-mozilla-0.66.0+ds1/vendor/openssl/Cargo.toml | 38 cargo-mozilla-0.66.0+ds1/vendor/openssl/build.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/openssl/debian/patches/disable-bssl.patch | 12 cargo-mozilla-0.66.0+ds1/vendor/openssl/debian/patches/disable-vendor.patch | 9 cargo-mozilla-0.66.0+ds1/vendor/openssl/debian/patches/relax-dep.patch | 13 cargo-mozilla-0.66.0+ds1/vendor/openssl/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/aes.rs | 70 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/asn1.rs | 73 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/base64.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/bio.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/bn.rs | 419 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/cipher.rs | 484 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/cipher_ctx.rs | 841 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/cms.rs | 47 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/conf.rs | 96 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/derive.rs | 50 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/dh.rs | 72 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/dsa.rs | 247 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/ec.rs | 464 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/ecdsa.rs | 61 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/encrypt.rs | 74 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/envelope.rs | 159 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/error.rs | 104 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/fips.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/hash.rs | 207 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/lib.rs | 31 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/lib_ctx.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/macros.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/md.rs | 235 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/md_ctx.rs | 540 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/memcmp.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/nid.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/ocsp.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/pkcs12.rs | 74 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/pkcs5.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/pkcs7.rs | 64 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/pkey.rs | 402 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/pkey_ctx.rs | 776 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/provider.rs | 77 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/rand.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/rsa.rs | 183 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/sha.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/sign.rs | 77 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/srtp.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/ssl/bio.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/ssl/callbacks.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/ssl/connector.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/ssl/mod.rs | 1194 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/ssl/test/mod.rs | 62 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/stack.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/string.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/symm.rs | 385 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/util.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/version.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/x509/extension.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/x509/mod.rs | 320 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/x509/store.rs | 99 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/x509/tests.rs | 244 cargo-mozilla-0.66.0+ds1/vendor/openssl/src/x509/verify.rs | 58 cargo-mozilla-0.66.0+ds1/vendor/openssl/test/csr.pem | 62 cargo-mozilla-0.66.0+ds1/vendor/openssl/test/intermediate-ca.key | 27 cargo-mozilla-0.66.0+ds1/vendor/openssl/test/intermediate-ca.pem | 22 cargo-mozilla-0.66.0+ds1/vendor/openssl/test/leaf.pem | 21 cargo-mozilla-0.66.0+ds1/vendor/os_info/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/os_info/Cargo.lock | 155 cargo-mozilla-0.66.0+ds1/vendor/os_info/Cargo.toml | 64 cargo-mozilla-0.66.0+ds1/vendor/os_info/LICENSE | 21 cargo-mozilla-0.66.0+ds1/vendor/os_info/README.md | 125 cargo-mozilla-0.66.0+ds1/vendor/os_info/examples/print_version.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/android/mod.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/bitness.rs | 124 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/dragonfly/mod.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/emscripten/mod.rs | 24 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/freebsd/mod.rs | 60 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/illumos/mod.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/info.rs | 311 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/lib.rs | 111 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/file_release.rs | 493 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/lsb_release.rs | 482 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/mod.rs | 56 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Alpine/etc/alpine-release | 1 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Alpine_3_12/etc/os-release | 6 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Amazon_1/etc/os-release | 9 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Amazon_2/etc/os-release | 9 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/CentOS/etc/centos-release | 1 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/CentOS_7/etc/os-release | 15 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/CentOS_Stream/etc/os-release | 13 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/CentOS_Unknown/etc/centos-release | 1 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Fedora/etc/fedora-release | 1 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Fedora_32/etc/os-release | 21 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Fedora_35/etc/os-release | 21 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Fedora_Unknown/etc/fedora-release | 1 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Mariner/etc/mariner-release | 2 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Mariner_Unknown/etc/mariner-release | 1 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Mint/etc/os-release | 12 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/NixOS/etc/os-release | 11 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/OracleLinux/etc/os-release | 18 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/OracleLinux/etc/redhat-release | 1 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/RedHatEnterprise/etc/redhat-release | 1 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/RedHatEnterprise_7/etc/os-release | 17 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/RedHatEnterprise_8/etc/os-release | 16 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/SUSE_12/etc/os-release | 7 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/SUSE_15/etc/os-release | 8 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/Ubuntu/etc/os-release | 12 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/linux/tests/none_invalid_os_release/etc/os-release | 2 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/macos/mod.rs | 106 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/matcher.rs | 148 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/netbsd/mod.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/openbsd/mod.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/os_type.rs | 162 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/redox/mod.rs | 54 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/uname.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/unknown/mod.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/version.rs | 150 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/windows/mod.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/os_info/src/windows/winapi.rs | 387 cargo-mozilla-0.66.0+ds1/vendor/os_info/tests/basic.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/os_info/tests/md_doc.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/COPYRIGHT | 5 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/Cargo.toml | 78 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/LICENSE-MIT | 21 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/README.md | 103 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/common/mod.rs | 43 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/common/raw.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/iter.rs | 111 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/lib.rs | 623 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/pattern.rs | 71 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/raw_str.rs | 1547 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/util.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/wasm/mod.rs | 58 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/wasm/raw.rs | 34 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/windows/mod.rs | 113 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/windows/raw.rs | 46 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/windows/wtf8/code_points.rs | 129 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/windows/wtf8/convert.rs | 181 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/windows/wtf8/mod.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/os_str_bytes/src/windows/wtf8/string.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/pathdiff/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/pathdiff/Cargo.toml | 26 cargo-mozilla-0.66.0+ds1/vendor/pathdiff/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/pathdiff/LICENSE-MIT | 23 cargo-mozilla-0.66.0+ds1/vendor/pathdiff/src/lib.rs | 222 cargo-mozilla-0.66.0+ds1/vendor/percent-encoding/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/percent-encoding/Cargo.toml | 21 cargo-mozilla-0.66.0+ds1/vendor/percent-encoding/LICENSE-MIT | 2 cargo-mozilla-0.66.0+ds1/vendor/percent-encoding/lib.rs | 442 cargo-mozilla-0.66.0+ds1/vendor/percent-encoding/src/lib.rs | 468 cargo-mozilla-0.66.0+ds1/vendor/pkg-config/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/pkg-config/CHANGELOG.md | 43 cargo-mozilla-0.66.0+ds1/vendor/pkg-config/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/vendor/pkg-config/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/pkg-config/debian/patches/debian-auto-cross-compile.patch | 8 cargo-mozilla-0.66.0+ds1/vendor/pkg-config/debian/patches/no-special-snowflake-env.patch | 32 cargo-mozilla-0.66.0+ds1/vendor/pkg-config/src/lib.rs | 350 cargo-mozilla-0.66.0+ds1/vendor/pkg-config/tests/rpath.pc | 7 cargo-mozilla-0.66.0+ds1/vendor/pkg-config/tests/test.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/Cargo.toml | 31 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/debian/patches/fix_build_on_s390x.diff | 14 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/src/generic.rs | 858 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/src/lib.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/src/soft.rs | 436 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/src/types.rs | 299 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/src/x86_64/mod.rs | 437 cargo-mozilla-0.66.0+ds1/vendor/ppv-lite86/src/x86_64/sse2.rs | 1670 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/Cargo.toml | 39 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/LICENSE-MIT | 2 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/README.md | 7 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/build.rs | 59 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/src/detection.rs | 17 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/src/fallback.rs | 303 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/src/lib.rs | 143 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/src/marker.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/src/parse.rs | 77 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/src/rcvec.rs | 142 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/src/wrapper.rs | 138 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/tests/comments.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/proc-macro2/tests/test.rs | 87 cargo-mozilla-0.66.0+ds1/vendor/quote/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/quote/Cargo.toml | 18 cargo-mozilla-0.66.0+ds1/vendor/quote/LICENSE-MIT | 2 cargo-mozilla-0.66.0+ds1/vendor/quote/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/quote/benches/bench.rs | 192 cargo-mozilla-0.66.0+ds1/vendor/quote/build.rs | 38 cargo-mozilla-0.66.0+ds1/vendor/quote/rust-toolchain.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/quote/src/ext.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/quote/src/format.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/quote/src/ident_fragment.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/quote/src/lib.rs | 559 cargo-mozilla-0.66.0+ds1/vendor/quote/src/runtime.rs | 159 cargo-mozilla-0.66.0+ds1/vendor/quote/src/spanned.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/quote/src/to_tokens.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/compiletest.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/test.rs | 51 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/does-not-have-iter-interpolated.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/does-not-have-iter-separated.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/does-not-have-iter.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/not-quotable.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/not-quotable.stderr | 33 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/not-repeatable.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/not-repeatable.stderr | 34 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/wrong-type-span.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/quote/tests/ui/wrong-type-span.stderr | 4 cargo-mozilla-0.66.0+ds1/vendor/rand/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/rand/CHANGELOG.md | 598 cargo-mozilla-0.66.0+ds1/vendor/rand/COPYRIGHT | 12 cargo-mozilla-0.66.0+ds1/vendor/rand/Cargo.lock | 388 cargo-mozilla-0.66.0+ds1/vendor/rand/Cargo.toml | 80 cargo-mozilla-0.66.0+ds1/vendor/rand/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/rand/LICENSE-MIT | 26 cargo-mozilla-0.66.0+ds1/vendor/rand/README.md | 126 cargo-mozilla-0.66.0+ds1/vendor/rand/SECURITY.md | 69 cargo-mozilla-0.66.0+ds1/vendor/rand/debian/patches/Remove-__m64-support.diff | 51 cargo-mozilla-0.66.0+ds1/vendor/rand/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/rand/examples/monte-carlo.rs | 51 cargo-mozilla-0.66.0+ds1/vendor/rand/examples/monty-hall.rs | 123 cargo-mozilla-0.66.0+ds1/vendor/rand/rustfmt.toml | 32 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/bernoulli.rs | 199 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/binomial.rs | 321 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/cauchy.rs | 99 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/dirichlet.rs | 126 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/exponential.rs | 114 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/float.rs | 307 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/gamma.rs | 373 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/integer.rs | 279 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/mod.rs | 406 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/normal.rs | 177 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/other.rs | 291 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/pareto.rs | 70 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/poisson.rs | 151 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/triangular.rs | 83 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/uniform.rs | 1380 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/unit_circle.rs | 102 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/unit_sphere.rs | 97 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/utils.rs | 544 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/weibull.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/weighted/alias_method.rs | 517 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/weighted/mod.rs | 413 cargo-mozilla-0.66.0+ds1/vendor/rand/src/distributions/ziggurat_tables.rs | 283 cargo-mozilla-0.66.0+ds1/vendor/rand/src/lib.rs | 723 cargo-mozilla-0.66.0+ds1/vendor/rand/src/prelude.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/rand/src/rngs/adapter/mod.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/rand/src/rngs/adapter/read.rs | 155 cargo-mozilla-0.66.0+ds1/vendor/rand/src/rngs/adapter/reseeding.rs | 369 cargo-mozilla-0.66.0+ds1/vendor/rand/src/rngs/entropy.rs | 76 cargo-mozilla-0.66.0+ds1/vendor/rand/src/rngs/mock.rs | 67 cargo-mozilla-0.66.0+ds1/vendor/rand/src/rngs/mod.rs | 116 cargo-mozilla-0.66.0+ds1/vendor/rand/src/rngs/small.rs | 113 cargo-mozilla-0.66.0+ds1/vendor/rand/src/rngs/std.rs | 103 cargo-mozilla-0.66.0+ds1/vendor/rand/src/rngs/thread.rs | 124 cargo-mozilla-0.66.0+ds1/vendor/rand/src/seq/index.rs | 438 cargo-mozilla-0.66.0+ds1/vendor/rand/src/seq/mod.rs | 850 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/CHANGELOG.md | 22 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/COPYRIGHT | 12 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/Cargo.toml | 42 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/LICENSE-MIT | 26 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/README.md | 49 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/src/chacha.rs | 459 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/src/guts.rs | 243 cargo-mozilla-0.66.0+ds1/vendor/rand_chacha/src/lib.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/rand_core/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/rand_core/CHANGELOG.md | 36 cargo-mozilla-0.66.0+ds1/vendor/rand_core/Cargo.toml | 58 cargo-mozilla-0.66.0+ds1/vendor/rand_core/LICENSE-APACHE | 14 cargo-mozilla-0.66.0+ds1/vendor/rand_core/README.md | 7 cargo-mozilla-0.66.0+ds1/vendor/rand_core/src/block.rs | 218 cargo-mozilla-0.66.0+ds1/vendor/rand_core/src/error.rs | 130 cargo-mozilla-0.66.0+ds1/vendor/rand_core/src/impls.rs | 143 cargo-mozilla-0.66.0+ds1/vendor/rand_core/src/le.rs | 42 cargo-mozilla-0.66.0+ds1/vendor/rand_core/src/lib.rs | 135 cargo-mozilla-0.66.0+ds1/vendor/rand_core/src/os.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/rand_hc/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/rand_hc/CHANGELOG.md | 16 cargo-mozilla-0.66.0+ds1/vendor/rand_hc/COPYRIGHT | 12 cargo-mozilla-0.66.0+ds1/vendor/rand_hc/Cargo.toml | 32 cargo-mozilla-0.66.0+ds1/vendor/rand_hc/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/rand_hc/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/rand_hc/README.md | 45 cargo-mozilla-0.66.0+ds1/vendor/rand_hc/src/hc128.rs | 464 cargo-mozilla-0.66.0+ds1/vendor/rand_hc/src/lib.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/CHANGELOG.md | 12 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/Cargo.toml | 8 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/README.md | 8 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/common.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/lib.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/splitmix64.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoroshiro128plus.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoroshiro128plusplus.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoroshiro128starstar.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoroshiro64star.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoroshiro64starstar.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoshiro128plus.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoshiro128plusplus.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoshiro128starstar.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoshiro256plus.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoshiro256plusplus.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoshiro256starstar.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoshiro512plus.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoshiro512plusplus.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/rand_xoshiro/src/xoshiro512starstar.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/Cargo.toml | 15 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/build.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/debian/patches/no-nightly.patch | 35 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/arch/aarch64.rs | 203 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/arch/arm.rs | 73 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/arch/nonredox.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/arch/riscv64.rs | 93 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/arch/x86.rs | 152 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/arch/x86_64.rs | 223 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/call.rs | 93 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/daemon.rs | 62 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/data.rs | 186 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/error.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/flag.rs | 257 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/io/dma.rs | 182 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/io/io.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/io/mmio.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/io/mod.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/io/pio.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/lib.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/number.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/scheme/generate.sh | 5 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/scheme/mod.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/scheme/scheme.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/scheme/scheme_block.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/scheme/scheme_block_mut.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/scheme/scheme_mut.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/scheme/seek.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/redox_syscall/src/tests.rs | 379 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/Cargo.toml | 24 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/README.md | 7 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/ast/mod.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/ast/parse.rs | 152 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/ast/print.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/ast/visitor.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/error.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/hir/interval.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/hir/literal/mod.rs | 61 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/hir/mod.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/hir/print.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/hir/translate.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/lib.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/parser.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/age.rs | 234 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/case_folding_simple.rs | 98 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/general_category.rs | 903 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/grapheme_cluster_break.rs | 69 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/perl_decimal.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/perl_space.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/perl_word.rs | 150 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/property_bool.rs | 1304 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/property_names.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/property_values.rs | 34 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/script.rs | 255 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/script_extension.rs | 255 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/sentence_break.rs | 215 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/unicode_tables/word_break.rs | 162 cargo-mozilla-0.66.0+ds1/vendor/regex-syntax/src/utf8.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/regex/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/regex/CHANGELOG.md | 223 cargo-mozilla-0.66.0+ds1/vendor/regex/Cargo.lock | 194 cargo-mozilla-0.66.0+ds1/vendor/regex/Cargo.toml | 74 cargo-mozilla-0.66.0+ds1/vendor/regex/PERFORMANCE.md | 10 cargo-mozilla-0.66.0+ds1/vendor/regex/README.md | 26 cargo-mozilla-0.66.0+ds1/vendor/regex/UNICODE.md | 34 cargo-mozilla-0.66.0+ds1/vendor/regex/debian/patches/relax-test-dep.diff | 16 cargo-mozilla-0.66.0+ds1/vendor/regex/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/regex/examples/shootout-regex-dna-bytes.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex/examples/shootout-regex-dna-cheat.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex/examples/shootout-regex-dna-replace.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/regex/examples/shootout-regex-dna-single-cheat.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex/examples/shootout-regex-dna-single.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex/examples/shootout-regex-dna.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex/src/backtrack.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/regex/src/cache.rs | 100 cargo-mozilla-0.66.0+ds1/vendor/regex/src/compile.rs | 137 cargo-mozilla-0.66.0+ds1/vendor/regex/src/dfa.rs | 99 cargo-mozilla-0.66.0+ds1/vendor/regex/src/error.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex/src/exec.rs | 117 cargo-mozilla-0.66.0+ds1/vendor/regex/src/expand.rs | 71 cargo-mozilla-0.66.0+ds1/vendor/regex/src/input.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/regex/src/lib.rs | 101 cargo-mozilla-0.66.0+ds1/vendor/regex/src/literal/imp.rs | 787 cargo-mozilla-0.66.0+ds1/vendor/regex/src/literal/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/regex/src/pattern.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/regex/src/pikevm.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/regex/src/pool.rs | 333 cargo-mozilla-0.66.0+ds1/vendor/regex/src/prog.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/regex/src/re_builder.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/regex/src/re_bytes.rs | 191 cargo-mozilla-0.66.0+ds1/vendor/regex/src/re_set.rs | 85 cargo-mozilla-0.66.0+ds1/vendor/regex/src/re_trait.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/regex/src/re_unicode.rs | 212 cargo-mozilla-0.66.0+ds1/vendor/regex/src/sparse.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/regex/src/utf8.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/regex/test | 2 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/api.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/consistent.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/crazy.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/macros_bytes.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/macros_str.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/regression.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/regression_fuzz.rs | 31 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/replace.rs | 102 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/set.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/test_backtrack.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/test_backtrack_bytes.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/test_backtrack_utf8bytes.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/test_crates_regex.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/test_default.rs | 116 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/test_default_bytes.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/test_nfa.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/test_nfa_bytes.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/test_nfa_utf8bytes.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/regex/tests/unicode.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/rustfix/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/rustfix/Cargo.toml | 30 cargo-mozilla-0.66.0+ds1/vendor/rustfix/Readme.md | 4 cargo-mozilla-0.66.0+ds1/vendor/rustfix/src/diagnostics.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/rustfix/src/lib.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/rustfix/src/replace.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/ryu/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/ryu/Cargo.lock | 133 cargo-mozilla-0.66.0+ds1/vendor/ryu/Cargo.toml | 28 cargo-mozilla-0.66.0+ds1/vendor/ryu/README.md | 30 cargo-mozilla-0.66.0+ds1/vendor/ryu/benches/bench.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/ryu/build.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/buffer/mod.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/d2s.rs | 60 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/d2s_intrinsics.rs | 82 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/d2s_small_table.rs | 71 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/lib.rs | 42 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/pretty/exponent.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/pretty/mantissa.rs | 54 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/pretty/mod.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/s2d.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/ryu/src/s2f.rs | 28 cargo-mozilla-0.66.0+ds1/vendor/ryu/tests/common_test.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/ryu/tests/d2s_table_test.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/ryu/tests/d2s_test.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/ryu/tests/exhaustive.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/ryu/tests/f2s_test.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/ryu/tests/s2d_test.rs | 37 cargo-mozilla-0.66.0+ds1/vendor/ryu/tests/s2f_test.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/semver/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/semver/Cargo.toml | 18 cargo-mozilla-0.66.0+ds1/vendor/semver/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/semver/build.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/semver/src/backport.rs | 42 cargo-mozilla-0.66.0+ds1/vendor/semver/src/error.rs | 42 cargo-mozilla-0.66.0+ds1/vendor/semver/src/identifier.rs | 154 cargo-mozilla-0.66.0+ds1/vendor/semver/src/lib.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/semver/src/parse.rs | 42 cargo-mozilla-0.66.0+ds1/vendor/semver/src/serde.rs | 37 cargo-mozilla-0.66.0+ds1/vendor/semver/tests/node/mod.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/semver/tests/test_autotrait.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/semver/tests/test_identifier.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/semver/tests/test_version.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/semver/tests/test_version_req.rs | 41 cargo-mozilla-0.66.0+ds1/vendor/serde/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/serde/Cargo.toml | 45 cargo-mozilla-0.66.0+ds1/vendor/serde/README.md | 25 cargo-mozilla-0.66.0+ds1/vendor/serde/build.rs | 78 cargo-mozilla-0.66.0+ds1/vendor/serde/crates-io.md | 23 cargo-mozilla-0.66.0+ds1/vendor/serde/src/de/format.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/serde/src/de/ignored_any.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/serde/src/de/impls.rs | 443 cargo-mozilla-0.66.0+ds1/vendor/serde/src/de/mod.rs | 62 cargo-mozilla-0.66.0+ds1/vendor/serde/src/de/value.rs | 99 cargo-mozilla-0.66.0+ds1/vendor/serde/src/integer128.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/serde/src/lib.rs | 92 cargo-mozilla-0.66.0+ds1/vendor/serde/src/private/de.rs | 54 cargo-mozilla-0.66.0+ds1/vendor/serde/src/private/mod.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/serde/src/private/ser.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/serde/src/ser/impls.rs | 106 cargo-mozilla-0.66.0+ds1/vendor/serde/src/ser/mod.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/Cargo.toml | 30 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/README.md | 25 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/build.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/crates-io.md | 23 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/bound.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/de.rs | 188 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/dummy.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/internals/attr.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/internals/check.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/internals/receiver.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/lib.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/pretend.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/ser.rs | 62 cargo-mozilla-0.66.0+ds1/vendor/serde_derive/src/this.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/serde_ignored/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_ignored/Cargo.toml | 30 cargo-mozilla-0.66.0+ds1/vendor/serde_ignored/LICENSE-APACHE | 25 cargo-mozilla-0.66.0+ds1/vendor/serde_ignored/LICENSE-MIT | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_ignored/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/serde_ignored/src/lib.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/serde_ignored/tests/test.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/serde_json/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_json/CONTRIBUTING.md | 46 cargo-mozilla-0.66.0+ds1/vendor/serde_json/Cargo.toml | 60 cargo-mozilla-0.66.0+ds1/vendor/serde_json/README.md | 119 cargo-mozilla-0.66.0+ds1/vendor/serde_json/build.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/de.rs | 208 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/error.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/io/core.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/lexical/algorithm.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/lexical/bhcomp.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/lexical/bignum.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/lexical/float.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/lexical/math.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/lexical/num.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/lexical/rounding.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/lexical/shift.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/lib.rs | 89 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/map.rs | 70 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/number.rs | 115 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/raw.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/read.rs | 139 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/ser.rs | 419 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/value/de.rs | 97 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/value/from.rs | 27 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/value/index.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/value/mod.rs | 76 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/value/partial_eq.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/serde_json/src/value/ser.rs | 77 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/compiletest.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/debug.rs | 81 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/lexical.rs | 52 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/lexical/algorithm.rs | 110 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/lexical/exponent.rs | 54 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/lexical/float.rs | 581 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/lexical/math.rs | 211 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/lexical/num.rs | 76 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/lexical/parse.rs | 204 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/lexical/rounding.rs | 316 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/macros/mod.rs | 61 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/map.rs | 47 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/regression.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/regression/issue520.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/regression/issue795.rs | 59 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/regression/issue845.rs | 74 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/regression/issue953.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/stream.rs | 183 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/test.rs | 2387 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/missing_colon.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/missing_colon.stderr | 12 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/missing_comma.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/missing_comma.stderr | 13 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/missing_value.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/missing_value.stderr | 12 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/not_found.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/not_found.stderr | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/parse_expr.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/parse_expr.stderr | 11 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/parse_key.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/parse_key.stderr | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/unexpected_after_array_element.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/unexpected_after_array_element.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/unexpected_after_map_entry.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/unexpected_after_map_entry.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/unexpected_colon.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/unexpected_colon.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/unexpected_comma.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/serde_json/tests/ui/unexpected_comma.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/sha1/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/sha1/CHANGELOG.md | 42 cargo-mozilla-0.66.0+ds1/vendor/sha1/Cargo.toml | 52 cargo-mozilla-0.66.0+ds1/vendor/sha1/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/sha1/LICENSE-MIT | 27 cargo-mozilla-0.66.0+ds1/vendor/sha1/README.md | 65 cargo-mozilla-0.66.0+ds1/vendor/sha1/benches/mod.rs | 14 cargo-mozilla-0.66.0+ds1/vendor/sha1/src/compress.rs | 37 cargo-mozilla-0.66.0+ds1/vendor/sha1/src/compress/aarch64.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/sha1/src/compress/soft.rs | 260 cargo-mozilla-0.66.0+ds1/vendor/sha1/src/compress/x86.rs | 112 cargo-mozilla-0.66.0+ds1/vendor/sha1/src/lib.rs | 154 cargo-mozilla-0.66.0+ds1/vendor/sha1/tests/mod.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/similar/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/similar/CHANGELOG.md | 105 cargo-mozilla-0.66.0+ds1/vendor/similar/Cargo.lock | 296 cargo-mozilla-0.66.0+ds1/vendor/similar/Cargo.toml | 121 cargo-mozilla-0.66.0+ds1/vendor/similar/LICENSE | 201 cargo-mozilla-0.66.0+ds1/vendor/similar/Makefile | 27 cargo-mozilla-0.66.0+ds1/vendor/similar/README.md | 60 cargo-mozilla-0.66.0+ds1/vendor/similar/clippy.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/similar/debian/patches/relax-deps.diff | 17 cargo-mozilla-0.66.0+ds1/vendor/similar/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/similar/examples/close-matches.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/similar/examples/large.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/similar/examples/nonstring.rs | 13 cargo-mozilla-0.66.0+ds1/vendor/similar/examples/original-slices.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/similar/examples/patience.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/similar/examples/serde.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/similar/examples/terminal-inline.rs | 60 cargo-mozilla-0.66.0+ds1/vendor/similar/examples/terminal.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/similar/examples/udiff.rs | 24 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/capture.rs | 117 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/compact.rs | 355 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/hook.rs | 178 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/lcs.rs | 236 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/mod.rs | 134 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/myers.rs | 415 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/patience.rs | 169 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/replace.rs | 221 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__capture__capture_hook_grouping-2.snap | 60 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__capture__capture_hook_grouping.snap | 64 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__lcs__contiguous.snap | 28 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__lcs__diff.snap | 22 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__lcs__pat.snap | 31 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__lcs__same.snap | 12 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__myers__contiguous.snap | 28 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__myers__deadline_reached.snap | 22 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__myers__diff.snap | 22 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__myers__pat.snap | 31 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__patience__patience.snap | 45 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/snapshots/similar__algorithms__patience__patience_out_of_bounds_bug.snap | 16 cargo-mozilla-0.66.0+ds1/vendor/similar/src/algorithms/utils.rs | 379 cargo-mozilla-0.66.0+ds1/vendor/similar/src/common.rs | 185 cargo-mozilla-0.66.0+ds1/vendor/similar/src/iter.rs | 195 cargo-mozilla-0.66.0+ds1/vendor/similar/src/lib.rs | 163 cargo-mozilla-0.66.0+ds1/vendor/similar/src/snapshots/similar__udiff__unified_diff.snap | 25 cargo-mozilla-0.66.0+ds1/vendor/similar/src/snapshots/similar__udiff__unified_diff_newline_hint-2.snap | 10 cargo-mozilla-0.66.0+ds1/vendor/similar/src/snapshots/similar__udiff__unified_diff_newline_hint.snap | 11 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/abstraction.rs | 450 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/inline.rs | 337 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/mod.rs | 771 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__captured_ops.snap | 22 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__captured_word_ops.snap | 202 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__char_diff.snap | 39 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__inline__line_ops_inline.snap | 126 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__inline__serde.snap | 107 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__lifetimes_on_iter.snap | 42 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__line_ops.snap | 42 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__serde.snap | 55 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__serde_ops.snap | 38 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__unified_diff.snap | 12 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/snapshots/similar__text__virtual_newlines.snap | 32 cargo-mozilla-0.66.0+ds1/vendor/similar/src/text/utils.rs | 55 cargo-mozilla-0.66.0+ds1/vendor/similar/src/types.rs | 489 cargo-mozilla-0.66.0+ds1/vendor/similar/src/udiff.rs | 359 cargo-mozilla-0.66.0+ds1/vendor/similar/src/utils.rs | 415 cargo-mozilla-0.66.0+ds1/vendor/snapbox-macros/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/snapbox-macros/Cargo.toml | 47 cargo-mozilla-0.66.0+ds1/vendor/snapbox-macros/README.md | 26 cargo-mozilla-0.66.0+ds1/vendor/snapbox-macros/src/lib.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/snapbox/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/snapbox/Cargo.lock | 745 cargo-mozilla-0.66.0+ds1/vendor/snapbox/Cargo.toml | 186 cargo-mozilla-0.66.0+ds1/vendor/snapbox/README.md | 36 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/action.rs | 39 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/assert.rs | 534 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/bin/snap-fixture.rs | 58 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/cmd.rs | 936 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/data.rs | 230 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/error.rs | 95 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/harness.rs | 252 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/lib.rs | 245 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/path.rs | 686 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/report/color.rs | 127 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/report/diff.rs | 384 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/report/mod.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/substitutions.rs | 420 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/utils/lines.rs | 31 cargo-mozilla-0.66.0+ds1/vendor/snapbox/src/utils/mod.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/socket2/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/socket2/Cargo.toml | 49 cargo-mozilla-0.66.0+ds1/vendor/socket2/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/socket2/src/lib.rs | 56 cargo-mozilla-0.66.0+ds1/vendor/socket2/src/sockaddr.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/socket2/src/socket.rs | 251 cargo-mozilla-0.66.0+ds1/vendor/socket2/src/sys/unix.rs | 278 cargo-mozilla-0.66.0+ds1/vendor/socket2/src/sys/windows.rs | 41 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/CHANGELOG.md | 181 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/Cargo.toml | 39 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/LICENSE-APACHE | 202 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/LICENSE-MIT | 21 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/README.md | 188 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/assert_cfg.rs | 49 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/assert_eq_align.rs | 45 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/assert_eq_size.rs | 123 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/assert_fields.rs | 72 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/assert_impl.rs | 356 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/assert_obj_safe.rs | 76 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/assert_trait.rs | 105 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/assert_type.rs | 101 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/const_assert.rs | 109 cargo-mozilla-0.66.0+ds1/vendor/static_assertions/src/lib.rs | 97 cargo-mozilla-0.66.0+ds1/vendor/strsim/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/strsim/CHANGELOG.md | 82 cargo-mozilla-0.66.0+ds1/vendor/strsim/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/vendor/strsim/LICENSE | 2 cargo-mozilla-0.66.0+ds1/vendor/strsim/README.md | 73 cargo-mozilla-0.66.0+ds1/vendor/strsim/appveyor.yml | 13 cargo-mozilla-0.66.0+ds1/vendor/strsim/benches/benches.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/strsim/dev | 41 cargo-mozilla-0.66.0+ds1/vendor/strsim/src/lib.rs | 463 cargo-mozilla-0.66.0+ds1/vendor/subtle/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/subtle/CHANGELOG.md | 59 cargo-mozilla-0.66.0+ds1/vendor/subtle/CONTRIBUTING.md | 33 cargo-mozilla-0.66.0+ds1/vendor/subtle/Cargo.toml | 36 cargo-mozilla-0.66.0+ds1/vendor/subtle/LICENSE | 28 cargo-mozilla-0.66.0+ds1/vendor/subtle/README.md | 69 cargo-mozilla-0.66.0+ds1/vendor/subtle/src/lib.rs | 864 cargo-mozilla-0.66.0+ds1/vendor/subtle/tests/mod.rs | 389 cargo-mozilla-0.66.0+ds1/vendor/syn/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/syn/Cargo.toml | 77 cargo-mozilla-0.66.0+ds1/vendor/syn/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/syn/benches/file.rs | 35 cargo-mozilla-0.66.0+ds1/vendor/syn/benches/rust.rs | 24 cargo-mozilla-0.66.0+ds1/vendor/syn/build.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/syn/debian/patches/allow-old-and-new-sizes.patch | 47 cargo-mozilla-0.66.0+ds1/vendor/syn/debian/patches/relax-deps.patch | 49 cargo-mozilla-0.66.0+ds1/vendor/syn/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/syn/src/buffer.rs | 227 cargo-mozilla-0.66.0+ds1/vendor/syn/src/custom_keyword.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/syn/src/data.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/syn/src/derive.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/syn/src/drops.rs | 58 cargo-mozilla-0.66.0+ds1/vendor/syn/src/error.rs | 64 cargo-mozilla-0.66.0+ds1/vendor/syn/src/export.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/syn/src/expr.rs | 276 cargo-mozilla-0.66.0+ds1/vendor/syn/src/gen/clone.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/syn/src/gen/debug.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/syn/src/gen/eq.rs | 417 cargo-mozilla-0.66.0+ds1/vendor/syn/src/gen/fold.rs | 594 cargo-mozilla-0.66.0+ds1/vendor/syn/src/gen/hash.rs | 30 cargo-mozilla-0.66.0+ds1/vendor/syn/src/gen/visit.rs | 259 cargo-mozilla-0.66.0+ds1/vendor/syn/src/gen/visit_mut.rs | 249 cargo-mozilla-0.66.0+ds1/vendor/syn/src/generics.rs | 33 cargo-mozilla-0.66.0+ds1/vendor/syn/src/group.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/syn/src/ident.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/syn/src/item.rs | 227 cargo-mozilla-0.66.0+ds1/vendor/syn/src/lib.rs | 69 cargo-mozilla-0.66.0+ds1/vendor/syn/src/lit.rs | 104 cargo-mozilla-0.66.0+ds1/vendor/syn/src/lookahead.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/syn/src/macros.rs | 61 cargo-mozilla-0.66.0+ds1/vendor/syn/src/parse.rs | 31 cargo-mozilla-0.66.0+ds1/vendor/syn/src/parse_macro_input.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/syn/src/parse_quote.rs | 36 cargo-mozilla-0.66.0+ds1/vendor/syn/src/pat.rs | 69 cargo-mozilla-0.66.0+ds1/vendor/syn/src/path.rs | 148 cargo-mozilla-0.66.0+ds1/vendor/syn/src/punctuated.rs | 77 cargo-mozilla-0.66.0+ds1/vendor/syn/src/stmt.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/syn/src/ty.rs | 178 cargo-mozilla-0.66.0+ds1/vendor/syn/src/verbatim.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/.gitignore | 1 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/common/eq.rs | 372 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/debug/gen.rs | 79 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/debug/mod.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/macros/mod.rs | 18 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/regression.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/regression/issue1108.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/regression/issue1235.rs | 32 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/repo/mod.rs | 109 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_derive_input.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_expr.rs | 76 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_iterators.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_lit.rs | 6 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_parse_stream.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_path.rs | 22 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_precedence.rs | 37 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_round_trip.rs | 69 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_size.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_stmt.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/syn/tests/test_ty.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/tar/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/tar/Cargo.lock | 38 cargo-mozilla-0.66.0+ds1/vendor/tar/Cargo.toml | 11 cargo-mozilla-0.66.0+ds1/vendor/tar/debian/patches/disable-tests.diff | 165 cargo-mozilla-0.66.0+ds1/vendor/tar/debian/patches/series | 2 cargo-mozilla-0.66.0+ds1/vendor/tar/debian/patches/test-skip-loop0-if-nonexistent.diff | 19 cargo-mozilla-0.66.0+ds1/vendor/tar/src/archive.rs | 98 cargo-mozilla-0.66.0+ds1/vendor/tar/src/builder.rs | 48 cargo-mozilla-0.66.0+ds1/vendor/tar/src/entry.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/tar/src/error.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/tar/src/header.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/tar/src/pax.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/tar/tests/all.rs | 196 cargo-mozilla-0.66.0+ds1/vendor/tempfile/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/tempfile/Cargo.toml | 28 cargo-mozilla-0.66.0+ds1/vendor/tempfile/NEWS | 27 cargo-mozilla-0.66.0+ds1/vendor/tempfile/README.md | 5 cargo-mozilla-0.66.0+ds1/vendor/tempfile/debian/patches/relax-dep.diff | 13 cargo-mozilla-0.66.0+ds1/vendor/tempfile/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/tempfile/src/dir.rs | 37 cargo-mozilla-0.66.0+ds1/vendor/tempfile/src/file/imp/mod.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/tempfile/src/file/imp/unix.rs | 41 cargo-mozilla-0.66.0+ds1/vendor/tempfile/src/file/mod.rs | 52 cargo-mozilla-0.66.0+ds1/vendor/tempfile/src/lib.rs | 46 cargo-mozilla-0.66.0+ds1/vendor/tempfile/src/spooled.rs | 42 cargo-mozilla-0.66.0+ds1/vendor/tempfile/src/util.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/tempfile/tests/namedtempfile.rs | 49 cargo-mozilla-0.66.0+ds1/vendor/tempfile/tests/tempfile.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/termcolor/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/termcolor/Cargo.toml | 30 cargo-mozilla-0.66.0+ds1/vendor/termcolor/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/termcolor/src/lib.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/textwrap/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/textwrap/CHANGELOG.md | 596 cargo-mozilla-0.66.0+ds1/vendor/textwrap/Cargo.lock | 558 cargo-mozilla-0.66.0+ds1/vendor/textwrap/Cargo.toml | 79 cargo-mozilla-0.66.0+ds1/vendor/textwrap/README.md | 405 cargo-mozilla-0.66.0+ds1/vendor/textwrap/benches/linear.rs | 122 cargo-mozilla-0.66.0+ds1/vendor/textwrap/debian/patches/disable-hyphenation.diff | 23 cargo-mozilla-0.66.0+ds1/vendor/textwrap/debian/patches/remove-leftovers.patch | 18 cargo-mozilla-0.66.0+ds1/vendor/textwrap/debian/patches/remove-unic-emoji-char.patch | 32 cargo-mozilla-0.66.0+ds1/vendor/textwrap/debian/patches/remove-version-sync.patch | 26 cargo-mozilla-0.66.0+ds1/vendor/textwrap/debian/patches/series | 4 cargo-mozilla-0.66.0+ds1/vendor/textwrap/examples/layout.rs | 38 cargo-mozilla-0.66.0+ds1/vendor/textwrap/examples/termwidth.rs | 41 cargo-mozilla-0.66.0+ds1/vendor/textwrap/rustfmt.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/core.rs | 433 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/fuzzing.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/indentation.rs | 307 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/lib.rs | 2239 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/line_ending.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/splitting.rs | 139 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/word_separators.rs | 481 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/word_splitters.rs | 314 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/wrap_algorithms.rs | 411 cargo-mozilla-0.66.0+ds1/vendor/textwrap/src/wrap_algorithms/optimal_fit.rs | 433 cargo-mozilla-0.66.0+ds1/vendor/textwrap/tests/indent.rs | 88 cargo-mozilla-0.66.0+ds1/vendor/textwrap/tests/version-numbers.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/thread_local/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/thread_local/Cargo.toml | 11 cargo-mozilla-0.66.0+ds1/vendor/thread_local/src/lib.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/tinyvec/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/tinyvec/CHANGELOG.md | 13 cargo-mozilla-0.66.0+ds1/vendor/tinyvec/Cargo.toml | 64 cargo-mozilla-0.66.0+ds1/vendor/tinyvec/benches/smallvec.rs | 500 cargo-mozilla-0.66.0+ds1/vendor/tinyvec/compare_benchmarks.py | 30 cargo-mozilla-0.66.0+ds1/vendor/tinyvec/src/arrayvec.rs | 63 cargo-mozilla-0.66.0+ds1/vendor/tinyvec/src/tinyvec.rs | 130 cargo-mozilla-0.66.0+ds1/vendor/tinyvec/tests/tinyvec.rs | 57 cargo-mozilla-0.66.0+ds1/vendor/toml/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/toml/Cargo.lock | 101 cargo-mozilla-0.66.0+ds1/vendor/toml/Cargo.toml | 40 cargo-mozilla-0.66.0+ds1/vendor/toml/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/toml/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/toml/README.md | 38 cargo-mozilla-0.66.0+ds1/vendor/toml/examples/decode.rs | 53 cargo-mozilla-0.66.0+ds1/vendor/toml/examples/enum_external.rs | 44 cargo-mozilla-0.66.0+ds1/vendor/toml/examples/toml2json.rs | 47 cargo-mozilla-0.66.0+ds1/vendor/toml/src/datetime.rs | 425 cargo-mozilla-0.66.0+ds1/vendor/toml/src/de.rs | 2263 cargo-mozilla-0.66.0+ds1/vendor/toml/src/lib.rs | 180 cargo-mozilla-0.66.0+ds1/vendor/toml/src/macros.rs | 462 cargo-mozilla-0.66.0+ds1/vendor/toml/src/map.rs | 595 cargo-mozilla-0.66.0+ds1/vendor/toml/src/ser.rs | 1854 cargo-mozilla-0.66.0+ds1/vendor/toml/src/spanned.rs | 168 cargo-mozilla-0.66.0+ds1/vendor/toml/src/tokens.rs | 744 cargo-mozilla-0.66.0+ds1/vendor/toml/src/value.rs | 1080 cargo-mozilla-0.66.0+ds1/vendor/toml/tests/enum_external_deserialize.rs | 258 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/Cargo.lock | 1092 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/Cargo.toml | 146 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/LICENSE-MIT | 21 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/README.md | 61 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/benches/cargo.rs | 273 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/benches/linear.rs | 81 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/debian/patches/drop-criterion.patch | 37 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/debian/patches/drop-pretty-assertions.patch | 69 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/debian/patches/drop-snapbox.patch | 85 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/debian/patches/drop-toml-test-harness.patch | 49 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/debian/patches/series | 4 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/examples/bench.rs | 122 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/examples/bench_easy_de.rs | 229 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/examples/bench_easy_value.rs | 129 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/examples/visit.rs | 284 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/array.rs | 374 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/array_of_tables.rs | 138 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/datetime.rs | 396 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/de/array.rs | 114 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/de/inline_table.rs | 154 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/de/item.rs | 173 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/de/mod.rs | 262 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/de/table.rs | 154 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/de/table_enum.rs | 138 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/de/value.rs | 146 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/document.rs | 98 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/easy/datetime.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/easy/macros.rs | 459 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/easy/map.rs | 547 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/easy/mod.rs | 151 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/easy/value.rs | 543 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/encode.rs | 457 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/index.rs | 156 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/inline_table.rs | 631 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/internal_string.rs | 175 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/item.rs | 361 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/key.rs | 295 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/lib.rs | 126 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/array.rs | 57 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/datetime.rs | 209 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/document.rs | 178 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/errors.rs | 305 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/inline_table.rs | 108 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/key.rs | 56 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/macros.rs | 47 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/mod.rs | 671 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/numbers.rs | 195 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/strings.rs | 294 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/table.rs | 141 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/trivia.rs | 124 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/parser/value.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/repr.rs | 147 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/ser/array.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/ser/item.rs | 199 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/ser/key.rs | 173 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/ser/mod.rs | 180 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/ser/pretty.rs | 61 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/ser/table.rs | 165 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/table.rs | 728 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/value.rs | 366 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/visit.rs | 236 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/src/visit_mut.rs | 252 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/convert.rs | 80 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/decoder.rs | 99 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/decoder_compliance.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/easy_decoder.rs | 66 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/easy_decoder_compliance.rs | 12 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/easy_encoder.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/easy_encoder_compliance.rs | 15 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/encoder.rs | 110 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/encoder_compliance.rs | 9 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/enum_external_deserialize.rs | 256 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/README.md | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/datetime-malformed-no-leads.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/datetime-malformed-no-leads.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/datetime-malformed-no-secs.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/datetime-malformed-no-secs.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/datetime-malformed-no-t.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/datetime-malformed-no-t.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/datetime-malformed-with-milli.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/datetime-malformed-with-milli.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-key-dotted-into-std.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-key-dotted-into-std.toml | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-key-std-into-dotted.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-key-std-into-dotted.toml | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-key-table.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-key-table.toml | 5 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-keys-cargo.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-keys-cargo.toml | 11 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-keys-dotted.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-keys-dotted.toml | 4 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-keys.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-keys.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-tables.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/duplicate-tables.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/empty-implicit-table.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/empty-implicit-table.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/empty-table.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/empty-table.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-leading-zero-neg.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-leading-zero-neg.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-leading-zero-pos.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-leading-zero-pos.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-leading-zero.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-leading-zero.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-no-leading-zero.stderr | 15 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-no-leading-zero.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-no-trailing-digits.stderr | 8 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-no-trailing-digits.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-underscore-after-point.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-underscore-after-point.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-underscore-after.stderr | 8 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-underscore-after.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-underscore-before-point.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-underscore-before-point.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-underscore-before.stderr | 15 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/float-underscore-before.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/inline-table-newline.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/inline-table-newline.toml | 9 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-invalid-binary-char.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-invalid-binary-char.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-invalid-hex-char.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-invalid-hex-char.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-invalid-octal-char.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-invalid-octal-char.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-leading-zero-neg.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-leading-zero-neg.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-leading-zero-pos.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-leading-zero-pos.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-leading-zero.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-leading-zero.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-underscore-after.stderr | 8 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-underscore-after.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-underscore-before.stderr | 15 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-underscore-before.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-underscore-double.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/integer-underscore-double.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-after-array.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-after-array.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-after-table.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-after-table.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-empty.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-empty.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-hash.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-hash.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-newline.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-newline.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-no-eol.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-no-eol.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-open-bracket.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-open-bracket.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-single-open-bracket.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-single-open-bracket.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-space.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-space.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-start-bracket.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-start-bracket.toml | 3 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-two-equals.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/key-two-equals.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/llbrace.stderr | 8 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/llbrace.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/rrbrace.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/rrbrace.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-bad-byte-escape.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-bad-byte-escape.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-bad-escape.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-bad-escape.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-bad-surrogate.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-bad-surrogate.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-bad-uni-esc.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-bad-uni-esc.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-byte-escapes.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-byte-escapes.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-close.stderr | 8 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-close.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-constant-like.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-constant-like.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-in-array.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-in-array.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-in-inline-table.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-in-inline-table.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-in-table.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-in-table.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-number-like.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/string-no-quotes-number-like.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-array-implicit.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-array-implicit.toml | 14 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-array-malformed-bracket.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-array-malformed-bracket.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-array-malformed-empty.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-array-malformed-empty.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-empty.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-empty.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-nested-brackets-close.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-nested-brackets-close.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-nested-brackets-open.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-nested-brackets-open.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-whitespace.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-whitespace.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-with-pound.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/table-with-pound.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-after-array-entries.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-after-array-entries.toml | 4 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-after-integer.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-after-integer.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-after-string.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-after-string.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-after-table.stderr | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-after-table.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-before-array-separator.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-before-array-separator.toml | 4 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-in-array.stderr | 6 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/invalid/text-in-array.toml | 5 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/arrays.json | 34 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/arrays.toml | 8 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/comments-at-eof2.json | 3 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/comments-at-eof2.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/comments-everywhere.json | 12 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/comments-everywhere.toml | 24 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/datetime.json | 3 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/datetime.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/float-exponent.json | 9 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/float-exponent.toml | 7 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/inline-table.json | 11 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/inline-table.toml | 3 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/integer-underscore.json | 3 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/integer-underscore.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/long-integer.json | 4 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/long-integer.toml | 2 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/multiline-string.json | 30 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/multiline-string.toml | 23 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/raw-multiline-string.json | 14 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/raw-multiline-string.toml | 9 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/string-escapes.json | 46 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/string-escapes.toml | 11 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/table-no-eol.json | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/table-no-eol.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/windows-path.json | 10 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/fixtures/valid/windows-path.toml | 1 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/formatter.rs | 55 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/macros.rs | 371 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/pretty.rs | 163 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/serde.rs | 559 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/test_edit.rs | 858 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/test_invalid.rs | 26 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/test_parse.rs | 94 cargo-mozilla-0.66.0+ds1/vendor/toml_edit/tests/test_valid.rs | 168 cargo-mozilla-0.66.0+ds1/vendor/typenum/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/typenum/CHANGELOG.md | 10 cargo-mozilla-0.66.0+ds1/vendor/typenum/Cargo.toml | 24 cargo-mozilla-0.66.0+ds1/vendor/typenum/build/generic_const_mappings.rs | 91 cargo-mozilla-0.66.0+ds1/vendor/typenum/build/main.rs | 29 cargo-mozilla-0.66.0+ds1/vendor/typenum/build/op.rs | 1 cargo-mozilla-0.66.0+ds1/vendor/typenum/debian/patches/disable-scale-info.diff | 20 cargo-mozilla-0.66.0+ds1/vendor/typenum/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/typenum/src/array.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/typenum/src/bit.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/typenum/src/int.rs | 51 cargo-mozilla-0.66.0+ds1/vendor/typenum/src/lib.rs | 25 cargo-mozilla-0.66.0+ds1/vendor/typenum/src/type_operators.rs | 2 cargo-mozilla-0.66.0+ds1/vendor/typenum/src/uint.rs | 65 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/Cargo.toml | 37 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/README.md | 4 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/debian/patches/no-flamegraphs.patch | 28 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/src/char_data/mod.rs | 49 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/src/char_data/tables.rs | 796 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/src/data_source.rs | 16 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/src/deprecated.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/src/explicit.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/src/implicit.rs | 23 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/src/level.rs | 4 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/src/lib.rs | 340 cargo-mozilla-0.66.0+ds1/vendor/unicode-bidi/src/prepare.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/Cargo.toml | 58 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/LICENSE-MIT | 23 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/LICENSE-UNICODE | 46 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/README.md | 283 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/benches/xid.rs | 124 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/src/lib.rs | 268 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/src/tables.rs | 647 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/compare.rs | 64 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/fst/mod.rs | 11 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/roaring/mod.rs | 21 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/static_size.rs | 95 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/tables/mod.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/tables/tables.rs | 347 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/trie/mod.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/unicode-ident/tests/trie/trie.rs | 444 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/Cargo.toml | 40 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/README.md | 2 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/benches/bench.rs | 8 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/debian/patches/disable-tests-missing-testdata.patch | 40 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/scripts/unicode.py | 18 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/src/lib.rs | 40 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/src/lookups.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/src/tables.rs |35713 ++++++---- cargo-mozilla-0.66.0+ds1/vendor/unicode-normalization/src/test.rs | 5 cargo-mozilla-0.66.0+ds1/vendor/unicode-width/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/unicode-width/Cargo.toml | 35 cargo-mozilla-0.66.0+ds1/vendor/unicode-width/debian/patches/drop-uninstallable-featuresets.patch | 28 cargo-mozilla-0.66.0+ds1/vendor/unicode-width/scripts/unicode.py | 738 cargo-mozilla-0.66.0+ds1/vendor/unicode-width/src/tables.rs | 775 cargo-mozilla-0.66.0+ds1/vendor/unicode-width/src/tests.rs | 20 cargo-mozilla-0.66.0+ds1/vendor/unicode-xid/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/unicode-xid/Cargo.toml | 38 cargo-mozilla-0.66.0+ds1/vendor/unicode-xid/README.md | 11 cargo-mozilla-0.66.0+ds1/vendor/unicode-xid/src/tables.rs | 183 cargo-mozilla-0.66.0+ds1/vendor/url/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/url/Cargo.toml | 55 cargo-mozilla-0.66.0+ds1/vendor/url/LICENSE-MIT | 2 cargo-mozilla-0.66.0+ds1/vendor/url/README.md | 14 cargo-mozilla-0.66.0+ds1/vendor/url/debian/patches/remove-benchmarks.diff | 24 cargo-mozilla-0.66.0+ds1/vendor/url/debian/patches/remove-debugger-test.diff | 17 cargo-mozilla-0.66.0+ds1/vendor/url/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/url/src/host.rs | 86 cargo-mozilla-0.66.0+ds1/vendor/url/src/lib.rs | 82 cargo-mozilla-0.66.0+ds1/vendor/url/src/origin.rs | 3 cargo-mozilla-0.66.0+ds1/vendor/url/src/parser.rs | 37 cargo-mozilla-0.66.0+ds1/vendor/url/src/quirks.rs | 59 cargo-mozilla-0.66.0+ds1/vendor/url/tests/data.rs | 79 cargo-mozilla-0.66.0+ds1/vendor/url/tests/debugger_visualizer.rs | 102 cargo-mozilla-0.66.0+ds1/vendor/url/tests/unit.rs | 54 cargo-mozilla-0.66.0+ds1/vendor/url/tests/urltestdata.json | 1625 cargo-mozilla-0.66.0+ds1/vendor/vec_map/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/vec_map/Cargo.toml | 31 cargo-mozilla-0.66.0+ds1/vendor/vec_map/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/vec_map/LICENSE-MIT | 25 cargo-mozilla-0.66.0+ds1/vendor/vec_map/README.md | 15 cargo-mozilla-0.66.0+ds1/vendor/vec_map/src/lib.rs | 1623 cargo-mozilla-0.66.0+ds1/vendor/version_check/.cargo-checksum.json | 2 cargo-mozilla-0.66.0+ds1/vendor/version_check/Cargo.toml | 12 cargo-mozilla-0.66.0+ds1/vendor/version_check/README.md | 14 cargo-mozilla-0.66.0+ds1/vendor/version_check/src/channel.rs | 7 cargo-mozilla-0.66.0+ds1/vendor/version_check/src/date.rs | 66 cargo-mozilla-0.66.0+ds1/vendor/version_check/src/lib.rs | 229 cargo-mozilla-0.66.0+ds1/vendor/version_check/src/version.rs | 10 cargo-mozilla-0.66.0+ds1/vendor/yansi/.cargo-checksum.json | 1 cargo-mozilla-0.66.0+ds1/vendor/yansi/Cargo.toml | 37 cargo-mozilla-0.66.0+ds1/vendor/yansi/LICENSE-APACHE | 201 cargo-mozilla-0.66.0+ds1/vendor/yansi/LICENSE-MIT | 19 cargo-mozilla-0.66.0+ds1/vendor/yansi/README.md | 47 cargo-mozilla-0.66.0+ds1/vendor/yansi/debian/patches/relax-serial-test.patch | 24 cargo-mozilla-0.66.0+ds1/vendor/yansi/debian/patches/series | 1 cargo-mozilla-0.66.0+ds1/vendor/yansi/src/color.rs | 96 cargo-mozilla-0.66.0+ds1/vendor/yansi/src/lib.rs | 214 cargo-mozilla-0.66.0+ds1/vendor/yansi/src/macros.rs | 19 cargo-mozilla-0.66.0+ds1/vendor/yansi/src/paint.rs | 463 cargo-mozilla-0.66.0+ds1/vendor/yansi/src/style.rs | 480 cargo-mozilla-0.66.0+ds1/vendor/yansi/src/tests.rs | 182 cargo-mozilla-0.66.0+ds1/vendor/yansi/src/windows.rs | 69 3947 files changed, 336813 insertions(+), 116619 deletions(-) diff -Nru cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/bug_report.md cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/bug_report.md --- cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/bug_report.md 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/bug_report.md 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -labels: C-bug ---- - - - -**Problem** - - - -**Steps** - -1. -2. -3. - -**Possible Solution(s)** - - - -**Notes** - -Output of `cargo version`: - - - diff -Nru cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/bug_report.yml cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/bug_report.yml --- cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/bug_report.yml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/bug_report.yml 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,43 @@ +name: Bug Report +description: Create a report to help us improve +labels: ["C-bug"] +body: + - type: markdown + attributes: + value: Thanks for filing a 🐛 bug report 😄! + - type: textarea + id: problem + attributes: + label: Problem + description: > + Please provide a clear and concise description of what the bug is, + including what currently happens and what you expected to happen. + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps + description: Please list the steps to reproduce the bug. + placeholder: | + 1. + 2. + 3. + - type: textarea + id: possible-solutions + attributes: + label: Possible Solution(s) + description: > + Not obligatory, but suggest a fix/reason for the bug, + or ideas how to implement the addition or change. + - type: textarea + id: notes + attributes: + label: Notes + description: Provide any additional notes that might be helpful. + - type: textarea + id: version + attributes: + label: Version + description: Please paste the output of running `cargo version --verbose`. + render: text diff -Nru cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/config.yml cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/config.yml --- cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/config.yml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/config.yml 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,10 @@ +contact_links: + - name: Question + url: https://users.rust-lang.org + about: > + Got a question about Cargo? Ask the community on the user forum. + - name: Inspiring Idea + url: https://internals.rust-lang.org/c/tools-and-infrastructure/cargo + about: > + Need more discussions with your next big idea? + Reach out the coummunity on the internals forum. diff -Nru cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/feature_request.md cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/feature_request.md --- cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/feature_request.md 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/feature_request.md 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -labels: C-feature-request ---- - - - -**Describe the problem you are trying to solve** - - -**Describe the solution you'd like** - - -**Notes** - diff -Nru cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/feature_request.yml cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/feature_request.yml --- cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/feature_request.yml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/feature_request.yml 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,35 @@ +name: Feature Request +description: Suggest an idea for enhancing Cargo +labels: ["C-feature-request"] +body: + - type: markdown + attributes: + value: | + Thanks for filing a 🙋 feature request 😄! + + If the feature request is relatively small and already with a possible solution, this might be the place for you. + + If you are brewing a big feature that needs feedback from the community, [the internal forum] is the best fit, especially for pre-RFC. You can also talk the idea over with other developers in [#t-cargo Zulip stream]. + + [the internal forum]: https://internals.rust-lang.org/c/tools-and-infrastructure/cargo/15 + [#t-cargo Zulip stream]: https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo + - type: textarea + id: problem + attributes: + label: Problem + description: > + Please provide a clear description of your use case and the problem + this feature request is trying to solve. + validations: + required: true + - type: textarea + id: solution + attributes: + label: Proposed Solution + description: > + Please provide a clear and concise description of what you want to happen. + - type: textarea + id: notes + attributes: + label: Notes + description: Provide any additional context or information that might be helpful. diff -Nru cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/tracking_issue.md cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/tracking_issue.md --- cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/tracking_issue.md 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/tracking_issue.md 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ ---- -name: Tracking Issue -about: A tracking issue for an accepted feature or RFC in Cargo. -title: Tracking Issue for XXX -labels: C-tracking-issue ---- - - -**Summary** - -RFC: [#NNNN](https://github.com/rust-lang/rfcs/pull/NNNN) -Original issue: #NNNN -Implementation: #NNNN -Documentation: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#my-feature - - - -**Unresolved issues** - -* [ ] Make a list of any known implementation or design issues. - -**Future extensions** - - - -**About tracking issues** - -Tracking issues are used to record the overall progress of implementation. -They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions. -A tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature. -Instead, open a dedicated issue for the specific matter and add the relevant feature gate label. diff -Nru cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/tracking_issue.yml cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/tracking_issue.yml --- cargo-mozilla-0.57.0/.github/ISSUE_TEMPLATE/tracking_issue.yml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/ISSUE_TEMPLATE/tracking_issue.yml 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,50 @@ +name: Tracking Issue +description: A tracking issue for an accepted feature or RFC in Cargo. +title: "Tracking Issue for _FEATURE_NAME_" +labels: ["C-tracking-issue"] +body: + - type: markdown + attributes: + value: > + Thank you for creating a tracking issue! Tracking issues are for tracking an + accepted feature or RFC from implementation to stabilization. Please do not + file a tracking issue until the feature or RFC has been approved. + - type: textarea + id: summary + attributes: + label: Summary + description: Please provide a very brief summary of the feature. + value: | + RFC: [#NNNN](https://github.com/rust-lang/rfcs/pull/NNNN) + Original issue: #NNNN + Implementation: #NNNN + Documentation: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#my-feature + + Please enter a short, one-sentence description here. + validations: + required: true + - type: textarea + id: unresolved + attributes: + label: Unresolved Issues + description: List issues that have not yet been resolved. + placeholder: | + * [ ] Make a list of any known implementation or design issues. + - type: textarea + id: future + attributes: + label: Future Extensions + description: > + An optional section where you can mention where the feature may be + extended in the future, but is explicitly not intended to + address. + - type: textarea + id: about + attributes: + label: About tracking issues + description: Please include this notice in the issue. + value: | + Tracking issues are used to record the overall progress of implementation. + They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions. + A tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature. + Instead, open a dedicated issue for the specific matter and add the relevant feature gate label. diff -Nru cargo-mozilla-0.57.0/.github/PULL_REQUEST_TEMPLATE.md cargo-mozilla-0.66.0+ds1/.github/PULL_REQUEST_TEMPLATE.md --- cargo-mozilla-0.57.0/.github/PULL_REQUEST_TEMPLATE.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/PULL_REQUEST_TEMPLATE.md 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,43 @@ + + + diff -Nru cargo-mozilla-0.57.0/.github/dependabot.yml cargo-mozilla-0.66.0+ds1/.github/dependabot.yml --- cargo-mozilla-0.57.0/.github/dependabot.yml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/dependabot.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -version: 2 -updates: -- package-ecosystem: cargo - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 10 - reviewers: - - alexcrichton - assignees: - - alexcrichton - ignore: - - dependency-name: proptest - versions: - - ">= 0.9.a, < 0.10" diff -Nru cargo-mozilla-0.57.0/.github/workflows/contrib.yml cargo-mozilla-0.66.0+ds1/.github/workflows/contrib.yml --- cargo-mozilla-0.57.0/.github/workflows/contrib.yml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/workflows/contrib.yml 2022-10-20 06:00:42.000000000 +0000 @@ -4,11 +4,16 @@ branches: - master +permissions: + contents: read + jobs: deploy: + permissions: + contents: write # for Git to git push runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install mdbook @@ -16,6 +21,9 @@ mkdir mdbook curl -Lf https://github.com/rust-lang/mdBook/releases/download/v0.4.9/mdbook-v0.4.9-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook echo `pwd`/mdbook >> $GITHUB_PATH + - name: Build API doc + run: | + cargo doc --document-private-items --no-deps - name: Deploy docs run: | cd src/doc/contrib @@ -28,6 +36,8 @@ git update-ref -d refs/heads/gh-pages rm -rf contrib mv ../book contrib + # Move rustdoc under contrib/ + mv ../../../../target/doc contrib/apidoc git add contrib git commit -m "Deploy $GITHUB_SHA to gh-pages" git push --force diff -Nru cargo-mozilla-0.57.0/.github/workflows/main.yml cargo-mozilla-0.66.0+ds1/.github/workflows/main.yml --- cargo-mozilla-0.57.0/.github/workflows/main.yml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.github/workflows/main.yml 2022-10-20 06:00:42.000000000 +0000 @@ -9,20 +9,23 @@ run: shell: bash +permissions: + contents: read + jobs: # Check Code style quickly by running `rustfmt` over all code rustfmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: rustup update stable && rustup default stable - run: rustup component add rustfmt - - run: cargo fmt --all -- --check + - run: cargo fmt --all --check - run: | - for manifest in `find crates -name Cargo.toml` + for manifest in `find crates benches/benchsuite benches/capture -name Cargo.toml` do echo check fmt for $manifest - cargo fmt --all --manifest-path $manifest -- --check + cargo fmt --all --manifest-path $manifest --check done test: @@ -34,26 +37,35 @@ strategy: matrix: include: - - os: ubuntu-latest + - name: Linux x86_64 stable + os: ubuntu-latest rust: stable other: i686-unknown-linux-gnu - - os: ubuntu-latest + - name: Linux x86_64 beta + os: ubuntu-latest rust: beta other: i686-unknown-linux-gnu - - os: ubuntu-latest + - name: Linux x86_64 nightly + os: ubuntu-latest rust: nightly other: i686-unknown-linux-gnu - - os: macos-latest + - name: macOS x86_64 stable + os: macos-latest rust: stable other: x86_64-apple-ios - - os: windows-latest + - name: Windows x86_64 MSVC stable + os: windows-latest rust: stable-msvc other: i686-pc-windows-msvc - - os: windows-latest + - name: Windows x86_64 gnu nightly + os: windows-latest rust: nightly-gnu other: i686-pc-windows-gnu + name: Tests ${{ matrix.name }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - name: Dump Environment + run: ci/dump-environment.sh - name: Update Rustup (temporary workaround) run: rustup self update shell: bash @@ -68,7 +80,16 @@ # Deny warnings on CI to avoid warnings getting into the codebase. - run: cargo test --features 'deny-warnings' - - run: cargo test --features 'deny-warnings' -p cargo-test-support + - name: Check operability of rustc invocation with argfile + env: + __CARGO_TEST_FORCE_ARGFILE: 1 + run: | + # This only tests `cargo fix` because fix-proxy-mode is one of the most + # complicated subprocess management in Cargo. + cargo test --test testsuite --features 'deny-warnings' -- fix:: + - run: cargo test --features 'deny-warnings' --manifest-path crates/cargo-test-support/Cargo.toml + env: + CARGO_TARGET_DIR: target - run: cargo test -p cargo-platform - run: cargo test -p cargo-util - run: cargo test --manifest-path crates/mdman/Cargo.toml @@ -79,18 +100,36 @@ if: matrix.os == 'macos-latest' - run: cargo build --manifest-path crates/credential/cargo-credential-wincred/Cargo.toml if: matrix.os == 'windows-latest' + - name: Check benchmarks + env: + # Share the target dir to try to cache a few build-time deps. + CARGO_TARGET_DIR: target + run: | + # This only tests one benchmark since it can take over 10 minutes to + # download all workspaces. + cargo test --manifest-path benches/benchsuite/Cargo.toml --all-targets -- cargo + cargo check --manifest-path benches/capture/Cargo.toml + # The testsuite generates a huge amount of data, and fetch-smoke-test was + # running out of disk space. + - name: Clear test output + run: | + df -h + rm -rf target/tmp + df -h + - name: Fetch smoke test + run: ci/fetch-smoke-test.sh resolver: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: rustup update stable && rustup default stable - run: cargo test --manifest-path crates/resolver-tests/Cargo.toml build_std: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: rustup update nightly && rustup default nightly - run: rustup component add rust-src - run: cargo build @@ -100,8 +139,9 @@ docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: rustup update nightly && rustup default nightly + - run: rustup update stable - run: rustup component add rust-docs - run: ci/validate-man.sh # This requires rustfmt, use stable. @@ -110,7 +150,9 @@ mkdir mdbook curl -Lf https://github.com/rust-lang/mdBook/releases/download/v0.4.5/mdbook-v0.4.5-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook echo `pwd`/mdbook >> $GITHUB_PATH - - run: cargo doc --no-deps + - run: cargo doc --document-private-items --no-deps + env: + RUSTDOCFLAGS: -D warnings - run: cd src/doc && mdbook build --dest-dir ../../target/doc - run: | cd src/doc @@ -119,6 +161,8 @@ sh linkcheck.sh --all cargo success: + permissions: + contents: none name: bors build finished needs: [docs, rustfmt, test, resolver, build_std] runs-on: ubuntu-latest @@ -126,6 +170,8 @@ steps: - run: echo ok failure: + permissions: + contents: none name: bors build finished needs: [docs, rustfmt, test, resolver, build_std] runs-on: ubuntu-latest diff -Nru cargo-mozilla-0.57.0/.ignore cargo-mozilla-0.66.0+ds1/.ignore --- cargo-mozilla-0.57.0/.ignore 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/.ignore 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,6 @@ +# Output generated from src/doc/man +# +# The goal is to help people find the right file to edit +src/doc/man/generated_txt +src/doc/src/commands +src/etc/man diff -Nru cargo-mozilla-0.57.0/CHANGELOG.md cargo-mozilla-0.66.0+ds1/CHANGELOG.md --- cargo-mozilla-0.57.0/CHANGELOG.md 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/CHANGELOG.md 2022-10-20 06:00:42.000000000 +0000 @@ -1,19 +1,590 @@ # Changelog +## Cargo 1.65 (2022-11-03) +[4fd148c4...HEAD](https://github.com/rust-lang/cargo/compare/4fd148c4...HEAD) + +### Added + +### Changed + +- Cargo now uses the standard library's `available_parallelism` instead of the + `num_cpus` crate for determining the default parallelism. + [#10969](https://github.com/rust-lang/cargo/pull/10969) + +### Fixed + +### Nightly only + + +## Cargo 1.64 (2022-09-22) +[a5e08c47...rust-1.64.0](https://github.com/rust-lang/cargo/compare/a5e08c47...rust-1.64.0) + +### Added + +- 🎉 Packages can now inherit settings from the workspace so that the settings + can be centralized in one place. See + [`workspace.package`](https://doc.rust-lang.org/nightly/cargo/reference/workspaces.html#the-workspacepackage-table) + and + [`workspace.dependencies`](https://doc.rust-lang.org/nightly/cargo/reference/workspaces.html#the-workspacedependencies-table) + for more details on how to define these common settings. + [#10859](https://github.com/rust-lang/cargo/pull/10859) +- Added the + [`--crate-type`](https://doc.rust-lang.org/nightly/cargo/commands/cargo-rustc.html#option-cargo-rustc---crate-type) + flag to `cargo rustc` to override the crate type. + [#10838](https://github.com/rust-lang/cargo/pull/10838) +- Cargo commands can now accept multiple `--target` flags to build for + multiple targets at once, and the + [`build.target`](https://doc.rust-lang.org/nightly/cargo/reference/config.html#buildtarget) + config option may now take an array of multiple targets. + [#10766](https://github.com/rust-lang/cargo/pull/10766) +- The `--jobs` argument can now take a negative number to count backwards from + the max CPUs. + [#10844](https://github.com/rust-lang/cargo/pull/10844) + +### Changed +- Bash completion of `cargo install --path` now supports path completion. + [#10798](https://github.com/rust-lang/cargo/pull/10798) +- Significantly improved the performance fetching git dependencies from GitHub + when using a hash in the `rev` field. + [#10079](https://github.com/rust-lang/cargo/pull/10079) +- Published packages will now include the resolver setting from the workspace + to ensure that they use the same resolver when used in isolation. + [#10911](https://github.com/rust-lang/cargo/pull/10911) + [#10961](https://github.com/rust-lang/cargo/pull/10961) + [#10970](https://github.com/rust-lang/cargo/pull/10970) +- `cargo add` will now update `Cargo.lock`. + [#10902](https://github.com/rust-lang/cargo/pull/10902) +- The path in the config output of `cargo vendor` now translates backslashes + to forward slashes so that the settings should work across platforms. + [#10668](https://github.com/rust-lang/cargo/pull/10668) +- The + [`workspace.default-members`](https://doc.rust-lang.org/nightly/cargo/reference/workspaces.html#package-selection) + setting now allows a value of `"."` in a non-virtual workspace to refer to + the root package. + [#10784](https://github.com/rust-lang/cargo/pull/10784) + +### Fixed +- The `os` output in `cargo --version --verbose` now supports more platforms. + [#10802](https://github.com/rust-lang/cargo/pull/10802) +- Cached git checkouts will now be rebuilt if they are corrupted. This may + happen when using `net.git-fetch-with-cli` and interrupting the clone + process. + [#10829](https://github.com/rust-lang/cargo/pull/10829) +- Fixed panic in `cargo add --offline`. + [#10817](https://github.com/rust-lang/cargo/pull/10817) + + +### Nightly only +- Fixed deserialization of unstable `check-cfg` in `config.toml`. + [#10799](https://github.com/rust-lang/cargo/pull/10799) + + +## Cargo 1.63 (2022-08-11) +[3f052d8e...rust-1.63.0](https://github.com/rust-lang/cargo/compare/3f052d8e...rust-1.63.0) + +### Added + +- 🎉 Added the `--config` CLI option to pass config options directly on the CLI. + [#10755](https://github.com/rust-lang/cargo/pull/10755) +- The `CARGO_PKG_RUST_VERSION` environment variable is now set when compiling + a crate if the manifest has the `rust-version` field set. + [#10713](https://github.com/rust-lang/cargo/pull/10713) + + +### Changed +- A warning is emitted when encountering multiple packages with the same name + in a git dependency. This will ignore packages with `publish=false`. + [#10701](https://github.com/rust-lang/cargo/pull/10701) + [#10767](https://github.com/rust-lang/cargo/pull/10767) +- Change tracking now uses the contents of a `.json` target spec file instead + of its path. This should help avoid rebuilds if the path changes. + [#10746](https://github.com/rust-lang/cargo/pull/10746) +- Git dependencies with a submodule configured with the `update=none` strategy + in `.gitmodules` is now honored, and the submodule will not be fetched. + [#10717](https://github.com/rust-lang/cargo/pull/10717) +- Crate files now use a more recent date (Jul 23, 2006 instead of Nov 29, 1973) + for deterministic behavior. + [#10720](https://github.com/rust-lang/cargo/pull/10720) +- The initial template used for `cargo new` now includes a slightly more + realistic test structure that has `use super::*;` in the test module. + [#10706](https://github.com/rust-lang/cargo/pull/10706) +- Updated the internal HTTP library libcurl with various small fixes and updates. + [#10696](https://github.com/rust-lang/cargo/pull/10696) + +### Fixed +- Fix zsh completions for `cargo add` and `cargo locate-project` + [#10810](https://github.com/rust-lang/cargo/pull/10810) + [#10811](https://github.com/rust-lang/cargo/pull/10811) +- Fixed `-p` being ignored with `cargo publish` in the root of a virtual + workspace. Some additional checks were also added to generate an error if + multiple packages were selected (previously it would pick the first one). + [#10677](https://github.com/rust-lang/cargo/pull/10677) +- The human-readable executable name is no longer displayed for `cargo test` + when using JSON output. + [#10691](https://github.com/rust-lang/cargo/pull/10691) + +### Nightly only + +- Added `-Zcheck-cfg=output` to support build-scripts declaring their + supported set of `cfg` values with `cargo:rustc-check-cfg`. + [#10539](https://github.com/rust-lang/cargo/pull/10539) +- `-Z http-registry` now uses https://index.crates.io/ when accessing crates-io. + [#10725](https://github.com/rust-lang/cargo/pull/10725) +- Fixed formatting of `.workspace` key in `cargo add` for workspace inheritance. + [#10705](https://github.com/rust-lang/cargo/pull/10705) +- Sparse HTTP registry URLs must now end with a `/`. + [#10698](https://github.com/rust-lang/cargo/pull/10698) +- Fixed issue with `cargo add` and workspace inheritance of the `default-features` key. + [#10685](https://github.com/rust-lang/cargo/pull/10685) + + + +## Cargo 1.62 (2022-06-30) +[1ef1e0a1...rust-1.62.0](https://github.com/rust-lang/cargo/compare/1ef1e0a1...rust-1.62.0) + +### Added + +- 🎉 Added the `cargo add` command for adding dependencies to `Cargo.toml` from + the command-line. + [docs](https://doc.rust-lang.org/nightly/cargo/commands/cargo-add.html) + [#10472](https://github.com/rust-lang/cargo/pull/10472) + [#10577](https://github.com/rust-lang/cargo/pull/10577) + [#10578](https://github.com/rust-lang/cargo/pull/10578) +- Package ID specs now support `name@version` syntax in addition to the + previous `name:version` to align with the behavior in `cargo add` and other + tools. `cargo install` and `cargo yank` also now support this syntax so the + version does not need to passed as a separate flag. + [#10582](https://github.com/rust-lang/cargo/pull/10582) + [#10650](https://github.com/rust-lang/cargo/pull/10650) + [#10597](https://github.com/rust-lang/cargo/pull/10597) +- Added the CLI option `-F` as an alias of `--features`. + [#10576](https://github.com/rust-lang/cargo/pull/10576) +- The `git` and `registry` directories in Cargo's home directory (usually + `~/.cargo`) are now marked as cache directories so that they are not + included in backups or content indexing (on Windows). + [#10553](https://github.com/rust-lang/cargo/pull/10553) +- Added the `--version` flag to `cargo yank` to replace the `--vers` flag to + be consistent with `cargo install`. + [#10575](https://github.com/rust-lang/cargo/pull/10575) +- Added automatic `@` argfile support, which will use "response files" if the + command-line to `rustc` exceeds the operating system's limit. + [#10546](https://github.com/rust-lang/cargo/pull/10546) +- `cargo clean` now has a progress bar (if it takes longer than half a second). + [#10236](https://github.com/rust-lang/cargo/pull/10236) + +### Changed + +- `cargo install` no longer generates an error if no binaries were found + to install (such as missing required features). + [#10508](https://github.com/rust-lang/cargo/pull/10508) +- `cargo test` now passes `--target` to `rustdoc` if the specified target is + the same as the host target. + [#10594](https://github.com/rust-lang/cargo/pull/10594) +- `cargo doc` now automatically passes `-Arustdoc::private-intra-doc-links` + when documenting a binary (which automatically includes + `--document-private-items`). The + [`private-intra-doc-links`](https://doc.rust-lang.org/rustdoc/lints.html#private_intra_doc_links) + lint is only relevant when *not* documenting private items, which doesn't + apply to binaries. + [#10142](https://github.com/rust-lang/cargo/pull/10142) +- The length of the short git hash in the `cargo --version` output is now + fixed to 9 characters. Previously the length was inconsistent between + different platforms. + [#10579](https://github.com/rust-lang/cargo/pull/10579) +- Attempting to publish a package with a `Cargo.toml.orig` file will now + result in an error. The filename would otherwise conflict with the + automatically-generated file. + [#10551](https://github.com/rust-lang/cargo/pull/10551) + +### Fixed + +- The `build.dep-info-basedir` configuration setting now properly supports the + use of `..` in the path to refer to a parent directory. + [#10281](https://github.com/rust-lang/cargo/pull/10281) +- Fixed regression in automatic detection of the default number of CPUs to use + on systems using cgroups v1. + [#10737](https://github.com/rust-lang/cargo/pull/10737) + [#10739](https://github.com/rust-lang/cargo/pull/10739) + + +### Nightly only + +- `cargo fetch` now works with `-Zbuild-std` to fetch the standard library's dependencies. + [#10129](https://github.com/rust-lang/cargo/pull/10129) +- Added support for workspace inheritance. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#workspace-inheritance) + [#10584](https://github.com/rust-lang/cargo/pull/10584) + [#10568](https://github.com/rust-lang/cargo/pull/10568) + [#10565](https://github.com/rust-lang/cargo/pull/10565) + [#10564](https://github.com/rust-lang/cargo/pull/10564) + [#10563](https://github.com/rust-lang/cargo/pull/10563) + [#10606](https://github.com/rust-lang/cargo/pull/10606) + [#10548](https://github.com/rust-lang/cargo/pull/10548) + [#10538](https://github.com/rust-lang/cargo/pull/10538) +- Added `-Zcheck-cfg` which adds various forms of validating `cfg` expressions + for unknown names and values. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg) + [#10486](https://github.com/rust-lang/cargo/pull/10486) + [#10566](https://github.com/rust-lang/cargo/pull/10566) +- The `--config` CLI option no longer allows setting a registry token. + [#10580](https://github.com/rust-lang/cargo/pull/10580) +- Fixed issues with proc-macros and `-Z rustdoc-scrape-examples`. + [#10549](https://github.com/rust-lang/cargo/pull/10549) + [#10533](https://github.com/rust-lang/cargo/pull/10533) + + +## Cargo 1.61 (2022-05-19) +[ea2a21c9...rust-1.61.0](https://github.com/rust-lang/cargo/compare/ea2a21c9...rust-1.61.0) + +### Added + +### Changed + +- `cargo test --no-run` will now display the path to the test executables. + [#10346](https://github.com/rust-lang/cargo/pull/10346) +- `cargo tree --duplicates` no longer reports dependencies that are shared + between the host and the target as duplicates. + [#10466](https://github.com/rust-lang/cargo/pull/10466) +- Updated to the 1.4.2 release of libgit2 which brings in several fixes + [#10442](https://github.com/rust-lang/cargo/pull/10442) + [#10479](https://github.com/rust-lang/cargo/pull/10479) +- `cargo vendor` no longer allows multiple values for `--sync`, you must pass + multiple `--sync` flags instead. + [#10448](https://github.com/rust-lang/cargo/pull/10448) +- Warnings are now issued for manifest keys that have mixed both underscore + and dash variants (such as specifying both `proc_macro` and `proc-macro`) + [#10316](https://github.com/rust-lang/cargo/pull/10316) +- Cargo now uses the standard library's `available_parallelism` instead of the + `num_cpus` crate for determining the default parallelism. + [#10427](https://github.com/rust-lang/cargo/pull/10427) +- `cargo search` terms are now highlighted. + [#10425](https://github.com/rust-lang/cargo/pull/10425) + +### Fixed + +- Paths passed to VCS tools like `hg` are now added after `--` to avoid + conflict with VCS flags. + [#10483](https://github.com/rust-lang/cargo/pull/10483) +- Fixed the `http.timeout` configuration value to actually work. + [#10456](https://github.com/rust-lang/cargo/pull/10456) +- Fixed issues with `cargo rustc --crate-type` not working in some situations. + [#10388](https://github.com/rust-lang/cargo/pull/10388) + +### Nightly only + +- Added `-Z check-cfg-features` to enable compile-time checking of features + [#10408](https://github.com/rust-lang/cargo/pull/10408) +- Added `-Z bindeps` to support binary artifact dependencies (RFC-3028) + [#9992](https://github.com/rust-lang/cargo/pull/9992) +- `-Z multitarget` is now supported in the `build.target` config value with an array. + [#10473](https://github.com/rust-lang/cargo/pull/10473) +- Added `--keep-going` flag which will continue compilation even if one crate + fails to compile. + [#10383](https://github.com/rust-lang/cargo/pull/10383) +- Start work on inheriting manifest values in a workspace. + [#10497](https://github.com/rust-lang/cargo/pull/10497) + [#10517](https://github.com/rust-lang/cargo/pull/10517) +- Added support for sparse HTTP registries. + [#10470](https://github.com/rust-lang/cargo/pull/10470) + [#10064](https://github.com/rust-lang/cargo/pull/10064) +- Fixed panic when artifact target is used for `[target.'cfg()'.dependencies]` + [#10433](https://github.com/rust-lang/cargo/pull/10433) +- Fixed host flags to pass to build scripts (`-Z target-applies-to-host`) + [#10395](https://github.com/rust-lang/cargo/pull/10395) +- Added `-Z check-cfg-features` support for rustdoc + [#10428](https://github.com/rust-lang/cargo/pull/10428) + + +## Cargo 1.60 (2022-04-07) +[358e79fe...rust-1.60.0](https://github.com/rust-lang/cargo/compare/358e79fe...rust-1.60.0) + +### Added + +- 🎉 Added the `dep:` prefix in the `[features]` table to refer to an optional + dependency. This allows creating feature names with the same name as a + dependency, and allows for "hiding" optional dependencies so that they do + not implicitly expose a feature name. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/features.html#optional-dependencies) + [#10269](https://github.com/rust-lang/cargo/pull/10269) +- 🎉 Added the `dep-name?/feature-name` syntax to the `[features]` table to + only enable the feature `feature-name` if the optional dependency `dep-name` + is already enabled by some other feature. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/features.html#dependency-features) + [#10269](https://github.com/rust-lang/cargo/pull/10269) +- 🎉 Added `--timings` option to generate an HTML report about build timing, + concurrency, and CPU use. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/timings.html) + [#10245](https://github.com/rust-lang/cargo/pull/10245) +- Added the `"v"` and `"features2"` fields to the registry index. + The `"v"` field provides a method for compatibility with future changes to the index. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/registries.html#index-format) + [#10269](https://github.com/rust-lang/cargo/pull/10269) +- Added bash completion for `cargo clippy` + [#10347](https://github.com/rust-lang/cargo/pull/10347) +- Added bash completion for `cargo report` + [#10295](https://github.com/rust-lang/cargo/pull/10295) +- Added support to build scripts for `rustc-link-arg-tests`, + `rustc-link-arg-examples`, and `rustc-link-arg-benches`. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#outputs-of-the-build-script) + [#10274](https://github.com/rust-lang/cargo/pull/10274) + +### Changed + +- Cargo now uses the clap 3 library for command-line argument parsing. + [#10265](https://github.com/rust-lang/cargo/pull/10265) +- The `build.pipelining` config option is now deprecated, pipelining will now + always be enabled. + [#10258](https://github.com/rust-lang/cargo/pull/10258) +- `cargo new` will now generate a `.gitignore` which only ignores `Cargo.lock` + in the root of the repo, instead of any directory. + [#10379](https://github.com/rust-lang/cargo/pull/10379) +- Improved startup time of bash completion. + [#10365](https://github.com/rust-lang/cargo/pull/10365) +- The `--features` flag is now honored when used with the `--all-features` + flag, which allows enabling features from other packages. + [#10337](https://github.com/rust-lang/cargo/pull/10337) +- Cargo now uses a different TOML parser. This should not introduce any + user-visible changes. This paves the way to support format-preserving + programmatic modification of TOML files for supporting `cargo add` and other + future enhancements. + [#10086](https://github.com/rust-lang/cargo/pull/10086) +- Setting a library to emit both a `dylib` and `cdylib` is now an error, as + this combination is not supported. + [#10243](https://github.com/rust-lang/cargo/pull/10243) +- `cargo --list` now includes the `help` command. + [#10300](https://github.com/rust-lang/cargo/pull/10300) + +### Fixed + +- Fixed running `cargo doc` on examples with dev-dependencies. + [#10341](https://github.com/rust-lang/cargo/pull/10341) +- Fixed `cargo install --path` for a path that is relative to a directory + outside of the workspace in the current directory. + [#10335](https://github.com/rust-lang/cargo/pull/10335) +- `cargo test TEST_FILTER` should no longer build binaries that are explicitly + disabled with `test = false`. + [#10305](https://github.com/rust-lang/cargo/pull/10305) +- Fixed regression with `term.verbose` without `term.quiet`, and vice versa. + [#10429](https://github.com/rust-lang/cargo/pull/10429) + [#10436](https://github.com/rust-lang/cargo/pull/10436) + +### Nightly only + +- Added `rustflags` option to a profile definition. + [#10217](https://github.com/rust-lang/cargo/pull/10217) +- Changed `--config` to only support dotted keys. + [#10176](https://github.com/rust-lang/cargo/pull/10176) +- Fixed profile `rustflags` not being gated in profile overrides. + [#10411](https://github.com/rust-lang/cargo/pull/10411) + [#10413](https://github.com/rust-lang/cargo/pull/10413) + +## Cargo 1.59 (2022-02-24) +[7f08ace4...rust-1.59.0](https://github.com/rust-lang/cargo/compare/7f08ace4...rust-1.59.0) + +### Added + +- 🎉 The `strip` option can now be specified in a profile to specify the + behavior for removing symbols and debug information from binaries. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/profiles.html#strip) + [#10088](https://github.com/rust-lang/cargo/pull/10088) + [#10376](https://github.com/rust-lang/cargo/pull/10376) +- 🎉 Added future incompatible reporting. + This provides reporting for when a future change in `rustc` may cause a + package or any of its dependencies to stop building. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/future-incompat-report.html) + [#10165](https://github.com/rust-lang/cargo/pull/10165) +- SSH authentication on Windows now supports ssh-agent. + [docs](https://doc.rust-lang.org/nightly/cargo/appendix/git-authentication.html#ssh-authentication) + [#10248](https://github.com/rust-lang/cargo/pull/10248) +- Added `term.quiet` configuration option to enable the `--quiet` behavior + from a config file. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/config.html#termquiet) + [#10152](https://github.com/rust-lang/cargo/pull/10152) +- Added `-r` CLI option as an alias for `--release`. + [#10133](https://github.com/rust-lang/cargo/pull/10133) + +### Changed + +- Scanning the package directory should now be resilient to errors, such as + filesystem loops or access issues. + [#10188](https://github.com/rust-lang/cargo/pull/10188) + [#10214](https://github.com/rust-lang/cargo/pull/10214) + [#10286](https://github.com/rust-lang/cargo/pull/10286) +- `cargo help ` will now show the target of the alias. + [#10193](https://github.com/rust-lang/cargo/pull/10193) +- Removed the deprecated `--host` CLI option. + [#10145](https://github.com/rust-lang/cargo/pull/10145) + [#10327](https://github.com/rust-lang/cargo/pull/10327) +- Cargo should now report its version to always be in sync with `rustc`. + [#10178](https://github.com/rust-lang/cargo/pull/10178) +- Added EOPNOTSUPP to ignored file locking errors, which is relevant to BSD + operating systems. + [#10157](https://github.com/rust-lang/cargo/pull/10157) + +### Fixed + +- macOS: Fixed an issue where running an executable would sporadically be + killed by the kernel (likely starting in macOS 12). + [#10196](https://github.com/rust-lang/cargo/pull/10196) +- Fixed so that the `doc=false` setting is honored in the `[lib]` definition + of a dependency. + [#10201](https://github.com/rust-lang/cargo/pull/10201) + [#10324](https://github.com/rust-lang/cargo/pull/10324) +- The `"executable"` field in the JSON option was incorrectly including the + path to `index.html` when documenting a binary. It is now null. + [#10171](https://github.com/rust-lang/cargo/pull/10171) +- Documenting a binary now waits for the package library to finish documenting + before starting. This fixes some race conditions if the binary has intra-doc + links to the library. + [#10172](https://github.com/rust-lang/cargo/pull/10172) +- Fixed panic when displaying help text to a closed pipe. + [#10164](https://github.com/rust-lang/cargo/pull/10164) + +### Nightly only +- Added the `--crate-type` flag to `cargo rustc`. + [#10093](https://github.com/rust-lang/cargo/pull/10093) + + +## Cargo 1.58 (2022-01-13) +[b2e52d7c...rust-1.58.0](https://github.com/rust-lang/cargo/compare/b2e52d7c...rust-1.58.0) + +### Added + +- Added `rust_version` field to package data in `cargo metadata`. + [#9967](https://github.com/rust-lang/cargo/pull/9967) +- Added `--message-format` option to `cargo install`. + [#10107](https://github.com/rust-lang/cargo/pull/10107) + +### Changed + +- A warning is now shown when an alias shadows an external command. + [#10082](https://github.com/rust-lang/cargo/pull/10082) +- Updated curl to 7.80.0. + [#10040](https://github.com/rust-lang/cargo/pull/10040) + [#10106](https://github.com/rust-lang/cargo/pull/10106) + +### Fixed + +- Doctests now include rustc-link-args from build scripts. + [#9916](https://github.com/rust-lang/cargo/pull/9916) +- Fixed `cargo tree` entering an infinite loop with cyclical dev-dependencies. + Fixed an edge case where the resolver would fail to handle a cyclical dev-dependency with a feature. + [#10103](https://github.com/rust-lang/cargo/pull/10103) +- Fixed `cargo clean -p` when the directory path contains glob characters. + [#10072](https://github.com/rust-lang/cargo/pull/10072) +- Fixed debug builds of `cargo` which could panic when downloading a crate + when the server has a redirect with a non-empty body. + [#10048](https://github.com/rust-lang/cargo/pull/10048) + +### Nightly only + +- Make future-incompat-report output more user-friendly. + [#9953](https://github.com/rust-lang/cargo/pull/9953) +- Added support to scrape code examples from the `examples` directory to be included in the documentation. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#scrape-examples) + [#9525](https://github.com/rust-lang/cargo/pull/9525) + [#10037](https://github.com/rust-lang/cargo/pull/10037) + [#10017](https://github.com/rust-lang/cargo/pull/10017) +- Fixed `cargo report future-incompatibilities` to check stdout if it supports color. + [#10024](https://github.com/rust-lang/cargo/pull/10024) + +## Cargo 1.57 (2021-12-02) +[18751dd3...rust-1.57.0](https://github.com/rust-lang/cargo/compare/18751dd3...rust-1.57.0) + +### Added + +- 🎉 Added custom named profiles. This also changes the `test` and `bench` + profiles to inherit their settings from `dev` and `release`, and Cargo will + now only use a single profile during a given command instead of using + different profiles for dependencies and cargo-targets. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/profiles.html#custom-profiles) + [#9943](https://github.com/rust-lang/cargo/pull/9943) +- The `rev` option for a git dependency now supports git references that start + with `refs/`. An example where this can be used is to depend on a pull + request from a service like GitHub before it is merged. + [#9859](https://github.com/rust-lang/cargo/pull/9859) +- Added `path_in_vcs` field to the `.cargo_vcs_info.json` file. + [docs](https://doc.rust-lang.org/nightly/cargo/commands/cargo-package.html#cargo_vcs_infojson-format) + [#9866](https://github.com/rust-lang/cargo/pull/9866) + +### Changed + +- ❗ `RUSTFLAGS` is no longer set for build scripts. This change was made in + 1.55, but the release notes did not highlight this change. Build scripts + should use `CARGO_ENCODED_RUSTFLAGS` instead. See the + [documentation](https://doc.rust-lang.org/nightly/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-build-scripts) + for more details. +- The `cargo version` command now includes some extra information. + [#9968](https://github.com/rust-lang/cargo/pull/9968) +- Updated libgit2 to 1.3 which brings in a number of fixes and changes to git + handling. + [#9963](https://github.com/rust-lang/cargo/pull/9963) + [#9988](https://github.com/rust-lang/cargo/pull/9988) +- Shell completions now include shorthand b/r/c/d subcommands. + [#9951](https://github.com/rust-lang/cargo/pull/9951) +- `cargo update --precise` now allows specifying a version without semver + metadata (stuff after `+` in the version number). + [#9945](https://github.com/rust-lang/cargo/pull/9945) +- zsh completions now complete `--example` names. + [#9939](https://github.com/rust-lang/cargo/pull/9939) +- The progress bar now differentiates when building unittests. + [#9934](https://github.com/rust-lang/cargo/pull/9934) +- Some backwards-compatibility support for invalid TOML syntax has been removed. + [#9932](https://github.com/rust-lang/cargo/pull/9932) +- Reverted the change from 1.55 that triggered an error for dependency + specifications that did not include any fields. + [#9911](https://github.com/rust-lang/cargo/pull/9911) + +### Fixed + +- Removed a log message (from `CARGO_LOG`) that may leak tokens. + [#9873](https://github.com/rust-lang/cargo/pull/9873) +- `cargo fix` will now avoid writing fixes to the global registry cache. + [#9938](https://github.com/rust-lang/cargo/pull/9938) +- Fixed `-Z help` CLI option when used with a shorthand alias (b/c/r/d). + [#9933](https://github.com/rust-lang/cargo/pull/9933) + + +### Nightly only + + ## Cargo 1.56 (2021-10-21) -[cebef295...HEAD](https://github.com/rust-lang/cargo/compare/cebef295...HEAD) +[cebef295...rust-1.56.0](https://github.com/rust-lang/cargo/compare/cebef295...rust-1.56.0) ### Added -- Added support for the [`rust-version`](https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-rust-version-field) - field in a crate's metadata and the `--ignore-rust-version` command line option. -- Build scripts can now pass additional linker arguments for binaries or all +- 🎉 Cargo now supports the 2021 edition. + More information may be found in the [edition + guide](https://doc.rust-lang.org/nightly/edition-guide/rust-2021/index.html). + [#9800](https://github.com/rust-lang/cargo/pull/9800) +- 🎉 Added the + [`rust-version`](https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-rust-version-field) + field to `Cargo.toml` to specify the minimum supported Rust version, and the + `--ignore-rust-version` command line option to override it. + [#9732](https://github.com/rust-lang/cargo/pull/9732) +- Added the `[env]` table to config files to specify environment variables to + set. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/config.html#env) + [#9411](https://github.com/rust-lang/cargo/pull/9411) +- `[patch]` tables may now be specified in config files. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/config.html#patch) + [#9839](https://github.com/rust-lang/cargo/pull/9839) +- `cargo doc` now supports the `--example` and `--examples` flags. + [#9808](https://github.com/rust-lang/cargo/pull/9808) +- 🎉 Build scripts can now pass additional linker arguments for binaries or all linkable targets. [docs](https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#outputs-of-the-build-script) [#9557](https://github.com/rust-lang/cargo/pull/9557) - Added support for the `-p` flag for `cargo publish` to publish a specific package in a workspace. `cargo package` also now supports `-p` and `--workspace`. [#9559](https://github.com/rust-lang/cargo/pull/9559) +- Added documentation about third-party registries. + [#9830](https://github.com/rust-lang/cargo/pull/9830) +- Added the `{sha256-checksum}` placeholder for URLs in a registry `config.json`. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/registries.html#index-format) + [#9801](https://github.com/rust-lang/cargo/pull/9801) +- Added a warning when a dependency does not have a library. + [#9771](https://github.com/rust-lang/cargo/pull/9771) ### Changed @@ -27,11 +598,58 @@ filename. This allows multiple copies to be cached at once, and matches the behavior on other platforms (except `msvc`). [#9653](https://github.com/rust-lang/cargo/pull/9653) +- `cargo new` now generates an example that doesn't generate a warning with + clippy. + [#9796](https://github.com/rust-lang/cargo/pull/9796) +- `cargo fix --edition` now only applies edition-specific lints. + [#9846](https://github.com/rust-lang/cargo/pull/9846) +- Improve resolver message to include dependency requirements. + [#9827](https://github.com/rust-lang/cargo/pull/9827) +- `cargo fix` now has more debug logging available with the `CARGO_LOG` + environment variable. + [#9831](https://github.com/rust-lang/cargo/pull/9831) +- Changed `cargo fix --edition` to emit a warning when on the latest stable + edition when running on stable instead of generating an error. + [#9792](https://github.com/rust-lang/cargo/pull/9792) +- `cargo install` will now determine all of the packages to install before + starting the installation, which should help with reporting errors without + partially installing. + [#9793](https://github.com/rust-lang/cargo/pull/9793) +- The resolver report for `cargo fix --edition` now includes differences for + dev-dependencies. + [#9803](https://github.com/rust-lang/cargo/pull/9803) +- `cargo fix` will now show better diagnostics for abnormal errors from `rustc`. + [#9799](https://github.com/rust-lang/cargo/pull/9799) +- Entries in `cargo --list` are now deduplicated. + [#9773](https://github.com/rust-lang/cargo/pull/9773) +- Aliases are now included in `cargo --list`. + [#9764](https://github.com/rust-lang/cargo/pull/9764) ### Fixed +- Fixed panic with build-std of a proc-macro. + [#9834](https://github.com/rust-lang/cargo/pull/9834) +- Fixed running `cargo` recursively from proc-macros while running `cargo fix`. + [#9818](https://github.com/rust-lang/cargo/pull/9818) +- Return an error instead of a stack overflow for command alias loops. + [#9791](https://github.com/rust-lang/cargo/pull/9791) +- Updated to curl 7.79.1, which will hopefully fix intermittent http2 errors. + [#9937](https://github.com/rust-lang/cargo/pull/9937) + ### Nightly only +- Added `[future-incompat-report]` config section. + [#9774](https://github.com/rust-lang/cargo/pull/9774) +- Fixed value-after-table error with custom named profiles. + [#9789](https://github.com/rust-lang/cargo/pull/9789) +- Added the `different-binary-name` feature to support specifying a + non-rust-identifier for a binary name. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#different-binary-name) + [#9627](https://github.com/rust-lang/cargo/pull/9627) +- Added a profile option to select the codegen backend. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#codegen-backend) + [#9118](https://github.com/rust-lang/cargo/pull/9118) + ## Cargo 1.55 (2021-09-09) [aa8b0929...rust-1.55.0](https://github.com/rust-lang/cargo/compare/aa8b0929...rust-1.55.0) @@ -41,8 +659,10 @@ - The package definition in `cargo metadata` now includes the `"default_run"` field from the manifest. [#9550](https://github.com/rust-lang/cargo/pull/9550) -- Build scripts now have access to the following environment variables: +- ❗ Build scripts now have access to the following environment variables: `RUSTC_WRAPPER`, `RUSTC_WORKSPACE_WRAPPER`, `CARGO_ENCODED_RUSTFLAGS`. + `RUSTFLAGS` is no longer set for build scripts; they should use + `CARGO_ENCODED_RUSTFLAGS` instead. [docs](https://doc.rust-lang.org/nightly/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-build-scripts) [#9601](https://github.com/rust-lang/cargo/pull/9601) - Added `cargo d` as an alias for `cargo doc`. @@ -100,6 +720,9 @@ includes several changes, such as new behavior when run on WSL, and using the system `xdg-open` on Linux. [#9583](https://github.com/rust-lang/cargo/pull/9583) +- Updated to libcurl 7.78. + [#9809](https://github.com/rust-lang/cargo/pull/9809) + [#9810](https://github.com/rust-lang/cargo/pull/9810) ### Fixed diff -Nru cargo-mozilla-0.57.0/CONTRIBUTING.md cargo-mozilla-0.66.0+ds1/CONTRIBUTING.md --- cargo-mozilla-0.57.0/CONTRIBUTING.md 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/CONTRIBUTING.md 2022-10-20 06:00:42.000000000 +0000 @@ -3,3 +3,19 @@ Contributing documentation has moved to the **[Cargo Contributor Guide]**. [Cargo Contributor Guide]: https://rust-lang.github.io/cargo/contrib/ + +## Before hacking on Cargo + +We encourage people to discuss their design before hacking on code. Typically, +you [file an issue] or start a thread on the [internals forum] before submitting +a pull request. Please read [the process] of how features and bugs are managed +in Cargo. + +**NOTICE: Due to limited review capacity, the Cargo team is not accepting new +features or major changes at this time. Please consult with the team before +opening a new PR. Only issues that have been explicitly marked as accepted +will be reviewed.** + +[internals forum]: https://internals.rust-lang.org/c/tools-and-infrastructure/cargo +[file an issue]: https://github.com/rust-lang/cargo/issues +[the process]: https://doc.crates.io/contrib/process/index.html diff -Nru cargo-mozilla-0.57.0/Cargo.toml cargo-mozilla-0.66.0+ds1/Cargo.toml --- cargo-mozilla-0.57.0/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,10 +1,7 @@ [package] name = "cargo" -version = "0.57.0" -edition = "2018" -authors = ["Yehuda Katz ", - "Carl Lerche ", - "Alex Crichton "] +version = "0.66.0" +edition = "2021" license = "MIT OR Apache-2.0" homepage = "https://crates.io" repository = "https://github.com/rust-lang/cargo" @@ -22,32 +19,33 @@ atty = "0.2" bytesize = "1.0" cargo-platform = { path = "crates/cargo-platform", version = "0.1.2" } -cargo-util = { path = "crates/cargo-util", version = "0.1.1" } -crates-io = { path = "crates/crates-io", version = "0.33.0" } -crossbeam-utils = "0.8" -curl = { version = "0.4.38", features = ["http2"] } -curl-sys = "0.4.48" +cargo-util = { path = "crates/cargo-util", version = "0.2.1" } +crates-io = { path = "crates/crates-io", version = "0.34.0" } +curl = { version = "0.4.43", features = ["http2"] } +curl-sys = "0.4.55" env_logger = "0.9.0" pretty_env_logger = { version = "0.4", optional = true } anyhow = "1.0" filetime = "0.2.9" flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } -git2 = "0.13.16" -git2-curl = "0.14.1" +git2 = "0.15.0" +git2-curl = "0.16.0" glob = "0.3.0" hex = "0.4" home = "0.5" humantime = "2.0.0" +indexmap = "1" ignore = "0.4.7" lazy_static = "1.2.0" jobserver = "0.1.24" lazycell = "1.2.0" libc = "0.2" log = "0.4.6" -libgit2-sys = "0.12.18" +libgit2-sys = "0.14.0" memchr = "2.1.3" -num_cpus = "1.0" opener = "0.5" +os_info = "3.5.0" +pathdiff = "0.2" percent-encoding = "2.0" rustfix = "0.6.0" semver = { version = "1.0.3", features = ["serde"] } @@ -56,14 +54,14 @@ serde_json = { version = "1.0.30", features = ["raw_value"] } shell-escape = "0.1.4" strip-ansi-escapes = "0.1.0" -tar = { version = "0.4.35", default-features = false } +tar = { version = "0.4.38", default-features = false } tempfile = "3.0" termcolor = "1.1" -toml = "0.5.7" +toml_edit = { version = "0.14.3", features = ["serde", "easy", "perf"] } unicode-xid = "0.2.0" url = "2.2.2" walkdir = "2.2" -clap = "2.31.2" +clap = "3.2.18" unicode-width = "0.1.5" openssl = { version = '0.10.11', optional = true } im-rc = "15.0.0" @@ -101,10 +99,11 @@ [dev-dependencies] cargo-test-macro = { path = "crates/cargo-test-macro" } cargo-test-support = { path = "crates/cargo-test-support" } +snapbox = { version = "0.3.0", features = ["diff", "path"] } [build-dependencies] flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } -tar = { version = "0.4.26", default-features = false } +tar = { version = "0.4.38", default-features = false } [[bin]] name = "cargo" diff -Nru cargo-mozilla-0.57.0/README.md cargo-mozilla-0.66.0+ds1/README.md --- cargo-mozilla-0.57.0/README.md 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/README.md 2022-10-20 06:00:42.000000000 +0000 @@ -2,11 +2,16 @@ Cargo downloads your Rust project’s dependencies and compiles your project. -Learn more at https://doc.rust-lang.org/cargo/ +**To start using Cargo**, learn more at [The Cargo Book]. + +**To start developing Cargo itself**, read the [Cargo Contributor Guide]. + +[The Cargo Book]: https://doc.rust-lang.org/cargo/ +[Cargo Contributor Guide]: https://rust-lang.github.io/cargo/contrib/ ## Code Status -[![Build Status](https://dev.azure.com/rust-lang/cargo/_apis/build/status/rust-lang.cargo?branchName=auto-cargo)](https://dev.azure.com/rust-lang/cargo/_build?definitionId=18) +[![CI](https://github.com/rust-lang/cargo/actions/workflows/main.yml/badge.svg?branch=auto-cargo)](https://github.com/rust-lang/cargo/actions/workflows/main.yml) Code documentation: https://docs.rs/cargo/ @@ -17,13 +22,44 @@ ## Compiling from Source +### Requirements + Cargo requires the following tools and packages to build: -* `git` -* `curl` (on Unix) -* `pkg-config` (on Unix, used to figure out the `libssl` headers/libraries) -* OpenSSL headers (only for Unix, this is the `libssl-dev` package on ubuntu) * `cargo` and `rustc` +* A C compiler [for your platform](https://github.com/rust-lang/cc-rs#compile-time-requirements) +* `git` (to clone this repository) + +**Other requirements:** + +The following are optional based on your platform and needs. + +* `pkg-config` — This is used to help locate system packages, such as `libssl` headers/libraries. This may not be required in all cases, such as using vendored OpenSSL, or on Windows. +* OpenSSL — Only needed on Unix-like systems and only if the `vendored-openssl` Cargo feature is not used. + + This requires the development headers, which can be obtained from the `libssl-dev` package on Ubuntu or `openssl-devel` with apk or yum or the `openssl` package from Homebrew on macOS. + + If using the `vendored-openssl` Cargo feature, then a static copy of OpenSSL will be built from source instead of using the system OpenSSL. + This may require additional tools such as `perl` and `make`. + + On macOS, common installation directories from Homebrew, MacPorts, or pkgsrc will be checked. Otherwise it will fall back to `pkg-config`. + + On Windows, the system-provided Schannel will be used instead. + + LibreSSL is also supported. + +**Optional system libraries:** + +The build will automatically use vendored versions of the following libraries. However, if they are provided by the system and can be found with `pkg-config`, then the system libraries will be used instead: + +* [`libcurl`](https://curl.se/libcurl/) — Used for network transfers. +* [`libgit2`](https://libgit2.org/) — Used for fetching git dependencies. +* [`libssh2`](https://www.libssh2.org/) — Used for SSH access to git repositories. +* [`libz`](https://zlib.net/) (aka zlib) — Used for data compression. + +It is recommended to use the vendored versions as they are the versions that are tested to work with Cargo. + +### Compiling First, you'll want to check out this repository @@ -69,8 +105,6 @@ See the **[Cargo Contributor Guide]** for a complete introduction to contributing to Cargo. -[Cargo Contributor Guide]: https://rust-lang.github.io/cargo/contrib/ - ## License Cargo is primarily distributed under the terms of both the MIT license diff -Nru cargo-mozilla-0.57.0/benches/README.md cargo-mozilla-0.66.0+ds1/benches/README.md --- cargo-mozilla-0.57.0/benches/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/benches/README.md 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,124 @@ +# Cargo Benchmarking + +This directory contains some benchmarks for cargo itself. This uses +[Criterion] for running benchmarks. It is recommended to read the Criterion +book to get familiar with how to use it. A basic usage would be: + +```sh +cd benches/benchsuite +cargo bench +``` + +The tests involve downloading the index and benchmarking against some +real-world and artificial workspaces located in the [`workspaces`](workspaces) +directory. + +**Beware** that the initial download can take a fairly long amount of time (10 +minutes minimum on an extremely fast network) and require significant disk +space (around 4.5GB). The benchsuite will cache the index and downloaded +crates in the `target/tmp/bench` directory, so subsequent runs should be +faster. You can (and probably should) specify individual benchmarks to run to +narrow it down to a more reasonable set, for example: + +```sh +cargo bench -- resolve_ws/rust +``` + +This will only download what's necessary for the rust-lang/rust workspace +(which is about 330MB) and run the benchmarks against it (which should take +about a minute). To get a list of all the benchmarks, run: + +```sh +cargo bench -- --list +``` + +## Viewing reports + +The benchmarks display some basic information on the command-line while they +run. A more complete HTML report can be found at +`target/criterion/report/index.html` which contains links to all the +benchmarks and summaries. Check out the Criterion book for more information on +the extensive reporting capabilities. + +## Comparing implementations + +Knowing the raw numbers can be useful, but what you're probably most +interested in is checking if your changes help or hurt performance. To do +that, you need to run the benchmarks multiple times. + +First, run the benchmarks from the master branch of cargo without any changes. +To make it easier to compare, Criterion supports naming the baseline so that +you can iterate on your code and compare against it multiple times. + +```sh +cargo bench -- --save-baseline master +``` + +Now you can switch to your branch with your changes. Re-run the benchmarks +compared against the baseline: + +```sh +cargo bench -- --baseline master +``` + +You can repeat the last command as you make changes to re-compare against the +master baseline. + +Without the baseline arguments, it will compare against the last run, which +can be helpful for comparing incremental changes. + +## Capturing workspaces + +The [`workspaces`](workspaces) directory contains several workspaces that +provide a variety of different workspaces intended to provide good exercises +for benchmarks. Some of these are shadow copies of real-world workspaces. This +is done with the tool in the [`capture`](capture) directory. The tool will +copy `Cargo.lock` and all of the `Cargo.toml` files of the workspace members. +It also adds an empty `lib.rs` so Cargo won't error, and sanitizes the +`Cargo.toml` to some degree, removing unwanted elements. Finally, it +compresses everything into a `tgz`. + +To run it, do: + +```sh +cd benches/capture +cargo run -- /path/to/workspace/foo +``` + +The resolver benchmarks also support the `CARGO_BENCH_WORKSPACES` environment +variable, which you can point to a Cargo workspace if you want to try +different workspaces. For example: + +```sh +CARGO_BENCH_WORKSPACES=/path/to/some/workspace cargo bench +``` + +## TODO + +This is just a start for establishing a benchmarking suite for Cargo. There's +a lot that can be added. Some ideas: + +* Fix the benchmarks so that the resolver setup doesn't run every iteration. +* Benchmark [this section of + code](https://github.com/rust-lang/cargo/blob/a821e2cb24d7b6013433f069ab3bad53d160e100/src/cargo/ops/cargo_compile.rs#L470-L549) + which builds the unit graph. The performance there isn't great, and it would + be good to keep an eye on it. Unfortunately that would mean doing a bit of + work to make `generate_targets` publicly visible, and there is a bunch of + setup code that may need to be duplicated. +* Benchmark the fingerprinting code. +* Benchmark running the `cargo` executable. Running something like `cargo + build` or `cargo check` with everything "Fresh" would be a good end-to-end + exercise to measure the overall overhead of Cargo. +* Benchmark pathological resolver scenarios. There might be some cases where + the resolver can spend a significant amount of time. It would be good to + identify if these exist, and create benchmarks for them. This may require + creating an artificial index, similar to the `resolver-tests`. This should + also consider scenarios where the resolver ultimately fails. +* Benchmark without `Cargo.lock`. I'm not sure if this is particularly + valuable, since we are mostly concerned with incremental builds which will + always have a lock file. +* Benchmark just + [`resolve::resolve`](https://github.com/rust-lang/cargo/blob/a821e2cb24d7b6013433f069ab3bad53d160e100/src/cargo/core/resolver/mod.rs#L122) + without anything else. This can help focus on just the resolver. + +[Criterion]: https://bheisler.github.io/criterion.rs/book/ diff -Nru cargo-mozilla-0.57.0/benches/benchsuite/Cargo.toml cargo-mozilla-0.66.0+ds1/benches/benchsuite/Cargo.toml --- cargo-mozilla-0.57.0/benches/benchsuite/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/benches/benchsuite/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,28 @@ +[package] +name = "benchsuite" +version = "0.1.0" +edition = "2021" +license = "MIT OR Apache-2.0" +homepage = "https://github.com/rust-lang/cargo" +repository = "https://github.com/rust-lang/cargo" +documentation = "https://docs.rs/cargo-platform" +description = "Benchmarking suite for Cargo." + +[dependencies] +cargo = { path = "../.." } +# Consider removing html_reports in 0.4 and switching to `cargo criterion`. +criterion = { version = "0.3.5", features = ["html_reports"] } +flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } +tar = { version = "0.4.38", default-features = false } +url = "2.2.2" + +[lib] +bench = false + +[[bench]] +name = "resolve" +harness = false + +[[bench]] +name = "workspace_initialization" +harness = false diff -Nru cargo-mozilla-0.57.0/benches/benchsuite/benches/resolve.rs cargo-mozilla-0.66.0+ds1/benches/benchsuite/benches/resolve.rs --- cargo-mozilla-0.57.0/benches/benchsuite/benches/resolve.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/benches/benchsuite/benches/resolve.rs 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,146 @@ +use benchsuite::fixtures; +use cargo::core::compiler::{CompileKind, RustcTargetData}; +use cargo::core::resolver::features::{FeatureOpts, FeatureResolver}; +use cargo::core::resolver::{CliFeatures, ForceAllTargets, HasDevUnits, ResolveBehavior}; +use cargo::core::{PackageIdSpec, Workspace}; +use cargo::ops::WorkspaceResolve; +use cargo::Config; +use criterion::{criterion_group, criterion_main, Criterion}; +use std::path::Path; + +struct ResolveInfo<'cfg> { + ws: Workspace<'cfg>, + requested_kinds: [CompileKind; 1], + target_data: RustcTargetData<'cfg>, + cli_features: CliFeatures, + specs: Vec, + has_dev_units: HasDevUnits, + force_all_targets: ForceAllTargets, + ws_resolve: WorkspaceResolve<'cfg>, +} + +/// Helper for resolving a workspace. This will run the resolver once to +/// download everything, and returns all the data structures that are used +/// during resolution. +fn do_resolve<'cfg>(config: &'cfg Config, ws_root: &Path) -> ResolveInfo<'cfg> { + let requested_kinds = [CompileKind::Host]; + let ws = Workspace::new(&ws_root.join("Cargo.toml"), config).unwrap(); + let target_data = RustcTargetData::new(&ws, &requested_kinds).unwrap(); + let cli_features = CliFeatures::from_command_line(&[], false, true).unwrap(); + let pkgs = cargo::ops::Packages::Default; + let specs = pkgs.to_package_id_specs(&ws).unwrap(); + let has_dev_units = HasDevUnits::Yes; + let force_all_targets = ForceAllTargets::No; + // Do an initial run to download anything necessary so that it does + // not confuse criterion's warmup. + let ws_resolve = cargo::ops::resolve_ws_with_opts( + &ws, + &target_data, + &requested_kinds, + &cli_features, + &specs, + has_dev_units, + force_all_targets, + ) + .unwrap(); + ResolveInfo { + ws, + requested_kinds, + target_data, + cli_features, + specs, + has_dev_units, + force_all_targets, + ws_resolve, + } +} + +/// Benchmark of the full `resolve_ws_with_opts` which runs the resolver +/// twice, the feature resolver, and more. This is a major component of a +/// regular cargo build. +fn resolve_ws(c: &mut Criterion) { + let fixtures = fixtures!(); + let mut group = c.benchmark_group("resolve_ws"); + for (ws_name, ws_root) in fixtures.workspaces() { + let config = fixtures.make_config(&ws_root); + // The resolver info is initialized only once in a lazy fashion. This + // allows criterion to skip this workspace if the user passes a filter + // on the command-line (like `cargo bench -- resolve_ws/tikv`). + // + // Due to the way criterion works, it tends to only run the inner + // iterator once, and we don't want to call `do_resolve` in every + // "step", since that would just be some useless work. + let mut lazy_info = None; + group.bench_function(&ws_name, |b| { + let ResolveInfo { + ws, + requested_kinds, + target_data, + cli_features, + specs, + has_dev_units, + force_all_targets, + .. + } = lazy_info.get_or_insert_with(|| do_resolve(&config, &ws_root)); + b.iter(|| { + cargo::ops::resolve_ws_with_opts( + ws, + target_data, + requested_kinds, + cli_features, + specs, + *has_dev_units, + *force_all_targets, + ) + .unwrap(); + }) + }); + } + group.finish(); +} + +/// Benchmark of the feature resolver. +fn feature_resolver(c: &mut Criterion) { + let fixtures = fixtures!(); + let mut group = c.benchmark_group("feature_resolver"); + for (ws_name, ws_root) in fixtures.workspaces() { + let config = fixtures.make_config(&ws_root); + let mut lazy_info = None; + group.bench_function(&ws_name, |b| { + let ResolveInfo { + ws, + requested_kinds, + target_data, + cli_features, + specs, + has_dev_units, + ws_resolve, + .. + } = lazy_info.get_or_insert_with(|| do_resolve(&config, &ws_root)); + b.iter(|| { + let feature_opts = FeatureOpts::new_behavior(ResolveBehavior::V2, *has_dev_units); + FeatureResolver::resolve( + ws, + target_data, + &ws_resolve.targeted_resolve, + &ws_resolve.pkg_set, + cli_features, + specs, + requested_kinds, + feature_opts, + ) + .unwrap(); + }) + }); + } + group.finish(); +} + +// Criterion complains about the measurement time being too small, but the +// measurement time doesn't seem important to me, what is more important is +// the number of iterations which defaults to 100, which seems like a +// reasonable default. Otherwise, the measurement time would need to be +// changed per workspace. We wouldn't want to spend 60s on every workspace, +// that would take too long and isn't necessary for the smaller workspaces. +criterion_group!(benches, resolve_ws, feature_resolver); +criterion_main!(benches); diff -Nru cargo-mozilla-0.57.0/benches/benchsuite/benches/workspace_initialization.rs cargo-mozilla-0.66.0+ds1/benches/benchsuite/benches/workspace_initialization.rs --- cargo-mozilla-0.57.0/benches/benchsuite/benches/workspace_initialization.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/benches/benchsuite/benches/workspace_initialization.rs 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,27 @@ +use benchsuite::fixtures; +use cargo::core::Workspace; +use criterion::{criterion_group, criterion_main, Criterion}; + +fn workspace_initialization(c: &mut Criterion) { + let fixtures = fixtures!(); + let mut group = c.benchmark_group("workspace_initialization"); + for (ws_name, ws_root) in fixtures.workspaces() { + let config = fixtures.make_config(&ws_root); + // The resolver info is initialized only once in a lazy fashion. This + // allows criterion to skip this workspace if the user passes a filter + // on the command-line (like `cargo bench -- workspace_initialization/tikv`). + group.bench_function(ws_name, |b| { + b.iter(|| Workspace::new(&ws_root.join("Cargo.toml"), &config).unwrap()) + }); + } + group.finish(); +} + +// Criterion complains about the measurement time being too small, but the +// measurement time doesn't seem important to me, what is more important is +// the number of iterations which defaults to 100, which seems like a +// reasonable default. Otherwise, the measurement time would need to be +// changed per workspace. We wouldn't want to spend 60s on every workspace, +// that would take too long and isn't necessary for the smaller workspaces. +criterion_group!(benches, workspace_initialization); +criterion_main!(benches); diff -Nru cargo-mozilla-0.57.0/benches/benchsuite/src/lib.rs cargo-mozilla-0.66.0+ds1/benches/benchsuite/src/lib.rs --- cargo-mozilla-0.57.0/benches/benchsuite/src/lib.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/benches/benchsuite/src/lib.rs 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,197 @@ +use cargo::Config; +use std::fs; +use std::path::{Path, PathBuf}; +use std::process::Command; +use url::Url; + +#[macro_export] +macro_rules! fixtures { + () => { + $crate::Fixtures::new(env!("CARGO_TARGET_TMPDIR")) + }; +} + +// This is an arbitrary commit that existed when I started. This helps +// ensure consistent results. It can be updated if needed, but that can +// make it harder to compare results with older versions of cargo. +const CRATES_IO_COMMIT: &str = "85f7bfd61ea4fee08ec68c468762e886b2aebec6"; + +pub struct Fixtures { + cargo_target_tmpdir: PathBuf, +} + +impl Fixtures { + pub fn new(cargo_target_tmpdir: &str) -> Self { + let bench = Self { + cargo_target_tmpdir: PathBuf::from(cargo_target_tmpdir), + }; + bench.create_home(); + bench.create_target_dir(); + bench.clone_index(); + bench.unpack_workspaces(); + bench + } + + fn root(&self) -> PathBuf { + self.cargo_target_tmpdir.join("bench") + } + + fn target_dir(&self) -> PathBuf { + let mut p = self.root(); + p.push("target"); + p + } + + fn cargo_home(&self) -> PathBuf { + let mut p = self.root(); + p.push("chome"); + p + } + + fn index(&self) -> PathBuf { + let mut p = self.root(); + p.push("index"); + p + } + + fn workspaces_path(&self) -> PathBuf { + let mut p = self.root(); + p.push("workspaces"); + p + } + + fn registry_url(&self) -> Url { + Url::from_file_path(self.index()).unwrap() + } + + fn create_home(&self) { + let home = self.cargo_home(); + if !home.exists() { + fs::create_dir_all(&home).unwrap(); + } + fs::write( + home.join("config.toml"), + format!( + r#" + [source.crates-io] + replace-with = 'local-snapshot' + + [source.local-snapshot] + registry = '{}' + "#, + self.registry_url() + ), + ) + .unwrap(); + } + + fn create_target_dir(&self) { + // This is necessary to ensure the .rustc_info.json file is written. + // Otherwise it won't be written, and it is very expensive to create. + if !self.target_dir().exists() { + fs::create_dir_all(self.target_dir()).unwrap(); + } + } + + /// This clones crates.io at a specific point in time into tmp/index. + fn clone_index(&self) { + let index = self.index(); + let maybe_git = |command: &str| { + let status = Command::new("git") + .current_dir(&index) + .args(command.split_whitespace().collect::>()) + .status() + .expect("git should be installed"); + status.success() + }; + let git = |command: &str| { + if !maybe_git(command) { + panic!("failed to run git command: {}", command); + } + }; + if index.exists() { + if maybe_git(&format!( + "rev-parse -q --verify {}^{{commit}}", + CRATES_IO_COMMIT + )) { + // Already fetched. + return; + } + } else { + fs::create_dir_all(&index).unwrap(); + git("init --bare"); + git("remote add origin https://github.com/rust-lang/crates.io-index"); + } + git(&format!("fetch origin {}", CRATES_IO_COMMIT)); + git("branch -f master FETCH_HEAD"); + } + + /// This unpacks the compressed workspace skeletons into tmp/workspaces. + fn unpack_workspaces(&self) { + let ws_dir = Path::new(env!("CARGO_MANIFEST_DIR")) + .parent() + .unwrap() + .join("workspaces"); + let archives = fs::read_dir(ws_dir) + .unwrap() + .map(|e| e.unwrap().path()) + .filter(|p| p.extension() == Some(std::ffi::OsStr::new("tgz"))); + for archive in archives { + let name = archive.file_stem().unwrap(); + let f = fs::File::open(&archive).unwrap(); + let f = flate2::read::GzDecoder::new(f); + let dest = self.workspaces_path().join(&name); + if dest.exists() { + fs::remove_dir_all(&dest).unwrap(); + } + let mut archive = tar::Archive::new(f); + archive.unpack(self.workspaces_path()).unwrap(); + } + } + + /// Vec of `(ws_name, ws_root)`. + pub fn workspaces(&self) -> Vec<(String, PathBuf)> { + // CARGO_BENCH_WORKSPACES can be used to override, otherwise it just uses + // the workspaces in the workspaces directory. + let mut ps: Vec<_> = match std::env::var_os("CARGO_BENCH_WORKSPACES") { + Some(s) => std::env::split_paths(&s).collect(), + None => fs::read_dir(self.workspaces_path()) + .unwrap() + .map(|e| e.unwrap().path()) + // These currently fail in most cases on Windows due to long + // filenames in the git checkouts. + .filter(|p| { + !(cfg!(windows) + && matches!(p.file_name().unwrap().to_str().unwrap(), "servo" | "tikv")) + }) + .collect(), + }; + // Sort so it is consistent. + ps.sort(); + ps.into_iter() + .map(|p| (p.file_name().unwrap().to_str().unwrap().to_owned(), p)) + .collect() + } + + /// Creates a new Config. + pub fn make_config(&self, ws_root: &Path) -> Config { + let shell = cargo::core::Shell::new(); + let mut config = Config::new(shell, ws_root.to_path_buf(), self.cargo_home()); + // Configure is needed to set the target_dir which is needed to write + // the .rustc_info.json file which is very expensive. + config + .configure( + 0, + false, + None, + false, + false, + false, + &Some(self.target_dir()), + &[], + &[], + ) + .unwrap(); + config + } +} diff -Nru cargo-mozilla-0.57.0/benches/capture/Cargo.toml cargo-mozilla-0.66.0+ds1/benches/capture/Cargo.toml --- cargo-mozilla-0.57.0/benches/capture/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/benches/capture/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,12 @@ +[package] +name = "capture" +version = "0.1.0" +edition = "2021" +license = "MIT OR Apache-2.0" +description = "Tool for capturing a real-world workspace for benchmarking." + +[dependencies] +cargo_metadata = "0.14.0" +flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } +tar = { version = "0.4.38", default-features = false } +toml_edit = { version = "0.14.3", features = ["serde", "easy", "perf"] } diff -Nru cargo-mozilla-0.57.0/benches/capture/src/main.rs cargo-mozilla-0.66.0+ds1/benches/capture/src/main.rs --- cargo-mozilla-0.57.0/benches/capture/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/benches/capture/src/main.rs 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,165 @@ +//! This tool helps to capture the `Cargo.toml` files of a workspace. +//! +//! Run it by passing a list of workspaces to capture. +//! Use the `-f` flag to allow it to overwrite existing captures. +//! The workspace will be saved in a `.tgz` file in the `../workspaces` directory. + +use flate2::{Compression, GzBuilder}; +use std::fs; +use std::path::{Path, PathBuf}; +use std::process::Command; +use toml_edit::easy as toml; + +fn main() { + let force = std::env::args().any(|arg| arg == "-f"); + let dest = Path::new(env!("CARGO_MANIFEST_DIR")) + .parent() + .unwrap() + .join("workspaces"); + if !dest.exists() { + panic!("expected {} to exist", dest.display()); + } + for arg in std::env::args().skip(1).filter(|arg| !arg.starts_with("-")) { + let source_root = fs::canonicalize(arg).unwrap(); + capture(&source_root, &dest, force); + } +} + +fn capture(source_root: &Path, dest: &Path, force: bool) { + let name = Path::new(source_root.file_name().unwrap()); + let mut dest_gz = PathBuf::from(dest); + dest_gz.push(name); + dest_gz.set_extension("tgz"); + if dest_gz.exists() { + if !force { + panic!( + "dest {:?} already exists, use -f to force overwriting", + dest_gz + ); + } + fs::remove_file(&dest_gz).unwrap(); + } + let vcs_info = capture_vcs_info(source_root, force); + let dst = fs::File::create(&dest_gz).unwrap(); + let encoder = GzBuilder::new() + .filename(format!("{}.tar", name.to_str().unwrap())) + .write(dst, Compression::best()); + let mut ar = tar::Builder::new(encoder); + ar.mode(tar::HeaderMode::Deterministic); + if let Some(info) = &vcs_info { + add_ar_file(&mut ar, &name.join(".cargo_vcs_info.json"), info); + } + + // Gather all local packages. + let metadata = cargo_metadata::MetadataCommand::new() + .manifest_path(source_root.join("Cargo.toml")) + .features(cargo_metadata::CargoOpt::AllFeatures) + .exec() + .expect("cargo_metadata failed"); + let mut found_root = false; + for package in &metadata.packages { + if package.source.is_some() { + continue; + } + let manifest_path = package.manifest_path.as_std_path(); + copy_manifest(&manifest_path, &mut ar, name, &source_root); + found_root |= manifest_path == source_root.join("Cargo.toml"); + } + if !found_root { + // A virtual workspace. + let contents = fs::read_to_string(source_root.join("Cargo.toml")).unwrap(); + assert!(!contents.contains("[package]")); + add_ar_file(&mut ar, &name.join("Cargo.toml"), &contents); + } + let lock = fs::read_to_string(source_root.join("Cargo.lock")).unwrap(); + add_ar_file(&mut ar, &name.join("Cargo.lock"), &lock); + let encoder = ar.into_inner().unwrap(); + encoder.finish().unwrap(); + eprintln!("created {}", dest_gz.display()); +} + +fn copy_manifest( + manifest_path: &Path, + ar: &mut tar::Builder, + name: &Path, + source_root: &Path, +) { + let relative_path = manifest_path + .parent() + .unwrap() + .strip_prefix(source_root) + .expect("workspace member should be under workspace root"); + let relative_path = name.join(relative_path); + let contents = fs::read_to_string(&manifest_path).unwrap(); + let mut manifest: toml::Value = toml::from_str(&contents).unwrap(); + let remove = |obj: &mut toml::Value, name| { + let table = obj.as_table_mut().unwrap(); + if table.contains_key(name) { + table.remove(name); + } + }; + remove(&mut manifest, "lib"); + remove(&mut manifest, "bin"); + remove(&mut manifest, "example"); + remove(&mut manifest, "test"); + remove(&mut manifest, "bench"); + remove(&mut manifest, "profile"); + if let Some(package) = manifest.get_mut("package") { + remove(package, "default-run"); + } + let contents = toml::to_string(&manifest).unwrap(); + add_ar_file(ar, &relative_path.join("Cargo.toml"), &contents); + add_ar_file(ar, &relative_path.join("src").join("lib.rs"), ""); +} + +fn add_ar_file(ar: &mut tar::Builder, path: &Path, contents: &str) { + let mut header = tar::Header::new_gnu(); + header.set_entry_type(tar::EntryType::file()); + header.set_mode(0o644); + header.set_size(contents.len() as u64); + header.set_mtime(123456789); + header.set_cksum(); + ar.append_data(&mut header, path, contents.as_bytes()) + .unwrap(); +} + +fn capture_vcs_info(ws_root: &Path, force: bool) -> Option { + let maybe_git = |command: &str| { + Command::new("git") + .current_dir(ws_root) + .args(command.split_whitespace().collect::>()) + .output() + .expect("git should be installed") + }; + assert!(ws_root.join("Cargo.toml").exists()); + let relative = maybe_git("ls-files --full-name Cargo.toml"); + if !relative.status.success() { + if !force { + panic!("git repository not detected, use -f to force"); + } + return None; + } + let p = Path::new(std::str::from_utf8(&relative.stdout).unwrap().trim()); + let relative = p.parent().unwrap(); + if !force { + let has_changes = !maybe_git("diff-index --quiet HEAD .").status.success(); + if has_changes { + panic!("git repo appears to have changes, use -f to force, or clean the repo"); + } + } + let commit = maybe_git("rev-parse HEAD"); + assert!(commit.status.success()); + let commit = std::str::from_utf8(&commit.stdout).unwrap().trim(); + let remote = maybe_git("remote get-url origin"); + assert!(remote.status.success()); + let remote = std::str::from_utf8(&remote.stdout).unwrap().trim(); + let info = format!( + "{{\n \"git\": {{\n \"sha1\": \"{}\",\n \"remote\": \"{}\"\n }},\ + \n \"path_in_vcs\": \"{}\"\n}}\n", + commit, + remote, + relative.display() + ); + eprintln!("recording vcs info:\n{}", info); + Some(info) +} Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/cargo.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/cargo.tgz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/diem.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/diem.tgz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/empty.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/empty.tgz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/gecko-dev.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/gecko-dev.tgz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/rust-ws-inherit.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/rust-ws-inherit.tgz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/rust.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/rust.tgz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/servo.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/servo.tgz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/substrate.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/substrate.tgz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/tikv.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/tikv.tgz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/benches/workspaces/toml-rs.tgz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/benches/workspaces/toml-rs.tgz differ diff -Nru cargo-mozilla-0.57.0/build.rs cargo-mozilla-0.66.0+ds1/build.rs --- cargo-mozilla-0.57.0/build.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/build.rs 2022-10-20 06:00:42.000000000 +0000 @@ -2,9 +2,15 @@ use std::ffi::OsStr; use std::fs; use std::path::Path; +use std::process::Command; fn main() { + commit_info(); compress_man(); + println!( + "cargo:rustc-env=RUST_HOST_TARGET={}", + std::env::var("TARGET").unwrap() + ); } fn compress_man() { @@ -37,3 +43,26 @@ let encoder = ar.into_inner().unwrap(); encoder.finish().unwrap(); } + +fn commit_info() { + if !Path::new(".git").exists() { + return; + } + let output = match Command::new("git") + .arg("log") + .arg("-1") + .arg("--date=short") + .arg("--format=%H %h %cd") + .arg("--abbrev=9") + .output() + { + Ok(output) if output.status.success() => output, + _ => return, + }; + let stdout = String::from_utf8(output.stdout).unwrap(); + let mut parts = stdout.split_whitespace(); + let mut next = || parts.next().unwrap(); + println!("cargo:rustc-env=CARGO_COMMIT_HASH={}", next()); + println!("cargo:rustc-env=CARGO_COMMIT_SHORT_HASH={}", next()); + println!("cargo:rustc-env=CARGO_COMMIT_DATE={}", next()) +} diff -Nru cargo-mozilla-0.57.0/ci/dump-environment.sh cargo-mozilla-0.66.0+ds1/ci/dump-environment.sh --- cargo-mozilla-0.57.0/ci/dump-environment.sh 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/ci/dump-environment.sh 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,13 @@ +#!/bin/bash +# This script dumps information about the build environment to stdout. + +set -euo pipefail +IFS=$'\n\t' + +echo "environment variables:" +printenv | sort +echo + +echo "disk usage:" +df -h +echo diff -Nru cargo-mozilla-0.57.0/ci/fetch-smoke-test.sh cargo-mozilla-0.66.0+ds1/ci/fetch-smoke-test.sh --- cargo-mozilla-0.57.0/ci/fetch-smoke-test.sh 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/ci/fetch-smoke-test.sh 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,27 @@ +#!/bin/bash +# This script builds with static curl, and verifies that fetching works. + +set -ex + +if [[ -z "$RUNNER_TEMP" ]] +then + echo "RUNNER_TEMP must be set" + exit 1 +fi + +if [ ! -f Cargo.toml ]; then + echo "Must be run from root of project." + exit 1 +fi + + +# Building openssl on Windows is a pain. +if [[ $(rustc -Vv | grep host:) != *windows* ]]; then + FEATURES='vendored-openssl,curl-sys/static-curl,curl-sys/force-system-lib-on-osx' + export LIBZ_SYS_STATIC=1 +fi + +cargo build --features "$FEATURES" +export CARGO_HOME=$RUNNER_TEMP/chome +target/debug/cargo fetch +rm -rf $CARGO_HOME diff -Nru cargo-mozilla-0.57.0/crates/cargo-platform/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/cargo-platform/Cargo.toml --- cargo-mozilla-0.57.0/crates/cargo-platform/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-platform/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "cargo-platform" version = "0.1.2" -authors = ["The Cargo Project Developers"] -edition = "2018" +edition = "2021" license = "MIT OR Apache-2.0" homepage = "https://github.com/rust-lang/cargo" repository = "https://github.com/rust-lang/cargo" diff -Nru cargo-mozilla-0.57.0/crates/cargo-test-macro/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/cargo-test-macro/Cargo.toml --- cargo-mozilla-0.57.0/crates/cargo-test-macro/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-test-macro/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "cargo-test-macro" version = "0.1.0" -authors = ["Jethro Beekman "] -edition = "2018" +edition = "2021" license = "MIT OR Apache-2.0" homepage = "https://github.com/rust-lang/cargo" repository = "https://github.com/rust-lang/cargo" diff -Nru cargo-mozilla-0.57.0/crates/cargo-test-macro/src/lib.rs cargo-mozilla-0.66.0+ds1/crates/cargo-test-macro/src/lib.rs --- cargo-mozilla-0.57.0/crates/cargo-test-macro/src/lib.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-test-macro/src/lib.rs 2022-10-20 06:00:42.000000000 +0000 @@ -1,20 +1,119 @@ extern crate proc_macro; use proc_macro::*; +use std::process::Command; +use std::sync::Once; #[proc_macro_attribute] pub fn cargo_test(attr: TokenStream, item: TokenStream) -> TokenStream { + // Ideally these options would be embedded in the test itself. However, I + // find it very helpful to have the test clearly state whether or not it + // is ignored. It would be nice to have some kind of runtime ignore + // support (such as + // https://internals.rust-lang.org/t/pre-rfc-skippable-tests/14611). + // + // Unfortunately a big drawback here is that if the environment changes + // (such as the existence of the `git` CLI), this will not trigger a + // rebuild and the test will still be ignored. In theory, something like + // `tracked_env` or `tracked_path` + // (https://github.com/rust-lang/rust/issues/99515) could help with this, + // but they don't really handle the absence of files well. + let mut ignore = false; + let mut requires_reason = false; + let mut explicit_reason = None; + let mut implicit_reasons = Vec::new(); + macro_rules! set_ignore { + ($predicate:expr, $($arg:tt)*) => { + let p = $predicate; + ignore |= p; + if p { + implicit_reasons.push(std::fmt::format(format_args!($($arg)*))); + } + }; + } + let is_not_nightly = !version().1; + for rule in split_rules(attr) { + match rule.as_str() { + "build_std_real" => { + // Only run the "real" build-std tests on nightly and with an + // explicit opt-in (these generally only work on linux, and + // have some extra requirements, and are slow, and can pollute + // the environment since it downloads dependencies). + set_ignore!(is_not_nightly, "requires nightly"); + set_ignore!( + option_env!("CARGO_RUN_BUILD_STD_TESTS").is_none(), + "CARGO_RUN_BUILD_STD_TESTS must be set" + ); + } + "build_std_mock" => { + // Only run the "mock" build-std tests on nightly and disable + // for windows-gnu which is missing object files (see + // https://github.com/rust-lang/wg-cargo-std-aware/issues/46). + set_ignore!(is_not_nightly, "requires nightly"); + set_ignore!( + cfg!(all(target_os = "windows", target_env = "gnu")), + "does not work on windows-gnu" + ); + } + "nightly" => { + requires_reason = true; + set_ignore!(is_not_nightly, "requires nightly"); + } + s if s.starts_with("requires_") => { + let command = &s[9..]; + set_ignore!(!has_command(command), "{command} not installed"); + } + s if s.starts_with(">=1.") => { + requires_reason = true; + let min_minor = s[4..].parse().unwrap(); + let minor = version().0; + set_ignore!(minor < min_minor, "requires rustc 1.{minor} or newer"); + } + s if s.starts_with("reason=") => { + explicit_reason = Some(s[7..].parse().unwrap()); + } + _ => panic!("unknown rule {:?}", rule), + } + } + if requires_reason && explicit_reason.is_none() { + panic!( + "#[cargo_test] with a rule also requires a reason, \ + such as #[cargo_test(nightly, reason = \"needs -Z unstable-thing\")]" + ); + } + + // Construct the appropriate attributes. let span = Span::call_site(); let mut ret = TokenStream::new(); - ret.extend(Some(TokenTree::from(Punct::new('#', Spacing::Alone)))); - let test = TokenTree::from(Ident::new("test", span)); - ret.extend(Some(TokenTree::from(Group::new( - Delimiter::Bracket, - test.into(), - )))); - - let build_std = contains_ident(&attr, "build_std"); + let add_attr = |ret: &mut TokenStream, attr_name, attr_input| { + ret.extend(Some(TokenTree::from(Punct::new('#', Spacing::Alone)))); + let attr = TokenTree::from(Ident::new(attr_name, span)); + let mut attr_stream: TokenStream = attr.into(); + if let Some(input) = attr_input { + attr_stream.extend(input); + } + ret.extend(Some(TokenTree::from(Group::new( + Delimiter::Bracket, + attr_stream, + )))); + }; + add_attr(&mut ret, "test", None); + if ignore { + let reason = explicit_reason + .or_else(|| { + (!implicit_reasons.is_empty()) + .then(|| TokenTree::from(Literal::string(&implicit_reasons.join(", "))).into()) + }) + .map(|reason: TokenStream| { + let mut stream = TokenStream::new(); + stream.extend(Some(TokenTree::from(Punct::new('=', Spacing::Alone)))); + stream.extend(Some(reason)); + stream + }); + add_attr(&mut ret, "ignore", reason); + } + // Find where the function body starts, and add the boilerplate at the start. for token in item { let group = match token { TokenTree::Group(g) => { @@ -38,17 +137,6 @@ };"#, ); - // If this is a `build_std` test (aka `tests/build-std/*.rs`) then they - // only run on nightly and they only run when specifically instructed to - // on CI. - if build_std { - let ts = to_token_stream("if !cargo_test_support::is_nightly() { return }"); - new_body.extend(ts); - let ts = to_token_stream( - "if std::env::var(\"CARGO_RUN_BUILD_STD_TESTS\").is_err() { return }", - ); - new_body.extend(ts); - } new_body.extend(group.stream()); ret.extend(Some(TokenTree::from(Group::new( group.delimiter(), @@ -59,13 +147,79 @@ ret } -fn contains_ident(t: &TokenStream, ident: &str) -> bool { - t.clone().into_iter().any(|t| match t { - TokenTree::Ident(i) => i.to_string() == ident, +fn split_rules(t: TokenStream) -> Vec { + let tts: Vec<_> = t.into_iter().collect(); + tts.split(|tt| match tt { + TokenTree::Punct(p) => p.as_char() == ',', _ => false, }) + .filter(|parts| !parts.is_empty()) + .map(|parts| { + parts + .into_iter() + .map(|part| part.to_string()) + .collect::() + }) + .collect() } fn to_token_stream(code: &str) -> TokenStream { code.parse().unwrap() } + +static mut VERSION: (u32, bool) = (0, false); + +fn version() -> &'static (u32, bool) { + static INIT: Once = Once::new(); + INIT.call_once(|| { + let output = Command::new("rustc") + .arg("-V") + .output() + .expect("rustc should run"); + let stdout = std::str::from_utf8(&output.stdout).expect("utf8"); + let vers = stdout.split_whitespace().skip(1).next().unwrap(); + let is_nightly = option_env!("CARGO_TEST_DISABLE_NIGHTLY").is_none() + && (vers.contains("-nightly") || vers.contains("-dev")); + let minor = vers.split('.').skip(1).next().unwrap().parse().unwrap(); + unsafe { VERSION = (minor, is_nightly) } + }); + unsafe { &VERSION } +} + +fn has_command(command: &str) -> bool { + let output = match Command::new(command).arg("--version").output() { + Ok(output) => output, + Err(e) => { + // hg is not installed on GitHub macOS or certain constrained + // environments like Docker. Consider installing it if Cargo gains + // more hg support, but otherwise it isn't critical. + if is_ci() && command != "hg" { + panic!( + "expected command `{}` to be somewhere in PATH: {}", + command, e + ); + } + return false; + } + }; + if !output.status.success() { + panic!( + "expected command `{}` to be runnable, got error {}:\n\ + stderr:{}\n\ + stdout:{}\n", + command, + output.status, + String::from_utf8_lossy(&output.stderr), + String::from_utf8_lossy(&output.stdout) + ); + } + true +} + +/// Whether or not this running in a Continuous Integration environment. +fn is_ci() -> bool { + // Consider using `tracked_env` instead of option_env! when it is stabilized. + // `tracked_env` will handle changes, but not require rebuilding the macro + // itself like option_env does. + option_env!("CI").is_some() || option_env!("TF_BUILD").is_some() +} diff -Nru cargo-mozilla-0.57.0/crates/cargo-test-support/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/Cargo.toml --- cargo-mozilla-0.57.0/crates/cargo-test-support/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,9 +1,8 @@ [package] name = "cargo-test-support" version = "0.1.0" -authors = ["Alex Crichton "] license = "MIT OR Apache-2.0" -edition = "2018" +edition = "2021" [lib] doctest = false @@ -12,15 +11,22 @@ anyhow = "1.0.34" cargo-test-macro = { path = "../cargo-test-macro" } cargo-util = { path = "../cargo-util" } +snapbox = { version = "0.3.0", features = ["diff", "path"] } filetime = "0.2" flate2 = { version = "1.0", default-features = false, features = ["zlib"] } -git2 = "0.13.16" +git2 = "0.15.0" glob = "0.3" itertools = "0.10.0" lazy_static = "1.0" remove_dir_all = "0.5" serde_json = "1.0" -tar = { version = "0.4.18", default-features = false } +tar = { version = "0.4.38", default-features = false } termcolor = "1.1.2" -toml = "0.5.7" +toml_edit = { version = "0.14.3", features = ["serde", "easy", "perf"] } url = "2.2.2" + +[target.'cfg(windows)'.dependencies] +winapi = "0.3" + +[features] +deny-warnings = [] diff -Nru cargo-mozilla-0.57.0/crates/cargo-test-support/src/compare.rs cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/compare.rs --- cargo-mozilla-0.57.0/crates/cargo-test-support/src/compare.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/compare.rs 2022-10-20 06:00:42.000000000 +0000 @@ -41,6 +41,57 @@ use std::str; use url::Url; +/// Default `snapbox` Assertions +/// +/// # Snapshots +/// +/// Updating of snapshots is controlled with the `SNAPSHOTS` environment variable: +/// +/// - `skip`: do not run the tests +/// - `ignore`: run the tests but ignore their failure +/// - `verify`: run the tests +/// - `overwrite`: update the snapshots based on the output of the tests +/// +/// # Patterns +/// +/// - `[..]` is a character wildcard, stopping at line breaks +/// - `\n...\n` is a multi-line wildcard +/// - `[EXE]` matches the exe suffix for the current platform +/// - `[ROOT]` matches [`paths::root()`][crate::paths::root] +/// - `[ROOTURL]` matches [`paths::root()`][crate::paths::root] as a URL +/// +/// # Normalization +/// +/// In addition to the patterns described above, text is normalized +/// in such a way to avoid unwanted differences. The normalizations are: +/// +/// - Backslashes are converted to forward slashes to deal with Windows paths. +/// This helps so that all tests can be written assuming forward slashes. +/// Other heuristics are applied to try to ensure Windows-style paths aren't +/// a problem. +/// - Carriage returns are removed, which can help when running on Windows. +pub fn assert_ui() -> snapbox::Assert { + let root = paths::root(); + // Use `from_file_path` instead of `from_dir_path` so the trailing slash is + // put in the users output, rather than hidden in the variable + let root_url = url::Url::from_file_path(&root).unwrap().to_string(); + let root = root.display().to_string(); + + let mut subs = snapbox::Substitutions::new(); + subs.extend([ + ( + "[EXE]", + std::borrow::Cow::Borrowed(std::env::consts::EXE_SUFFIX), + ), + ("[ROOT]", std::borrow::Cow::Owned(root)), + ("[ROOTURL]", std::borrow::Cow::Owned(root_url)), + ]) + .unwrap(); + snapbox::Assert::new() + .action_env(snapbox::DEFAULT_ACTION_ENV) + .substitutions(subs) +} + /// Normalizes the output so that it can be compared against the expected value. fn normalize_actual(actual: &str, cwd: Option<&Path>) -> String { // It's easier to read tabs in outputs if they don't show up as literal @@ -144,6 +195,8 @@ ("[YANK]", " Yank"), ("[OWNER]", " Owner"), ("[MIGRATING]", " Migrating"), + ("[EXECUTABLE]", " Executable"), + ("[SKIPPING]", " Skipping"), ]; let mut result = input.to_owned(); for &(pat, subst) in ¯os { diff -Nru cargo-mozilla-0.57.0/crates/cargo-test-support/src/cross_compile.rs cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/cross_compile.rs --- cargo-mozilla-0.57.0/crates/cargo-test-support/src/cross_compile.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/cross_compile.rs 2022-10-20 06:00:42.000000000 +0000 @@ -191,6 +191,7 @@ .expect("Target triple has unexpected format") { "x86_64" => "x86_64", + "aarch64" => "aarch64", "i686" => "x86", _ => panic!("This test should be gated on cross_compile::disabled."), } @@ -200,7 +201,9 @@ /// /// Only use this function on tests that check `cross_compile::disabled`. pub fn alternate() -> &'static str { - if cfg!(target_os = "macos") { + if cfg!(all(target_os = "macos", target_arch = "aarch64")) { + "x86_64-apple-darwin" + } else if cfg!(target_os = "macos") { "x86_64-apple-ios" } else if cfg!(target_os = "linux") { "i686-unknown-linux-gnu" diff -Nru cargo-mozilla-0.57.0/crates/cargo-test-support/src/lib.rs cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/lib.rs --- cargo-mozilla-0.57.0/crates/cargo-test-support/src/lib.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/lib.rs 2022-10-20 06:00:42.000000000 +0000 @@ -3,8 +3,7 @@ //! See for a guide on writing tests. #![allow(clippy::all)] -#![warn(clippy::needless_borrow)] -#![warn(clippy::redundant_clone)] +#![cfg_attr(feature = "deny-warnings", deny(warnings))] use std::env; use std::ffi::OsStr; @@ -33,6 +32,26 @@ }; } +#[macro_export] +macro_rules! curr_dir { + () => { + $crate::_curr_dir(std::path::Path::new(file!())); + }; +} + +#[doc(hidden)] +pub fn _curr_dir(mut file_path: &'static Path) -> &'static Path { + if !file_path.exists() { + // HACK: Must be running in the rust-lang/rust workspace, adjust the paths accordingly. + let prefix = PathBuf::from("src").join("tools").join("cargo"); + if let Ok(crate_relative) = file_path.strip_prefix(prefix) { + file_path = crate_relative + } + } + assert!(file_path.exists(), "{} does not exist", file_path.display()); + file_path.parent().unwrap() +} + #[track_caller] pub fn panic_error(what: &str, err: impl Into) -> ! { let err = err.into(); @@ -60,6 +79,13 @@ pub mod registry; pub mod tools; +pub mod prelude { + pub use crate::ArgLine; + pub use crate::CargoCommand; + pub use crate::ChannelChanger; + pub use crate::TestEnv; +} + /* * * ===== Builders ===== @@ -157,10 +183,16 @@ } } +/// A cargo project to run tests against. +/// +/// See [`ProjectBuilder`] or [`Project::from_template`] to get started. pub struct Project { root: PathBuf, } +/// Create a project to run tests against +/// +/// The project can be constructed programmatically or from the filesystem with [`Project::from_template`] #[must_use] pub struct ProjectBuilder { root: Project, @@ -285,6 +317,14 @@ } impl Project { + /// Copy the test project from a fixed state + pub fn from_template(template_path: impl AsRef) -> Self { + let root = paths::root(); + let project_root = root.join("case"); + snapbox::path::copy_template(template_path.as_ref(), &project_root).unwrap(); + Self { root: project_root } + } + /// Root of the project, ex: `/path/to/cargo/target/cit/t0/foo` pub fn root(&self) -> PathBuf { self.root.clone() @@ -372,7 +412,7 @@ pub fn cargo(&self, cmd: &str) -> Execs { let mut execs = self.process(&cargo_exe()); if let Some(ref mut p) = execs.process_builder { - split_and_add_args(p, cmd); + p.arg_line(cmd); } execs } @@ -445,6 +485,11 @@ ProjectBuilder::new(paths::root().join("foo")) } +// Generates a project layout in given directory +pub fn project_in(dir: &str) -> ProjectBuilder { + ProjectBuilder::new(paths::root().join(dir).join("foo")) +} + // Generates a project layout inside our fake home dir pub fn project_in_home(name: &str) -> ProjectBuilder { ProjectBuilder::new(paths::home().join(name)) @@ -466,24 +511,8 @@ buf } -// Path to cargo executables -pub fn cargo_dir() -> PathBuf { - env::var_os("CARGO_BIN_PATH") - .map(PathBuf::from) - .or_else(|| { - env::current_exe().ok().map(|mut path| { - path.pop(); - if path.ends_with("deps") { - path.pop(); - } - path - }) - }) - .unwrap_or_else(|| panic!("CARGO_BIN_PATH wasn't set. Cannot continue running test")) -} - pub fn cargo_exe() -> PathBuf { - cargo_dir().join(format!("cargo{}", env::consts::EXE_SUFFIX)) + snapbox::cmd::cargo_bin("cargo") } /// This is the raw output from the process. @@ -540,6 +569,12 @@ self } + /// Writes the given lines to stdin. + pub fn with_stdin(&mut self, expected: S) -> &mut Self { + self.expect_stdin = Some(expected.to_string()); + self + } + /// Verifies the exit code from the process. /// /// This is not necessary if the expected exit code is `0`. @@ -771,9 +806,14 @@ p.build_command() } - pub fn masquerade_as_nightly_cargo(&mut self) -> &mut Self { + /// Enables nightly features for testing + /// + /// The list of reasons should be why nightly cargo is needed. If it is + /// becuase of an unstable feature put the name of the feature as the reason, + /// e.g. `&["print-im-a-teapot"]` + pub fn masquerade_as_nightly_cargo(&mut self, reasons: &[&str]) -> &mut Self { if let Some(ref mut p) = self.process_builder { - p.masquerade_as_nightly_cargo(); + p.masquerade_as_nightly_cargo(reasons); } self } @@ -791,12 +831,24 @@ #[track_caller] pub fn run(&mut self) { self.ran = true; - let p = (&self.process_builder).clone().unwrap(); + let mut p = (&self.process_builder).clone().unwrap(); + if let Some(stdin) = self.expect_stdin.take() { + p.stdin(stdin); + } if let Err(e) = self.match_process(&p) { panic_error(&format!("test failed running {}", p), e); } } + #[track_caller] + pub fn run_expect_error(&mut self) { + self.ran = true; + let p = (&self.process_builder).clone().unwrap(); + if self.match_process(&p).is_ok() { + panic!("test was expected to fail, but succeeded running {}", p); + } + } + /// Runs the process, checks the expected output, and returns the first /// JSON object on stdout. #[track_caller] @@ -1076,6 +1128,10 @@ pub fn is_nightly() -> bool { let vv = &RUSTC_INFO.verbose_version; + // CARGO_TEST_DISABLE_NIGHTLY is set in rust-lang/rust's CI so that all + // nightly-only tests are disabled there. Otherwise, it could make it + // difficult to land changes which would need to be made simultaneously in + // rust-lang/cargo and rust-lan/rust, which isn't possible. env::var("CARGO_TEST_DISABLE_NIGHTLY").is_err() && (vv.contains("-nightly") || vv.contains("-dev")) } @@ -1086,110 +1142,189 @@ fn _process(t: &OsStr) -> ProcessBuilder { let mut p = ProcessBuilder::new(t); + p.cwd(&paths::root()).test_env(); + p +} - // In general just clear out all cargo-specific configuration already in the - // environment. Our tests all assume a "default configuration" unless - // specified otherwise. - for (k, _v) in env::vars() { - if k.starts_with("CARGO_") { - p.env_remove(&k); - } - } - if env::var_os("RUSTUP_TOOLCHAIN").is_some() { - // Override the PATH to avoid executing the rustup wrapper thousands - // of times. This makes the testsuite run substantially faster. - lazy_static::lazy_static! { - static ref RUSTC_DIR: PathBuf = { - match ProcessBuilder::new("rustup") - .args(&["which", "rustc"]) - .exec_with_output() - { - Ok(output) => { - let s = str::from_utf8(&output.stdout).expect("utf8").trim(); - let mut p = PathBuf::from(s); - p.pop(); - p - } - Err(e) => { - panic!("RUSTUP_TOOLCHAIN was set, but could not run rustup: {}", e); +/// Enable nightly features for testing +pub trait ChannelChanger { + /// The list of reasons should be why nightly cargo is needed. If it is + /// becuase of an unstable feature put the name of the feature as the reason, + /// e.g. `&["print-im-a-teapot"]`. + fn masquerade_as_nightly_cargo(self, _reasons: &[&str]) -> Self; +} + +impl ChannelChanger for &mut ProcessBuilder { + fn masquerade_as_nightly_cargo(self, _reasons: &[&str]) -> Self { + self.env("__CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS", "nightly") + } +} + +impl ChannelChanger for snapbox::cmd::Command { + fn masquerade_as_nightly_cargo(self, _reasons: &[&str]) -> Self { + self.env("__CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS", "nightly") + } +} + +/// Establish a process's test environment +pub trait TestEnv: Sized { + fn test_env(mut self) -> Self { + // In general just clear out all cargo-specific configuration already in the + // environment. Our tests all assume a "default configuration" unless + // specified otherwise. + for (k, _v) in env::vars() { + if k.starts_with("CARGO_") { + self = self.env_remove(&k); + } + } + if env::var_os("RUSTUP_TOOLCHAIN").is_some() { + // Override the PATH to avoid executing the rustup wrapper thousands + // of times. This makes the testsuite run substantially faster. + lazy_static::lazy_static! { + static ref RUSTC_DIR: PathBuf = { + match ProcessBuilder::new("rustup") + .args(&["which", "rustc"]) + .exec_with_output() + { + Ok(output) => { + let s = str::from_utf8(&output.stdout).expect("utf8").trim(); + let mut p = PathBuf::from(s); + p.pop(); + p + } + Err(e) => { + panic!("RUSTUP_TOOLCHAIN was set, but could not run rustup: {}", e); + } } - } - }; + }; + } + let path = env::var_os("PATH").unwrap_or_default(); + let paths = env::split_paths(&path); + let new_path = + env::join_paths(std::iter::once(RUSTC_DIR.clone()).chain(paths)).unwrap(); + self = self.env("PATH", new_path); + } + + self = self + .current_dir(&paths::root()) + .env("HOME", paths::home()) + .env("CARGO_HOME", paths::home().join(".cargo")) + .env("__CARGO_TEST_ROOT", paths::global_root()) + // Force Cargo to think it's on the stable channel for all tests, this + // should hopefully not surprise us as we add cargo features over time and + // cargo rides the trains. + .env("__CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS", "stable") + // For now disable incremental by default as support hasn't ridden to the + // stable channel yet. Once incremental support hits the stable compiler we + // can switch this to one and then fix the tests. + .env("CARGO_INCREMENTAL", "0") + .env_remove("__CARGO_DEFAULT_LIB_METADATA") + .env_remove("RUSTC") + .env_remove("RUSTDOC") + .env_remove("RUSTC_WRAPPER") + .env_remove("RUSTFLAGS") + .env_remove("RUSTDOCFLAGS") + .env_remove("XDG_CONFIG_HOME") // see #2345 + .env("GIT_CONFIG_NOSYSTEM", "1") // keep trying to sandbox ourselves + .env_remove("EMAIL") + .env_remove("USER") // not set on some rust-lang docker images + .env_remove("MFLAGS") + .env_remove("MAKEFLAGS") + .env_remove("GIT_AUTHOR_NAME") + .env_remove("GIT_AUTHOR_EMAIL") + .env_remove("GIT_COMMITTER_NAME") + .env_remove("GIT_COMMITTER_EMAIL") + .env_remove("MSYSTEM"); // assume cmd.exe everywhere on windows + if cfg!(target_os = "macos") { + // Work-around a bug in macOS 10.15, see `link_or_copy` for details. + self = self.env("__CARGO_COPY_DONT_LINK_DO_NOT_USE_THIS", "1"); } - let path = env::var_os("PATH").unwrap_or_default(); - let paths = env::split_paths(&path); - let new_path = env::join_paths(std::iter::once(RUSTC_DIR.clone()).chain(paths)).unwrap(); - p.env("PATH", new_path); - } - - p.cwd(&paths::root()) - .env("HOME", paths::home()) - .env("CARGO_HOME", paths::home().join(".cargo")) - .env("__CARGO_TEST_ROOT", paths::root()) - // Force Cargo to think it's on the stable channel for all tests, this - // should hopefully not surprise us as we add cargo features over time and - // cargo rides the trains. - .env("__CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS", "stable") - // For now disable incremental by default as support hasn't ridden to the - // stable channel yet. Once incremental support hits the stable compiler we - // can switch this to one and then fix the tests. - .env("CARGO_INCREMENTAL", "0") - .env_remove("__CARGO_DEFAULT_LIB_METADATA") - .env_remove("RUSTC") - .env_remove("RUSTDOC") - .env_remove("RUSTC_WRAPPER") - .env_remove("RUSTFLAGS") - .env_remove("RUSTDOCFLAGS") - .env_remove("XDG_CONFIG_HOME") // see #2345 - .env("GIT_CONFIG_NOSYSTEM", "1") // keep trying to sandbox ourselves - .env_remove("EMAIL") - .env_remove("USER") // not set on some rust-lang docker images - .env_remove("MFLAGS") - .env_remove("MAKEFLAGS") - .env_remove("GIT_AUTHOR_NAME") - .env_remove("GIT_AUTHOR_EMAIL") - .env_remove("GIT_COMMITTER_NAME") - .env_remove("GIT_COMMITTER_EMAIL") - .env_remove("MSYSTEM"); // assume cmd.exe everywhere on windows - if cfg!(target_os = "macos") { - // Work-around a bug in macOS 10.15, see `link_or_copy` for details. - p.env("__CARGO_COPY_DONT_LINK_DO_NOT_USE_THIS", "1"); + self } - p + + fn current_dir>(self, path: S) -> Self; + fn env>(self, key: &str, value: S) -> Self; + fn env_remove(self, key: &str) -> Self; } -pub trait ChannelChanger: Sized { - fn masquerade_as_nightly_cargo(&mut self) -> &mut Self; +impl TestEnv for &mut ProcessBuilder { + fn current_dir>(self, path: S) -> Self { + let path = path.as_ref(); + self.cwd(path) + } + fn env>(self, key: &str, value: S) -> Self { + self.env(key, value) + } + fn env_remove(self, key: &str) -> Self { + self.env_remove(key) + } } -impl ChannelChanger for ProcessBuilder { - fn masquerade_as_nightly_cargo(&mut self) -> &mut Self { - self.env("__CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS", "nightly") +impl TestEnv for snapbox::cmd::Command { + fn current_dir>(self, path: S) -> Self { + self.current_dir(path) + } + fn env>(self, key: &str, value: S) -> Self { + self.env(key, value) + } + fn env_remove(self, key: &str) -> Self { + self.env_remove(key) } } -fn split_and_add_args(p: &mut ProcessBuilder, s: &str) { - for mut arg in s.split_whitespace() { - if (arg.starts_with('"') && arg.ends_with('"')) - || (arg.starts_with('\'') && arg.ends_with('\'')) - { - arg = &arg[1..(arg.len() - 1).max(1)]; - } else if arg.contains(&['"', '\''][..]) { - panic!("shell-style argument parsing is not supported") +/// Test the cargo command +pub trait CargoCommand { + fn cargo_ui() -> Self; +} + +impl CargoCommand for snapbox::cmd::Command { + fn cargo_ui() -> Self { + Self::new(cargo_exe()) + .with_assert(compare::assert_ui()) + .test_env() + } +} + +/// Add a list of arguments as a line +pub trait ArgLine: Sized { + fn arg_line(mut self, s: &str) -> Self { + for mut arg in s.split_whitespace() { + if (arg.starts_with('"') && arg.ends_with('"')) + || (arg.starts_with('\'') && arg.ends_with('\'')) + { + arg = &arg[1..(arg.len() - 1).max(1)]; + } else if arg.contains(&['"', '\''][..]) { + panic!("shell-style argument parsing is not supported") + } + self = self.arg(arg); } - p.arg(arg); + self + } + + fn arg>(self, s: S) -> Self; +} + +impl ArgLine for &mut ProcessBuilder { + fn arg>(self, s: S) -> Self { + self.arg(s) + } +} + +impl ArgLine for snapbox::cmd::Command { + fn arg>(self, s: S) -> Self { + self.arg(s) } } pub fn cargo_process(s: &str) -> Execs { let mut p = process(&cargo_exe()); - split_and_add_args(&mut p, s); + p.arg_line(s); execs().with_process_builder(p) } pub fn git_process(s: &str) -> ProcessBuilder { let mut p = process("git"); - split_and_add_args(&mut p, s); + p.arg_line(s); p } @@ -1219,16 +1354,6 @@ Duration::from_secs(*SLOW_CPU_MULTIPLIER * main) } -pub fn command_is_available(cmd: &str) -> bool { - if let Err(e) = process(cmd).arg("-V").exec_with_output() { - eprintln!("{} not available, skipping tests", cmd); - eprintln!("{:?}", e); - false - } else { - true - } -} - #[cfg(windows)] pub fn symlink_supported() -> bool { if is_ci() { diff -Nru cargo-mozilla-0.57.0/crates/cargo-test-support/src/paths.rs cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/paths.rs --- cargo-mozilla-0.57.0/crates/cargo-test-support/src/paths.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/paths.rs 2022-10-20 06:00:42.000000000 +0000 @@ -198,14 +198,6 @@ } } -// Replace with std implementation when stabilized, see -// https://github.com/rust-lang/rust/issues/85748 -pub fn is_symlink(path: &Path) -> bool { - fs::symlink_metadata(path) - .map(|m| m.file_type().is_symlink()) - .unwrap_or(false) -} - fn do_op(path: &Path, desc: &str, mut f: F) where F: FnMut(&Path) -> io::Result<()>, @@ -295,3 +287,61 @@ let sysroot = String::from_utf8(output.stdout).unwrap(); sysroot.trim().to_string() } + +/// Returns true if names such as aux.* are allowed. +/// +/// Traditionally, Windows did not allow a set of file names (see `is_windows_reserved` +/// for a list). More recent versions of Windows have relaxed this restriction. This test +/// determines whether we are running in a mode that allows Windows reserved names. +#[cfg(windows)] +pub fn windows_reserved_names_are_allowed() -> bool { + use cargo_util::is_ci; + + // Ensure tests still run in CI until we need to migrate. + if is_ci() { + return false; + } + + use std::ffi::OsStr; + use std::os::windows::ffi::OsStrExt; + use std::ptr; + use winapi::um::fileapi::GetFullPathNameW; + + let test_file_name: Vec<_> = OsStr::new("aux.rs").encode_wide().collect(); + + let buffer_length = + unsafe { GetFullPathNameW(test_file_name.as_ptr(), 0, ptr::null_mut(), ptr::null_mut()) }; + + if buffer_length == 0 { + // This means the call failed, so we'll conservatively assume reserved names are not allowed. + return false; + } + + let mut buffer = vec![0u16; buffer_length as usize]; + + let result = unsafe { + GetFullPathNameW( + test_file_name.as_ptr(), + buffer_length, + buffer.as_mut_ptr(), + ptr::null_mut(), + ) + }; + + if result == 0 { + // Once again, conservatively assume reserved names are not allowed if the + // GetFullPathNameW call failed. + return false; + } + + // Under the old rules, a file name like aux.rs would get converted into \\.\aux, so + // we detect this case by checking if the string starts with \\.\ + // + // Otherwise, the filename will be something like C:\Users\Foo\Documents\aux.rs + let prefix: Vec<_> = OsStr::new("\\\\.\\").encode_wide().collect(); + if buffer.starts_with(&prefix) { + false + } else { + true + } +} diff -Nru cargo-mozilla-0.57.0/crates/cargo-test-support/src/registry.rs cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/registry.rs --- cargo-mozilla-0.57.0/crates/cargo-test-support/src/registry.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/registry.rs 2022-10-20 06:00:42.000000000 +0000 @@ -1,13 +1,13 @@ use crate::git::repo; use crate::paths; +use cargo_util::paths::append; use cargo_util::{registry::make_dep_path, Sha256}; use flate2::write::GzEncoder; use flate2::Compression; -use std::collections::BTreeMap; -use std::fmt::Write as _; +use std::collections::{BTreeMap, HashMap}; use std::fs::{self, File}; use std::io::{BufRead, BufReader, Write}; -use std::net::TcpListener; +use std::net::{SocketAddr, TcpListener, TcpStream}; use std::path::{Path, PathBuf}; use std::thread; use tar::{Builder, Header}; @@ -19,228 +19,292 @@ pub fn registry_path() -> PathBuf { generate_path("registry") } -pub fn registry_url() -> Url { - generate_url("registry") -} /// Gets the path for local web API uploads. Cargo will place the contents of a web API /// request here. For example, `api/v1/crates/new` is the result of publishing a crate. pub fn api_path() -> PathBuf { generate_path("api") } -pub fn api_url() -> Url { - generate_url("api") -} /// Gets the path where crates can be downloaded using the web API endpoint. Crates /// should be organized as `{name}/{version}/download` to match the web API /// endpoint. This is rarely used and must be manually set up. -pub fn dl_path() -> PathBuf { +fn dl_path() -> PathBuf { generate_path("dl") } -pub fn dl_url() -> Url { - generate_url("dl") -} /// Gets the alternative-registry version of `registry_path`. -pub fn alt_registry_path() -> PathBuf { +fn alt_registry_path() -> PathBuf { generate_path("alternative-registry") } -pub fn alt_registry_url() -> Url { +/// Gets the alternative-registry version of `registry_url`. +fn alt_registry_url() -> Url { generate_url("alternative-registry") } /// Gets the alternative-registry version of `dl_path`. pub fn alt_dl_path() -> PathBuf { - generate_path("alt_dl") -} -pub fn alt_dl_url() -> String { - generate_alt_dl_url("alt_dl") + generate_path("alternative-dl") } /// Gets the alternative-registry version of `api_path`. pub fn alt_api_path() -> PathBuf { - generate_path("alt_api") -} -pub fn alt_api_url() -> Url { - generate_url("alt_api") + generate_path("alternative-api") } - -pub fn generate_path(name: &str) -> PathBuf { +fn generate_path(name: &str) -> PathBuf { paths::root().join(name) } -pub fn generate_url(name: &str) -> Url { +fn generate_url(name: &str) -> Url { Url::from_file_path(generate_path(name)).ok().unwrap() } -pub fn generate_alt_dl_url(name: &str) -> String { - let base = Url::from_file_path(generate_path(name)).ok().unwrap(); - format!("{}/{{crate}}/{{version}}/{{crate}}-{{version}}.crate", base) -} /// A builder for initializing registries. pub struct RegistryBuilder { - /// If `true`, adds source replacement for crates.io to a registry on the filesystem. - replace_crates_io: bool, - /// If `true`, configures a registry named "alternative". - alternative: bool, - /// If set, sets the API url for the "alternative" registry. - /// This defaults to a directory on the filesystem. - alt_api_url: Option, - /// If `true`, configures `.cargo/credentials` with some tokens. - add_tokens: bool, + /// If set, configures an alternate registry with the given name. + alternative: Option, + /// If set, the authorization token for the registry. + token: Option, + /// If set, serves the index over http. + http_index: bool, + /// If set, serves the API over http. + http_api: bool, + /// If set, config.json includes 'api' + api: bool, + /// Write the token in the configuration. + configure_token: bool, + /// Write the registry in configuration. + configure_registry: bool, + /// API responders. + custom_responders: HashMap<&'static str, Box Response>>, +} + +pub struct TestRegistry { + _server: Option, + index_url: Url, + path: PathBuf, + api_url: Url, + dl_url: Url, + token: Option, +} + +impl TestRegistry { + pub fn index_url(&self) -> &Url { + &self.index_url + } + + pub fn api_url(&self) -> &Url { + &self.api_url + } + + pub fn token(&self) -> &str { + self.token + .as_deref() + .expect("registry was not configured with a token") + } } impl RegistryBuilder { + #[must_use] pub fn new() -> RegistryBuilder { RegistryBuilder { - replace_crates_io: true, - alternative: false, - alt_api_url: None, - add_tokens: true, + alternative: None, + token: Some("api-token".to_string()), + http_api: false, + http_index: false, + api: true, + configure_registry: true, + configure_token: true, + custom_responders: HashMap::new(), } } - /// Sets whether or not to replace crates.io with a registry on the filesystem. - /// Default is `true`. - pub fn replace_crates_io(&mut self, replace: bool) -> &mut Self { - self.replace_crates_io = replace; + /// Adds a custom HTTP response for a specific url + #[must_use] + pub fn add_responder Response>( + mut self, + url: &'static str, + responder: R, + ) -> Self { + self.custom_responders.insert(url, Box::new(responder)); + self + } + + /// Sets whether or not to initialize as an alternative registry. + #[must_use] + pub fn alternative_named(mut self, alt: &str) -> Self { + self.alternative = Some(alt.to_string()); + self + } + + /// Sets whether or not to initialize as an alternative registry. + #[must_use] + pub fn alternative(self) -> Self { + self.alternative_named("alternative") + } + + /// Prevents placing a token in the configuration + #[must_use] + pub fn no_configure_token(mut self) -> Self { + self.configure_token = false; self } - /// Sets whether or not to initialize an alternative registry named "alternative". - /// Default is `false`. - pub fn alternative(&mut self, alt: bool) -> &mut Self { - self.alternative = alt; + /// Prevents adding the registry to the configuration. + #[must_use] + pub fn no_configure_registry(mut self) -> Self { + self.configure_registry = false; self } - /// Sets the API url for the "alternative" registry. - /// Defaults to a path on the filesystem ([`alt_api_path`]). - pub fn alternative_api_url(&mut self, url: &str) -> &mut Self { - self.alternative = true; - self.alt_api_url = Some(url.to_string()); + /// Sets the token value + #[must_use] + pub fn token(mut self, token: &str) -> Self { + self.token = Some(token.to_string()); self } - /// Sets whether or not to initialize `.cargo/credentials` with some tokens. - /// Defaults to `true`. - pub fn add_tokens(&mut self, add: bool) -> &mut Self { - self.add_tokens = add; + /// Operate the index over http + #[must_use] + pub fn http_index(mut self) -> Self { + self.http_index = true; self } - /// Initializes the registries. - pub fn build(&self) { + /// Operate the api over http + #[must_use] + pub fn http_api(mut self) -> Self { + self.http_api = true; + self + } + + /// The registry has no api. + #[must_use] + pub fn no_api(mut self) -> Self { + self.api = false; + self + } + + /// Initializes the registry. + #[must_use] + pub fn build(self) -> TestRegistry { let config_path = paths::home().join(".cargo/config"); - if config_path.exists() { - panic!( - "{} already exists, the registry may only be initialized once, \ - and must be done before the config file is created", - config_path.display() - ); - } t!(fs::create_dir_all(config_path.parent().unwrap())); - let mut config = String::new(); - if self.replace_crates_io { - write!( - &mut config, - " + let prefix = if let Some(alternative) = &self.alternative { + format!("{alternative}-") + } else { + String::new() + }; + let registry_path = generate_path(&format!("{prefix}registry")); + let index_url = generate_url(&format!("{prefix}registry")); + let api_url = generate_url(&format!("{prefix}api")); + let dl_url = generate_url(&format!("{prefix}dl")); + let dl_path = generate_path(&format!("{prefix}dl")); + let api_path = generate_path(&format!("{prefix}api")); + + let (server, index_url, api_url, dl_url) = if !self.http_index && !self.http_api { + // No need to start the HTTP server. + (None, index_url, api_url, dl_url) + } else { + let server = HttpServer::new( + registry_path.clone(), + dl_path, + self.token.clone(), + self.custom_responders, + ); + let index_url = if self.http_index { + server.index_url() + } else { + index_url + }; + let api_url = if self.http_api { + server.api_url() + } else { + api_url + }; + let dl_url = server.dl_url(); + (Some(server), index_url, api_url, dl_url) + }; + + let registry = TestRegistry { + api_url, + index_url, + _server: server, + dl_url, + path: registry_path, + token: self.token, + }; + + if self.configure_registry { + if let Some(alternative) = &self.alternative { + append( + &config_path, + format!( + " + [registries.{alternative}] + index = '{}'", + registry.index_url + ) + .as_bytes(), + ) + .unwrap(); + } else { + append( + &config_path, + format!( + " [source.crates-io] replace-with = 'dummy-registry' [source.dummy-registry] - registry = '{}' - ", - registry_url() - ) - .unwrap(); - } - if self.alternative { - write!( - config, - " - [registries.alternative] - index = '{}' - ", - alt_registry_url() - ) - .unwrap(); + registry = '{}'", + registry.index_url + ) + .as_bytes(), + ) + .unwrap(); + } } - t!(fs::write(&config_path, config)); - if self.add_tokens { + if self.configure_token { + let token = registry.token.as_deref().unwrap(); let credentials = paths::home().join(".cargo/credentials"); - t!(fs::write( - &credentials, - r#" + if let Some(alternative) = &self.alternative { + append( + &credentials, + format!( + r#" + [registries.{alternative}] + token = "{token}" + "# + ) + .as_bytes(), + ) + .unwrap(); + } else { + append( + &credentials, + format!( + r#" [registry] - token = "api-token" - - [registries.alternative] - token = "api-token" + token = "{token}" "# - )); - } - - if self.replace_crates_io { - init_registry(registry_path(), dl_url().into(), api_url(), api_path()); + ) + .as_bytes(), + ) + .unwrap(); + } } - if self.alternative { - init_registry( - alt_registry_path(), - alt_dl_url(), - self.alt_api_url - .as_ref() - .map_or_else(alt_api_url, |url| Url::parse(url).expect("valid url")), - alt_api_path(), - ); - } - } - - /// Initializes the registries, and sets up an HTTP server for the - /// "alternative" registry. - /// - /// The given callback takes a `Vec` of headers when a request comes in. - /// The first entry should be the HTTP command, such as - /// `PUT /api/v1/crates/new HTTP/1.1`. - /// - /// The callback should return the HTTP code for the response, and the - /// response body. - /// - /// This method returns a `JoinHandle` which you should call - /// `.join().unwrap()` on before exiting the test. - pub fn build_api_server<'a>( - &mut self, - handler: &'static (dyn (Fn(Vec) -> (u32, &'a dyn AsRef<[u8]>)) + Sync), - ) -> thread::JoinHandle<()> { - let server = TcpListener::bind("127.0.0.1:0").unwrap(); - let addr = server.local_addr().unwrap(); - let api_url = format!("http://{}", addr); - - self.replace_crates_io(false) - .alternative_api_url(&api_url) - .build(); - - let t = thread::spawn(move || { - let mut conn = BufReader::new(server.accept().unwrap().0); - let headers: Vec<_> = (&mut conn) - .lines() - .map(|s| s.unwrap()) - .take_while(|s| s.len() > 2) - .map(|s| s.trim().to_string()) - .collect(); - let (code, response) = handler(headers); - let response = response.as_ref(); - let stream = conn.get_mut(); - write!( - stream, - "HTTP/1.1 {}\r\n\ - Content-Length: {}\r\n\ - \r\n", - code, - response.len() + let api = if self.api { + format!(r#","api":"{}""#, registry.api_url) + } else { + String::new() + }; + // Initialize a new registry. + repo(®istry.path) + .file( + "config.json", + &format!(r#"{{"dl":"{}"{api}}}"#, registry.dl_url), ) - .unwrap(); - stream.write_all(response).unwrap(); - }); + .build(); + fs::create_dir_all(api_path.join("api/v1/crates")).unwrap(); - t + registry } } @@ -331,6 +395,7 @@ name: String, vers: String, kind: String, + artifact: Option<(String, Option)>, target: Option, features: Vec, registry: Option, @@ -354,36 +419,318 @@ /// Initializes the on-disk registry and sets up the config so that crates.io /// is replaced with the one on disk. -pub fn init() { - let config = paths::home().join(".cargo/config"); - if config.exists() { - return; - } - RegistryBuilder::new().build(); -} - -/// Variant of `init` that initializes the "alternative" registry. -pub fn alt_init() { - RegistryBuilder::new().alternative(true).build(); -} - -/// Creates a new on-disk registry. -pub fn init_registry(registry_path: PathBuf, dl_url: String, api_url: Url, api_path: PathBuf) { - // Initialize a new registry. - repo(®istry_path) - .file( - "config.json", - &format!(r#"{{"dl":"{}","api":"{}"}}"#, dl_url, api_url), - ) - .build(); - fs::create_dir_all(api_path.join("api/v1/crates")).unwrap(); +pub fn init() -> TestRegistry { + RegistryBuilder::new().build() +} + +/// Variant of `init` that initializes the "alternative" registry and crates.io +/// replacement. +pub fn alt_init() -> TestRegistry { + init(); + RegistryBuilder::new().alternative().build() +} + +pub struct HttpServerHandle { + addr: SocketAddr, +} + +impl HttpServerHandle { + pub fn index_url(&self) -> Url { + Url::parse(&format!("sparse+http://{}/index/", self.addr.to_string())).unwrap() + } + + pub fn api_url(&self) -> Url { + Url::parse(&format!("http://{}/", self.addr.to_string())).unwrap() + } + + pub fn dl_url(&self) -> Url { + Url::parse(&format!("http://{}/dl", self.addr.to_string())).unwrap() + } +} + +impl Drop for HttpServerHandle { + fn drop(&mut self) { + if let Ok(mut stream) = TcpStream::connect(self.addr) { + // shutdown the server + let _ = stream.write_all(b"stop"); + let _ = stream.flush(); + } + } +} + +/// Request to the test http server +#[derive(Debug)] +pub struct Request { + pub url: Url, + pub method: String, + pub authorization: Option, + pub if_modified_since: Option, + pub if_none_match: Option, +} + +/// Response from the test http server +pub struct Response { + pub code: u32, + pub headers: Vec, + pub body: Vec, +} + +struct HttpServer { + listener: TcpListener, + registry_path: PathBuf, + dl_path: PathBuf, + token: Option, + custom_responders: HashMap<&'static str, Box Response>>, +} + +impl HttpServer { + pub fn new( + registry_path: PathBuf, + dl_path: PathBuf, + token: Option, + api_responders: HashMap<&'static str, Box Response>>, + ) -> HttpServerHandle { + let listener = TcpListener::bind("127.0.0.1:0").unwrap(); + let addr = listener.local_addr().unwrap(); + let server = HttpServer { + listener, + registry_path, + dl_path, + token, + custom_responders: api_responders, + }; + thread::spawn(move || server.start()); + HttpServerHandle { addr } + } + + fn start(&self) { + let mut line = String::new(); + 'server: loop { + let (socket, _) = self.listener.accept().unwrap(); + let mut buf = BufReader::new(socket); + line.clear(); + if buf.read_line(&mut line).unwrap() == 0 { + // Connection terminated. + continue; + } + // Read the "GET path HTTP/1.1" line. + let mut parts = line.split_ascii_whitespace(); + let method = parts.next().unwrap().to_ascii_lowercase(); + if method == "stop" { + // Shutdown the server. + return; + } + let addr = self.listener.local_addr().unwrap(); + let url = format!( + "http://{}/{}", + addr, + parts.next().unwrap().trim_start_matches('/') + ); + let url = Url::parse(&url).unwrap(); + + // Grab headers we care about. + let mut if_modified_since = None; + let mut if_none_match = None; + let mut authorization = None; + loop { + line.clear(); + if buf.read_line(&mut line).unwrap() == 0 { + continue 'server; + } + if line == "\r\n" { + // End of headers. + line.clear(); + break; + } + let (name, value) = line.split_once(':').unwrap(); + let name = name.trim().to_ascii_lowercase(); + let value = value.trim().to_string(); + match name.as_str() { + "if-modified-since" => if_modified_since = Some(value), + "if-none-match" => if_none_match = Some(value), + "authorization" => authorization = Some(value), + _ => {} + } + } + let req = Request { + authorization, + if_modified_since, + if_none_match, + method, + url, + }; + println!("req: {:#?}", req); + let response = self.route(&req); + let buf = buf.get_mut(); + write!(buf, "HTTP/1.1 {}\r\n", response.code).unwrap(); + write!(buf, "Content-Length: {}\r\n", response.body.len()).unwrap(); + for header in response.headers { + write!(buf, "{}\r\n", header).unwrap(); + } + write!(buf, "\r\n").unwrap(); + buf.write_all(&response.body).unwrap(); + buf.flush().unwrap(); + } + } + + /// Route the request + fn route(&self, req: &Request) -> Response { + let authorized = |mutatation: bool| { + if mutatation { + self.token == req.authorization + } else { + assert!(req.authorization.is_none(), "unexpected token"); + true + } + }; + + // Check for custom responder + if let Some(responder) = self.custom_responders.get(req.url.path()) { + return responder(&req); + } + let path: Vec<_> = req.url.path()[1..].split('/').collect(); + match (req.method.as_str(), path.as_slice()) { + ("get", ["index", ..]) => { + if !authorized(false) { + self.unauthorized(req) + } else { + self.index(&req) + } + } + ("get", ["dl", ..]) => { + if !authorized(false) { + self.unauthorized(req) + } else { + self.dl(&req) + } + } + // The remainder of the operators in the test framework do nothing other than responding 'ok'. + // + // Note: We don't need to support anything real here because the testing framework publishes crates + // by writing directly to the filesystem instead. If the test framework is changed to publish + // via the HTTP API, then this should be made more complete. + + // publish + ("put", ["api", "v1", "crates", "new"]) + // yank + | ("delete", ["api", "v1", "crates", .., "yank"]) + // unyank + | ("put", ["api", "v1", "crates", .., "unyank"]) + // owners + | ("get" | "put" | "delete", ["api", "v1", "crates", .., "owners"]) => { + if !authorized(true) { + self.unauthorized(req) + } else { + self.ok(&req) + } + } + _ => self.not_found(&req), + } + } + + /// Unauthorized response + fn unauthorized(&self, _req: &Request) -> Response { + Response { + code: 401, + headers: vec![], + body: b"Unauthorized message from server.".to_vec(), + } + } + + /// Not found response + fn not_found(&self, _req: &Request) -> Response { + Response { + code: 404, + headers: vec![], + body: b"not found".to_vec(), + } + } + + /// Respond OK without doing anything + fn ok(&self, _req: &Request) -> Response { + Response { + code: 200, + headers: vec![], + body: br#"{"ok": true, "msg": "completed!"}"#.to_vec(), + } + } + + /// Serve the download endpoint + fn dl(&self, req: &Request) -> Response { + let file = self + .dl_path + .join(req.url.path().strip_prefix("/dl/").unwrap()); + println!("{}", file.display()); + if !file.exists() { + return self.not_found(req); + } + return Response { + body: fs::read(&file).unwrap(), + code: 200, + headers: vec![], + }; + } + + /// Serve the registry index + fn index(&self, req: &Request) -> Response { + let file = self + .registry_path + .join(req.url.path().strip_prefix("/index/").unwrap()); + if !file.exists() { + return self.not_found(req); + } else { + // Now grab info about the file. + let data = fs::read(&file).unwrap(); + let etag = Sha256::new().update(&data).finish_hex(); + let last_modified = format!("{:?}", file.metadata().unwrap().modified().unwrap()); + + // Start to construct our response: + let mut any_match = false; + let mut all_match = true; + if let Some(expected) = &req.if_none_match { + if &etag != expected { + all_match = false; + } else { + any_match = true; + } + } + if let Some(expected) = &req.if_modified_since { + // NOTE: Equality comparison is good enough for tests. + if &last_modified != expected { + all_match = false; + } else { + any_match = true; + } + } + + if any_match && all_match { + return Response { + body: Vec::new(), + code: 304, + headers: vec![], + }; + } else { + return Response { + body: data, + code: 200, + headers: vec![ + format!("ETag: \"{}\"", etag), + format!("Last-Modified: {}", last_modified), + ], + }; + } + } + } } impl Package { /// Creates a new package builder. /// Call `publish()` to finalize and build the package. pub fn new(name: &str, vers: &str) -> Package { - init(); + let config = paths::home().join(".cargo/config"); + if !config.exists() { + init(); + } Package { name: name.to_string(), vers: vers.to_string(), @@ -591,6 +938,7 @@ "features": dep.features, "default_features": true, "target": dep.target, + "artifact": dep.artifact, "optional": dep.optional, "kind": dep.kind, "registry": registry_url, @@ -709,7 +1057,7 @@ if !self.cargo_features.is_empty() { manifest.push_str(&format!( "cargo-features = {}\n\n", - toml::to_string(&self.cargo_features).unwrap() + toml_edit::ser::to_item(&self.cargo_features).unwrap() )); } @@ -744,6 +1092,12 @@ "#, target, kind, dep.name, dep.vers )); + if let Some((artifact, target)) = &dep.artifact { + manifest.push_str(&format!("artifact = \"{}\"\n", artifact)); + if let Some(target) = &target { + manifest.push_str(&format!("target = \"{}\"\n", target)) + } + } if let Some(registry) = &dep.registry { assert_eq!(registry, "alternative"); manifest.push_str(&format!("registry-index = \"{}\"", alt_registry_url())); @@ -782,7 +1136,7 @@ alt_dl_path() .join(&self.name) .join(&self.vers) - .join(&format!("{}-{}.crate", self.name, self.vers)) + .join("download") } else { dl_path().join(&self.name).join(&self.vers).join("download") } @@ -799,6 +1153,7 @@ name: name.to_string(), vers: vers.to_string(), kind: "normal".to_string(), + artifact: None, target: None, features: Vec::new(), package: None, @@ -825,6 +1180,13 @@ self } + /// Change the artifact to be of the given kind, like "bin", or "staticlib", + /// along with a specific target triple if provided. + pub fn artifact(&mut self, kind: &str, target: Option) -> &mut Self { + self.artifact = Some((kind.to_string(), target)); + self + } + /// Adds `registry = $registry` to this dependency. pub fn registry(&mut self, registry: &str) -> &mut Self { self.registry = Some(registry.to_string()); diff -Nru cargo-mozilla-0.57.0/crates/cargo-test-support/src/tools.rs cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/tools.rs --- cargo-mozilla-0.57.0/crates/cargo-test-support/src/tools.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-test-support/src/tools.rs 2022-10-20 06:00:42.000000000 +0000 @@ -2,11 +2,12 @@ use crate::{basic_manifest, paths, project, Project}; use lazy_static::lazy_static; -use std::path::PathBuf; +use std::path::{Path, PathBuf}; use std::sync::Mutex; lazy_static! { static ref ECHO_WRAPPER: Mutex> = Mutex::new(None); + static ref ECHO: Mutex> = Mutex::new(None); } /// Returns the path to an executable that works as a wrapper around rustc. @@ -23,8 +24,17 @@ .file( "src/main.rs", r#" + use std::fs::read_to_string; + use std::path::PathBuf; fn main() { - let args = std::env::args().collect::>(); + // Handle args from `@path` argfile for rustc + let args = std::env::args() + .flat_map(|p| if let Some(p) = p.strip_prefix("@") { + read_to_string(p).unwrap().lines().map(String::from).collect() + } else { + vec![p] + }) + .collect::>(); eprintln!("WRAPPER CALLED: {}", args[1..].join(" ")); let status = std::process::Command::new(&args[1]) .args(&args[2..]).status().unwrap(); @@ -38,6 +48,45 @@ *lock = Some(path.clone()); path } + +/// Returns the path to an executable that prints its arguments. +/// +/// Do not expect this to be anything fancy. +pub fn echo() -> PathBuf { + let mut lock = ECHO.lock().unwrap(); + if let Some(path) = &*lock { + return path.clone(); + } + if let Ok(path) = cargo_util::paths::resolve_executable(Path::new("echo")) { + *lock = Some(path.clone()); + return path; + } + // Often on Windows, `echo` is not available. + let p = project() + .at(paths::global_root().join("basic-echo")) + .file("Cargo.toml", &basic_manifest("basic-echo", "1.0.0")) + .file( + "src/main.rs", + r#" + fn main() { + let mut s = String::new(); + let mut it = std::env::args().skip(1).peekable(); + while let Some(n) = it.next() { + s.push_str(&n); + if it.peek().is_some() { + s.push(' '); + } + } + println!("{}", s); + } + "#, + ) + .build(); + p.cargo("build").run(); + let path = p.bin("basic-echo"); + *lock = Some(path.clone()); + path +} /// Returns a project which builds a cargo-echo simple subcommand pub fn echo_subcommand() -> Project { diff -Nru cargo-mozilla-0.57.0/crates/cargo-util/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/cargo-util/Cargo.toml --- cargo-mozilla-0.57.0/crates/cargo-util/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-util/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "cargo-util" -version = "0.1.1" -authors = ["The Cargo Project Developers"] -edition = "2018" +version = "0.2.2" +edition = "2021" license = "MIT OR Apache-2.0" homepage = "https://github.com/rust-lang/cargo" repository = "https://github.com/rust-lang/cargo" diff -Nru cargo-mozilla-0.57.0/crates/cargo-util/src/paths.rs cargo-mozilla-0.66.0+ds1/crates/cargo-util/src/paths.rs --- cargo-mozilla-0.57.0/crates/cargo-util/src/paths.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-util/src/paths.rs 2022-10-20 06:00:42.000000000 +0000 @@ -123,15 +123,13 @@ }); for candidate in candidates { if candidate.is_file() { - // PATH may have a component like "." in it, so we still need to - // canonicalize. - return Ok(candidate.canonicalize()?); + return Ok(candidate); } } anyhow::bail!("no executable for `{}` found in PATH", exec.display()) } else { - Ok(exec.canonicalize()?) + Ok(exec.into()) } } @@ -252,7 +250,7 @@ // race with unlinking?). Regardless, if Cargo can't // read it, the build script probably can't either. log::debug!( - "failed to determine mtime while fetching symlink metdata of {}: {}", + "failed to determine mtime while fetching symlink metadata of {}: {}", e.path().display(), err ); @@ -422,7 +420,6 @@ fn _remove_dir_all(p: &Path) -> Result<()> { if p.symlink_metadata() .with_context(|| format!("could not get metadata for `{}` to remove", p.display()))? - .file_type() .is_symlink() { return remove_file(p); @@ -541,7 +538,18 @@ // gory details. fs::copy(src, dst).map(|_| ()) } else { - fs::hard_link(src, dst) + if cfg!(target_os = "macos") { + // This is a work-around for a bug on macos. There seems to be a race condition + // with APFS when hard-linking binaries. Gatekeeper does not have signing or + // hash information stored in kernel when running the process. Therefore killing it. + // This problem does not appear when copying files as kernel has time to process it. + // Note that: fs::copy on macos is using CopyOnWrite (syscall fclonefileat) which should be + // as fast as hardlinking. + // See https://github.com/rust-lang/cargo/issues/10060 for the details + fs::copy(src, dst).map(|_| ()) + } else { + fs::hard_link(src, dst) + } }; link_result .or_else(|err| { @@ -624,7 +632,7 @@ let parent = path.parent().unwrap(); let base = path.file_name().unwrap(); create_dir_all(parent)?; - // We do this in two steps (first create a temporary directory and exlucde + // We do this in two steps (first create a temporary directory and exclude // it from backups, then rename it to the desired name. If we created the // directory directly where it should be and then excluded it from backups // we would risk a situation where cargo is interrupted right after the directory @@ -652,6 +660,15 @@ Ok(()) } +/// Mark an existing directory as excluded from backups and indexing. +/// +/// Errors in marking it are ignored. +pub fn exclude_from_backups_and_indexing(p: impl AsRef) { + let path = p.as_ref(); + exclude_from_backups(path); + exclude_from_content_indexing(path); +} + /// Marks the directory as excluded from archives/backups. /// /// This is recommended to prevent derived/temporary files from bloating backups. There are two diff -Nru cargo-mozilla-0.57.0/crates/cargo-util/src/process_builder.rs cargo-mozilla-0.66.0+ds1/crates/cargo-util/src/process_builder.rs --- cargo-mozilla-0.57.0/crates/cargo-util/src/process_builder.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-util/src/process_builder.rs 2022-10-20 06:00:42.000000000 +0000 @@ -1,15 +1,19 @@ use crate::process_error::ProcessError; use crate::read2; + use anyhow::{bail, Context, Result}; use jobserver::Client; use shell_escape::escape; +use tempfile::NamedTempFile; + use std::collections::BTreeMap; use std::env; use std::ffi::{OsStr, OsString}; use std::fmt; +use std::io::{self, Write}; use std::iter::once; use std::path::Path; -use std::process::{Command, Output, Stdio}; +use std::process::{Command, ExitStatus, Output, Stdio}; /// A builder object for an external process, similar to [`std::process::Command`]. #[derive(Clone, Debug)] @@ -22,6 +26,9 @@ env: BTreeMap>, /// The directory to run the program from. cwd: Option, + /// A list of wrappers that wrap the original program when calling + /// [`ProcessBuilder::wrapped`]. The last one is the outermost one. + wrappers: Vec, /// The `make` jobserver. See the [jobserver crate] for /// more information. /// @@ -29,6 +36,11 @@ jobserver: Option, /// `true` to include environment variable in display. display_env_vars: bool, + /// `true` to retry with an argfile if hitting "command line too big" error. + /// See [`ProcessBuilder::retry_with_argfile`] for more information. + retry_with_argfile: bool, + /// Data to write to stdin. + stdin: Option>, } impl fmt::Display for ProcessBuilder { @@ -48,9 +60,9 @@ } } - write!(f, "{}", self.program.to_string_lossy())?; + write!(f, "{}", self.get_program().to_string_lossy())?; - for arg in &self.args { + for arg in self.get_args() { write!(f, " {}", escape(arg.to_string_lossy()))?; } @@ -66,8 +78,11 @@ args: Vec::new(), cwd: None, env: BTreeMap::new(), + wrappers: Vec::new(), jobserver: None, display_env_vars: false, + retry_with_argfile: false, + stdin: None, } } @@ -92,6 +107,13 @@ /// (chainable) Replaces the args list with the given `args`. pub fn args_replace>(&mut self, args: &[T]) -> &mut ProcessBuilder { + if let Some(program) = self.wrappers.pop() { + // User intend to replace all args, so we + // - use the outermost wrapper as the main program, and + // - cleanup other inner wrappers. + self.program = program; + self.wrappers = Vec::new(); + } self.args = args.iter().map(|t| t.as_ref().to_os_string()).collect(); self } @@ -117,12 +139,17 @@ /// Gets the executable name. pub fn get_program(&self) -> &OsString { - &self.program + self.wrappers.last().unwrap_or(&self.program) } /// Gets the program arguments. - pub fn get_args(&self) -> &[OsString] { - &self.args + pub fn get_args(&self) -> impl Iterator { + self.wrappers + .iter() + .rev() + .chain(once(&self.program)) + .chain(self.args.iter()) + .skip(1) // Skip the main `program } /// Gets the current working directory for the process. @@ -161,13 +188,62 @@ self } + /// Enables retrying with an argfile if hitting "command line too big" error + /// + /// This is primarily for the `@path` arg of rustc and rustdoc, which treat + /// each line as an command-line argument, so `LF` and `CRLF` bytes are not + /// valid as an argument for argfile at this moment. + /// For example, `RUSTDOCFLAGS="--crate-version foo\nbar" cargo doc` is + /// valid when invoking from command-line but not from argfile. + /// + /// To sum up, the limitations of the argfile are: + /// + /// - Must be valid UTF-8 encoded. + /// - Must not contain any newlines in each argument. + /// + /// Ref: + /// + /// - https://doc.rust-lang.org/rustdoc/command-line-arguments.html#path-load-command-line-flags-from-a-path + /// - https://doc.rust-lang.org/rustc/command-line-arguments.html#path-load-command-line-flags-from-a-path> + pub fn retry_with_argfile(&mut self, enabled: bool) -> &mut Self { + self.retry_with_argfile = enabled; + self + } + + /// Sets a value that will be written to stdin of the process on launch. + pub fn stdin>>(&mut self, stdin: T) -> &mut Self { + self.stdin = Some(stdin.into()); + self + } + + fn should_retry_with_argfile(&self, err: &io::Error) -> bool { + self.retry_with_argfile && imp::command_line_too_big(err) + } + + /// Like [`Command::status`] but with a better error message. + pub fn status(&self) -> Result { + self._status() + .with_context(|| ProcessError::could_not_execute(self)) + } + + fn _status(&self) -> io::Result { + if !debug_force_argfile(self.retry_with_argfile) { + let mut cmd = self.build_command(); + match cmd.spawn() { + Err(ref e) if self.should_retry_with_argfile(e) => {} + Err(e) => return Err(e), + Ok(mut child) => return child.wait(), + } + } + let (mut cmd, argfile) = self.build_command_with_argfile()?; + let status = cmd.spawn()?.wait(); + close_tempfile_and_log_error(argfile); + status + } + /// Runs the process, waiting for completion, and mapping non-success exit codes to an error. pub fn exec(&self) -> Result<()> { - let mut command = self.build_command(); - let exit = command.status().with_context(|| { - ProcessError::new(&format!("could not execute process {}", self), None, None) - })?; - + let exit = self.status()?; if exit.success() { Ok(()) } else { @@ -199,14 +275,39 @@ imp::exec_replace(self) } - /// Executes the process, returning the stdio output, or an error if non-zero exit status. - pub fn exec_with_output(&self) -> Result { - let mut command = self.build_command(); + /// Like [`Command::output`] but with a better error message. + pub fn output(&self) -> Result { + self._output() + .with_context(|| ProcessError::could_not_execute(self)) + } - let output = command.output().with_context(|| { - ProcessError::new(&format!("could not execute process {}", self), None, None) - })?; + fn _output(&self) -> io::Result { + if !debug_force_argfile(self.retry_with_argfile) { + let mut cmd = self.build_command(); + match piped(&mut cmd, self.stdin.is_some()).spawn() { + Err(ref e) if self.should_retry_with_argfile(e) => {} + Err(e) => return Err(e), + Ok(mut child) => { + if let Some(stdin) = &self.stdin { + child.stdin.take().unwrap().write_all(stdin)?; + } + return child.wait_with_output(); + } + } + } + let (mut cmd, argfile) = self.build_command_with_argfile()?; + let mut child = piped(&mut cmd, self.stdin.is_some()).spawn()?; + if let Some(stdin) = &self.stdin { + child.stdin.take().unwrap().write_all(stdin)?; + } + let output = child.wait_with_output(); + close_tempfile_and_log_error(argfile); + output + } + /// Executes the process, returning the stdio output, or an error if non-zero exit status. + pub fn exec_with_output(&self) -> Result { + let output = self.output()?; if output.status.success() { Ok(output) } else { @@ -237,16 +338,25 @@ let mut stdout = Vec::new(); let mut stderr = Vec::new(); - let mut cmd = self.build_command(); - cmd.stdout(Stdio::piped()) - .stderr(Stdio::piped()) - .stdin(Stdio::null()); - let mut callback_error = None; let mut stdout_pos = 0; let mut stderr_pos = 0; + + let spawn = |mut cmd| { + if !debug_force_argfile(self.retry_with_argfile) { + match piped(&mut cmd, false).spawn() { + Err(ref e) if self.should_retry_with_argfile(e) => {} + Err(e) => return Err(e), + Ok(child) => return Ok((child, None)), + } + } + let (mut cmd, argfile) = self.build_command_with_argfile()?; + Ok((piped(&mut cmd, false).spawn()?, Some(argfile))) + }; + let status = (|| { - let mut child = cmd.spawn()?; + let cmd = self.build_command(); + let (mut child, argfile) = spawn(cmd)?; let out = child.stdout.take().unwrap(); let err = child.stderr.take().unwrap(); read2(out, err, &mut |is_out, data, eof| { @@ -292,11 +402,13 @@ data.drain(..idx); *pos = 0; })?; - child.wait() + let status = child.wait(); + if let Some(argfile) = argfile { + close_tempfile_and_log_error(argfile); + } + status })() - .with_context(|| { - ProcessError::new(&format!("could not execute process {}", self), None, None) - })?; + .with_context(|| ProcessError::could_not_execute(self))?; let output = Output { status, stdout, @@ -324,16 +436,56 @@ Ok(output) } - /// Converts `ProcessBuilder` into a `std::process::Command`, and handles the jobserver, if - /// present. - pub fn build_command(&self) -> Command { - let mut command = Command::new(&self.program); + /// Builds the command with an `@` argfile that contains all the + /// arguments. This is primarily served for rustc/rustdoc command family. + fn build_command_with_argfile(&self) -> io::Result<(Command, NamedTempFile)> { + use std::io::Write as _; + + let mut tmp = tempfile::Builder::new() + .prefix("cargo-argfile.") + .tempfile()?; + + let mut arg = OsString::from("@"); + arg.push(tmp.path()); + let mut cmd = self.build_command_without_args(); + cmd.arg(arg); + log::debug!("created argfile at {} for {self}", tmp.path().display()); + + let cap = self.get_args().map(|arg| arg.len() + 1).sum::(); + let mut buf = Vec::with_capacity(cap); + for arg in &self.args { + let arg = arg.to_str().ok_or_else(|| { + io::Error::new( + io::ErrorKind::Other, + format!( + "argument for argfile contains invalid UTF-8 characters: `{}`", + arg.to_string_lossy() + ), + ) + })?; + if arg.contains('\n') { + return Err(io::Error::new( + io::ErrorKind::Other, + format!("argument for argfile contains newlines: `{arg}`"), + )); + } + writeln!(buf, "{arg}")?; + } + tmp.write_all(&mut buf)?; + Ok((cmd, tmp)) + } + + /// Builds a command from `ProcessBuilder` for everything but not `args`. + fn build_command_without_args(&self) -> Command { + let mut command = { + let mut iter = self.wrappers.iter().rev().chain(once(&self.program)); + let mut cmd = Command::new(iter.next().expect("at least one `program` exists")); + cmd.args(iter); + cmd + }; if let Some(cwd) = self.get_cwd() { command.current_dir(cwd); } - for arg in &self.args { - command.arg(arg); - } for (k, v) in &self.env { match *v { Some(ref v) => { @@ -350,6 +502,19 @@ command } + /// Converts `ProcessBuilder` into a `std::process::Command`, and handles + /// the jobserver, if present. + /// + /// Note that this method doesn't take argfile fallback into account. The + /// caller should handle it by themselves. + pub fn build_command(&self) -> Command { + let mut command = self.build_command_without_args(); + for arg in &self.args { + command.arg(arg); + } + command + } + /// Wraps an existing command with the provided wrapper, if it is present and valid. /// /// # Examples @@ -363,46 +528,84 @@ /// let cmd = cmd.wrapped(Some("sccache")); /// ``` pub fn wrapped(mut self, wrapper: Option>) -> Self { - let wrapper = if let Some(wrapper) = wrapper.as_ref() { - wrapper.as_ref() - } else { - return self; - }; - - if wrapper.is_empty() { - return self; + if let Some(wrapper) = wrapper.as_ref() { + let wrapper = wrapper.as_ref(); + if !wrapper.is_empty() { + self.wrappers.push(wrapper.to_os_string()); + } } + self + } +} - let args = once(self.program).chain(self.args.into_iter()).collect(); +/// Forces the command to use `@path` argfile. +/// +/// You should set `__CARGO_TEST_FORCE_ARGFILE` to enable this. +fn debug_force_argfile(retry_enabled: bool) -> bool { + cfg!(debug_assertions) && env::var("__CARGO_TEST_FORCE_ARGFILE").is_ok() && retry_enabled +} - self.program = wrapper.to_os_string(); - self.args = args; +/// Creates new pipes for stderr, stdout, and optionally stdin. +fn piped(cmd: &mut Command, pipe_stdin: bool) -> &mut Command { + cmd.stdout(Stdio::piped()) + .stderr(Stdio::piped()) + .stdin(if pipe_stdin { + Stdio::piped() + } else { + Stdio::null() + }) +} - self - } +fn close_tempfile_and_log_error(file: NamedTempFile) { + file.close().unwrap_or_else(|e| { + log::warn!("failed to close temporary file: {e}"); + }); } #[cfg(unix)] mod imp { - use super::{ProcessBuilder, ProcessError}; + use super::{close_tempfile_and_log_error, debug_force_argfile, ProcessBuilder, ProcessError}; use anyhow::Result; + use std::io; use std::os::unix::process::CommandExt; pub fn exec_replace(process_builder: &ProcessBuilder) -> Result<()> { - let mut command = process_builder.build_command(); - let error = command.exec(); + let mut error; + let mut file = None; + if debug_force_argfile(process_builder.retry_with_argfile) { + let (mut command, argfile) = process_builder.build_command_with_argfile()?; + file = Some(argfile); + error = command.exec() + } else { + let mut command = process_builder.build_command(); + error = command.exec(); + if process_builder.should_retry_with_argfile(&error) { + let (mut command, argfile) = process_builder.build_command_with_argfile()?; + file = Some(argfile); + error = command.exec() + } + } + if let Some(file) = file { + close_tempfile_and_log_error(file); + } + Err(anyhow::Error::from(error).context(ProcessError::new( &format!("could not execute process {}", process_builder), None, None, ))) } + + pub fn command_line_too_big(err: &io::Error) -> bool { + err.raw_os_error() == Some(libc::E2BIG) + } } #[cfg(windows)] mod imp { use super::{ProcessBuilder, ProcessError}; use anyhow::Result; + use std::io; use winapi::shared::minwindef::{BOOL, DWORD, FALSE, TRUE}; use winapi::um::consoleapi::SetConsoleCtrlHandler; @@ -421,4 +624,66 @@ // Just execute the process as normal. process_builder.exec() } + + pub fn command_line_too_big(err: &io::Error) -> bool { + use winapi::shared::winerror::ERROR_FILENAME_EXCED_RANGE; + err.raw_os_error() == Some(ERROR_FILENAME_EXCED_RANGE as i32) + } +} + +#[cfg(test)] +mod tests { + use super::ProcessBuilder; + use std::fs; + + #[test] + fn argfile_build_succeeds() { + let mut cmd = ProcessBuilder::new("echo"); + cmd.args(["foo", "bar"].as_slice()); + let (cmd, argfile) = cmd.build_command_with_argfile().unwrap(); + + assert_eq!(cmd.get_program(), "echo"); + let cmd_args: Vec<_> = cmd.get_args().map(|s| s.to_str().unwrap()).collect(); + assert_eq!(cmd_args.len(), 1); + assert!(cmd_args[0].starts_with("@")); + assert!(cmd_args[0].contains("cargo-argfile.")); + + let buf = fs::read_to_string(argfile.path()).unwrap(); + assert_eq!(buf, "foo\nbar\n"); + } + + #[test] + fn argfile_build_fails_if_arg_contains_newline() { + let mut cmd = ProcessBuilder::new("echo"); + cmd.arg("foo\n"); + let err = cmd.build_command_with_argfile().unwrap_err(); + assert_eq!( + err.to_string(), + "argument for argfile contains newlines: `foo\n`" + ); + } + + #[test] + fn argfile_build_fails_if_arg_contains_invalid_utf8() { + let mut cmd = ProcessBuilder::new("echo"); + + #[cfg(windows)] + let invalid_arg = { + use std::os::windows::prelude::*; + std::ffi::OsString::from_wide(&[0x0066, 0x006f, 0xD800, 0x006f]) + }; + + #[cfg(unix)] + let invalid_arg = { + use std::os::unix::ffi::OsStrExt; + std::ffi::OsStr::from_bytes(&[0x66, 0x6f, 0x80, 0x6f]).to_os_string() + }; + + cmd.arg(invalid_arg); + let err = cmd.build_command_with_argfile().unwrap_err(); + assert_eq!( + err.to_string(), + "argument for argfile contains invalid UTF-8 characters: `fo�o`" + ); + } } diff -Nru cargo-mozilla-0.57.0/crates/cargo-util/src/process_error.rs cargo-mozilla-0.66.0+ds1/crates/cargo-util/src/process_error.rs --- cargo-mozilla-0.57.0/crates/cargo-util/src/process_error.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/cargo-util/src/process_error.rs 2022-10-20 06:00:42.000000000 +0000 @@ -95,6 +95,13 @@ stderr: stderr.map(|s| s.to_vec()), } } + + /// Creates a [`ProcessError`] with "could not execute process {cmd}". + /// + /// * `cmd` is usually but not limited to [`std::process::Command`]. + pub fn could_not_execute(cmd: impl fmt::Display) -> ProcessError { + ProcessError::new(&format!("could not execute process {cmd}"), None, None) + } } /// Converts an [`ExitStatus`] to a human-readable string suitable for diff -Nru cargo-mozilla-0.57.0/crates/crates-io/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/crates-io/Cargo.toml --- cargo-mozilla-0.57.0/crates/crates-io/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/crates-io/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "crates-io" -version = "0.33.0" -edition = "2018" -authors = ["Alex Crichton "] +version = "0.34.0" +edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = """ diff -Nru cargo-mozilla-0.57.0/crates/crates-io/lib.rs cargo-mozilla-0.66.0+ds1/crates/crates-io/lib.rs --- cargo-mozilla-0.57.0/crates/crates-io/lib.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/crates-io/lib.rs 2022-10-20 06:00:42.000000000 +0000 @@ -55,8 +55,6 @@ pub repository: Option, pub badges: BTreeMap>, pub links: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub v: Option, } #[derive(Serialize)] diff -Nru cargo-mozilla-0.57.0/crates/credential/cargo-credential/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential/Cargo.toml --- cargo-mozilla-0.57.0/crates/credential/cargo-credential/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "cargo-credential" version = "0.1.0" -authors = ["The Rust Project Developers"] -edition = "2018" +edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = "A library to assist writing Cargo credential helpers." diff -Nru cargo-mozilla-0.57.0/crates/credential/cargo-credential-1password/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-1password/Cargo.toml --- cargo-mozilla-0.57.0/crates/credential/cargo-credential-1password/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-1password/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "cargo-credential-1password" version = "0.1.0" -authors = ["The Rust Project Developers"] -edition = "2018" +edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens in a 1password vault." diff -Nru cargo-mozilla-0.57.0/crates/credential/cargo-credential-gnome-secret/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-gnome-secret/Cargo.toml --- cargo-mozilla-0.57.0/crates/credential/cargo-credential-gnome-secret/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-gnome-secret/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "cargo-credential-gnome-secret" version = "0.1.0" -authors = ["The Rust Project Developers"] -edition = "2018" +edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens with GNOME libsecret." diff -Nru cargo-mozilla-0.57.0/crates/credential/cargo-credential-macos-keychain/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-macos-keychain/Cargo.toml --- cargo-mozilla-0.57.0/crates/credential/cargo-credential-macos-keychain/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-macos-keychain/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "cargo-credential-macos-keychain" version = "0.1.0" -authors = ["The Rust Project Developers"] -edition = "2018" +edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens in a macOS keychain." diff -Nru cargo-mozilla-0.57.0/crates/credential/cargo-credential-wincred/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-wincred/Cargo.toml --- cargo-mozilla-0.57.0/crates/credential/cargo-credential-wincred/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/credential/cargo-credential-wincred/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "cargo-credential-wincred" version = "0.1.0" -authors = ["The Rust Project Developers"] -edition = "2018" +edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens with Windows Credential Manager." diff -Nru cargo-mozilla-0.57.0/crates/mdman/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/mdman/Cargo.toml --- cargo-mozilla-0.57.0/crates/mdman/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/mdman/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,8 +1,7 @@ [package] name = "mdman" version = "0.1.0" -authors = ["Eric Huss"] -edition = "2018" +edition = "2021" license = "MIT OR Apache-2.0" description = "Creates a man page page from markdown." diff -Nru cargo-mozilla-0.57.0/crates/mdman/src/hbs.rs cargo-mozilla-0.66.0+ds1/crates/mdman/src/hbs.rs --- cargo-mozilla-0.57.0/crates/mdman/src/hbs.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/mdman/src/hbs.rs 2022-10-20 06:00:42.000000000 +0000 @@ -7,7 +7,6 @@ RenderContext, RenderError, Renderable, }; use std::collections::HashMap; -use std::convert::TryFrom; use std::path::Path; type FormatterRef<'a> = &'a (dyn Formatter + Send + Sync); @@ -24,14 +23,13 @@ handlebars.register_template_file("template", file)?; let includes = file.parent().unwrap().join("includes"); handlebars.register_templates_directory(".md", includes)?; - let mut data: HashMap = HashMap::new(); let man_name = file .file_stem() .expect("expected filename") .to_str() .expect("utf8 filename") .to_string(); - data.insert("man_name".to_string(), man_name); + let data = HashMap::from([("man_name", man_name)]); let expanded = handlebars.render("template", &data)?; Ok(expanded) } diff -Nru cargo-mozilla-0.57.0/crates/resolver-tests/Cargo.toml cargo-mozilla-0.66.0+ds1/crates/resolver-tests/Cargo.toml --- cargo-mozilla-0.57.0/crates/resolver-tests/Cargo.toml 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/resolver-tests/Cargo.toml 2022-10-20 06:00:42.000000000 +0000 @@ -1,7 +1,6 @@ [package] name = "resolver-tests" version = "0.1.0" -authors = ["Alex Crichton "] edition = "2018" [dependencies] diff -Nru cargo-mozilla-0.57.0/crates/resolver-tests/src/lib.rs cargo-mozilla-0.66.0+ds1/crates/resolver-tests/src/lib.rs --- cargo-mozilla-0.57.0/crates/resolver-tests/src/lib.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/crates/resolver-tests/src/lib.rs 2022-10-20 06:00:42.000000000 +0000 @@ -7,11 +7,12 @@ use std::fmt; use std::fmt::Write; use std::rc::Rc; +use std::task::Poll; use std::time::Instant; use cargo::core::dependency::DepKind; use cargo::core::resolver::{self, ResolveOpts, VersionPreferences}; -use cargo::core::source::{GitReference, SourceId}; +use cargo::core::source::{GitReference, QueryKind, SourceId}; use cargo::core::Resolve; use cargo::core::{Dependency, PackageId, Registry, Summary}; use cargo::util::{CargoResult, Config, Graph, IntoUrl}; @@ -127,16 +128,20 @@ fn query( &mut self, dep: &Dependency, + kind: QueryKind, f: &mut dyn FnMut(Summary), - fuzzy: bool, - ) -> CargoResult<()> { + ) -> Poll> { for summary in self.list.iter() { - if fuzzy || dep.matches(summary) { + let matched = match kind { + QueryKind::Exact => dep.matches(summary), + QueryKind::Fuzzy => true, + }; + if matched { self.used.insert(summary.package_id()); f(summary.clone()); } } - Ok(()) + Poll::Ready(Ok(())) } fn describe_source(&self, _src: SourceId) -> String { @@ -146,6 +151,10 @@ fn is_replaced(&self, _src: SourceId) -> bool { false } + + fn block_until_ready(&mut self) -> CargoResult<()> { + Ok(()) + } } impl<'a> Drop for MyRegistry<'a> { fn drop(&mut self) { diff -Nru cargo-mozilla-0.57.0/debian/README.source cargo-mozilla-0.66.0+ds1/debian/README.source --- cargo-mozilla-0.57.0/debian/README.source 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/README.source 2023-01-11 17:55:09.000000000 +0000 @@ -10,6 +10,10 @@ 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. diff -Nru cargo-mozilla-0.57.0/debian/bin/cargo cargo-mozilla-0.66.0+ds1/debian/bin/cargo --- cargo-mozilla-0.57.0/debian/bin/cargo 2022-03-15 12:14:49.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/bin/cargo 2023-01-11 17:55:09.000000000 +0000 @@ -96,8 +96,15 @@ for f in ldflags: rustflags.extend(["-C", "link-arg=%s" % f]) if link_from_system: - rustflags.extend(["--remap-path-prefix", "%s=%s/%s" % - (sourcepath(), SYSTEM_REGISTRY, cratespec.replace("_", "-"))]) + 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: diff -Nru cargo-mozilla-0.57.0/debian/changelog cargo-mozilla-0.66.0+ds1/debian/changelog --- cargo-mozilla-0.57.0/debian/changelog 2022-07-01 10:25:10.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/changelog 2023-07-30 08:37:52.000000000 +0000 @@ -1,14 +1,75 @@ -cargo-mozilla (0.57.0-7~deb11u1) bullseye; urgency=medium +cargo-mozilla (0.66.0+ds1-1~deb11u1) bullseye; urgency=medium * Non-maintainer upload. * Backport to bullseye as cargo-mozilla. * Build-dep on rustc-mozilla. * Don't build the doc package. - * Vendor libgit2 1.3.0, the system one is too old. + * Vendor libgit2 1.5.1, the system one is too old. * Build-dep on libpcre3-dev, for libgit2. - * Disable build::close_output_during_drain test as it hangs in bullseye. + * Don't use namespaced features. - -- Emilio Pozuelo Monfort Fri, 01 Jul 2022 12:25:10 +0200 + -- Emilio Pozuelo Monfort Sun, 30 Jul 2023 10:37:52 +0200 + +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 diff -Nru cargo-mozilla-0.57.0/debian/control cargo-mozilla-0.66.0+ds1/debian/control --- cargo-mozilla-0.57.0/debian/control 2022-07-01 10:25:10.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/control 2023-07-30 08:37:52.000000000 +0000 @@ -10,20 +10,21 @@ Build-Depends: debhelper (>= 12~), dpkg-dev (>= 1.17.14), - cargo:native (>= 0.17.0), - rustc-mozilla:native (>= 1.16), - libstd-rust-mozilla-dev (>= 1.16), + cargo-mozilla:native (>= 0.56.0), + rustc-mozilla:native (>= 1.63), + libstd-rust-mozilla-dev (>= 1.63), pkg-config, bash-completion, python3:native, libcurl4-gnutls-dev | libcurl4-openssl-dev, libssh2-1-dev, -# libgit2-dev (>= 1.3.0), -# libgit2-dev (<< 1.4~~), +# libgit2-dev (>= 1.5.0), +# libgit2-dev (<< 1.6~~), libhttp-parser-dev, libpcre3-dev, libssl-dev, zlib1g-dev, + zlib1g-dev:native, git Homepage: https://crates.io/ Standards-Version: 4.2.1 diff -Nru cargo-mozilla-0.57.0/debian/copyright cargo-mozilla-0.66.0+ds1/debian/copyright --- cargo-mozilla-0.57.0/debian/copyright 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/copyright 2023-01-11 17:55:09.000000000 +0000 @@ -3,6 +3,7 @@ Source: https://github.com/rust-lang/cargo Files: + benches/* crates/* src/* tests/* @@ -11,11 +12,8 @@ Cargo.* LICENSE-* README.* - ARCHITECTURE.* CHANGELOG.* CONTRIBUTING.* - appveyor.yml - azure-pipelines.yml ci/* publish.py triagebot.toml @@ -25,11 +23,9 @@ help us update this file properly Files: vendor/bitflags/* - vendor/bufstream/* vendor/env_logger/* vendor/env_logger-0*/* vendor/flate2/* - vendor/fs2/* vendor/glob/* vendor/libc/* vendor/log/* @@ -37,10 +33,7 @@ vendor/regex-syntax/* vendor/semver/* vendor/shell-escape/* - vendor/vec_map/* vendor/unicode-width/* - vendor/num-integer/* - vendor/num-traits/* Copyright: 2010-2019 The Rust Project Developers License: MIT or Apache-2.0 Comment: @@ -50,11 +43,8 @@ Exceptions are noted below. Files: - vendor/backtrace/* - vendor/backtrace-sys/* vendor/cc/* vendor/cfg-if/* - vendor/cfg-if-0*/* vendor/filetime/* vendor/fnv/* vendor/git2/* @@ -68,13 +58,9 @@ vendor/pkg-config/* vendor/proc-macro2/* vendor/rustc-workspace-hack/* - vendor/rustc-demangle/* vendor/tar/* - vendor/time/* - vendor/toml/* vendor/socket2/* vendor/libnghttp2-sys/* - vendor/wait-timeout/* Copyright: 2014-2018 Alex Crichton 2014-2018 The Rust Project Developers License: MIT or Apache-2.0 @@ -83,54 +69,33 @@ see https://github.com/servo/rust-fnv Files: - vendor/getrandom/* - vendor/rand/* - vendor/rand-0*/* vendor/rand_core/* - vendor/rand_core-0*/* - vendor/rand_chacha/* - vendor/rand_chacha-0*/* - vendor/rand_hc/* - vendor/rand_hc-0*/* - vendor/rand_isaac/* - vendor/rand_jitter/* - vendor/rand_os/* - vendor/rand_pcg/* vendor/rand_xoshiro/* - vendor/rand_xorshift/* 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/getrandom - see https://github.com/rust-random/rand +Comment: see https://github.com/rust-random/rand Files: vendor/aho-corasick/* - vendor/memchr/* - vendor/utf8-ranges/* - vendor/wincolor/* - vendor/termcolor/* + vendor/bytesize/* vendor/globset/* vendor/ignore/* + vendor/memchr/* vendor/same-file/* + vendor/termcolor/* vendor/walkdir/* vendor/winapi-util/* - vendor/byteorder/* - vendor/bytesize/* Copyright: 2015-2018 Andrew Gallant License: MIT or Unlicense Comment: see upstream projects, - * https://github.com/docopt/docopt.rs * https://github.com/BurntSushi/aho-corasick - * https://github.com/BurntSushi/rust-memchr - * https://github.com/BurntSushi/utf8-ranges - * https://github.com/BurntSushi/ripgrep/tree/master/wincolor - * https://github.com/BurntSushi/ripgrep/tree/master/termcolor * 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 @@ -144,11 +109,6 @@ License: 0BSD OR MIT OR Apache-2.0 Comment: see https://github.com/jonas-schievink/adler.git -Files: vendor/adler32/* -Copyright: 2015-2019 Remi Rampin -License: Zlib -Comment: see https://github.com/remram44/adler32-rs - Files: vendor/arrayvec/* vendor/either/* @@ -160,25 +120,29 @@ 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: +Files: vendor/block-buffer/* +Copyright: 2016-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/utils + +Files: vendor/bstr/* - vendor/ucd-util/* + vendor/bstr-*/* Copyright: 2015-2019 Andrew Gallant License: MIT or Apache-2.0 Comment: see https://github.com/BurntSushi/bstr - see https://github.com/BurntSushi/rucd - -Files: vendor/ansi_term/* -Copyright: 2014, Benjamin Sago - Ryan Scheel (Havvy) - Josh Triplett -License: MIT Files: vendor/atty/* Copyright: 2015-2016, Doug Tangren @@ -190,38 +154,34 @@ License: Apache-2.0 or MIT Comment: see https://github.com/cuviper/autocfg -Files: vendor/bit-set/* - vendor/bit-vec/* -Copyright: 2016 The Rust Project Developers - Alexis Beingessner -License: MIT or Apache-2.0 - Files: vendor/bytes/* Copyright: 2015-2019 Carl Lerche License: MIT Comment: see https://github.com/carllerche/bytes Files: - vendor/c2-chacha/* - vendor/ppv-lite86/* -Copyright: 2019-2019 The CryptoCorrosion Contributors -License: MIT or Apache-2.0 -Comment: see https://github.com/cryptocorrosion/cryptocorrosion - -Files: vendor/chrono/* -Copyright: 2014-2018 Kang Seonghoon - 2014-2018 Brandon W Maister + vendor/clap/* + vendor/clap_lex/* +Copyright: 2015-2022, Kevin B. Knapp + 2015-2022, Clap Contributors License: MIT or Apache-2.0 -Comment: see https://github.com/chronotope/chrono +Comment: see https://github.com/clap-rs/clap -Files: vendor/clap/* -Copyright: 2015-2016, Kevin B. Knapp +Files: vendor/combine/* +Copyright: 2015-2022 Markus Westerlind License: MIT +Comment: see https://github.com/Marwes/combine -Files: vendor/cloudabi/* -Copyright: Nuxi and contributors -License: BSD-2-clause -Comment: See https://github.com/nuxinl/cloudabi +Files: vendor/concolor/* + vendor/concolor-query/* +Copyright: 2021-2022 Ed Page +License: MIT OR Apache-2.0 +Comment: see https://github.com/rust-cli/concolor + +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/* @@ -230,18 +190,26 @@ License: MIT or Apache-2.0 Comment: see https://github.com/servo/core-foundation-rs +Files: vendor/cpufeatures/* +Copyright: 2016-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/utils + Files: vendor/crc32fast/* Copyright: 2018, Sam Rijs 2018, Alex Crichton License: MIT or Apache-2.0 -Files: - vendor/crossbeam-channel/* - vendor/crossbeam-utils/* +Files: vendor/crossbeam-utils/* Copyright: 2017-2018 The Crossbeam Project Developers License: MIT or Apache-2.0 Comment: see https://github.com/crossbeam-rs +Files: vendor/crypto-common/* +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/* @@ -258,47 +226,49 @@ License: MIT Comment: see https://github.com/alexcrichton/curl-rust -Files: vendor/failure/* - vendor/failure_derive/* -Copyright: Without Boats -License: MIT or Apache-2.0 -Comment: - * see https://github.com/withoutboats/failure - * see https://github.com/withoutboats/failure_derive +Files: vendor/digest/* +Copyright: 2017-2023 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/traits -Files: vendor/fuchsia-cprng/* -Copyright: - 2018 The Fuchsia Authors - 2018 Erick Tryzelaar -License: BSD-3-Clause -Comment: see https://fuchsia.googlesource.com/fuchsia/+/master/garnet/public/rust/fuchsia-cprng +Files: vendor/dunce/* +Copyright: 2017-2021 Kornel +License: CC0-1.0 +Comment: see https://gitlab.com/kornelski/dunce -Files: vendor/hermit-abi/* -Copyright: 2019-2019 Stefan Lankes -License: MIT or Apache-2.0 -Comment: see https://github.com/hermitcore/hermit-abi +Files: vendor/fastrand/* +Copyright: 2020-2022 Stjepan Glavina +License: Apache-2.0 OR MIT +Comment: see https://github.com/smol-rs/fastrand -Files: - vendor/hex/* - vendor/hex-0*/* +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/hashbrown/* +Copyright: 2018-2022 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/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/* -Copyright: 2017-2019 Alex Crichton - 2017-2019 Carl Lerche - 2017-2019 Sean McArthur -License: MIT or Apache-2.0 -Comment: see https://github.com/hyperium/http - Files: vendor/humantime/* vendor/humantime-1*/* @@ -319,10 +289,12 @@ see https://github.com/bodil/im-rs see https://github.com/bodil/sized-chunks -Files: vendor/iovec/* -Copyright: 2017-2018 Carl Lerche -License: MIT or Apache-2.0 -Comment: see https://github.com/carllerche/iovec +Files: vendor/indexmap/* +Copyright: + 2016-2021 bluss + 2017-2022 Josh Stone +License: Apache-2.0 OR MIT +Comment: see https://github.com/bluss/indexmap Files: vendor/itoa/* vendor/quote/* @@ -347,27 +319,20 @@ 1991-2015 Unicode, Inc License: MIT or Apache-2.0 +Files: vendor/kstring/* +Copyright: 2014-2022 Ed Page +License: MIT OR Apache-2.0 +Comment: see https://github.com/cobalt-org/kstring + 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/* - vendor/rustc_version/* Copyright: 2014-2016 Marvin Löbel License: MIT or Apache-2.0 -Files: vendor/matches/* -Copyright: 2015 Simon Sapin -License: MIT -Comment: see https://github.com/SimonSapin/rust-std-candidates - -Files: vendor/maybe-uninit/* -Copyright: 2019-2019 est31 - 2019-2019 The Rust Project Developers -License: Apache-2.0 OR MIT -Comment: see https://github.com/est31/maybe-uninit - Files: vendor/miniz_oxide/* Copyright: 2017-2019 Frommi @@ -375,15 +340,15 @@ 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_cpus/* Copyright: 2015, Sean McArthur License: MIT or Apache-2.0 -Files: vendor/numtoa/* -Copyright: 2017-2018 Michael Aaron Murphy -License: MIT or Apache-2.0 -Comment: see https://gitlab.com/mmstick/numtoa - Files: vendor/once_cell/* Copyright: 2018-2021 Aleksey Kladov License: MIT OR Apache-2.0 @@ -395,39 +360,48 @@ Comment: see https://github.com/Seeker14491/opener Files: vendor/openssl/* -Copyright: 2013-2015 Steven Fackler +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/os_info/* +Copyright: 2015-2022 Jan Schulte + 2015-2022 Stanislav Tkach +License: MIT +Comment: see https://github.com/stanislav-tkach/os_info + +Files: vendor/os_str_bytes/* +Copyright: 2019-2022 Dylan Iuzzolino +License: MIT OR Apache-2.0 +Comment: see https://github.com/dylni/os_str_bytes + +Files: vendor/pathdiff/* +Copyright: 2017-2021 Manish Goregaokar +License: MIT or Apache-2.0 +Comment: see https://github.com/Manishearth/pathdiff + 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/proptest/* - vendor/rusty-fork/* -Copyright: Jason Lingle - 2016 FullContact, Inc -License: MIT or Apache-2.0 - Files: vendor/quick-error/* Copyright: 2015, The quick-error developers License: MIT or Apache-2.0 -Files: vendor/rdrand/* -Copyright: 2014-2018 Simonas Kazlauskas -License: ISC -Comment: see https://github.com/nagisa/rust_rdrand/ - Files: vendor/redox_syscall/* - vendor/redox_termios/* Copyright: 2017, Redox OS Developers License: MIT @@ -455,11 +429,6 @@ License: MIT Comment: see https://github.com/steffengy/schannel-rs/ -Files: vendor/semver-parser/* -Copyright: 2016-2018 Steve Klabnik -License: MIT or Apache-2.0 -Comment: see https://github.com/steveklabnik/semver-parser - Files: vendor/serde/* vendor/serde_derive/* vendor/serde_ignored/* @@ -470,21 +439,28 @@ Comment: see https://github.com/serde-rs see https://github.com/dtolnay/serde-ignored -Files: vendor/scopeguard/* -Copyright: 2015, The Rust Project Developers - bluss -License: MIT or Apache-2.0 -Comment: see https://github.com/bluss/scopeguard +Files: vendor/sha1/* +Copyright: 2016-2022 RustCrypto Developers +License: MIT OR Apache-2.0 +Comment: see https://github.com/RustCrypto/hashes -Files: vendor/smallvec/* -Copyright: 2018 Simon Sapin -License: MIT or Apache-2.0 +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/spin/* -Copyright: 2014-2019 Mathijs van de Nes - 2014-2019 John Ericson -License: MIT -Comment: see https://github.com/mvdnes/spin-rs.git +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/static_assertions/* +Copyright: 2017-2020 Nikolai Vazquez +License: MIT OR Apache-2.0 +Comment: see https://github.com/nvzqz/static-assertions-rs Files: vendor/strip-ansi-escapes/* Copyright: 2017-2018 Ted Mielczarek @@ -496,21 +472,17 @@ 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/synstructure/* -Copyright: Michael Layzell -License: MIT -Comment: see https://github.com/mystor/synstructure - -Files: vendor/termion/* -Copyright: 2016, Ticki -License: MIT -Comment: see https://github.com/ticki/termion/ - Files: vendor/textwrap/* Copyright: 2016, Martin Geisler License: MIT @@ -534,6 +506,12 @@ 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 @@ -545,6 +523,11 @@ 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 @@ -555,16 +538,14 @@ License: MIT or Apache-2.0 Comment: see https://github.com/unicode-rs/unicode-xid -Files: vendor/unreachable/* - vendor/void/* -Copyright: 2015-2017 Jonathan Reem -License: MIT -Comment: see https://github.com/reem/ +Files: vendor/yansi/* +Copyright: 2017-2022 Sergio Benitez +License: MIT or Apache-2.0 +Comment: see https://github.com/SergioBenitez/yansi Files: vendor/form_urlencoded/* vendor/url/* - vendor/url_serde/* vendor/percent-encoding/* Copyright: 2015-2016 Simon Sapin @@ -618,11 +599,6 @@ 2015-2016 Luca Bruno License: MIT or Apache-2.0 -Files: debian/bootstrap.py -Copyright: 2015 David Huseby -License: BSD-2-clause -Comment: See LICENSE at https://github.com/dhuseby/cargo-bootstrap/ - License: 0BSD Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. @@ -688,6 +664,10 @@ 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 @@ -786,3 +766,51 @@ 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 -Nru cargo-mozilla-0.57.0/debian/debcargo-conf.patch cargo-mozilla-0.66.0+ds1/debian/debcargo-conf.patch --- cargo-mozilla-0.57.0/debian/debcargo-conf.patch 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/debcargo-conf.patch 2023-01-11 17:55:09.000000000 +0000 @@ -7,10 +7,298 @@ 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. -- our patch to miniz_oxide replaces the adler dep for the adler32 dep. This - interferes with our primitive logic in debian-cargo-vendor, so we have to - undo that here. +- unicode-normalization, vte, tempfile: have dependency relaxation that applies, + but doesn't match the vendored copy +- concolor: more recent version in debcargo-conf, can be dropped once cargo + upstream updates + +- clap: clap is v4 in debcargo-conf, patches from clap-3 temporarily patched in + until we update to a cargo version using clap 4.x + +diff --git a/src/clap/debian/patches/disable-derive-deprecated.patch b/src/clap/debian/patches/disable-derive-deprecated.patch +new file mode 100644 +index 000000000..6ed82171f +--- /dev/null ++++ b/src/clap/debian/patches/disable-derive-deprecated.patch +@@ -0,0 +1,11 @@ ++--- a/Cargo.toml +++++ b/Cargo.toml ++@@ -418,7 +418,7 @@ ++ "color", ++ "suggestions", ++ ] ++-deprecated = ["clap_derive/deprecated"] +++deprecated = [] ++ derive = [ ++ "clap_derive", ++ "once_cell", +diff --git a/src/clap/debian/patches/disable-snapbox.patch b/src/clap/debian/patches/disable-snapbox.patch +index a6fbd083a..9335518c4 100644 +--- a/src/clap/debian/patches/disable-snapbox.patch ++++ b/src/clap/debian/patches/disable-snapbox.patch +@@ -1,6 +1,12 @@ + --- a/Cargo.toml + +++ b/Cargo.toml +-@@ -400,3 +399,0 @@ ++@@ -397,9 +397,6 @@ ++ [dev-dependencies.shlex] ++ version = "1.1.0" ++ + -[dev-dependencies.snapbox] +--version = "0.4" ++-version = "0.2.9" + - ++ [dev-dependencies.static_assertions] ++ version = "1.1.0" ++ +diff --git a/src/clap/debian/patches/disable-trycmd.diff b/src/clap/debian/patches/disable-trycmd.diff +index aeb0bbad4..053bf14f9 100644 +--- a/src/clap/debian/patches/disable-trycmd.diff ++++ b/src/clap/debian/patches/disable-trycmd.diff +@@ -1,8 +1,11 @@ + --- a/Cargo.toml + +++ b/Cargo.toml +-@@ -413,9 +412,0 @@ ++@@ -410,15 +410,6 @@ ++ [dev-dependencies.trybuild] ++ version = "1.0.18" ++ + -[dev-dependencies.trycmd] +--version = "0.14.3" ++-version = "0.13" + -features = [ + - "color-auto", + - "diff", +@@ -10,3 +13,6 @@ + -] + -default-features = false + - ++ [features] ++ cargo = ["once_cell"] ++ color = [ +diff --git a/src/clap/debian/patches/disable-unic-emoji-char.patch b/src/clap/debian/patches/disable-unic-emoji-char.patch +deleted file mode 100644 +index 97aa25af0..000000000 +--- a/src/clap/debian/patches/disable-unic-emoji-char.patch ++++ /dev/null +@@ -1,36 +0,0 @@ +-Index: clap/Cargo.toml +-=================================================================== +---- clap.orig/Cargo.toml +-+++ clap/Cargo.toml +-@@ -408,9 +408,6 @@ version = "1.1.0" +- [dev-dependencies.trybuild] +- version = "1.0.71" +- +--[dev-dependencies.unic-emoji-char] +--version = "0.9.0" +-- +- [features] +- cargo = ["dep:once_cell"] +- color = [ +-Index: clap/src/output/textwrap/core.rs +-=================================================================== +---- clap.orig/src/output/textwrap/core.rs +-+++ clap/src/output/textwrap/core.rs +-@@ -90,7 +90,7 @@ mod tests { +- #[cfg(feature = "unicode")] +- use unicode_width::UnicodeWidthChar; +- +-- #[test] +-+ /*#[test] +- fn emojis_have_correct_width() { +- use unic_emoji_char::is_emoji; +- +-@@ -129,7 +129,7 @@ mod tests { +- +- // The remaining planes contain almost no assigned code points +- // and thus also no emojis. +-- } +-+ }*/ +- +- #[test] +- #[cfg(feature = "unicode")] +diff --git a/src/clap/debian/patches/disable-unstable-doc.patch b/src/clap/debian/patches/disable-unstable-doc.patch +index 00de9ce79..404f1d9cf 100644 +--- a/src/clap/debian/patches/disable-unstable-doc.patch ++++ b/src/clap/debian/patches/disable-unstable-doc.patch +@@ -1,25 +1,38 @@ + --- a/Cargo.toml + +++ b/Cargo.toml +-@@ -39,3 +39,2 @@ ++@@ -37,7 +37,6 @@ ++ repository = "https://github.com/clap-rs/clap" ++ + [package.metadata.docs.rs] + -features = ["unstable-doc"] + rustdoc-args = [ +-@@ -49,5 +48,2 @@ ++ "--cfg", ++ "docsrs", ++@@ -47,9 +46,6 @@ ++ "-Zrustdoc-scrape-examples=examples", ++ ] + + -[package.metadata.playground] + -features = ["unstable-doc"] + - + [package.metadata.release] +-@@ -439,12 +435,2 @@ ++ shared-version = true ++ tag-name = "v{{version}}" ++@@ -437,17 +433,6 @@ ++ "textwrap/unicode-width", ++ "unicase", + ] + -unstable-doc = [ + - "derive", + - "cargo", + - "wrap_help", ++- "yaml", + - "env", + - "unicode", +-- "string", ++- "regex", + - "unstable-replace", + - "unstable-grouped", + -] + unstable-grouped = [] ++ unstable-replace = [] ++ unstable-v4 = [ +diff --git a/src/clap/debian/patches/disable-unstable-v4.patch b/src/clap/debian/patches/disable-unstable-v4.patch +new file mode 100644 +index 000000000..2993a959a +--- /dev/null ++++ b/src/clap/debian/patches/disable-unstable-v4.patch +@@ -0,0 +1,13 @@ ++--- a/Cargo.toml +++++ b/Cargo.toml ++@@ -435,10 +435,6 @@ ++ ] ++ unstable-grouped = [] ++ unstable-replace = [] ++-unstable-v4 = [ ++- "clap_derive/unstable-v4", ++- "deprecated", ++-] ++ wrap_help = [ ++ "terminal_size", ++ "textwrap/terminal_size", +diff --git a/src/clap/debian/patches/disable-unstable-v5.patch b/src/clap/debian/patches/disable-unstable-v5.patch +deleted file mode 100644 +index 5c2a59a30..000000000 +--- a/src/clap/debian/patches/disable-unstable-v5.patch ++++ /dev/null +@@ -1,7 +0,0 @@ +---- a/Cargo.toml +-+++ b/Cargo.toml +-@@ -438,4 +437,0 @@ +--unstable-v5 = [ +-- "clap_derive?/unstable-v5", +-- "deprecated", +--] +diff --git a/src/clap/debian/patches/once-cell-non-optional.patch b/src/clap/debian/patches/once-cell-non-optional.patch +new file mode 100644 +index 000000000..0e6692e81 +--- /dev/null ++++ b/src/clap/debian/patches/once-cell-non-optional.patch +@@ -0,0 +1,29 @@ ++--- a/Cargo.toml +++++ b/Cargo.toml ++@@ -354,7 +354,6 @@ ++ ++ [dependencies.once_cell] ++ version = "1.12.0" ++-optional = true ++ ++ [dependencies.regex] ++ version = "1.0" ++@@ -404,7 +403,7 @@ ++ version = "1.0.18" ++ ++ [features] ++-cargo = ["once_cell"] +++cargo = [] ++ color = [ ++ "atty", ++ "termcolor", ++@@ -420,8 +419,7 @@ ++ ] ++ deprecated = [] ++ derive = [ ++- "clap_derive", ++- "once_cell", +++ "clap_derive" ++ ] ++ env = [] ++ std = ["indexmap/std"] +diff --git a/src/clap/debian/patches/revert-switch-to-is-terminal.patch b/src/clap/debian/patches/revert-switch-to-is-terminal.patch +deleted file mode 100644 +index 425ff3aca..000000000 +--- a/src/clap/debian/patches/revert-switch-to-is-terminal.patch ++++ /dev/null +@@ -1,44 +0,0 @@ +-Index: clap/src/output/fmt.rs +-=================================================================== +---- clap.orig/src/output/fmt.rs +-+++ clap/src/output/fmt.rs +-@@ -82,9 +82,10 @@ impl std::fmt::Display for Colorizer { +- +- #[cfg(feature = "color")] +- fn is_a_tty(stream: Stream) -> bool { +-- use is_terminal::IsTerminal; +-- match stream { +-- Stream::Stdout => std::io::stdout().is_terminal(), +-- Stream::Stderr => std::io::stderr().is_terminal(), +-- } +-+ let stream = match stream { +-+ Stream::Stdout => atty::Stream::Stdout, +-+ Stream::Stderr => atty::Stream::Stderr, +-+ }; +-+ +-+ atty::is(stream) +- } +-Index: clap/Cargo.toml +-=================================================================== +---- clap.orig/Cargo.toml +-+++ clap/Cargo.toml +-@@ -365,8 +365,8 @@ optional = true +- [dependencies.clap_lex] +- version = "0.3.0" +- +--[dependencies.is-terminal] +--version = "0.4.1" +-+[dependencies.atty] +-+version = "0.2" +- optional = true +- +- [dependencies.once_cell] +-@@ -414,7 +414,7 @@ version = "0.9.0" +- [features] +- cargo = ["dep:once_cell"] +- color = [ +-- "dep:is-terminal", +-+ "dep:atty", +- "dep:termcolor", +- ] +- debug = [ +diff --git a/src/clap/debian/patches/series b/src/clap/debian/patches/series +index 137658685..47bdb2c6b 100644 +--- a/src/clap/debian/patches/series ++++ b/src/clap/debian/patches/series +@@ -1,6 +1,6 @@ + disable-trycmd.diff + disable-unstable-doc.patch +-disable-unstable-v5.patch ++disable-unstable-v4.patch + disable-snapbox.patch +-revert-switch-to-is-terminal.patch +-disable-unic-emoji-char.patch ++disable-derive-deprecated.patch ++once-cell-non-optional.patch +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 @@ @@ -42,6 +330,8 @@ +- + [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 @@ @@ -73,9 +363,204 @@ +- + [dev-dependencies] + hex = "0.2" ---- a/src/miniz_oxide/debian/patches/series -+++ b/src/miniz_oxide/debian/patches/series -@@ -1,3 +1,2 @@ - remove-rustc-dep-of-std-etc.patch - remove-compiler-builtins.patch --use-adler32.patch +diff --git a/src/concolor/debian/patches/series b/src/concolor/debian/patches/series +index cdf075927..942673b44 100644 +--- a/src/concolor/debian/patches/series ++++ b/src/concolor/debian/patches/series +@@ -1,2 +1,2 @@ + avoid-doctest-breakage.patch +-switch-back-to-atty.patch ++#switch-back-to-atty.patch +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/src/unicode-normalization/debian/patches/series b/src/unicode-normalization/debian/patches/series +index 2c1db10bd..39fe7a4da 100644 +--- a/src/unicode-normalization/debian/patches/series ++++ b/src/unicode-normalization/debian/patches/series +@@ -1,2 +1 @@ + disable-tests-missing-testdata.patch +-switch-back-to-smallvec.patch +diff --git a/src/unicode-normalization/debian/patches/switch-back-to-smallvec.patch b/src/unicode-normalization/debian/patches/switch-back-to-smallvec.patch +deleted file mode 100644 +index 06e816ca7..000000000 +--- a/src/unicode-normalization/debian/patches/switch-back-to-smallvec.patch ++++ /dev/null +@@ -1,134 +0,0 @@ +-This patch switches back to using smallvec as we do not have tinyvec in Debian. +-It is based on a revert of upstream commit d6abe8e5148c2c513cb65f487a037c7600de2498 +-adapted by Peter Michael Green for use in the Debian package. +- +-Index: unicode-normalization/src/decompose.rs +-=================================================================== +---- unicode-normalization.orig/src/decompose.rs +-+++ unicode-normalization/src/decompose.rs +-@@ -10,7 +10,7 @@ +- use core::fmt::{self, Write}; +- use core::iter::Fuse; +- use core::ops::Range; +--use tinyvec::TinyVec; +-+use smallvec::SmallVec; +- +- #[derive(Clone)] +- enum DecompositionType { +-@@ -32,7 +32,7 @@ pub struct Decompositions { +- // 2) "Ready" characters which are sorted and ready to emit on demand; +- // 3) A "pending" block which stills needs more characters for us to be able +- // to sort in canonical order and is not safe to emit. +-- buffer: TinyVec<[(u8, char); 4]>, +-+ buffer: SmallVec<[(u8, char); 4]>, +- ready: Range, +- } +- +-@@ -41,7 +41,7 @@ pub fn new_canonical { +- iter: Decompositions, +- state: RecompositionState, +-- buffer: TinyVec<[char; 4]>, +-+ buffer: SmallVec<[char; 4]>, +- composee: Option, +- last_ccc: Option, +- } +-@@ -34,7 +34,7 @@ pub fn new_canonical> Iterator +- match self.iter.next() { +- Some(ch) => { +- // At this time, the longest replacement sequence has length 2. +-- let mut buffer = ArrayVec::<[char; 2]>::new(); +-+ let mut buffer = SmallVec::<[char; 2]>::new(); +- super::char::decompose_cjk_compat_variants(ch, |d| buffer.push(d)); +- self.buffer = buffer.get(1).copied(); +- Some(buffer[0]) +diff --git a/src/vte/debian/patches/arrayvec.diff b/src/vte/debian/patches/arrayvec.diff +deleted file mode 100644 +index 1923f9577..000000000 +--- a/src/vte/debian/patches/arrayvec.diff ++++ /dev/null +@@ -1,26 +0,0 @@ +-Index: vte/Cargo.toml +-=================================================================== +---- vte.orig/Cargo.toml +-+++ vte/Cargo.toml +-@@ -24,7 +24,7 @@ categories = ["parsing", "no-std"] +- license = "Apache-2.0 OR MIT" +- repository = "https://github.com/alacritty/vte" +- [dependencies.arrayvec] +--version = "0.5.1" +-+version = "0.7" +- optional = true +- default-features = false +- +-Index: vte/src/lib.rs +-=================================================================== +---- vte.orig/src/lib.rs +-+++ vte/src/lib.rs +-@@ -78,7 +78,7 @@ pub struct Parser { +- params: Params, +- param: u16, +- #[cfg(feature = "no_std")] +-- osc_raw: ArrayVec<[u8; MAX_OSC_RAW]>, +-+ osc_raw: ArrayVec, +- #[cfg(not(feature = "no_std"))] +- osc_raw: Vec, +- osc_params: [(usize, usize); MAX_OSC_PARAMS], +diff --git a/src/vte/debian/patches/series b/src/vte/debian/patches/series +index 011b1a629..203bdd762 100644 +--- a/src/vte/debian/patches/series ++++ b/src/vte/debian/patches/series +@@ -1,2 +1 @@ + 00-remove-nightly-feature +-arrayvec.diff Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/debian/libgit2_1.3.0+dfsg.1.orig.tar.xz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/debian/libgit2_1.3.0+dfsg.1.orig.tar.xz differ Binary files /srv/release.debian.org/tmp/NeF5PpVejE/cargo-mozilla-0.57.0/debian/libgit2_1.5.1+ds.orig.tar.xz and /srv/release.debian.org/tmp/4FB8wbce8k/cargo-mozilla-0.66.0+ds1/debian/libgit2_1.5.1+ds.orig.tar.xz differ diff -Nru cargo-mozilla-0.57.0/debian/lintian-to-copyright.sh cargo-mozilla-0.66.0+ds1/debian/lintian-to-copyright.sh --- cargo-mozilla-0.57.0/debian/lintian-to-copyright.sh 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/lintian-to-copyright.sh 2023-01-11 17:55:09.000000000 +0000 @@ -1,5 +1,5 @@ #!/bin/sh # Pipe the output of lintian into this. -sed -ne 's,.* file-without-copyright-information debian/copyright ,,p' | cut -d/ -f1-2 | sort -u | while read x; do +sed -ne 's,.* file-without-copyright-information ,,p' | cut -d/ -f1-2 | sort -u | while read x; do /usr/share/cargo/scripts/guess-crate-copyright "$x" done diff -Nru cargo-mozilla-0.57.0/debian/make_orig_multi-pre-vendor.sh cargo-mozilla-0.66.0+ds1/debian/make_orig_multi-pre-vendor.sh --- cargo-mozilla-0.57.0/debian/make_orig_multi-pre-vendor.sh 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/make_orig_multi-pre-vendor.sh 2023-01-11 17:55:09.000000000 +0000 @@ -15,7 +15,5 @@ # Drop the "vendored" feature since we patch it out of debcargo sed -i /vendored/d Cargo.toml -# For cargo 0.57.0 / rustc 1.56.0 -cargo update -p tempfile --precise 3.1.0 -cargo update -p filetime --precise 0.2.12 -cargo update -p regex --precise 1.3.9 +# avoid pulling in windows-sys for now +cargo update -p schannel --precise 0.1.19 diff -Nru cargo-mozilla-0.57.0/debian/make_orig_multi.sh cargo-mozilla-0.66.0+ds1/debian/make_orig_multi.sh --- cargo-mozilla-0.57.0/debian/make_orig_multi.sh 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/make_orig_multi.sh 2023-01-11 17:55:09.000000000 +0000 @@ -34,6 +34,14 @@ tar -xaf "${TMPDIR}/cargo_${CARGO_VER}.orig.tar.gz" -C cargo --strip-components=1 cd cargo +# special patch for CVE fix - we want to vendor the updated/fixed dependencies! +echo "Applying CVE-2022-46176 patches"; +for p in "${SRCDIR}/debian/patches/cve/"*.patch; do + echo "$(basename "$p")" + patch -p1 < "$p" + echo "$p" >> .cve-patches +done + # Download build-deps via cargo-vendor export GIT_AUTHOR_NAME="deb-build" export GIT_AUTHOR_EMAIL="<>" @@ -55,11 +63,20 @@ rm -rf vendor-scan +# special patch for CVE fix - unapply to keep orig.tar.gz pristine +echo "Unapplying CVE-2022-46176 patches"; +tac .cve-patches | while read p; do + echo "$(basename "$p")" + patch -Rp1 < "$p" +done +rm .cve-patches + # Pack it up, reproducibly -GZIP=-9n tar --sort=name \ +tar --sort=name \ + --use-compress-program='gzip -9n' \ --mtime="./Cargo.lock" \ --owner=root --group=root \ - -czf "${TMPDIR}/cargo_${CARGO_VER}.orig-vendor.tar.gz" vendor + -cf "${TMPDIR}/cargo_${CARGO_VER}.orig-vendor.tar.gz" vendor # All is good, we are done! echo "Your files are available at:" diff -Nru cargo-mozilla-0.57.0/debian/patches/0001-Change-test-to-not-trigger-emoji-error.patch cargo-mozilla-0.66.0+ds1/debian/patches/0001-Change-test-to-not-trigger-emoji-error.patch --- cargo-mozilla-0.57.0/debian/patches/0001-Change-test-to-not-trigger-emoji-error.patch 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/0001-Change-test-to-not-trigger-emoji-error.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -From 0dfe70f7e1384620e0e38c7bf58147e95be5e638 Mon Sep 17 00:00:00 2001 -From: Esteban Kuber -Date: Wed, 24 Nov 2021 05:59:42 +0000 -Subject: [PATCH] Change test to not trigger emoji error - -This change is needed to land rust-lang/rust#88781, as it changes the -handling of emojis in source code to treat them as identifiers. - -Applied-Upstream: 0.59.0 ---- - tests/testsuite/doc.rs | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/tests/testsuite/doc.rs b/tests/testsuite/doc.rs -index 965e7eaa9bd..6bcdd2d02cf 100644 ---- a/tests/testsuite/doc.rs -+++ b/tests/testsuite/doc.rs -@@ -803,7 +803,7 @@ fn output_not_captured() { - "a/src/lib.rs", - " - /// ``` -- /// ☃ -+ /// ` - /// ``` - pub fn foo() {} - ", -@@ -811,9 +811,7 @@ fn output_not_captured() { - .build(); - - p.cargo("doc") -- .without_status() -- .with_stderr_contains("[..]☃") -- .with_stderr_contains(r"[..]unknown start of token: \u{2603}") -+ .with_stderr_contains("[..]unknown start of token: `") - .run(); - } - diff -Nru cargo-mozilla-0.57.0/debian/patches/0002-Remove-eacces-test.patch cargo-mozilla-0.66.0+ds1/debian/patches/0002-Remove-eacces-test.patch --- cargo-mozilla-0.57.0/debian/patches/0002-Remove-eacces-test.patch 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/0002-Remove-eacces-test.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ -From d92dceaeba18e826eca4ae672356cdca0f8803cb Mon Sep 17 00:00:00 2001 -From: Weihang Lo -Date: Tue, 21 Dec 2021 02:59:41 +0800 -Origin: https://github.com/rust-lang/cargo/pull/10214 -Subject: Remove `build_script::build_script_scan_eacces` test case - -Remove the test because cargo ignores it and returns its path during a -`cargo build`. The caller still has a chance to hit the IO error if they -does access it. - -The original patch is part of a patchset for loop detection, but the -loop content has been edited out to only contain the test removal. - ---- - tests/testsuite/build.rs | 6 ++- - tests/testsuite/build_script.rs | 69 --------------------------------- - tests/testsuite/package.rs | 7 ++-- - 3 files changed, 8 insertions(+), 74 deletions(-) - -diff --git a/tests/testsuite/build_script.rs b/tests/testsuite/build_script.rs -index 0a98abe3893..40d8067d548 100644 ---- a/tests/testsuite/build_script.rs -+++ b/tests/testsuite/build_script.rs -@@ -4618,69 +4618,6 @@ fn links_interrupted_can_restart() { - .run(); - } - --#[cargo_test] --#[cfg(unix)] --fn build_script_scan_eacces() { -- // build.rs causes a scan of the whole project, which can be a problem if -- // a directory is not accessible. -- use cargo_test_support::git; -- use std::os::unix::fs::PermissionsExt; -- -- let p = project() -- .file("src/lib.rs", "") -- .file("build.rs", "fn main() {}") -- .file("secrets/stuff", "") -- .build(); -- let path = p.root().join("secrets"); -- fs::set_permissions(&path, fs::Permissions::from_mode(0o0)).unwrap(); -- // The last "Caused by" is a string from libc such as the following: -- // Permission denied (os error 13) -- p.cargo("build") -- .with_stderr( -- "\ --[ERROR] failed to determine package fingerprint for build script for foo v0.0.1 ([..]/foo) -- --Caused by: -- failed to determine the most recently modified file in [..]/foo -- --Caused by: -- failed to determine list of files in [..]/foo -- --Caused by: -- cannot read \"[..]/foo/secrets\" -- --Caused by: -- [..] --", -- ) -- .with_status(101) -- .run(); -- -- // Try `package.exclude` to skip a directory. -- p.change_file( -- "Cargo.toml", -- r#" -- [package] -- name = "foo" -- version = "0.0.1" -- exclude = ["secrets"] -- "#, -- ); -- p.cargo("build").run(); -- -- // Try with git. This succeeds because the git status walker ignores -- // directories it can't access. -- p.change_file("Cargo.toml", &basic_manifest("foo", "0.0.1")); -- p.build_dir().rm_rf(); -- let repo = git::init(&p.root()); -- git::add(&repo); -- git::commit(&repo); -- p.cargo("build").run(); -- -- // Restore permissions so that the directory can be deleted. -- fs::set_permissions(&path, fs::Permissions::from_mode(0o755)).unwrap(); --} -- - #[cargo_test] - fn dev_dep_with_links() { - let p = project() diff -Nru cargo-mozilla-0.57.0/debian/patches/0003-tests-add-missing-cross-disabled-checks.patch cargo-mozilla-0.66.0+ds1/debian/patches/0003-tests-add-missing-cross-disabled-checks.patch --- cargo-mozilla-0.57.0/debian/patches/0003-tests-add-missing-cross-disabled-checks.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/0003-tests-add-missing-cross-disabled-checks.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,46 @@ +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(+) + +diff --git a/tests/testsuite/build_script.rs b/tests/testsuite/build_script.rs +index 902364dff..e458b3262 100644 +--- a/tests/testsuite/build_script.rs ++++ b/tests/testsuite/build_script.rs +@@ -585,6 +585,9 @@ fn custom_build_linker_bad_host_with_arch() { + #[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( +@@ -623,6 +626,9 @@ fn custom_build_env_var_rustc_linker_cross_arch_host() { + #[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( +-- +2.38.1 + diff -Nru cargo-mozilla-0.57.0/debian/patches/2002_disable-net-tests.patch cargo-mozilla-0.66.0+ds1/debian/patches/2002_disable-net-tests.patch --- cargo-mozilla-0.57.0/debian/patches/2002_disable-net-tests.patch 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/2002_disable-net-tests.patch 2023-01-11 17:55:09.000000000 +0000 @@ -45,12 +45,12 @@ .file( --- a/tests/testsuite/publish.rs +++ b/tests/testsuite/publish.rs -@@ -1642,7 +1642,7 @@ - t.join().unwrap(); +@@ -1584,7 +1584,7 @@ + .run(); } -#[cargo_test] +#[allow(dead_code)] fn api_curl_error() { // Registry has a network error. - let t = registry::RegistryBuilder::new().build_api_server(&|_headers| panic!("broke!")); + let _registry = registry::RegistryBuilder::new() diff -Nru cargo-mozilla-0.57.0/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch cargo-mozilla-0.66.0+ds1/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch --- cargo-mozilla-0.57.0/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,17 @@ +--- a/crates/cargo-test-macro/src/lib.rs ++++ b/crates/cargo-test-macro/src/lib.rs +@@ -203,6 +203,14 @@ + } + }; + 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 -Nru cargo-mozilla-0.57.0/debian/patches/2110-use-mfpu-on-armhf.patch cargo-mozilla-0.66.0+ds1/debian/patches/2110-use-mfpu-on-armhf.patch --- cargo-mozilla-0.57.0/debian/patches/2110-use-mfpu-on-armhf.patch 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/2110-use-mfpu-on-armhf.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -Already in debcargo-conf.git, can be deleted for next source import. - -The upstream code uses -march but not -mfpu on debian armhf, this works -with gcc-10 but produces an error with gcc-11, set mfpu to fix this. - ---- a/vendor/cc/src/lib.rs 1973-11-29 21:33:09.000000000 +0000 -+++ b/vendor/cc/src/lib.rs 2021-10-23 23:05:21.409460780 +0000 -@@ -1638,6 +1638,10 @@ - && (target.contains("-linux-") || target.contains("-kmc-solid_")) - { - cmd.args.push("-march=armv7-a".into()); -+ if target.ends_with("eabihf") { -+ // lowest common denominator FPU -+ cmd.args.push("-mfpu=vfpv3-d16".into()); -+ } - } - - // (x86 Android doesn't say "eabi") diff -Nru cargo-mozilla-0.57.0/debian/patches/2111-curl-no-rebuild.patch cargo-mozilla-0.66.0+ds1/debian/patches/2111-curl-no-rebuild.patch --- cargo-mozilla-0.57.0/debian/patches/2111-curl-no-rebuild.patch 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/2111-curl-no-rebuild.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -Already in debcargo-conf.git, can be deleted for next source import. - ---- a/vendor/curl-sys/build.rs -+++ b/vendor/curl-sys/build.rs -@@ -4,7 +4,6 @@ - use std::process::Command; - - fn main() { -- println!("cargo:rerun-if-changed=curl"); - let host = env::var("HOST").unwrap(); - let target = env::var("TARGET").unwrap(); - let windows = target.contains("windows"); diff -Nru cargo-mozilla-0.57.0/debian/patches/2112-handle-4-siphasher-algorithms.patch cargo-mozilla-0.66.0+ds1/debian/patches/2112-handle-4-siphasher-algorithms.patch --- cargo-mozilla-0.57.0/debian/patches/2112-handle-4-siphasher-algorithms.patch 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/2112-handle-4-siphasher-algorithms.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -Bug: https://github.com/rust-lang/cargo/issues/10004 - ---- a/src/cargo/core/source/source_id.rs -+++ b/src/cargo/core/source/source_id.rs -@@ -621,7 +621,13 @@ - fn test_cratesio_hash() { - let config = Config::default().unwrap(); - let crates_io = SourceId::crates_io(&config).unwrap(); -- assert_eq!(crate::util::hex::short_hash(&crates_io), "1ecc6299db9ec823"); -+ assert!([ -+ "1ecc6299db9ec823", // 64 LE -+ "1285ae84e5963aae", // 32 LE -+ "eae4ba8cbf2ce1c7", // 64 BE -+ "b420f105fcaca6de", // 32 BE -+ ] -+ .contains(&crate::util::hex::short_hash(&crates_io).as_str())); - } - - /// A `Display`able view into a `SourceId` that will write it as a url diff -Nru cargo-mozilla-0.57.0/debian/patches/2300-disable-close_output_during_drain-test.patch cargo-mozilla-0.66.0+ds1/debian/patches/2300-disable-close_output_during_drain-test.patch --- cargo-mozilla-0.57.0/debian/patches/2300-disable-close_output_during_drain-test.patch 2022-07-01 10:25:10.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/2300-disable-close_output_during_drain-test.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -The test is to check that a hang doesn't happen, but it does happen -in bullseye, so disable it. - -See https://github.com/rust-lang/cargo/pull/9201 - ---- a/tests/testsuite/build.rs -+++ b/tests/testsuite/build.rs -@@ -5376,6 +5376,7 @@ hello stderr! - assert_eq!(stdout, "hello stdout!\n"); - } - -+/* - #[cargo_test] - fn close_output_during_drain() { - // Test to close the output during the build phase (drain_the_queue). -@@ -5454,6 +5455,7 @@ fn close_output_during_drain() { - Err(e) => panic!("child wait failed: {}", e), - } - } -+*/ - - use cargo_test_support::registry::Dependency; - diff -Nru cargo-mozilla-0.57.0/debian/patches/cargo-no-namespaced-features.patch cargo-mozilla-0.66.0+ds1/debian/patches/cargo-no-namespaced-features.patch --- cargo-mozilla-0.57.0/debian/patches/cargo-no-namespaced-features.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/cargo-no-namespaced-features.patch 2023-07-30 08:37:52.000000000 +0000 @@ -0,0 +1,46 @@ +--- a/vendor/bstr/Cargo.toml ++++ b/vendor/bstr/Cargo.toml +@@ -102,18 +102,18 @@ version = "0.1.3" + version = "1.2.1" + + [features] +-alloc = ["serde?/alloc"] ++alloc = ["serde/alloc"] + default = [ + "std", + "unicode", + ] +-serde = ["dep:serde"] ++serde1 = ["serde"] + std = [ + "alloc", + "memchr/std", +- "serde?/std", ++ "serde/std", + ] + unicode = [ +- "dep:once_cell", +- "dep:regex-automata", ++ "once_cell", ++ "regex-automata", + ] +--- a/vendor/bstr/src/impls.rs ++++ b/vendor/bstr/src/impls.rs +@@ -725,7 +725,7 @@ mod bstr { + impl_partial_ord!(&'a BStr, String); + } + +-#[cfg(feature = "serde")] ++#[cfg(feature = "serde1")] + mod bstr_serde { + use core::fmt; + +@@ -783,7 +783,7 @@ mod bstr_serde { + } + } + +-#[cfg(all(feature = "serde", feature = "alloc"))] ++#[cfg(all(feature = "serde1", feature = "alloc"))] + mod bstring_serde { + use core::{cmp, fmt}; + diff -Nru cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-01-validate-ssh-host.keys.patch cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-01-validate-ssh-host.keys.patch --- cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-01-validate-ssh-host.keys.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-01-validate-ssh-host.keys.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,586 @@ +This patch is based on the upstream commit described below, adapted for use +in the Debian package by Peter Michael Green. + +commit 1387fd4105b242fa2d24ad99d10a5b1af23f293e +Author: Eric Huss +Date: Wed Dec 7 18:52:00 2022 -0800 + + Validate SSH host keys + +Index: cargo/src/cargo/sources/git/known_hosts.rs +=================================================================== +--- /dev/null ++++ cargo/src/cargo/sources/git/known_hosts.rs +@@ -0,0 +1,439 @@ ++//! SSH host key validation support. ++//! ++//! A primary goal with this implementation is to provide user-friendly error ++//! messages, guiding them to understand the issue and how to resolve it. ++//! ++//! Note that there are a lot of limitations here. This reads OpenSSH ++//! known_hosts files from well-known locations, but it does not read OpenSSH ++//! config files. The config file can change the behavior of how OpenSSH ++//! handles known_hosts files. For example, some things we don't handle: ++//! ++//! - `GlobalKnownHostsFile` — Changes the location of the global host file. ++//! - `UserKnownHostsFile` — Changes the location of the user's host file. ++//! - `KnownHostsCommand` — A command to fetch known hosts. ++//! - `CheckHostIP` — DNS spoofing checks. ++//! - `VisualHostKey` — Shows a visual ascii-art key. ++//! - `VerifyHostKeyDNS` — Uses SSHFP DNS records to fetch a host key. ++//! ++//! There's also a number of things that aren't supported but could be easily ++//! added (it just adds a little complexity). For example, hashed hostnames, ++//! hostname patterns, and revoked markers. See "FIXME" comments littered in ++//! this file. ++ ++use git2::cert::Cert; ++use git2::CertificateCheckStatus; ++use std::collections::HashSet; ++use std::fmt::Write; ++use std::path::{Path, PathBuf}; ++ ++/// These are host keys that are hard-coded in cargo to provide convenience. ++/// ++/// If GitHub ever publishes new keys, the user can add them to their own ++/// configuration file to use those instead. ++/// ++/// The GitHub keys are sourced from or ++/// . ++/// ++/// These will be ignored if the user adds their own entries for `github.com`, ++/// which can be useful if GitHub ever revokes their old keys. ++static BUNDLED_KEYS: &[(&str, &str, &str)] = &[ ++ ("github.com", "ssh-ed25519", "AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl"), ++ ("github.com", "ecdsa-sha2-nistp256", "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg="), ++ ("github.com", "ssh-rsa", "AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="), ++]; ++ ++enum KnownHostError { ++ /// Some general error happened while validating the known hosts. ++ CheckError(anyhow::Error), ++ /// The host key was not found. ++ HostKeyNotFound { ++ hostname: String, ++ key_type: git2::cert::SshHostKeyType, ++ remote_host_key: String, ++ remote_fingerprint: String, ++ other_hosts: Vec, ++ }, ++ /// The host key was found, but does not match the remote's key. ++ HostKeyHasChanged { ++ hostname: String, ++ key_type: git2::cert::SshHostKeyType, ++ old_known_host: KnownHost, ++ remote_host_key: String, ++ remote_fingerprint: String, ++ }, ++} ++ ++impl From for KnownHostError { ++ fn from(err: anyhow::Error) -> KnownHostError { ++ KnownHostError::CheckError(err.into()) ++ } ++} ++ ++/// The location where a host key was located. ++#[derive(Clone)] ++enum KnownHostLocation { ++ /// Loaded from a file from disk. ++ File { path: PathBuf, lineno: u32 }, ++ /// Part of the hard-coded bundled keys in Cargo. ++ Bundled, ++} ++ ++/// The git2 callback used to validate a certificate (only ssh known hosts are validated). ++pub fn certificate_check( ++ cert: &Cert<'_>, ++ host: &str, ++ port: Option, ++) -> Result { ++ let Some(host_key) = cert.as_hostkey() else { ++ // Return passthrough for TLS X509 certificates to use whatever validation ++ // was done in git2. ++ return Ok(CertificateCheckStatus::CertificatePassthrough) ++ }; ++ // If a nonstandard port is in use, check for that first. ++ // The fallback to check without a port is handled in the HostKeyNotFound handler. ++ let host_maybe_port = match port { ++ Some(port) if port != 22 => format!("[{host}]:{port}"), ++ _ => host.to_string(), ++ }; ++ // The error message must be constructed as a string to pass through the libgit2 C API. ++ let err_msg = match check_ssh_known_hosts(host_key, &host_maybe_port) { ++ Ok(()) => { ++ return Ok(CertificateCheckStatus::CertificateOk); ++ } ++ Err(KnownHostError::CheckError(e)) => { ++ format!("error: failed to validate host key:\n{:#}", e) ++ } ++ Err(KnownHostError::HostKeyNotFound { ++ hostname, ++ key_type, ++ remote_host_key, ++ remote_fingerprint, ++ other_hosts, ++ }) => { ++ // Try checking without the port. ++ if port.is_some() ++ && !matches!(port, Some(22)) ++ && check_ssh_known_hosts(host_key, host).is_ok() ++ { ++ return Ok(CertificateCheckStatus::CertificateOk); ++ } ++ let key_type_short_name = key_type.short_name(); ++ let key_type_name = key_type.name(); ++ let known_hosts_location = user_known_host_location_to_add(); ++ let other_hosts_message = if other_hosts.is_empty() { ++ String::new() ++ } else { ++ let mut msg = String::from( ++ "Note: This host key was found, \ ++ but is associated with a different host:\n", ++ ); ++ for known_host in other_hosts { ++ let loc = match known_host.location { ++ KnownHostLocation::File { path, lineno } => { ++ format!("{} line {lineno}", path.display()) ++ } ++ KnownHostLocation::Bundled => format!("bundled with cargo"), ++ }; ++ write!(msg, " {loc}: {}\n", known_host.patterns).unwrap(); ++ } ++ msg ++ }; ++ format!("error: unknown SSH host key\n\ ++ The SSH host key for `{hostname}` is not known and cannot be validated.\n\ ++ \n\ ++ To resolve this issue, add the host key to {known_hosts_location}\n\ ++ \n\ ++ The key to add is:\n\ ++ \n\ ++ {hostname} {key_type_name} {remote_host_key}\n\ ++ \n\ ++ The {key_type_short_name} key fingerprint is: SHA256:{remote_fingerprint}\n\ ++ This fingerprint should be validated with the server administrator that it is correct.\n\ ++ {other_hosts_message}\n\ ++ See https://doc.rust-lang.org/nightly/cargo/appendix/git-authentication.html#ssh-known-hosts \ ++ for more information.\n\ ++ ") ++ } ++ Err(KnownHostError::HostKeyHasChanged { ++ hostname, ++ key_type, ++ old_known_host, ++ remote_host_key, ++ remote_fingerprint, ++ }) => { ++ let key_type_short_name = key_type.short_name(); ++ let key_type_name = key_type.name(); ++ let known_hosts_location = user_known_host_location_to_add(); ++ let old_key_resolution = match old_known_host.location { ++ KnownHostLocation::File { path, lineno } => { ++ let old_key_location = path.display(); ++ format!( ++ "removing the old {key_type_name} key for `{hostname}` \ ++ located at {old_key_location} line {lineno}, \ ++ and adding the new key to {known_hosts_location}", ++ ) ++ } ++ KnownHostLocation::Bundled => { ++ format!( ++ "adding the new key to {known_hosts_location}\n\ ++ The current host key is bundled as part of Cargo." ++ ) ++ } ++ }; ++ format!("error: SSH host key has changed for `{hostname}`\n\ ++ *********************************\n\ ++ * WARNING: HOST KEY HAS CHANGED *\n\ ++ *********************************\n\ ++ This may be caused by a man-in-the-middle attack, or the \ ++ server may have changed its host key.\n\ ++ \n\ ++ The {key_type_short_name} fingerprint for the key from the remote host is:\n\ ++ SHA256:{remote_fingerprint}\n\ ++ \n\ ++ You are strongly encouraged to contact the server \ ++ administrator for `{hostname}` to verify that this new key is \ ++ correct.\n\ ++ \n\ ++ If you can verify that the server has a new key, you can \ ++ resolve this error by {old_key_resolution}\n\ ++ \n\ ++ The key provided by the remote host is:\n\ ++ \n\ ++ {hostname} {key_type_name} {remote_host_key}\n\ ++ \n\ ++ See https://doc.rust-lang.org/nightly/cargo/appendix/git-authentication.html#ssh-known-hosts \ ++ for more information.\n\ ++ ") ++ } ++ }; ++ Err(git2::Error::new( ++ git2::ErrorCode::GenericError, ++ git2::ErrorClass::Callback, ++ err_msg, ++ )) ++} ++ ++/// Checks if the given host/host key pair is known. ++fn check_ssh_known_hosts( ++ cert_host_key: &git2::cert::CertHostkey<'_>, ++ host: &str, ++) -> Result<(), KnownHostError> { ++ let Some(remote_host_key) = cert_host_key.hostkey() else { ++ return Err(anyhow::format_err!("remote host key is not available").into()); ++ }; ++ let remote_key_type = cert_host_key.hostkey_type().unwrap(); ++ // `changed_key` keeps track of any entries where the key has changed. ++ let mut changed_key = None; ++ // `other_hosts` keeps track of any entries that have an identical key, ++ // but a different hostname. ++ let mut other_hosts = Vec::new(); ++ ++ // Collect all the known host entries from disk. ++ let mut known_hosts = Vec::new(); ++ for path in known_host_files() { ++ if !path.exists() { ++ continue; ++ } ++ let hosts = load_hostfile(&path)?; ++ known_hosts.extend(hosts); ++ } ++ // Load the bundled keys. Don't add keys for hosts that the user has ++ // configured, which gives them the option to override them. This could be ++ // useful if the keys are ever revoked. ++ let configured_hosts: HashSet<_> = known_hosts ++ .iter() ++ .flat_map(|known_host| { ++ known_host ++ .patterns ++ .split(',') ++ .map(|pattern| pattern.to_lowercase()) ++ }) ++ .collect(); ++ for (patterns, key_type, key) in BUNDLED_KEYS { ++ if !configured_hosts.contains(*patterns) { ++ let key = base64::decode(key).unwrap(); ++ known_hosts.push(KnownHost { ++ location: KnownHostLocation::Bundled, ++ patterns: patterns.to_string(), ++ key_type: key_type.to_string(), ++ key, ++ }); ++ } ++ } ++ ++ for known_host in known_hosts { ++ // The key type from libgit2 needs to match the key type from the host file. ++ if known_host.key_type != remote_key_type.name() { ++ continue; ++ } ++ let key_matches = known_host.key == remote_host_key; ++ if !known_host.host_matches(host) { ++ // `name` can be None for hashed hostnames (which libgit2 does not expose). ++ if key_matches { ++ other_hosts.push(known_host.clone()); ++ } ++ continue; ++ } ++ if key_matches { ++ return Ok(()); ++ } ++ // The host and key type matched, but the key itself did not. ++ // This indicates the key has changed. ++ // This is only reported as an error if no subsequent lines have a ++ // correct key. ++ changed_key = Some(known_host.clone()); ++ } ++ // Older versions of OpenSSH (before 6.8, March 2015) showed MD5 ++ // fingerprints (see FingerprintHash ssh config option). Here we only ++ // support SHA256. ++ let mut remote_fingerprint = cargo_util::Sha256::new(); ++ remote_fingerprint.update(remote_host_key); ++ let remote_fingerprint = ++ base64::encode_config(remote_fingerprint.finish(), base64::STANDARD_NO_PAD); ++ let remote_host_key = base64::encode(remote_host_key); ++ // FIXME: Ideally the error message should include the IP address of the ++ // remote host (to help the user validate that they are connecting to the ++ // host they were expecting to). However, I don't see a way to obtain that ++ // information from libgit2. ++ match changed_key { ++ Some(old_known_host) => Err(KnownHostError::HostKeyHasChanged { ++ hostname: host.to_string(), ++ key_type: remote_key_type, ++ old_known_host, ++ remote_host_key, ++ remote_fingerprint, ++ }), ++ None => Err(KnownHostError::HostKeyNotFound { ++ hostname: host.to_string(), ++ key_type: remote_key_type, ++ remote_host_key, ++ remote_fingerprint, ++ other_hosts, ++ }), ++ } ++} ++ ++/// Returns a list of files to try loading OpenSSH-formatted known hosts. ++fn known_host_files() -> Vec { ++ let mut result = Vec::new(); ++ if cfg!(unix) { ++ result.push(PathBuf::from("/etc/ssh/ssh_known_hosts")); ++ } else if cfg!(windows) { ++ // The msys/cygwin version of OpenSSH uses `/etc` from the posix root ++ // filesystem there (such as `C:\msys64\etc\ssh\ssh_known_hosts`). ++ // However, I do not know of a way to obtain that location from ++ // Windows-land. The ProgramData version here is what the PowerShell ++ // port of OpenSSH does. ++ if let Some(progdata) = std::env::var_os("ProgramData") { ++ let mut progdata = PathBuf::from(progdata); ++ progdata.push("ssh"); ++ progdata.push("ssh_known_hosts"); ++ result.push(progdata) ++ } ++ } ++ result.extend(user_known_host_location()); ++ result ++} ++ ++/// The location of the user's known_hosts file. ++fn user_known_host_location() -> Option { ++ // NOTE: This is a potentially inaccurate prediction of what the user ++ // actually wants. The actual location depends on several factors: ++ // ++ // - Windows OpenSSH Powershell version: I believe this looks up the home ++ // directory via ProfileImagePath in the registry, falling back to ++ // `GetWindowsDirectoryW` if that fails. ++ // - OpenSSH Portable (under msys): This is very complicated. I got lost ++ // after following it through some ldap/active directory stuff. ++ // - OpenSSH (most unix platforms): Uses `pw->pw_dir` from `getpwuid()`. ++ // ++ // This doesn't do anything close to that. home_dir's behavior is: ++ // - Windows: $USERPROFILE, or SHGetFolderPathW() ++ // - Unix: $HOME, or getpwuid_r() ++ // ++ // Since there is a mismatch here, the location returned here might be ++ // different than what the user's `ssh` CLI command uses. We may want to ++ // consider trying to align it better. ++ home::home_dir().map(|mut home| { ++ home.push(".ssh"); ++ home.push("known_hosts"); ++ home ++ }) ++} ++ ++/// The location to display in an error message instructing the user where to ++/// add the new key. ++fn user_known_host_location_to_add() -> String { ++ // Note that we don't bother with the legacy known_hosts2 files. ++ match user_known_host_location() { ++ Some(path) => path.to_str().expect("utf-8 home").to_string(), ++ None => "~/.ssh/known_hosts".to_string(), ++ } ++} ++ ++/// A single known host entry. ++#[derive(Clone)] ++struct KnownHost { ++ location: KnownHostLocation, ++ /// The hostname. May be comma separated to match multiple hosts. ++ patterns: String, ++ key_type: String, ++ key: Vec, ++} ++ ++impl KnownHost { ++ /// Returns whether or not the given host matches this known host entry. ++ fn host_matches(&self, host: &str) -> bool { ++ let mut match_found = false; ++ let host = host.to_lowercase(); ++ // FIXME: support hashed hostnames ++ for pattern in self.patterns.split(',') { ++ let pattern = pattern.to_lowercase(); ++ // FIXME: support * and ? wildcards ++ if let Some(pattern) = pattern.strip_prefix('!') { ++ if pattern == host { ++ return false; ++ } ++ } else { ++ match_found = pattern == host; ++ } ++ } ++ match_found ++ } ++} ++ ++/// Loads an OpenSSH known_hosts file. ++fn load_hostfile(path: &Path) -> Result, anyhow::Error> { ++ let contents = cargo_util::paths::read(path)?; ++ let entries = contents ++ .lines() ++ .enumerate() ++ .filter_map(|(lineno, line)| { ++ let location = KnownHostLocation::File { ++ path: path.to_path_buf(), ++ lineno: lineno as u32 + 1, ++ }; ++ parse_known_hosts_line(line, location) ++ }) ++ .collect(); ++ Ok(entries) ++} ++ ++fn parse_known_hosts_line(line: &str, location: KnownHostLocation) -> Option { ++ let line = line.trim(); ++ // FIXME: @revoked and @cert-authority is currently not supported. ++ if line.is_empty() || line.starts_with('#') || line.starts_with('@') { ++ return None; ++ } ++ let mut parts = line.split([' ', '\t']).filter(|s| !s.is_empty()); ++ let Some(patterns) = parts.next() else { return None }; ++ let Some(key_type) = parts.next() else { return None }; ++ let Some(key) = parts.next() else { return None }; ++ let Ok(key) = base64::decode(key) else { return None }; ++ Some(KnownHost { ++ location, ++ patterns: patterns.to_string(), ++ key_type: key_type.to_string(), ++ key, ++ }) ++} +Index: cargo/src/cargo/sources/git/mod.rs +=================================================================== +--- cargo.orig/src/cargo/sources/git/mod.rs ++++ cargo/src/cargo/sources/git/mod.rs +@@ -1,4 +1,5 @@ + pub use self::source::GitSource; + pub use self::utils::{fetch, GitCheckout, GitDatabase, GitRemote}; ++mod known_hosts; + mod source; + mod utils; +Index: cargo/src/cargo/sources/git/utils.rs +=================================================================== +--- cargo.orig/src/cargo/sources/git/utils.rs ++++ cargo/src/cargo/sources/git/utils.rs +@@ -647,7 +647,6 @@ where + | ErrorClass::Submodule + | ErrorClass::FetchHead + | ErrorClass::Ssh +- | ErrorClass::Callback + | ErrorClass::Http => { + let mut msg = "network failure seems to have happened\n".to_string(); + msg.push_str( +@@ -658,6 +657,13 @@ where + ); + err = err.context(msg); + } ++ ErrorClass::Callback => { ++ // This unwraps the git2 error. We're using the callback error ++ // specifically to convey errors from Rust land through the C ++ // callback interface. We don't need the `; class=Callback ++ // (26)` that gets tacked on to the git2 error message. ++ err = anyhow::format_err!("{}", e.message()); ++ } + _ => {} + } + } +@@ -686,12 +692,16 @@ pub fn with_fetch_options( + let mut progress = Progress::new("Fetch", config); + network::with_retry(config, || { + with_authentication(url, git_config, |f| { ++ let port = Url::parse(url).ok().and_then(|url| url.port()); + let mut last_update = Instant::now(); + let mut rcb = git2::RemoteCallbacks::new(); + // We choose `N=10` here to make a `300ms * 10slots ~= 3000ms` + // sliding window for tracking the data transfer rate (in bytes/s). + let mut counter = MetricsCounter::<10>::new(0, last_update); + rcb.credentials(f); ++ rcb.certificate_check(|cert, host| { ++ super::known_hosts::certificate_check(cert, host, port) ++ }); + rcb.transfer_progress(|stats| { + let indexed_deltas = stats.indexed_deltas(); + let msg = if indexed_deltas > 0 { +Index: cargo/src/doc/src/appendix/git-authentication.md +=================================================================== +--- cargo.orig/src/doc/src/appendix/git-authentication.md ++++ cargo/src/doc/src/appendix/git-authentication.md +@@ -58,9 +58,32 @@ on how to start `ssh-agent` and to add k + > used by Cargo's built-in SSH library. More advanced requirements should use + > [`net.git-fetch-with-cli`]. + ++### SSH Known Hosts ++ ++When connecting to an SSH host, Cargo must verify the identity of the host ++using "known hosts", which are a list of host keys. Cargo can look for these ++known hosts in OpenSSH-style `known_hosts` files located in their standard ++locations (`.ssh/known_hosts` in your home directory, or ++`/etc/ssh/ssh_known_hosts` on Unix-like platforms or ++`%PROGRAMDATA%\ssh\ssh_known_hosts` on Windows). More information about these ++files can be found in the [sshd man page]. ++ ++When connecting to an SSH host before the known hosts has been configured, ++Cargo will display an error message instructing you how to add the host key. ++This also includes a "fingerprint", which is a smaller hash of the host key, ++which should be easier to visually verify. The server administrator can get ++the fingerprint by running `ssh-keygen` against the public key (for example, ++`ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub`). Well-known sites may ++publish their fingerprints on the web; for example GitHub posts theirs at ++. ++ ++Cargo comes with the host keys for [github.com](https://github.com) built-in. ++If those ever change, you can add the new keys to your known_hosts file. ++ + [`credential.helper`]: https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage + [`net.git-fetch-with-cli`]: ../reference/config.md#netgit-fetch-with-cli + [GCM]: https://github.com/microsoft/Git-Credential-Manager-Core/ + [PuTTY]: https://www.chiark.greenend.org.uk/~sgtatham/putty/ + [Microsoft installation documentation]: https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse + [key management]: https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement ++[sshd man page]: https://man.openbsd.org/sshd#SSH_KNOWN_HOSTS_FILE_FORMAT +--- rust-cargo-0.66.0.orig/Cargo.toml ++++ rust-cargo-0.66.0/Cargo.toml +@@ -17,6 +17,7 @@ path = "src/cargo/lib.rs" + + [dependencies] + atty = "0.2" ++base64 = "0.13" + bytesize = "1.0" + cargo-platform = { path = "crates/cargo-platform", version = "0.1.2" } + cargo-util = { path = "crates/cargo-util", version = "0.2.1" } +@@ -28,8 +29,8 @@ pretty_env_logger = { version = "0.4", o + anyhow = "1.0" + filetime = "0.2.9" + flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } +-git2 = "0.15.0" +-git2-curl = "0.16.0" ++git2 = "0.16.0" ++git2-curl = "0.17.0" + glob = "0.3.0" + hex = "0.4" + home = "0.5" +@@ -41,7 +42,7 @@ jobserver = "0.1.24" + lazycell = "1.2.0" + libc = "0.2" + log = "0.4.6" +-libgit2-sys = "0.14.0" ++libgit2-sys = "0.14.1" + memchr = "2.1.3" + opener = "0.5" + os_info = "3.5.0" + +--- cargo-0.66/crates/cargo-test-support/Cargo.toml.orig 2023-01-11 11:33:00.584077593 +0100 ++++ cargo-0.66/crates/cargo-test-support/Cargo.toml 2023-01-11 11:33:12.564917363 +0100 +@@ -14,7 +14,7 @@ cargo-util = { path = "../cargo-util" } + snapbox = { version = "0.3.0", features = ["diff", "path"] } + filetime = "0.2" + flate2 = { version = "1.0", default-features = false, features = ["zlib"] } +-git2 = "0.15.0" ++git2 = "0.16.0" + glob = "0.3" + itertools = "0.10.0" + lazy_static = "1.0" + diff -Nru cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-02-add-support-for-deserializing-vec-value-string.patch cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-02-add-support-for-deserializing-vec-value-string.patch --- cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-02-add-support-for-deserializing-vec-value-string.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-02-add-support-for-deserializing-vec-value-string.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,157 @@ +commit 9f62f8440e9e542f27d60c75be38ac51186c6c32 +Author: Eric Huss +Date: Fri Dec 9 20:03:27 2022 -0800 + + Add support for deserializing Vec> in config. + + This adds the ability to track the definition location of a string + in a TOML array. + +diff --git a/src/cargo/util/config/de.rs b/src/cargo/util/config/de.rs +index 6fddc7e71f..1408f15b57 100644 +--- a/src/cargo/util/config/de.rs ++++ b/src/cargo/util/config/de.rs +@@ -384,7 +384,12 @@ impl<'de> de::SeqAccess<'de> for ConfigSeqAccess { + { + match self.list_iter.next() { + // TODO: add `def` to error? +- Some((value, _def)) => seed.deserialize(value.into_deserializer()).map(Some), ++ Some((value, def)) => { ++ // This might be a String or a Value. ++ // ValueDeserializer will handle figuring out which one it is. ++ let maybe_value_de = ValueDeserializer::new_with_string(value, def); ++ seed.deserialize(maybe_value_de).map(Some) ++ } + None => Ok(None), + } + } +@@ -400,7 +405,17 @@ impl<'de> de::SeqAccess<'de> for ConfigSeqAccess { + struct ValueDeserializer<'config> { + hits: u32, + definition: Definition, +- de: Deserializer<'config>, ++ /// The deserializer, used to actually deserialize a Value struct. ++ /// This is `None` if deserializing a string. ++ de: Option>, ++ /// A string value to deserialize. ++ /// ++ /// This is used for situations where you can't address a string via a ++ /// TOML key, such as a string inside an array. The `ConfigSeqAccess` ++ /// doesn't know if the type it should deserialize to is a `String` or ++ /// `Value`, so `ValueDeserializer` needs to be able to handle ++ /// both. ++ str_value: Option, + } + + impl<'config> ValueDeserializer<'config> { +@@ -428,9 +443,19 @@ impl<'config> ValueDeserializer<'config> { + Ok(ValueDeserializer { + hits: 0, + definition, +- de, ++ de: Some(de), ++ str_value: None, + }) + } ++ ++ fn new_with_string(s: String, definition: Definition) -> ValueDeserializer<'config> { ++ ValueDeserializer { ++ hits: 0, ++ definition, ++ de: None, ++ str_value: Some(s), ++ } ++ } + } + + impl<'de, 'config> de::MapAccess<'de> for ValueDeserializer<'config> { +@@ -459,9 +484,14 @@ impl<'de, 'config> de::MapAccess<'de> for ValueDeserializer<'config> { + // If this is the first time around we deserialize the `value` field + // which is the actual deserializer + if self.hits == 1 { +- return seed +- .deserialize(self.de.clone()) +- .map_err(|e| e.with_key_context(&self.de.key, self.definition.clone())); ++ if let Some(de) = &self.de { ++ return seed ++ .deserialize(de.clone()) ++ .map_err(|e| e.with_key_context(&de.key, self.definition.clone())); ++ } else { ++ return seed ++ .deserialize(self.str_value.as_ref().unwrap().clone().into_deserializer()); ++ } + } + + // ... otherwise we're deserializing the `definition` field, so we need +@@ -484,6 +514,71 @@ impl<'de, 'config> de::MapAccess<'de> for ValueDeserializer<'config> { + } + } + ++// Deserializer is only implemented to handle deserializing a String inside a ++// sequence (like `Vec` or `Vec>`). `Value` is ++// handled by deserialize_struct, and the plain `String` is handled by all the ++// other functions here. ++impl<'de, 'config> de::Deserializer<'de> for ValueDeserializer<'config> { ++ type Error = ConfigError; ++ ++ fn deserialize_str(self, visitor: V) -> Result ++ where ++ V: de::Visitor<'de>, ++ { ++ visitor.visit_str(&self.str_value.expect("string expected")) ++ } ++ ++ fn deserialize_string(self, visitor: V) -> Result ++ where ++ V: de::Visitor<'de>, ++ { ++ visitor.visit_string(self.str_value.expect("string expected")) ++ } ++ ++ fn deserialize_struct( ++ self, ++ name: &'static str, ++ fields: &'static [&'static str], ++ visitor: V, ++ ) -> Result ++ where ++ V: de::Visitor<'de>, ++ { ++ // Match on the magical struct name/field names that are passed in to ++ // detect when we're deserializing `Value`. ++ // ++ // See more comments in `value.rs` for the protocol used here. ++ if name == value::NAME && fields == value::FIELDS { ++ return visitor.visit_map(self); ++ } ++ unimplemented!("only strings and Value can be deserialized from a sequence"); ++ } ++ ++ fn deserialize_any(self, visitor: V) -> Result ++ where ++ V: de::Visitor<'de>, ++ { ++ visitor.visit_string(self.str_value.expect("string expected")) ++ } ++ ++ fn deserialize_ignored_any(self, visitor: V) -> Result ++ where ++ V: de::Visitor<'de>, ++ { ++ visitor.visit_unit() ++ } ++ ++ serde::forward_to_deserialize_any! { ++ i8 i16 i32 i64 ++ u8 u16 u32 u64 ++ option ++ newtype_struct seq tuple tuple_struct map enum bool ++ f32 f64 char bytes ++ byte_buf unit unit_struct ++ identifier ++ } ++} ++ + /// A deserializer which takes two values and deserializes into a tuple of those + /// two values. This is similar to types like `StrDeserializer` in upstream + /// serde itself. diff -Nru cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-03-support-configuring-ssh-known-hosts.patch cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-03-support-configuring-ssh-known-hosts.patch --- cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-03-support-configuring-ssh-known-hosts.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-03-support-configuring-ssh-known-hosts.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,299 @@ +commit 026bda3fb5eddac0df111ee150706f756558a7b3 +Author: Eric Huss +Date: Fri Dec 9 20:38:12 2022 -0800 + + Support configuring ssh known-hosts via cargo config. + +diff --git a/src/cargo/sources/git/known_hosts.rs b/src/cargo/sources/git/known_hosts.rs +index 875dcf63f3..7efea43c3b 100644 +--- a/src/cargo/sources/git/known_hosts.rs ++++ b/src/cargo/sources/git/known_hosts.rs +@@ -20,6 +20,7 @@ + //! hostname patterns, and revoked markers. See "FIXME" comments littered in + //! this file. + ++use crate::util::config::{Definition, Value}; + use git2::cert::Cert; + use git2::CertificateCheckStatus; + use std::collections::HashSet; +@@ -74,6 +75,8 @@ impl From for KnownHostError { + enum KnownHostLocation { + /// Loaded from a file from disk. + File { path: PathBuf, lineno: u32 }, ++ /// Loaded from cargo's config system. ++ Config { definition: Definition }, + /// Part of the hard-coded bundled keys in Cargo. + Bundled, + } +@@ -83,6 +86,8 @@ pub fn certificate_check( + cert: &Cert<'_>, + host: &str, + port: Option, ++ config_known_hosts: Option<&Vec>>, ++ diagnostic_home_config: &str, + ) -> Result { + let Some(host_key) = cert.as_hostkey() else { + // Return passthrough for TLS X509 certificates to use whatever validation +@@ -96,7 +101,7 @@ pub fn certificate_check( + _ => host.to_string(), + }; + // The error message must be constructed as a string to pass through the libgit2 C API. +- let err_msg = match check_ssh_known_hosts(host_key, &host_maybe_port) { ++ let err_msg = match check_ssh_known_hosts(host_key, &host_maybe_port, config_known_hosts) { + Ok(()) => { + return Ok(CertificateCheckStatus::CertificateOk); + } +@@ -113,13 +118,13 @@ pub fn certificate_check( + // Try checking without the port. + if port.is_some() + && !matches!(port, Some(22)) +- && check_ssh_known_hosts(host_key, host).is_ok() ++ && check_ssh_known_hosts(host_key, host, config_known_hosts).is_ok() + { + return Ok(CertificateCheckStatus::CertificateOk); + } + let key_type_short_name = key_type.short_name(); + let key_type_name = key_type.name(); +- let known_hosts_location = user_known_host_location_to_add(); ++ let known_hosts_location = user_known_host_location_to_add(diagnostic_home_config); + let other_hosts_message = if other_hosts.is_empty() { + String::new() + } else { +@@ -132,6 +137,9 @@ pub fn certificate_check( + KnownHostLocation::File { path, lineno } => { + format!("{} line {lineno}", path.display()) + } ++ KnownHostLocation::Config { definition } => { ++ format!("config value from {definition}") ++ } + KnownHostLocation::Bundled => format!("bundled with cargo"), + }; + write!(msg, " {loc}: {}\n", known_host.patterns).unwrap(); +@@ -163,7 +171,7 @@ pub fn certificate_check( + }) => { + let key_type_short_name = key_type.short_name(); + let key_type_name = key_type.name(); +- let known_hosts_location = user_known_host_location_to_add(); ++ let known_hosts_location = user_known_host_location_to_add(diagnostic_home_config); + let old_key_resolution = match old_known_host.location { + KnownHostLocation::File { path, lineno } => { + let old_key_location = path.display(); +@@ -173,6 +181,13 @@ pub fn certificate_check( + and adding the new key to {known_hosts_location}", + ) + } ++ KnownHostLocation::Config { definition } => { ++ format!( ++ "removing the old {key_type_name} key for `{hostname}` \ ++ loaded from Cargo's config at {definition}, \ ++ and adding the new key to {known_hosts_location}" ++ ) ++ } + KnownHostLocation::Bundled => { + format!( + "adding the new key to {known_hosts_location}\n\ +@@ -217,6 +232,7 @@ pub fn certificate_check( + fn check_ssh_known_hosts( + cert_host_key: &git2::cert::CertHostkey<'_>, + host: &str, ++ config_known_hosts: Option<&Vec>>, + ) -> Result<(), KnownHostError> { + let Some(remote_host_key) = cert_host_key.hostkey() else { + return Err(anyhow::format_err!("remote host key is not available").into()); +@@ -237,6 +253,23 @@ fn check_ssh_known_hosts( + let hosts = load_hostfile(&path)?; + known_hosts.extend(hosts); + } ++ if let Some(config_known_hosts) = config_known_hosts { ++ // Format errors aren't an error in case the format needs to change in ++ // the future, to retain forwards compatibility. ++ for line_value in config_known_hosts { ++ let location = KnownHostLocation::Config { ++ definition: line_value.definition.clone(), ++ }; ++ match parse_known_hosts_line(&line_value.val, location) { ++ Some(known_host) => known_hosts.push(known_host), ++ None => log::warn!( ++ "failed to parse known host {} from {}", ++ line_value.val, ++ line_value.definition ++ ), ++ } ++ } ++ } + // Load the bundled keys. Don't add keys for hosts that the user has + // configured, which gives them the option to override them. This could be + // useful if the keys are ever revoked. +@@ -363,12 +396,18 @@ fn user_known_host_location() -> Option { + + /// The location to display in an error message instructing the user where to + /// add the new key. +-fn user_known_host_location_to_add() -> String { ++fn user_known_host_location_to_add(diagnostic_home_config: &str) -> String { + // Note that we don't bother with the legacy known_hosts2 files. +- match user_known_host_location() { +- Some(path) => path.to_str().expect("utf-8 home").to_string(), +- None => "~/.ssh/known_hosts".to_string(), +- } ++ let user = user_known_host_location(); ++ let openssh_loc = match &user { ++ Some(path) => path.to_str().expect("utf-8 home"), ++ None => "~/.ssh/known_hosts", ++ }; ++ format!( ++ "the `net.ssh.known-hosts` array in your Cargo configuration \ ++ (such as {diagnostic_home_config}) \ ++ or in your OpenSSH known_hosts file at {openssh_loc}" ++ ) + } + + /// A single known host entry. +diff --git a/src/cargo/sources/git/utils.rs b/src/cargo/sources/git/utils.rs +index 831c43be6b..457c97c5bb 100644 +--- a/src/cargo/sources/git/utils.rs ++++ b/src/cargo/sources/git/utils.rs +@@ -726,6 +726,9 @@ pub fn with_fetch_options( + cb: &mut dyn FnMut(git2::FetchOptions<'_>) -> CargoResult<()>, + ) -> CargoResult<()> { + let mut progress = Progress::new("Fetch", config); ++ let ssh_config = config.net_config()?.ssh.as_ref(); ++ let config_known_hosts = ssh_config.and_then(|ssh| ssh.known_hosts.as_ref()); ++ let diagnostic_home_config = config.diagnostic_home_config(); + network::with_retry(config, || { + with_authentication(url, git_config, |f| { + let port = Url::parse(url).ok().and_then(|url| url.port()); +@@ -736,7 +739,13 @@ pub fn with_fetch_options( + let mut counter = MetricsCounter::<10>::new(0, last_update); + rcb.credentials(f); + rcb.certificate_check(|cert, host| { +- super::known_hosts::certificate_check(cert, host, port) ++ super::known_hosts::certificate_check( ++ cert, ++ host, ++ port, ++ config_known_hosts, ++ &diagnostic_home_config, ++ ) + }); + rcb.transfer_progress(|stats| { + let indexed_deltas = stats.indexed_deltas(); +diff --git a/src/cargo/util/config/mod.rs b/src/cargo/util/config/mod.rs +index d30e094413..d9ab142c4e 100644 +--- a/src/cargo/util/config/mod.rs ++++ b/src/cargo/util/config/mod.rs +@@ -356,6 +356,18 @@ impl Config { + &self.home_path + } + ++ /// Returns a path to display to the user with the location of their home ++ /// config file (to only be used for displaying a diagnostics suggestion, ++ /// such as recommending where to add a config value). ++ pub fn diagnostic_home_config(&self) -> String { ++ let home = self.home_path.as_path_unlocked(); ++ let path = match self.get_file_path(home, "config", false) { ++ Ok(Some(existing_path)) => existing_path, ++ _ => home.join("config.toml"), ++ }; ++ path.to_string_lossy().to_string() ++ } ++ + /// Gets the Cargo Git directory (`/git`). + pub fn git_path(&self) -> Filesystem { + self.home_path.join("git") +@@ -2356,6 +2368,13 @@ pub struct CargoNetConfig { + pub retry: Option, + pub offline: Option, + pub git_fetch_with_cli: Option, ++ pub ssh: Option, ++} ++ ++#[derive(Debug, Deserialize)] ++#[serde(rename_all = "kebab-case")] ++pub struct CargoSshConfig { ++ pub known_hosts: Option>>, + } + + #[derive(Debug, Deserialize)] +diff --git a/src/doc/src/appendix/git-authentication.md b/src/doc/src/appendix/git-authentication.md +index a7db1ac7f1..f46a6535c6 100644 +--- a/src/doc/src/appendix/git-authentication.md ++++ b/src/doc/src/appendix/git-authentication.md +@@ -66,7 +66,8 @@ known hosts in OpenSSH-style `known_hosts` files located in their standard + locations (`.ssh/known_hosts` in your home directory, or + `/etc/ssh/ssh_known_hosts` on Unix-like platforms or + `%PROGRAMDATA%\ssh\ssh_known_hosts` on Windows). More information about these +-files can be found in the [sshd man page]. ++files can be found in the [sshd man page]. Alternatively, keys may be ++configured in a Cargo configuration file with [`net.ssh.known-hosts`]. + + When connecting to an SSH host before the known hosts has been configured, + Cargo will display an error message instructing you how to add the host key. +@@ -78,10 +79,11 @@ publish their fingerprints on the web; for example GitHub posts theirs at + . + + Cargo comes with the host keys for [github.com](https://github.com) built-in. +-If those ever change, you can add the new keys to your known_hosts file. ++If those ever change, you can add the new keys to the config or known_hosts file. + + [`credential.helper`]: https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage + [`net.git-fetch-with-cli`]: ../reference/config.md#netgit-fetch-with-cli ++[`net.ssh.known-hosts`]: ../reference/config.md#netsshknown-hosts + [GCM]: https://github.com/microsoft/Git-Credential-Manager-Core/ + [PuTTY]: https://www.chiark.greenend.org.uk/~sgtatham/putty/ + [Microsoft installation documentation]: https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse +diff --git a/src/doc/src/reference/config.md b/src/doc/src/reference/config.md +index 1e50648797..f804ceebea 100644 +--- a/src/doc/src/reference/config.md ++++ b/src/doc/src/reference/config.md +@@ -114,6 +114,9 @@ retry = 2 # network retries + git-fetch-with-cli = true # use the `git` executable for git operations + offline = true # do not access the network + ++[net.ssh] ++known-hosts = ["..."] # known SSH host keys ++ + [patch.] + # Same keys as for [patch] in Cargo.toml + +@@ -750,6 +753,41 @@ needed, and generate an error if it encounters a network error. + + Can be overridden with the `--offline` command-line option. + ++##### `net.ssh` ++ ++The `[net.ssh]` table contains settings for SSH connections. ++ ++##### `net.ssh.known-hosts` ++* Type: array of strings ++* Default: see description ++* Environment: not supported ++ ++The `known-hosts` array contains a list of SSH host keys that should be ++accepted as valid when connecting to an SSH server (such as for SSH git ++dependencies). Each entry should be a string in a format similar to OpenSSH ++`known_hosts` files. Each string should start with one or more hostnames ++separated by commas, a space, the key type name, a space, and the ++base64-encoded key. For example: ++ ++```toml ++[net.ssh] ++known-hosts = [ ++ "example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFO4Q5T0UV0SQevair9PFwoxY9dl4pQl3u5phoqJH3cF" ++] ++``` ++ ++Cargo will attempt to load known hosts keys from common locations supported in ++OpenSSH, and will join those with any listed in a Cargo configuration file. ++If any matching entry has the correct key, the connection will be allowed. ++ ++Cargo comes with the host keys for [github.com][github-keys] built-in. If ++those ever change, you can add the new keys to the config or known_hosts file. ++ ++See [Git Authentication](../appendix/git-authentication.md#ssh-known-hosts) ++for more details. ++ ++[github-keys]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints ++ + #### `[patch]` + + Just as you can override dependencies using [`[patch]` in diff -Nru cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-04-add-some-known-hosts-tests-and-fix-comma-bug.patch cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-04-add-some-known-hosts-tests-and-fix-comma-bug.patch --- cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-04-add-some-known-hosts-tests-and-fix-comma-bug.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-04-add-some-known-hosts-tests-and-fix-comma-bug.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,244 @@ +commit 302a543ddf3b7621c2f10623862029d35fae7e3c +Author: Eric Huss +Date: Mon Dec 12 20:14:23 2022 -0800 + + Add some known_hosts tests. + + This also fixes a bug with the host matching when there are comma-separated hosts. + +diff --git a/src/cargo/sources/git/known_hosts.rs b/src/cargo/sources/git/known_hosts.rs +index 7efea43c3b..58e64e7913 100644 +--- a/src/cargo/sources/git/known_hosts.rs ++++ b/src/cargo/sources/git/known_hosts.rs +@@ -21,7 +21,7 @@ + //! this file. + + use crate::util::config::{Definition, Value}; +-use git2::cert::Cert; ++use git2::cert::{Cert, SshHostKeyType}; + use git2::CertificateCheckStatus; + use std::collections::HashSet; + use std::fmt::Write; +@@ -49,7 +49,7 @@ enum KnownHostError { + /// The host key was not found. + HostKeyNotFound { + hostname: String, +- key_type: git2::cert::SshHostKeyType, ++ key_type: SshHostKeyType, + remote_host_key: String, + remote_fingerprint: String, + other_hosts: Vec, +@@ -57,7 +57,7 @@ enum KnownHostError { + /// The host key was found, but does not match the remote's key. + HostKeyHasChanged { + hostname: String, +- key_type: git2::cert::SshHostKeyType, ++ key_type: SshHostKeyType, + old_known_host: KnownHost, + remote_host_key: String, + remote_fingerprint: String, +@@ -238,11 +238,6 @@ fn check_ssh_known_hosts( + return Err(anyhow::format_err!("remote host key is not available").into()); + }; + let remote_key_type = cert_host_key.hostkey_type().unwrap(); +- // `changed_key` keeps track of any entries where the key has changed. +- let mut changed_key = None; +- // `other_hosts` keeps track of any entries that have an identical key, +- // but a different hostname. +- let mut other_hosts = Vec::new(); + + // Collect all the known host entries from disk. + let mut known_hosts = Vec::new(); +@@ -293,6 +288,21 @@ fn check_ssh_known_hosts( + }); + } + } ++ check_ssh_known_hosts_loaded(&known_hosts, host, remote_key_type, remote_host_key) ++} ++ ++/// Checks a host key against a loaded set of known hosts. ++fn check_ssh_known_hosts_loaded( ++ known_hosts: &[KnownHost], ++ host: &str, ++ remote_key_type: SshHostKeyType, ++ remote_host_key: &[u8], ++) -> Result<(), KnownHostError> { ++ // `changed_key` keeps track of any entries where the key has changed. ++ let mut changed_key = None; ++ // `other_hosts` keeps track of any entries that have an identical key, ++ // but a different hostname. ++ let mut other_hosts = Vec::new(); + + for known_host in known_hosts { + // The key type from libgit2 needs to match the key type from the host file. +@@ -301,7 +311,6 @@ fn check_ssh_known_hosts( + } + let key_matches = known_host.key == remote_host_key; + if !known_host.host_matches(host) { +- // `name` can be None for hashed hostnames (which libgit2 does not expose). + if key_matches { + other_hosts.push(known_host.clone()); + } +@@ -434,7 +443,7 @@ impl KnownHost { + return false; + } + } else { +- match_found = pattern == host; ++ match_found |= pattern == host; + } + } + match_found +@@ -444,6 +453,10 @@ impl KnownHost { + /// Loads an OpenSSH known_hosts file. + fn load_hostfile(path: &Path) -> Result, anyhow::Error> { + let contents = cargo_util::paths::read(path)?; ++ Ok(load_hostfile_contents(path, &contents)) ++} ++ ++fn load_hostfile_contents(path: &Path, contents: &str) -> Vec { + let entries = contents + .lines() + .enumerate() +@@ -455,13 +468,13 @@ fn load_hostfile(path: &Path) -> Result, anyhow::Error> { + parse_known_hosts_line(line, location) + }) + .collect(); +- Ok(entries) ++ entries + } + + fn parse_known_hosts_line(line: &str, location: KnownHostLocation) -> Option { + let line = line.trim(); + // FIXME: @revoked and @cert-authority is currently not supported. +- if line.is_empty() || line.starts_with('#') || line.starts_with('@') { ++ if line.is_empty() || line.starts_with(['#', '@', '|']) { + return None; + } + let mut parts = line.split([' ', '\t']).filter(|s| !s.is_empty()); +@@ -476,3 +489,126 @@ fn parse_known_hosts_line(line: &str, location: KnownHostLocation) -> Option { ++ assert_eq!(path, kh_path); ++ assert_eq!(*lineno, 4); ++ } ++ _ => panic!("unexpected"), ++ } ++ assert_eq!(khs[0].patterns, "example.com,rust-lang.org"); ++ assert_eq!(khs[0].key_type, "ssh-rsa"); ++ assert_eq!(khs[0].key.len(), 407); ++ assert_eq!(&khs[0].key[..30], b"\x00\x00\x00\x07ssh-rsa\x00\x00\x00\x03\x01\x00\x01\x00\x00\x01\x81\x00\xb935\x88\xa5\x9c)"); ++ match &khs[1].location { ++ KnownHostLocation::File { path, lineno } => { ++ assert_eq!(path, kh_path); ++ assert_eq!(*lineno, 5); ++ } ++ _ => panic!("unexpected"), ++ } ++ assert_eq!(khs[2].patterns, "[example.net]:2222"); ++ assert_eq!(khs[3].patterns, "nistp256.example.org"); ++ assert_eq!(khs[7].patterns, "192.168.42.12"); ++ } ++ ++ #[test] ++ fn host_matches() { ++ let kh_path = Path::new("/home/abc/.known_hosts"); ++ let khs = load_hostfile_contents(kh_path, COMMON_CONTENTS); ++ assert!(khs[0].host_matches("example.com")); ++ assert!(khs[0].host_matches("rust-lang.org")); ++ assert!(khs[0].host_matches("EXAMPLE.COM")); ++ assert!(khs[1].host_matches("example.net")); ++ assert!(!khs[0].host_matches("example.net")); ++ assert!(khs[2].host_matches("[example.net]:2222")); ++ assert!(!khs[2].host_matches("example.net")); ++ assert!(!khs[8].host_matches("neg.example.com")); ++ } ++ ++ #[test] ++ fn check_match() { ++ let kh_path = Path::new("/home/abc/.known_hosts"); ++ let khs = load_hostfile_contents(kh_path, COMMON_CONTENTS); ++ ++ assert!(check_ssh_known_hosts_loaded( ++ &khs, ++ "example.com", ++ SshHostKeyType::Rsa, ++ &khs[0].key ++ ) ++ .is_ok()); ++ ++ match check_ssh_known_hosts_loaded(&khs, "example.com", SshHostKeyType::Dss, &khs[0].key) { ++ Err(KnownHostError::HostKeyNotFound { ++ hostname, ++ remote_fingerprint, ++ other_hosts, ++ .. ++ }) => { ++ assert_eq!( ++ remote_fingerprint, ++ "yn+pONDn0EcgdOCVptgB4RZd/wqmsVKrPnQMLtrvhw8" ++ ); ++ assert_eq!(hostname, "example.com"); ++ assert_eq!(other_hosts.len(), 0); ++ } ++ _ => panic!("unexpected"), ++ } ++ ++ match check_ssh_known_hosts_loaded( ++ &khs, ++ "foo.example.com", ++ SshHostKeyType::Rsa, ++ &khs[0].key, ++ ) { ++ Err(KnownHostError::HostKeyNotFound { other_hosts, .. }) => { ++ assert_eq!(other_hosts.len(), 1); ++ assert_eq!(other_hosts[0].patterns, "example.com,rust-lang.org"); ++ } ++ _ => panic!("unexpected"), ++ } ++ ++ let mut modified_key = khs[0].key.clone(); ++ modified_key[0] = 1; ++ match check_ssh_known_hosts_loaded(&khs, "example.com", SshHostKeyType::Rsa, &modified_key) ++ { ++ Err(KnownHostError::HostKeyHasChanged { old_known_host, .. }) => { ++ assert!(matches!( ++ old_known_host.location, ++ KnownHostLocation::File { lineno: 4, .. } ++ )); ++ } ++ _ => panic!("unexpected"), ++ } ++ } ++} diff -Nru cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-05-remove-let-else.patch cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-05-remove-let-else.patch --- cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-05-remove-let-else.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-05-remove-let-else.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,26 @@ +commit cf716fc3c2b0785013b321f08d6cf9e277f89c84 +Author: Eric Huss +Date: Tue Dec 13 08:14:59 2022 -0800 + + Remove let-else, just use ? propagation. + + Co-authored-by: Weihang Lo + +diff --git a/src/cargo/sources/git/known_hosts.rs b/src/cargo/sources/git/known_hosts.rs +index 58e64e7913..f272195306 100644 +--- a/src/cargo/sources/git/known_hosts.rs ++++ b/src/cargo/sources/git/known_hosts.rs +@@ -478,10 +478,9 @@ fn parse_known_hosts_line(line: &str, location: KnownHostLocation) -> Option +Date: Wed Dec 14 19:01:40 2022 -0800 + + Add test for config Value in TOML array. + +diff --git a/tests/testsuite/config.rs b/tests/testsuite/config.rs +index b1d07bb405..d1487833f7 100644 +--- a/tests/testsuite/config.rs ++++ b/tests/testsuite/config.rs +@@ -1,7 +1,7 @@ + //! Tests for config settings. + + use cargo::core::{PackageIdSpec, Shell}; +-use cargo::util::config::{self, Config, SslVersionConfig, StringList}; ++use cargo::util::config::{self, Config, Definition, SslVersionConfig, StringList}; + use cargo::util::interning::InternedString; + use cargo::util::toml::{self, VecStringOrBool as VSOB}; + use cargo::CargoResult; +@@ -1508,3 +1508,59 @@ fn all_profile_options() { + let roundtrip_toml = toml_edit::easy::to_string(&roundtrip).unwrap(); + compare::assert_match_exact(&profile_toml, &roundtrip_toml); + } ++ ++#[cargo_test] ++fn value_in_array() { ++ // Value in an array should work ++ let root_path = paths::root().join(".cargo/config.toml"); ++ write_config_at( ++ &root_path, ++ "\ ++[net.ssh] ++known-hosts = [ ++ \"example.com ...\", ++ \"example.net ...\", ++] ++", ++ ); ++ ++ let foo_path = paths::root().join("foo/.cargo/config.toml"); ++ write_config_at( ++ &foo_path, ++ "\ ++[net.ssh] ++known-hosts = [ ++ \"example.org ...\", ++] ++", ++ ); ++ ++ let config = ConfigBuilder::new() ++ .cwd("foo") ++ // environment variables don't actually work for known-hosts due to ++ // space splitting, but this is included here just to validate that ++ // they work (particularly if other Vec config vars are added ++ // in the future). ++ .env("CARGO_NET_SSH_KNOWN_HOSTS", "env-example") ++ .build(); ++ let net_config = config.net_config().unwrap(); ++ let kh = net_config ++ .ssh ++ .as_ref() ++ .unwrap() ++ .known_hosts ++ .as_ref() ++ .unwrap(); ++ assert_eq!(kh.len(), 4); ++ assert_eq!(kh[0].val, "example.org ..."); ++ assert_eq!(kh[0].definition, Definition::Path(foo_path.clone())); ++ assert_eq!(kh[1].val, "example.com ..."); ++ assert_eq!(kh[1].definition, Definition::Path(root_path.clone())); ++ assert_eq!(kh[2].val, "example.net ..."); ++ assert_eq!(kh[2].definition, Definition::Path(root_path.clone())); ++ assert_eq!(kh[3].val, "env-example"); ++ assert_eq!( ++ kh[3].definition, ++ Definition::Environment("CARGO_NET_SSH_KNOWN_HOSTS".to_string()) ++ ); ++} diff -Nru cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-07-support-hashed-hostnames.patch cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-07-support-hashed-hostnames.patch --- cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-07-support-hashed-hostnames.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-07-support-hashed-hostnames.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,125 @@ +This patch is based on the upstream commit described below, adapted for use +in the Debian package by Peter Michael Green. + +commit 67ae2dcafea5955824b1f390568a5fa109424987 +Author: Eric Huss +Date: Wed Dec 28 15:52:10 2022 -0800 + + ssh known_hosts: support hashed hostnames + +Index: cargo/src/cargo/sources/git/known_hosts.rs +=================================================================== +--- cargo.orig/src/cargo/sources/git/known_hosts.rs ++++ cargo/src/cargo/sources/git/known_hosts.rs +@@ -16,13 +16,13 @@ + //! - `VerifyHostKeyDNS` — Uses SSHFP DNS records to fetch a host key. + //! + //! There's also a number of things that aren't supported but could be easily +-//! added (it just adds a little complexity). For example, hashed hostnames, +-//! hostname patterns, and revoked markers. See "FIXME" comments littered in +-//! this file. ++//! added (it just adds a little complexity). For example, hostname patterns, ++//! and revoked markers. See "FIXME" comments littered in this file. + + use crate::util::config::{Definition, Value}; + use git2::cert::{Cert, SshHostKeyType}; + use git2::CertificateCheckStatus; ++use hmac::Mac; + use std::collections::HashSet; + use std::fmt::Write; + use std::path::{Path, PathBuf}; +@@ -419,6 +419,8 @@ fn user_known_host_location_to_add(diagn + ) + } + ++const HASH_HOSTNAME_PREFIX: &str = "|1|"; ++ + /// A single known host entry. + #[derive(Clone)] + struct KnownHost { +@@ -434,7 +436,9 @@ impl KnownHost { + fn host_matches(&self, host: &str) -> bool { + let mut match_found = false; + let host = host.to_lowercase(); +- // FIXME: support hashed hostnames ++ if let Some(hashed) = self.patterns.strip_prefix(HASH_HOSTNAME_PREFIX) { ++ return hashed_hostname_matches(&host, hashed); ++ } + for pattern in self.patterns.split(',') { + let pattern = pattern.to_lowercase(); + // FIXME: support * and ? wildcards +@@ -450,6 +454,16 @@ impl KnownHost { + } + } + ++fn hashed_hostname_matches(host: &str, hashed: &str) -> bool { ++ let Some((b64_salt, b64_host)) = hashed.split_once('|') else { return false; }; ++ let Ok(salt) = base64::decode(b64_salt) else { return false; }; ++ let Ok(hashed_host) = base64::decode(b64_host) else { return false; }; ++ let Ok(mut mac) = hmac::Hmac::::new_from_slice(&salt) else { return false; }; ++ mac.update(host.as_bytes()); ++ let result = mac.finalize().into_bytes(); ++ hashed_host == &result[..] ++} ++ + /// Loads an OpenSSH known_hosts file. + fn load_hostfile(path: &Path) -> Result, anyhow::Error> { + let contents = cargo_util::paths::read(path)?; +@@ -474,7 +488,7 @@ fn load_hostfile_contents(path: &Path, c + fn parse_known_hosts_line(line: &str, location: KnownHostLocation) -> Option { + let line = line.trim(); + // FIXME: @revoked and @cert-authority is currently not supported. +- if line.is_empty() || line.starts_with(['#', '@', '|']) { ++ if line.is_empty() || line.starts_with(['#', '@']) { + return None; + } + let mut parts = line.split([' ', '\t']).filter(|s| !s.is_empty()); +@@ -506,8 +520,7 @@ mod tests { + @revoked * ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKtQsi+KPYispwm2rkMidQf30fG1Niy8XNkvASfePoca eric@host + example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAWkjI6XT2SZh3xNk5NhisA3o3sGzWR+VAKMSqHtI0aY eric@host + 192.168.42.12 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKVYJpa0yUGaNk0NXQTPWa0tHjqRpx+7hl2diReH6DtR eric@host +- # Hash not yet supported. +- |1|7CMSYgzdwruFLRhwowMtKx0maIE=|Tlff1GFqc3Ao+fUWxMEVG8mJiyk= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIHgN3O21U4LWtP5OzjTzPnUnSDmCNDvyvlaj6Hi65JC eric@host ++ |1|QxzZoTXIWLhUsuHAXjuDMIV3FjQ=|M6NCOIkjiWdCWqkh5+Q+/uFLGjs= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIHgN3O21U4LWtP5OzjTzPnUnSDmCNDvyvlaj6Hi65JC eric@host + # Negation isn't terribly useful without globs. + neg.example.com,!neg.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOXfUnaAHTlo1Qi//rNk26OcmHikmkns1Z6WW/UuuS3K eric@host + "#; +@@ -516,7 +529,7 @@ mod tests { + fn known_hosts_parse() { + let kh_path = Path::new("/home/abc/.known_hosts"); + let khs = load_hostfile_contents(kh_path, COMMON_CONTENTS); +- assert_eq!(khs.len(), 9); ++ assert_eq!(khs.len(), 10); + match &khs[0].location { + KnownHostLocation::File { path, lineno } => { + assert_eq!(path, kh_path); +@@ -551,7 +564,9 @@ mod tests { + assert!(!khs[0].host_matches("example.net")); + assert!(khs[2].host_matches("[example.net]:2222")); + assert!(!khs[2].host_matches("example.net")); +- assert!(!khs[8].host_matches("neg.example.com")); ++ assert!(khs[8].host_matches("hashed.example.com")); ++ assert!(!khs[8].host_matches("example.com")); ++ assert!(!khs[9].host_matches("neg.example.com")); + } + + #[test] +--- rust-cargo-0.66.0.orig/Cargo.toml ++++ rust-cargo-0.66.0/Cargo.toml +@@ -33,6 +33,7 @@ git2 = "0.16.0" + git2-curl = "0.17.0" + glob = "0.3.0" + hex = "0.4" ++hmac = "0.12.1" + home = "0.5" + humantime = "2.0.0" + indexmap = "1" +@@ -53,6 +54,7 @@ semver = { version = "1.0.3", features = + serde = { version = "1.0.123", features = ["derive"] } + serde_ignored = "0.1.0" + serde_json = { version = "1.0.30", features = ["raw_value"] } ++sha1 = "0.10.1" + shell-escape = "0.1.4" + strip-ansi-escapes = "0.1.0" + tar = { version = "0.4.38", default-features = false } + diff -Nru cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-08-eliminate-let-else.patch cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-08-eliminate-let-else.patch --- cargo-mozilla-0.57.0/debian/patches/cve/CVE-2022-46176-08-eliminate-let-else.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/cve/CVE-2022-46176-08-eliminate-let-else.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,61 @@ +This patch eliminates let-else usage in the code introduced +to fix CVE-2022-46176 as that construct is not stabalised in +the version of rustc currently in Debian. + +It was written specifical for Debian by Peter Michael Green. + +Index: cargo/src/cargo/sources/git/known_hosts.rs +=================================================================== +--- cargo.orig/src/cargo/sources/git/known_hosts.rs ++++ cargo/src/cargo/sources/git/known_hosts.rs +@@ -89,11 +89,13 @@ pub fn certificate_check( + config_known_hosts: Option<&Vec>>, + diagnostic_home_config: &str, + ) -> Result { +- let Some(host_key) = cert.as_hostkey() else { ++ let host_key = cert.as_hostkey(); ++ if host_key.is_none() { + // Return passthrough for TLS X509 certificates to use whatever validation + // was done in git2. + return Ok(CertificateCheckStatus::CertificatePassthrough) + }; ++ let host_key = host_key.unwrap(); + // If a nonstandard port is in use, check for that first. + // The fallback to check without a port is handled in the HostKeyNotFound handler. + let host_maybe_port = match port { +@@ -234,9 +236,11 @@ fn check_ssh_known_hosts( + host: &str, + config_known_hosts: Option<&Vec>>, + ) -> Result<(), KnownHostError> { +- let Some(remote_host_key) = cert_host_key.hostkey() else { ++ let remote_host_key = cert_host_key.hostkey(); ++ if remote_host_key.is_none() { + return Err(anyhow::format_err!("remote host key is not available").into()); + }; ++ let remote_host_key = remote_host_key.unwrap(); + let remote_key_type = cert_host_key.hostkey_type().unwrap(); + + // Collect all the known host entries from disk. +@@ -455,10 +459,18 @@ impl KnownHost { + } + + fn hashed_hostname_matches(host: &str, hashed: &str) -> bool { +- let Some((b64_salt, b64_host)) = hashed.split_once('|') else { return false; }; +- let Ok(salt) = base64::decode(b64_salt) else { return false; }; +- let Ok(hashed_host) = base64::decode(b64_host) else { return false; }; +- let Ok(mut mac) = hmac::Hmac::::new_from_slice(&salt) else { return false; }; ++ let hostandsalt = hashed.split_once('|'); ++ if hostandsalt.is_none() { return false; }; ++ let (b64_salt, b64_host) = hostandsalt.unwrap(); ++ let salt = base64::decode(b64_salt); ++ if salt.is_err() { return false; }; ++ let salt = salt.unwrap(); ++ let hashed_host = base64::decode(b64_host); ++ if hashed_host.is_err() { return false; }; ++ let hashed_host = hashed_host.unwrap(); ++ let mac = hmac::Hmac::::new_from_slice(&salt); ++ if mac.is_err() { return false; }; ++ let mut mac = mac.unwrap(); + mac.update(host.as_bytes()); + let result = mac.finalize().into_bytes(); + hashed_host == &result[..] diff -Nru cargo-mozilla-0.57.0/debian/patches/disable-fs-specific-test.patch cargo-mozilla-0.66.0+ds1/debian/patches/disable-fs-specific-test.patch --- cargo-mozilla-0.57.0/debian/patches/disable-fs-specific-test.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/disable-fs-specific-test.patch 2023-01-11 17:55:09.000000000 +0000 @@ -0,0 +1,13 @@ +Index: cargo/tests/testsuite/metadata.rs +=================================================================== +--- cargo.orig/tests/testsuite/metadata.rs ++++ cargo/tests/testsuite/metadata.rs +@@ -3728,7 +3728,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 -Nru cargo-mozilla-0.57.0/debian/patches/series cargo-mozilla-0.66.0+ds1/debian/patches/series --- cargo-mozilla-0.57.0/debian/patches/series 2022-07-01 10:25:10.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/series 2023-07-30 08:37:52.000000000 +0000 @@ -1,12 +1,18 @@ -0001-Change-test-to-not-trigger-emoji-error.patch -0002-Remove-eacces-test.patch - 2002_disable-net-tests.patch +2003-workaround-qemu-vfork-command-not-found.patch -2110-use-mfpu-on-armhf.patch -2111-curl-no-rebuild.patch - -2112-handle-4-siphasher-algorithms.patch 2200-workaround-x32-test.patch -2300-disable-close_output_during_drain-test.patch +disable-fs-specific-test.patch +0003-tests-add-missing-cross-disabled-checks.patch + +cve/CVE-2022-46176-01-validate-ssh-host.keys.patch +cve/CVE-2022-46176-02-add-support-for-deserializing-vec-value-string.patch +cve/CVE-2022-46176-03-support-configuring-ssh-known-hosts.patch +cve/CVE-2022-46176-04-add-some-known-hosts-tests-and-fix-comma-bug.patch +cve/CVE-2022-46176-05-remove-let-else.patch +cve/CVE-2022-46176-06-add-test-for-config-value-in-toml-array.patch +cve/CVE-2022-46176-07-support-hashed-hostnames.patch +cve/CVE-2022-46176-08-eliminate-let-else.patch + use-vendored-libgit.patch +cargo-no-namespaced-features.patch diff -Nru cargo-mozilla-0.57.0/debian/patches/use-vendored-libgit.patch cargo-mozilla-0.66.0+ds1/debian/patches/use-vendored-libgit.patch --- cargo-mozilla-0.57.0/debian/patches/use-vendored-libgit.patch 2022-07-01 10:25:10.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/patches/use-vendored-libgit.patch 2023-07-30 08:37:52.000000000 +0000 @@ -12,9 +12,18 @@ + let try_to_use_system_libgit2 = false; if try_to_use_system_libgit2 { let mut cfg = pkg_config::Config::new(); - if let Ok(lib) = cfg.atleast_version("1.1.0").probe("libgit2") { -@@ -56,8 +56,8 @@ fn main() { - add_c_files(&mut cfg, "libgit2/src/streams"); + if let Ok(lib) = cfg.range_version("1.4.4".."1.6.0").probe("libgit2") { +@@ -22,8 +22,6 @@ fn main() { + } + } + +- panic!("debian build must never use vendored libgit2!"); +- + println!("cargo:rustc-cfg=libgit2_vendored"); + + if !Path::new("libgit2/src").exists() { +@@ -60,8 +58,8 @@ fn main() { + add_c_files(&mut cfg, "libgit2/src/libgit2/streams"); // Always use bundled http-parser for now - cfg.include("libgit2/deps/http-parser") @@ -24,7 +33,7 @@ // Use the included PCRE regex backend. // -@@ -66,7 +66,7 @@ fn main() { +@@ -70,7 +68,7 @@ fn main() { // reasons, just define on the command-line for everything. Perhaps there // is some way with cc to have different instructions per-file? cfg.define("GIT_REGEX_BUILTIN", "1") @@ -33,7 +42,7 @@ .define("HAVE_STDINT_H", Some("1")) .define("HAVE_MEMMOVE", Some("1")) .define("NO_RECURSE", Some("1")) -@@ -80,7 +80,8 @@ fn main() { +@@ -84,7 +82,8 @@ fn main() { .define("MAX_NAME_COUNT", Some("10000")); // "no symbols" warning on pcre_string_utils.c is because it is only used // when when COMPILE_PCRE8 is not defined, which is the default. @@ -41,9 +50,9 @@ + //add_c_files(&mut cfg, "libgit2/deps/pcre"); + println!("cargo:rustc-link-lib=pcre"); - cfg.file("libgit2/src/allocators/failalloc.c"); - cfg.file("libgit2/src/allocators/stdalloc.c"); -@@ -175,6 +176,8 @@ fn main() { + cfg.file("libgit2/src/util/allocators/failalloc.c"); + cfg.file("libgit2/src/util/allocators/stdalloc.c"); +@@ -196,6 +195,8 @@ fn main() { println!("cargo:root={}", dst.display()); diff -Nru cargo-mozilla-0.57.0/debian/rules cargo-mozilla-0.66.0+ds1/debian/rules --- cargo-mozilla-0.57.0/debian/rules 2022-07-01 10:25:10.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/rules 2023-07-30 08:37:52.000000000 +0000 @@ -39,8 +39,8 @@ $(CARGO) prepare-debian $(CURDIR)/vendor set -e; \ - tar xf debian/libgit2_1.3.0+dfsg.1.orig.tar.xz; \ - mv libgit2-1.3.0 vendor/libgit2-sys/libgit2 + tar xf debian/libgit2_1.5.1+ds.orig.tar.xz; \ + mv libgit2-1.5.1 vendor/libgit2-sys/libgit2 override_dh_auto_build-arch: $(CARGO) build diff -Nru cargo-mozilla-0.57.0/debian/scripts/audit-vendor-source cargo-mozilla-0.66.0+ds1/debian/scripts/audit-vendor-source --- cargo-mozilla-0.57.0/debian/scripts/audit-vendor-source 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/scripts/audit-vendor-source 2023-01-11 17:55:09.000000000 +0000 @@ -14,7 +14,7 @@ shift 2 # everything else is args to suspicious-source # Remove tiny files 4 bytes or less -find . -size -4c -delete +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' diff -Nru cargo-mozilla-0.57.0/debian/scripts/guess-crate-copyright cargo-mozilla-0.66.0+ds1/debian/scripts/guess-crate-copyright --- cargo-mozilla-0.57.0/debian/scripts/guess-crate-copyright 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/scripts/guess-crate-copyright 2023-01-11 17:55:09.000000000 +0000 @@ -30,13 +30,16 @@ 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 data ["package"]["authors"]), + "\n ".join("%s-%s %s" % (first_year, last_year, a.replace(" <>", "")) for a in authors), data["package"].get("license", "???").replace("/", " or "), repo or "???" )) diff -Nru cargo-mozilla-0.57.0/debian/source/include-binaries cargo-mozilla-0.66.0+ds1/debian/source/include-binaries --- cargo-mozilla-0.57.0/debian/source/include-binaries 2022-07-01 10:25:10.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/source/include-binaries 2023-07-30 08:37:52.000000000 +0000 @@ -1 +1 @@ -debian/libgit2_1.3.0+dfsg.1.orig.tar.xz +debian/libgit2_1.5.1+ds.orig.tar.xz diff -Nru cargo-mozilla-0.57.0/debian/vendor-tarball-unsuspicious.txt cargo-mozilla-0.66.0+ds1/debian/vendor-tarball-unsuspicious.txt --- cargo-mozilla-0.57.0/debian/vendor-tarball-unsuspicious.txt 2022-03-15 12:09:01.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/debian/vendor-tarball-unsuspicious.txt 2023-01-11 17:55:09.000000000 +0000 @@ -2,63 +2,111 @@ # "suspicious files" scanner. DO NOT ADD STUFF HERE WITHOUT UNDERSTANDING WHY. # docs -clap/SPONSORS.md -failure/book/src/bail-and-ensure.md -failure/CODE_OF_CONDUCT.md */CHANGELOG.md -*/CONTRIBUTORS.md */LICENSE */LICENSE.md */README.md */Cargo.toml +base64/RELEASE-NOTES.md + +# ignore +base64/icon_CLion.svg # test data bstr/src/unicode/data/*Test.txt +combine/benches/data.json +combine/benches/http-requests.txt +content_inspector/testdata/* flate2/tests/ -idna/tests/punycode_tests.json -idna/tests/IdnaTest.txt +hmac/tests/data/*.blb idna/tests/IdnaTestV2.txt +idna/tests/punycode_tests.json im-rc/proptest-regressions/ itertools/examples/iris.data -openssl/test/ memchr/src/tests/x86_64-soft_float.json -miniz_oxide/tests/test_data/* -regex/src/testdata/basic.dat -regex/tests/ +openssl/test/ regex-automata/data/fowler-tests/* regex-automata/data/tests/fowler/* -schannel/test/* -toml/tests/ +regex/src/testdata/basic.dat +regex/tests/ +schannel/test/identity.p12 +schannel/test/key.key +schannel/test/self-signed.badssl.com.cer +schannel/test/cert.der +schannel/test/cert.pem +schannel/test/key_wrong_header.pem +sha1/tests/data/*.blb +toml_edit/tests/fixtures/* +unicode-ident/tests/fst/*.fst url/tests/*.json vcpkg/test-data/*/installed/vcpkg/updates/* vte/tests/demo.vte # ideally should be autogenerated, but too difficult today bstr/src/unicode/fsm/*.dfa +bstr-0.2.17/src/unicode/fsm/*.dfa regex-syntax/src/unicode_tables/*.rs # "verylongtext" but OK source code, manually audited: -cloudabi/cloudabi.rs git2/src/cred.rs +kstring/benches/clone.rs libz-sys/src/smoke.c -proptest/src/regex-contrib/crates_regex.rs +miniz_oxide/Readme.md openssl-sys/build/expando.c -rustc-demangle/src/legacy.rs -rustc-demangle/src/lib.rs -termion/logo.svg +serde_json/tests/lexical/parse.rs tinyvec/LICENSE-MIT.md unicode-normalization/src/stream_safe.rs vcpkg/notes.md walkdir/compare/nftw.c winapi/src/lib.rs -# other misc OK, manually audited: -backtrace-sys/src/android-api.c -vte/foos/large_vim_scroll.recording - memchr/scripts/make-byte-frequency-table idna/src/make_uts46_mapping_table.py walkdir/compare/walk.py -strsim/dev unicode-normalization/scripts/unicode.py unicode-width/scripts/unicode.py + +# false positive (Dyalog APL transfer) +clap/examples/tutorial_*/*.md +clap/examples/*.md + +# false positive (Algol68) +aho-corasick/src/nfa.rs +base64/src/encode.rs +base64/src/decode.rs +block-buffer/tests/mod.rs +clap/src/derive.rs +combine/src/parser/choice.rs +combine/src/parser/mod.rs +combine/src/parser/range.rs +combine/src/parser/token.rs +combine/src/stream/mod.rs +combine/src/stream/position.rs +digest/src/dev.rs +digest/src/core_api/wrapper.rs +digest/src/core_api/rt_variable.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 +os_info/src/matcher.rs +proc-macro2/src/parse.rs +regex-automata/src/regex.rs +semver/src/parse.rs +snapbox/src/substitutions.rs +syn/src/attr.rs +syn/src/custom_punctuation.rs +syn/src/group.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 +toml_edit/src/parser/errors.rs +url/src/parser.rs +yansi/src/tests.rs diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/cli.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/cli.rs --- cargo-mozilla-0.57.0/src/bin/cargo/cli.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/cli.rs 2022-10-20 06:00:42.000000000 +0000 @@ -1,9 +1,11 @@ use anyhow::anyhow; +use cargo::core::shell::Shell; use cargo::core::{features, CliUnstable}; use cargo::{self, drop_print, drop_println, CliResult, Config}; use clap::{AppSettings, Arg, ArgMatches}; use itertools::Itertools; use std::collections::HashMap; +use std::fmt::Write; use super::commands; use super::list_commands; @@ -14,36 +16,30 @@ // Maps from commonly known external commands (not builtin to cargo) to their // description, for the help page. Reserved for external subcommands that are // core within the rust ecosystem (esp ones that might become internal in the future). - static ref KNOWN_EXTERNAL_COMMAND_DESCRIPTIONS: HashMap<&'static str, &'static str> = vec![ + static ref KNOWN_EXTERNAL_COMMAND_DESCRIPTIONS: HashMap<&'static str, &'static str> = HashMap::from([ ("clippy", "Checks a package to catch common mistakes and improve your Rust code."), ("fmt", "Formats all bin and lib files of the current crate using rustfmt."), - ].into_iter().collect(); + ]); } -pub fn main(config: &mut Config) -> CliResult { +pub fn main(config: &mut LazyConfig) -> CliResult { + let args = cli().try_get_matches()?; + // CAUTION: Be careful with using `config` until it is configured below. // In general, try to avoid loading config values unless necessary (like // the [alias] table). + let config = config.get_mut(); - if commands::help::handle_embedded_help(config) { - return Ok(()); - } - - let args = match cli().get_matches_safe() { - Ok(args) => args, - Err(e) => { - if e.kind == clap::ErrorKind::UnrecognizedSubcommand { - // An unrecognized subcommand might be an external subcommand. - let cmd = &e.info.as_ref().unwrap()[0].to_owned(); - return super::execute_external_subcommand(config, cmd, &[cmd, "--help"]) - .map_err(|_| e.into()); - } else { - return Err(e.into()); - } - } - }; + // Global args need to be extracted before expanding aliases because the + // clap code for extracting a subcommand discards global options + // (appearing before the subcommand). + let (expanded_args, global_args) = expand_aliases(config, args, vec![])?; - if args.value_of("unstable-features") == Some("help") { + if expanded_args + .get_one::("unstable-features") + .map(String::as_str) + == Some("help") + { let options = CliUnstable::help(); let non_hidden_options: Vec<(String, String)> = options .iter() @@ -59,7 +55,7 @@ .iter() .map(|(option_name, option_help_message)| { let option_name_kebab_case = option_name.replace("_", "-"); - let padding = " ".repeat(longest_option - option_name.len()); // safe to substract + let padding = " ".repeat(longest_option - option_name.len()); // safe to subtract format!( " -Z {}{} -- {}", option_name_kebab_case, padding, option_help_message @@ -95,20 +91,20 @@ return Ok(()); } - let is_verbose = args.occurrences_of("verbose") > 0; - if args.is_present("version") { + let is_verbose = expanded_args.verbose() > 0; + if expanded_args.flag("version") { let version = get_version_string(is_verbose); drop_print!(config, "{}", version); return Ok(()); } - if let Some(code) = args.value_of("explain") { + if let Some(code) = expanded_args.get_one::("explain") { let mut procss = config.load_global_rustc(None)?.process(); procss.arg("--explain").arg(code).exec()?; return Ok(()); } - if args.is_present("list") { + if expanded_args.flag("list") { drop_println!(config, "Installed Commands:"); for (name, command) in list_commands(config) { let known_external_desc = KNOWN_EXTERNAL_COMMAND_DESCRIPTIONS.get(name.as_str()); @@ -133,19 +129,20 @@ } } CommandInfo::Alias { target } => { - drop_println!(config, " {:<20} {}", name, target.iter().join(" ")); + drop_println!( + config, + " {:<20} alias: {}", + name, + target.iter().join(" ") + ); } } } return Ok(()); } - // Global args need to be extracted before expanding aliases because the - // clap code for extracting a subcommand discards global options - // (appearing before the subcommand). - let (expanded_args, global_args) = expand_aliases(config, args, vec![])?; let (cmd, subcommand_args) = match expanded_args.subcommand() { - (cmd, Some(args)) => (cmd, args), + Some((cmd, args)) => (cmd, args), _ => { // No subcommand provided. cli().print_help()?; @@ -162,26 +159,75 @@ let version = cargo::version(); let mut version_string = format!("cargo {}\n", version); if is_verbose { - version_string.push_str(&format!( - "release: {}.{}.{}\n", - version.major, version.minor, version.patch - )); - if let Some(ref cfg) = version.cfg_info { - if let Some(ref ci) = cfg.commit_info { - version_string.push_str(&format!("commit-hash: {}\n", ci.commit_hash)); - version_string.push_str(&format!("commit-date: {}\n", ci.commit_date)); - } + version_string.push_str(&format!("release: {}\n", version.version)); + if let Some(ref ci) = version.commit_info { + version_string.push_str(&format!("commit-hash: {}\n", ci.commit_hash)); + version_string.push_str(&format!("commit-date: {}\n", ci.commit_date)); } + writeln!(version_string, "host: {}", env!("RUST_HOST_TARGET")).unwrap(); + add_libgit2(&mut version_string); + add_curl(&mut version_string); + add_ssl(&mut version_string); + writeln!(version_string, "os: {}", os_info::get()).unwrap(); } version_string } +fn add_libgit2(version_string: &mut String) { + let git2_v = git2::Version::get(); + let lib_v = git2_v.libgit2_version(); + let vendored = if git2_v.vendored() { + format!("vendored") + } else { + format!("system") + }; + writeln!( + version_string, + "libgit2: {}.{}.{} (sys:{} {})", + lib_v.0, + lib_v.1, + lib_v.2, + git2_v.crate_version(), + vendored + ) + .unwrap(); +} + +fn add_curl(version_string: &mut String) { + let curl_v = curl::Version::get(); + let vendored = if curl_v.vendored() { + format!("vendored") + } else { + format!("system") + }; + writeln!( + version_string, + "libcurl: {} (sys:{} {} ssl:{})", + curl_v.version(), + curl_sys::rust_crate_version(), + vendored, + curl_v.ssl_version().unwrap_or("none") + ) + .unwrap(); +} + +fn add_ssl(version_string: &mut String) { + #[cfg(feature = "openssl")] + { + writeln!(version_string, "ssl: {}", openssl::version::version()).unwrap(); + } + #[cfg(not(feature = "openssl"))] + { + let _ = version_string; // Silence unused warning. + } +} + fn expand_aliases( config: &mut Config, - args: ArgMatches<'static>, + args: ArgMatches, mut already_expanded: Vec, -) -> Result<(ArgMatches<'static>, GlobalArgs), CliError> { - if let (cmd, Some(args)) = args.subcommand() { +) -> Result<(ArgMatches, GlobalArgs), CliError> { + if let Some((cmd, args)) = args.subcommand() { match ( commands::builtin_exec(cmd), super::aliased_command(config, cmd)?, @@ -195,7 +241,7 @@ } (Some(_), None) => { // Command is built-in and is not conflicting with alias, but contains ignored values. - if let Some(mut values) = args.values_of("") { + if let Some(mut values) = args.get_many::("") { config.shell().warn(format!( "trailing arguments after built-in command `{}` are ignored: `{}`", cmd, @@ -205,21 +251,30 @@ } (None, None) => {} (_, Some(mut alias)) => { - alias.extend( - args.values_of("") - .unwrap_or_default() - .map(|s| s.to_string()), - ); + // Check if this alias is shadowing an external subcommand + // (binary of the form `cargo-`) + // Currently this is only a warning, but after a transition period this will become + // a hard error. + if let Some(path) = super::find_external_subcommand(config, cmd) { + config.shell().warn(format!( + "\ +user-defined alias `{}` is shadowing an external subcommand found at: `{}` +This was previously accepted but is being phased out; it will become a hard error in a future release. +For more information, see issue #10049 .", + cmd, + path.display(), + ))?; + } + + alias.extend(args.get_many::("").unwrap_or_default().cloned()); // new_args strips out everything before the subcommand, so // capture those global options now. // Note that an alias to an external command will not receive // these arguments. That may be confusing, but such is life. let global_args = GlobalArgs::new(args); - let new_args = cli() - .setting(AppSettings::NoBinaryName) - .get_matches_from_safe(alias)?; + let new_args = cli().no_binary_name(true).try_get_matches_from(alias)?; - let (new_cmd, _) = new_args.subcommand(); + let new_cmd = new_args.subcommand_name().expect("subcommand is required"); already_expanded.push(cmd.to_string()); if already_expanded.contains(&new_cmd.to_string()) { // Crash if the aliases are corecursive / unresolvable @@ -243,28 +298,30 @@ fn config_configure( config: &mut Config, - args: &ArgMatches<'_>, - subcommand_args: &ArgMatches<'_>, + args: &ArgMatches, + subcommand_args: &ArgMatches, global_args: GlobalArgs, ) -> CliResult { let arg_target_dir = &subcommand_args.value_of_path("target-dir", config); - let verbose = global_args.verbose + args.occurrences_of("verbose") as u32; + let verbose = global_args.verbose + args.verbose(); // quiet is unusual because it is redefined in some subcommands in order // to provide custom help text. - let quiet = - args.is_present("quiet") || subcommand_args.is_present("quiet") || global_args.quiet; + let quiet = args.flag("quiet") || subcommand_args.flag("quiet") || global_args.quiet; let global_color = global_args.color; // Extract so it can take reference. - let color = args.value_of("color").or_else(|| global_color.as_deref()); - let frozen = args.is_present("frozen") || global_args.frozen; - let locked = args.is_present("locked") || global_args.locked; - let offline = args.is_present("offline") || global_args.offline; + let color = args + .get_one::("color") + .map(String::as_str) + .or_else(|| global_color.as_deref()); + let frozen = args.flag("frozen") || global_args.frozen; + let locked = args.flag("locked") || global_args.locked; + let offline = args.flag("offline") || global_args.offline; let mut unstable_flags = global_args.unstable_flags; - if let Some(values) = args.values_of("unstable-features") { - unstable_flags.extend(values.map(|s| s.to_string())); + if let Some(values) = args.get_many::("unstable-features") { + unstable_flags.extend(values.cloned()); } let mut config_args = global_args.config_args; - if let Some(values) = args.values_of("config") { - config_args.extend(values.map(|s| s.to_string())); + if let Some(values) = args.get_many::("config") { + config_args.extend(values.cloned()); } config.configure( verbose, @@ -280,17 +337,18 @@ Ok(()) } -fn execute_subcommand( - config: &mut Config, - cmd: &str, - subcommand_args: &ArgMatches<'_>, -) -> CliResult { +fn execute_subcommand(config: &mut Config, cmd: &str, subcommand_args: &ArgMatches) -> CliResult { if let Some(exec) = commands::builtin_exec(cmd) { return exec(config, subcommand_args); } let mut ext_args: Vec<&str> = vec![cmd]; - ext_args.extend(subcommand_args.values_of("").unwrap_or_default()); + ext_args.extend( + subcommand_args + .get_many::("") + .unwrap_or_default() + .map(String::as_str), + ); super::execute_external_subcommand(config, cmd, &ext_args) } @@ -307,27 +365,29 @@ } impl GlobalArgs { - fn new(args: &ArgMatches<'_>) -> GlobalArgs { + fn new(args: &ArgMatches) -> GlobalArgs { GlobalArgs { - verbose: args.occurrences_of("verbose") as u32, - quiet: args.is_present("quiet"), - color: args.value_of("color").map(|s| s.to_string()), - frozen: args.is_present("frozen"), - locked: args.is_present("locked"), - offline: args.is_present("offline"), + verbose: args.verbose(), + quiet: args.flag("quiet"), + color: args.get_one::("color").cloned(), + frozen: args.flag("frozen"), + locked: args.flag("locked"), + offline: args.flag("offline"), unstable_flags: args - .values_of_lossy("unstable-features") - .unwrap_or_default(), + .get_many::("unstable-features") + .unwrap_or_default() + .cloned() + .collect(), config_args: args - .values_of("config") + .get_many::("config") .unwrap_or_default() - .map(|s| s.to_string()) + .cloned() .collect(), } } } -fn cli() -> App { +pub fn cli() -> App { let is_rustup = std::env::var_os("RUSTUP_HOME").is_some(); let usage = if is_rustup { "cargo [+toolchain] [OPTIONS] [SUBCOMMAND]" @@ -335,14 +395,15 @@ "cargo [OPTIONS] [SUBCOMMAND]" }; App::new("cargo") - .settings(&[ - AppSettings::UnifiedHelpMessage, - AppSettings::DeriveDisplayOrder, - AppSettings::VersionlessSubcommands, - AppSettings::AllowExternalSubcommands, - ]) - .usage(usage) - .template( + .allow_external_subcommands(true) + .setting(AppSettings::DeriveDisplayOrder) + // Doesn't mix well with our list of common cargo commands. See clap-rs/clap#3108 for + // opening clap up to allow us to style our help template + .disable_colored_help(true) + // Provide a custom help subcommand for calling into man pages + .disable_help_subcommand(true) + .override_usage(usage) + .help_template( "\ Rust's package manager @@ -350,7 +411,7 @@ {usage} OPTIONS: -{unified} +{options} Some common cargo commands are (see all commands with --list): build, b Compile the current package @@ -359,6 +420,7 @@ doc, d Build this package's and its dependencies' documentation new Create a new cargo package init Create a new cargo package in an existing directory + add Add dependencies to a manifest file run, r Run a binary or example of the local package test, t Run the tests bench Run the benchmarks @@ -370,43 +432,76 @@ See 'cargo help ' for more information on a specific command.\n", ) - .arg(opt("version", "Print version info and exit").short("V")) - .arg(opt("list", "List installed commands")) + .arg(flag("version", "Print version info and exit").short('V')) + .arg(flag("list", "List installed commands")) .arg(opt("explain", "Run `rustc --explain CODE`").value_name("CODE")) .arg( opt( "verbose", "Use verbose output (-vv very verbose/build.rs output)", ) - .short("v") - .multiple(true) + .short('v') + .action(ArgAction::Count) .global(true), ) - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg( opt("color", "Coloring: auto, always, never") .value_name("WHEN") .global(true), ) - .arg(opt("frozen", "Require Cargo.lock and cache are up to date").global(true)) - .arg(opt("locked", "Require Cargo.lock is up to date").global(true)) - .arg(opt("offline", "Run without accessing the network").global(true)) + .arg(flag("frozen", "Require Cargo.lock and cache are up to date").global(true)) + .arg(flag("locked", "Require Cargo.lock is up to date").global(true)) + .arg(flag("offline", "Run without accessing the network").global(true)) + .arg(multi_opt("config", "KEY=VALUE", "Override a configuration value").global(true)) .arg( - multi_opt( - "config", - "KEY=VALUE", - "Override a configuration value (unstable)", - ) - .global(true), - ) - .arg( - Arg::with_name("unstable-features") + Arg::new("unstable-features") .help("Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details") - .short("Z") + .short('Z') .value_name("FLAG") - .multiple(true) - .number_of_values(1) + .action(ArgAction::Append) .global(true), ) .subcommands(commands::builtin()) } + +/// Delay loading [`Config`] until access. +/// +/// In the common path, the [`Config`] is dependent on CLI parsing and shouldn't be loaded until +/// after that is done but some other paths (like fix or earlier errors) might need access to it, +/// so this provides a way to share the instance and the implementation across these different +/// accesses. +pub struct LazyConfig { + config: Option, +} + +impl LazyConfig { + pub fn new() -> Self { + Self { config: None } + } + + /// Get the config, loading it if needed + /// + /// On error, the process is terminated + pub fn get(&mut self) -> &Config { + self.get_mut() + } + + /// Get the config, loading it if needed + /// + /// On error, the process is terminated + pub fn get_mut(&mut self) -> &mut Config { + self.config.get_or_insert_with(|| match Config::default() { + Ok(cfg) => cfg, + Err(e) => { + let mut shell = Shell::new(); + cargo::exit_with_error(e.into(), &mut shell) + } + }) + } +} + +#[test] +fn verify_cli() { + cli().debug_assert(); +} diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/add.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/add.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/add.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/add.rs 2022-10-20 06:00:42.000000000 +0000 @@ -0,0 +1,356 @@ +use indexmap::IndexMap; +use indexmap::IndexSet; + +use cargo::core::dependency::DepKind; +use cargo::core::FeatureValue; +use cargo::ops::cargo_add::add; +use cargo::ops::cargo_add::AddOptions; +use cargo::ops::cargo_add::DepOp; +use cargo::ops::cargo_add::DepTable; +use cargo::ops::resolve_ws; +use cargo::util::command_prelude::*; +use cargo::util::interning::InternedString; +use cargo::CargoResult; + +pub fn cli() -> clap::Command<'static> { + clap::Command::new("add") + .setting(clap::AppSettings::DeriveDisplayOrder) + .about("Add dependencies to a Cargo.toml manifest file") + .override_usage( + "\ + cargo add [OPTIONS] [@] ... + cargo add [OPTIONS] --path ... + cargo add [OPTIONS] --git ..." + ) + .after_help("Run `cargo help add` for more detailed information.\n") + .group(clap::ArgGroup::new("selected").multiple(true).required(true)) + .args([ + clap::Arg::new("crates") + .takes_value(true) + .value_name("DEP_ID") + .multiple_values(true) + .help("Reference to a package to add as a dependency") + .long_help( + "Reference to a package to add as a dependency + +You can reference a package by: +- ``, like `cargo add serde` (latest version will be used) +- `@`, like `cargo add serde@1` or `cargo add serde@=1.0.38`" + ) + .group("selected"), + flag("no-default-features", + "Disable the default features"), + flag("default-features", + "Re-enable the default features") + .overrides_with("no-default-features"), + clap::Arg::new("features") + .short('F') + .long("features") + .takes_value(true) + .value_name("FEATURES") + .action(ArgAction::Append) + .help("Space or comma separated list of features to activate"), + flag("optional", + "Mark the dependency as optional") + .long_help("Mark the dependency as optional + +The package name will be exposed as feature of your crate.") + .conflicts_with("dev"), + flag("no-optional", + "Mark the dependency as required") + .long_help("Mark the dependency as required + +The package will be removed from your features.") + .conflicts_with("dev") + .overrides_with("optional"), + clap::Arg::new("rename") + .long("rename") + .takes_value(true) + .value_name("NAME") + .help("Rename the dependency") + .long_help("Rename the dependency + +Example uses: +- Depending on multiple versions of a crate +- Depend on crates with the same name from different registries"), + ]) + .arg_manifest_path() + .args([ + clap::Arg::new("package") + .short('p') + .long("package") + .takes_value(true) + .value_name("SPEC") + .help("Package to modify"), + ]) + .arg_quiet() + .arg_dry_run("Don't actually write the manifest") + .next_help_heading("SOURCE") + .args([ + clap::Arg::new("path") + .long("path") + .takes_value(true) + .value_name("PATH") + .help("Filesystem path to local crate to add") + .group("selected") + .conflicts_with("git"), + clap::Arg::new("git") + .long("git") + .takes_value(true) + .value_name("URI") + .help("Git repository location") + .long_help("Git repository location + +Without any other information, cargo will use latest commit on the main branch.") + .group("selected"), + clap::Arg::new("branch") + .long("branch") + .takes_value(true) + .value_name("BRANCH") + .help("Git branch to download the crate from") + .requires("git") + .group("git-ref"), + clap::Arg::new("tag") + .long("tag") + .takes_value(true) + .value_name("TAG") + .help("Git tag to download the crate from") + .requires("git") + .group("git-ref"), + clap::Arg::new("rev") + .long("rev") + .takes_value(true) + .value_name("REV") + .help("Git reference to download the crate from") + .long_help("Git reference to download the crate from + +This is the catch all, handling hashes to named references in remote repositories.") + .requires("git") + .group("git-ref"), + clap::Arg::new("registry") + .long("registry") + .takes_value(true) + .value_name("NAME") + .help("Package registry for this dependency"), + ]) + .next_help_heading("SECTION") + .args([ + flag("dev", + "Add as development dependency") + .long_help("Add as development dependency + +Dev-dependencies are not used when compiling a package for building, but are used for compiling tests, examples, and benchmarks. + +These dependencies are not propagated to other packages which depend on this package.") + .group("section"), + flag("build", + "Add as build dependency") + .long_help("Add as build dependency + +Build-dependencies are the only dependencies available for use by build scripts (`build.rs` files).") + .group("section"), + clap::Arg::new("target") + .long("target") + .takes_value(true) + .value_name("TARGET") + .value_parser(clap::builder::NonEmptyStringValueParser::new()) + .help("Add as dependency to the given target platform") + ]) +} + +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { + let dry_run = args.dry_run(); + let section = parse_section(args); + + let ws = args.workspace(config)?; + let packages = args.packages_from_flags()?; + let packages = packages.get_packages(&ws)?; + let spec = match packages.len() { + 0 => { + return Err(CliError::new( + anyhow::format_err!("no packages selected. Please specify one with `-p `"), + 101, + )); + } + 1 => packages[0], + len => { + return Err(CliError::new( + anyhow::format_err!( + "{len} packages selected. Please specify one with `-p `", + ), + 101, + )); + } + }; + + let dependencies = parse_dependencies(config, args)?; + + let options = AddOptions { + config, + spec, + dependencies, + section, + dry_run, + }; + add(&ws, &options)?; + + if !dry_run { + // Reload the workspace since we've changed dependencies + let ws = args.workspace(config)?; + resolve_ws(&ws)?; + } + + Ok(()) +} + +fn parse_dependencies(config: &Config, matches: &ArgMatches) -> CargoResult> { + let path = matches.get_one::("path"); + let git = matches.get_one::("git"); + let branch = matches.get_one::("branch"); + let rev = matches.get_one::("rev"); + let tag = matches.get_one::("tag"); + let rename = matches.get_one::("rename"); + let registry = matches.registry(config)?; + let default_features = default_features(matches); + let optional = optional(matches); + + let mut crates = matches + .get_many::("crates") + .into_iter() + .flatten() + .map(|c| (Some(c.clone()), None)) + .collect::>(); + let mut infer_crate_name = false; + if crates.is_empty() { + if path.is_some() || git.is_some() { + crates.insert(None, None); + infer_crate_name = true; + } else { + unreachable!("clap should ensure we have some source selected"); + } + } + for feature in matches + .get_many::("features") + .into_iter() + .flatten() + .map(String::as_str) + .flat_map(parse_feature) + { + let parsed_value = FeatureValue::new(InternedString::new(feature)); + match parsed_value { + FeatureValue::Feature(_) => { + if 1 < crates.len() { + let candidates = crates + .keys() + .map(|c| { + format!( + "`{}/{}`", + c.as_deref().expect("only none when there is 1"), + feature + ) + }) + .collect::>(); + anyhow::bail!("feature `{feature}` must be qualified by the dependency its being activated for, like {}", candidates.join(", ")); + } + crates + .first_mut() + .expect("always at least one crate") + .1 + .get_or_insert_with(IndexSet::new) + .insert(feature.to_owned()); + } + FeatureValue::Dep { .. } => { + anyhow::bail!("feature `{feature}` is not allowed to use explicit `dep:` syntax",) + } + FeatureValue::DepFeature { + dep_name, + dep_feature, + .. + } => { + if infer_crate_name { + anyhow::bail!("`{feature}` is unsupported when inferring the crate name, use `{dep_feature}`"); + } + if dep_feature.contains('/') { + anyhow::bail!("multiple slashes in feature `{feature}` is not allowed"); + } + crates.get_mut(&Some(dep_name.as_str().to_owned())).ok_or_else(|| { + anyhow::format_err!("feature `{dep_feature}` activated for crate `{dep_name}` but the crate wasn't specified") + })? + .get_or_insert_with(IndexSet::new) + .insert(dep_feature.as_str().to_owned()); + } + } + } + + let mut deps: Vec = Vec::new(); + for (crate_spec, features) in crates { + let dep = DepOp { + crate_spec, + rename: rename.map(String::from), + features, + default_features, + optional, + registry: registry.clone(), + path: path.map(String::from), + git: git.map(String::from), + branch: branch.map(String::from), + rev: rev.map(String::from), + tag: tag.map(String::from), + }; + deps.push(dep); + } + + if deps.len() > 1 && rename.is_some() { + anyhow::bail!("cannot specify multiple crates with `--rename`"); + } + + Ok(deps) +} + +fn default_features(matches: &ArgMatches) -> Option { + resolve_bool_arg( + matches.flag("default-features"), + matches.flag("no-default-features"), + ) +} + +fn optional(matches: &ArgMatches) -> Option { + resolve_bool_arg(matches.flag("optional"), matches.flag("no-optional")) +} + +fn resolve_bool_arg(yes: bool, no: bool) -> Option { + match (yes, no) { + (true, false) => Some(true), + (false, true) => Some(false), + (false, false) => None, + (_, _) => unreachable!("clap should make this impossible"), + } +} + +fn parse_section(matches: &ArgMatches) -> DepTable { + let kind = if matches.flag("dev") { + DepKind::Development + } else if matches.flag("build") { + DepKind::Build + } else { + DepKind::Normal + }; + + let mut table = DepTable::new().set_kind(kind); + + if let Some(target) = matches.get_one::("target") { + assert!(!target.is_empty(), "Target specification may not be empty"); + table = table.set_target(target); + } + + table +} + +/// Split feature flag list +fn parse_feature(feature: &str) -> impl Iterator { + // Not re-using `CliFeatures` because it uses a BTreeSet and loses user's ordering + feature + .split_whitespace() + .flat_map(|s| s.split(',')) + .filter(|s| !s.is_empty()) +} diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/bench.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/bench.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/bench.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/bench.rs 2022-10-20 06:00:42.000000000 +0000 @@ -3,17 +3,17 @@ pub fn cli() -> App { subcommand("bench") - .setting(AppSettings::TrailingVarArg) + .trailing_var_arg(true) .about("Execute all benchmarks of a local package") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg( - Arg::with_name("BENCHNAME") + Arg::new("BENCHNAME") .help("If specified, only run benches containing this string in their names"), ) .arg( - Arg::with_name("args") + Arg::new("args") .help("Arguments for the bench binary") - .multiple(true) + .multiple_values(true) .last(true), ) .arg_targets_all( @@ -28,7 +28,7 @@ "Benchmark all benches", "Benchmark all targets", ) - .arg(opt("no-run", "Compile, but don't run benchmarks")) + .arg(flag("no-run", "Compile, but don't run benchmarks")) .arg_package_spec( "Package to run benchmarks for", "Benchmark all packages in the workspace", @@ -42,15 +42,16 @@ .arg_manifest_path() .arg_ignore_rust_version() .arg_message_format() - .arg(opt( + .arg(flag( "no-fail-fast", "Run all benchmarks regardless of failure", )) .arg_unit_graph() + .arg_timings() .after_help("Run `cargo help bench` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; let mut compile_opts = args.compile_options( config, @@ -63,21 +64,14 @@ args.get_profile_name(config, "bench", ProfileChecking::Custom)?; let ops = TestOptions { - no_run: args.is_present("no-run"), - no_fail_fast: args.is_present("no-fail-fast"), + no_run: args.flag("no-run"), + no_fail_fast: args.flag("no-fail-fast"), compile_opts, }; - let bench_args = args.value_of("BENCHNAME").into_iter(); - let bench_args = bench_args.chain(args.values_of("args").unwrap_or_default()); - let bench_args = bench_args.collect::>(); - - let err = ops::run_benches(&ws, &ops, &bench_args)?; - match err { - None => Ok(()), - Some(err) => Err(match err.code { - Some(i) => CliError::new(anyhow::format_err!("bench failed"), i), - None => CliError::new(err.into(), 101), - }), - } + let bench_args = args.get_one::("BENCHNAME").into_iter(); + let bench_args = bench_args.chain(args.get_many::("args").unwrap_or_default()); + let bench_args = bench_args.map(String::as_str).collect::>(); + + ops::run_benches(&ws, &ops, &bench_args) } diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/build.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/build.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/build.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/build.rs 2022-10-20 06:00:42.000000000 +0000 @@ -7,7 +7,7 @@ // subcommand aliases are handled in aliased_command() // .alias("b") .about("Compile a local package and all of its dependencies") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg_package_spec( "Package to build (see `cargo help pkgid`)", "Build all packages in the workspace", @@ -44,10 +44,11 @@ .arg_build_plan() .arg_unit_graph() .arg_future_incompat_report() + .arg_timings() .after_help("Run `cargo help build` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; let mut compile_opts = args.compile_options( config, diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/check.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/check.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/check.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/check.rs 2022-10-20 06:00:42.000000000 +0000 @@ -7,7 +7,7 @@ // subcommand aliases are handled in aliased_command() // .alias("c") .about("Check a local package and all of its dependencies for errors") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg_package_spec( "Package(s) to check", "Check all packages in the workspace", @@ -36,13 +36,17 @@ .arg_message_format() .arg_unit_graph() .arg_future_incompat_report() + .arg_timings() .after_help("Run `cargo help check` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; // This is a legacy behavior that causes `cargo check` to pass `--test`. - let test = matches!(args.value_of("profile"), Some("test")); + let test = matches!( + args.get_one::("profile").map(String::as_str), + Some("test") + ); let mode = CompileMode::Check { test }; let compile_opts = args.compile_options(config, mode, Some(&ws), ProfileChecking::LegacyTestOnly)?; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/clean.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/clean.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/clean.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/clean.rs 2022-10-20 06:00:42.000000000 +0000 @@ -6,7 +6,7 @@ pub fn cli() -> App { subcommand("clean") .about("Remove artifacts that cargo has generated in the past") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg_package_spec_simple("Package to clean artifacts for") .arg_manifest_path() .arg_target_triple("Target triple to clean output for") @@ -17,7 +17,7 @@ .after_help("Run `cargo help clean` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; if args.is_present_with_zero_values("package") { @@ -29,8 +29,8 @@ spec: values(args, "package"), targets: args.targets(), requested_profile: args.get_profile_name(config, "dev", ProfileChecking::Custom)?, - profile_specified: args.is_present("profile") || args.is_present("release"), - doc: args.is_present("doc"), + profile_specified: args.contains_id("profile") || args.flag("release"), + doc: args.flag("doc"), }; ops::clean(&ws, &opts)?; Ok(()) diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/config.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/config.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/config.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/config.rs 2022-10-20 06:00:42.000000000 +0000 @@ -5,43 +5,47 @@ subcommand("config") .about("Inspect configuration values") .after_help("Run `cargo help config` for more detailed information.\n") - .setting(clap::AppSettings::SubcommandRequiredElseHelp) + .subcommand_required(true) + .arg_required_else_help(true) .subcommand( subcommand("get") - .arg(Arg::with_name("key").help("The config key to display")) + .arg(Arg::new("key").help("The config key to display")) .arg( opt("format", "Display format") - .possible_values(cargo_config::ConfigFormat::POSSIBLE_VALUES) + .value_parser(cargo_config::ConfigFormat::POSSIBLE_VALUES) .default_value("toml"), ) - .arg(opt( + .arg(flag( "show-origin", "Display where the config value is defined", )) .arg( opt("merged", "Whether or not to merge config values") - .possible_values(&["yes", "no"]) + .value_parser(["yes", "no"]) .default_value("yes"), ), ) } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { config .cli_unstable() .fail_if_stable_command(config, "config", 9301)?; match args.subcommand() { - ("get", Some(args)) => { + Some(("get", args)) => { let opts = cargo_config::GetOptions { - key: args.value_of("key"), - format: args.value_of("format").unwrap().parse()?, - show_origin: args.is_present("show-origin"), - merged: args.value_of("merged") == Some("yes"), + key: args.get_one::("key").map(String::as_str), + format: args.get_one::("format").unwrap().parse()?, + show_origin: args.flag("show-origin"), + merged: args.get_one::("merged").map(String::as_str) == Some("yes"), }; cargo_config::get(config, &opts)?; } - (cmd, _) => { - panic!("unexpected command `{}`", cmd) + Some((cmd, _)) => { + unreachable!("unexpected command {}", cmd) + } + None => { + unreachable!("unexpected command") } } Ok(()) diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/doc.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/doc.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/doc.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/doc.rs 2022-10-20 06:00:42.000000000 +0000 @@ -7,8 +7,8 @@ // subcommand aliases are handled in aliased_command() // .alias("d") .about("Build a package's documentation") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(opt( + .arg_quiet() + .arg(flag( "open", "Opens the docs in a browser after the operation", )) @@ -17,8 +17,11 @@ "Document all packages in the workspace", "Exclude packages from the build", ) - .arg(opt("no-deps", "Don't build documentation for dependencies")) - .arg(opt("document-private-items", "Document private items")) + .arg(flag( + "no-deps", + "Don't build documentation for dependencies", + )) + .arg(flag("document-private-items", "Document private items")) .arg_jobs() .arg_targets_lib_bin_example( "Document only this package's library", @@ -36,20 +39,21 @@ .arg_message_format() .arg_ignore_rust_version() .arg_unit_graph() + .arg_timings() .after_help("Run `cargo help doc` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; let mode = CompileMode::Doc { - deps: !args.is_present("no-deps"), + deps: !args.flag("no-deps"), }; let mut compile_opts = args.compile_options(config, mode, Some(&ws), ProfileChecking::Custom)?; - compile_opts.rustdoc_document_private_items = args.is_present("document-private-items"); + compile_opts.rustdoc_document_private_items = args.flag("document-private-items"); let doc_opts = DocOptions { - open_result: args.is_present("open"), + open_result: args.flag("open"), compile_opts, }; ops::doc(&ws, &doc_opts)?; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/fetch.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/fetch.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/fetch.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/fetch.rs 2022-10-20 06:00:42.000000000 +0000 @@ -6,13 +6,13 @@ pub fn cli() -> App { subcommand("fetch") .about("Fetch dependencies of a package from the network") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg_manifest_path() .arg_target_triple("Fetch dependencies for the target triple") .after_help("Run `cargo help fetch` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; let opts = FetchOptions { diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/fix.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/fix.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/fix.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/fix.rs 2022-10-20 06:00:42.000000000 +0000 @@ -1,11 +1,11 @@ use crate::command_prelude::*; -use cargo::ops::{self, CompileFilter, FilterRule, LibRule}; +use cargo::ops; pub fn cli() -> App { subcommand("fix") .about("Automatically fix lint warnings reported by rustc") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg_package_spec( "Package(s) to fix", "Fix all packages in the workspace", @@ -31,44 +31,39 @@ .arg_target_dir() .arg_manifest_path() .arg_message_format() - .arg( - Arg::with_name("broken-code") - .long("broken-code") - .help("Fix code even if it already has compiler errors"), - ) - .arg( - Arg::with_name("edition") - .long("edition") - .help("Fix in preparation for the next edition"), - ) - .arg( - Arg::with_name("idioms") - .long("edition-idioms") - .help("Fix warnings to migrate to the idioms of an edition"), - ) - .arg( - Arg::with_name("allow-no-vcs") - .long("allow-no-vcs") - .help("Fix code even if a VCS was not detected"), - ) - .arg( - Arg::with_name("allow-dirty") - .long("allow-dirty") - .help("Fix code even if the working directory is dirty"), - ) - .arg( - Arg::with_name("allow-staged") - .long("allow-staged") - .help("Fix code even if the working directory has staged changes"), - ) + .arg(flag( + "broken-code", + "Fix code even if it already has compiler errors", + )) + .arg(flag("edition", "Fix in preparation for the next edition")) + .arg(flag( + "edition-idioms", + "Fix warnings to migrate to the idioms of an edition", + )) + .arg(flag( + "allow-no-vcs", + "Fix code even if a VCS was not detected", + )) + .arg(flag( + "allow-dirty", + "Fix code even if the working directory is dirty", + )) + .arg(flag( + "allow-staged", + "Fix code even if the working directory has staged changes", + )) .arg_ignore_rust_version() + .arg_timings() .after_help("Run `cargo help fix` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; // This is a legacy behavior that causes `cargo fix` to pass `--test`. - let test = matches!(args.value_of("profile"), Some("test")); + let test = matches!( + args.get_one::("profile").map(String::as_str), + Some("test") + ); let mode = CompileMode::Check { test }; // Unlike other commands default `cargo fix` to all targets to fix as much @@ -76,27 +71,21 @@ let mut opts = args.compile_options(config, mode, Some(&ws), ProfileChecking::LegacyTestOnly)?; - if let CompileFilter::Default { .. } = opts.filter { - opts.filter = CompileFilter::Only { - all_targets: true, - lib: LibRule::Default, - bins: FilterRule::All, - examples: FilterRule::All, - benches: FilterRule::All, - tests: FilterRule::All, - } + if !opts.filter.is_specific() { + // cargo fix with no target selection implies `--all-targets`. + opts.filter = ops::CompileFilter::new_all_targets(); } ops::fix( &ws, &mut ops::FixOptions { - edition: args.is_present("edition"), - idioms: args.is_present("idioms"), + edition: args.flag("edition"), + idioms: args.flag("edition-idioms"), compile_opts: opts, - allow_dirty: args.is_present("allow-dirty"), - allow_no_vcs: args.is_present("allow-no-vcs"), - allow_staged: args.is_present("allow-staged"), - broken_code: args.is_present("broken-code"), + allow_dirty: args.flag("allow-dirty"), + allow_no_vcs: args.flag("allow-no-vcs"), + allow_staged: args.flag("allow-staged"), + broken_code: args.flag("broken-code"), }, )?; Ok(()) diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/generate_lockfile.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/generate_lockfile.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/generate_lockfile.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/generate_lockfile.rs 2022-10-20 06:00:42.000000000 +0000 @@ -5,12 +5,12 @@ pub fn cli() -> App { subcommand("generate-lockfile") .about("Generate the lockfile for a package") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg_manifest_path() .after_help("Run `cargo help generate-lockfile` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; ops::generate_lockfile(&ws)?; Ok(()) diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/git_checkout.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/git_checkout.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/git_checkout.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/git_checkout.rs 2022-10-20 06:00:42.000000000 +0000 @@ -5,10 +5,10 @@ pub fn cli() -> App { subcommand("git-checkout") .about("This subcommand has been removed") - .settings(&[AppSettings::Hidden]) - .help(REMOVED) + .hide(true) + .override_help(REMOVED) } -pub fn exec(_config: &mut Config, _args: &ArgMatches<'_>) -> CliResult { +pub fn exec(_config: &mut Config, _args: &ArgMatches) -> CliResult { Err(anyhow::format_err!(REMOVED).into()) } diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/help.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/help.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/help.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/help.rs 2022-10-20 06:00:42.000000000 +0000 @@ -1,6 +1,7 @@ use crate::aliased_command; +use crate::command_prelude::*; use cargo::util::errors::CargoResult; -use cargo::Config; +use cargo::{drop_println, Config}; use cargo_util::paths::resolve_executable; use flate2::read::GzDecoder; use std::ffi::OsString; @@ -10,62 +11,62 @@ const COMPRESSED_MAN: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/man.tgz")); -/// Checks if the `help` command is being issued. -/// -/// This runs before clap processing, because it needs to intercept the `help` -/// command if a man page is available. -/// -/// Returns `true` if a man page was displayed. In this case, Cargo should -/// exit. -pub fn handle_embedded_help(config: &Config) -> bool { - match try_help(config) { - Ok(true) => true, - Ok(false) => false, - Err(e) => { - log::warn!("man failed: {:?}", e); - false +pub fn cli() -> App { + subcommand("help") + .about("Displays help for a cargo subcommand") + .arg(Arg::new("SUBCOMMAND")) +} + +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { + let subcommand = args.get_one::("SUBCOMMAND"); + if let Some(subcommand) = subcommand { + if !try_help(config, subcommand)? { + crate::execute_external_subcommand(config, subcommand, &[subcommand, "--help"])?; } + } else { + let mut cmd = crate::cli::cli(); + let _ = cmd.print_help(); } + Ok(()) } -fn try_help(config: &Config) -> CargoResult { - let mut args = std::env::args_os() - .skip(1) - .skip_while(|arg| arg.to_str().map_or(false, |s| s.starts_with('-'))); - if !args - .next() - .map_or(false, |arg| arg.to_str() == Some("help")) - { - return Ok(false); - } - let subcommand = match args.next() { - Some(arg) => arg, - None => return Ok(false), - }; - let subcommand = match subcommand.to_str() { - Some(s) => s, - None => return Ok(false), - }; - // Check if this is a built-in command (or alias); +fn try_help(config: &Config, subcommand: &str) -> CargoResult { let subcommand = match check_alias(config, subcommand) { + // If this alias is more than a simple subcommand pass-through, show the alias. + Some(argv) if argv.len() > 1 => { + let alias = argv.join(" "); + drop_println!(config, "`{}` is aliased to `{}`", subcommand, alias); + return Ok(true); + } + // Otherwise, resolve the alias into its subcommand. + Some(argv) => { + // An alias with an empty argv can be created via `"empty-alias" = ""`. + let first = argv.get(0).map(String::as_str).unwrap_or(subcommand); + first.to_string() + } + None => subcommand.to_string(), + }; + + let subcommand = match check_builtin(&subcommand) { Some(s) => s, None => return Ok(false), }; + if resolve_executable(Path::new("man")).is_ok() { - let man = match extract_man(&subcommand, "1") { + let man = match extract_man(subcommand, "1") { Some(man) => man, None => return Ok(false), }; - write_and_spawn(&subcommand, &man, "man")?; + write_and_spawn(subcommand, &man, "man")?; } else { - let txt = match extract_man(&subcommand, "txt") { + let txt = match extract_man(subcommand, "txt") { Some(txt) => txt, None => return Ok(false), }; if resolve_executable(Path::new("less")).is_ok() { - write_and_spawn(&subcommand, &txt, "less")?; + write_and_spawn(subcommand, &txt, "less")?; } else if resolve_executable(Path::new("more")).is_ok() { - write_and_spawn(&subcommand, &txt, "more")?; + write_and_spawn(subcommand, &txt, "more")?; } else { drop(std::io::stdout().write_all(&txt)); } @@ -73,24 +74,18 @@ Ok(true) } -/// Checks if the given subcommand is a built-in command (possibly via an alias). +/// Checks if the given subcommand is an alias. +/// +/// Returns None if it is not an alias. +fn check_alias(config: &Config, subcommand: &str) -> Option> { + aliased_command(config, subcommand).ok().flatten() +} + +/// Checks if the given subcommand is a built-in command (not via an alias). /// /// Returns None if it is not a built-in command. -fn check_alias(config: &Config, subcommand: &str) -> Option { - if super::builtin_exec(subcommand).is_some() { - return Some(subcommand.to_string()); - } - match aliased_command(config, subcommand) { - Ok(Some(alias)) => { - let alias = alias.into_iter().next()?; - if super::builtin_exec(&alias).is_some() { - Some(alias) - } else { - None - } - } - _ => None, - } +fn check_builtin(subcommand: &str) -> Option<&str> { + super::builtin_exec(subcommand).map(|_| subcommand) } /// Extracts the given man page from the compressed archive. diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/init.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/init.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/init.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/init.rs 2022-10-20 06:00:42.000000000 +0000 @@ -5,14 +5,14 @@ pub fn cli() -> App { subcommand("init") .about("Create a new cargo package in an existing directory") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("path").default_value(".")) + .arg_quiet() + .arg(Arg::new("path").default_value(".")) .arg(opt("registry", "Registry to use").value_name("REGISTRY")) .arg_new_opts() .after_help("Run `cargo help init` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let opts = args.new_options(config)?; let project_kind = ops::init(&opts, config)?; config diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/install.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/install.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/install.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/install.rs 2022-10-20 06:00:42.000000000 +0000 @@ -1,14 +1,20 @@ use crate::command_prelude::*; -use cargo::core::{GitReference, SourceId}; +use cargo::core::{GitReference, SourceId, Workspace}; use cargo::ops; use cargo::util::IntoUrl; +use cargo_util::paths; + pub fn cli() -> App { subcommand("install") .about("Install a Rust binary. Default location is $HOME/.cargo/bin") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("crate").empty_values(false).multiple(true)) + .arg_quiet() + .arg( + Arg::new("crate") + .value_parser(clap::builder::NonEmptyStringValueParser::new()) + .multiple_values(true), + ) .arg( opt("version", "Specify a version to install") .alias("vers") @@ -40,16 +46,19 @@ .value_name("PATH") .conflicts_with_all(&["git", "index", "registry"]), ) - .arg(opt( + .arg(flag( "list", "list all installed packages and their versions", )) .arg_jobs() - .arg(opt("force", "Force overwriting existing crates or binaries").short("f")) - .arg(opt("no-track", "Do not save tracking information")) + .arg(flag("force", "Force overwriting existing crates or binaries").short('f')) + .arg(flag("no-track", "Do not save tracking information")) .arg_features() .arg_profile("Install artifacts with the specified profile") - .arg(opt("debug", "Build in debug mode instead of release mode")) + .arg(flag( + "debug", + "Build in debug mode (with the 'dev' profile) instead of release mode", + )) .arg_targets_bins_examples( "Install only the specified binary", "Install all binaries", @@ -71,58 +80,73 @@ .requires("crate") .conflicts_with_all(&["git", "path", "index"]), ) + .arg_message_format() + .arg_timings() .after_help("Run `cargo help install` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { - if let Some(path) = args.value_of_path("path", config) { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { + let path = args.value_of_path("path", config); + if let Some(path) = &path { config.reload_rooted_at(path)?; } else { // TODO: Consider calling set_search_stop_path(home). config.reload_rooted_at(config.home().clone().into_path_unlocked())?; } + // In general, we try to avoid normalizing paths in Cargo, + // but in these particular cases we need it to fix rust-lang/cargo#10283. + // (Handle `SourceId::for_path` and `Workspace::new`, + // but not `Config::reload_rooted_at` which is always cwd) + let path = path.map(|p| paths::normalize_path(&p)); + + let version = args.get_one::("version").map(String::as_str); let krates = args - .values_of("crate") + .get_many::("crate") .unwrap_or_default() - .collect::>(); + .map(|k| resolve_crate(k, version)) + .collect::>>()?; let mut from_cwd = false; - let source = if let Some(url) = args.value_of("git") { + let source = if let Some(url) = args.get_one::("git") { let url = url.into_url()?; - let gitref = if let Some(branch) = args.value_of("branch") { - GitReference::Branch(branch.to_string()) - } else if let Some(tag) = args.value_of("tag") { - GitReference::Tag(tag.to_string()) - } else if let Some(rev) = args.value_of("rev") { - GitReference::Rev(rev.to_string()) + let gitref = if let Some(branch) = args.get_one::("branch") { + GitReference::Branch(branch.clone()) + } else if let Some(tag) = args.get_one::("tag") { + GitReference::Tag(tag.clone()) + } else if let Some(rev) = args.get_one::("rev") { + GitReference::Rev(rev.clone()) } else { GitReference::DefaultBranch }; SourceId::for_git(&url, gitref)? - } else if let Some(path) = args.value_of_path("path", config) { - SourceId::for_path(&path)? + } else if let Some(path) = &path { + SourceId::for_path(path)? } else if krates.is_empty() { from_cwd = true; SourceId::for_path(config.cwd())? } else if let Some(registry) = args.registry(config)? { SourceId::alt_registry(config, ®istry)? - } else if let Some(index) = args.value_of("index") { + } else if let Some(index) = args.get_one::("index") { SourceId::for_registry(&index.into_url()?)? } else { SourceId::crates_io(config)? }; - let version = args.value_of("version"); - let root = args.value_of("root"); + let root = args.get_one::("root").map(String::as_str); // We only provide workspace information for local crate installation from // one of the following sources: // - From current working directory (only work for edition 2015). - // - From a specific local file path. - let workspace = if from_cwd || args.is_present("path") { + // - From a specific local file path (from `--path` arg). + // + // This workspace information is for emitting helpful messages from + // `ArgMatchesExt::compile_options` and won't affect the actual compilation. + let workspace = if from_cwd { args.workspace(config).ok() + } else if let Some(path) = &path { + Workspace::new(&path.join("Cargo.toml"), config).ok() } else { None }; @@ -137,7 +161,7 @@ compile_opts.build_config.requested_profile = args.get_profile_name(config, "release", ProfileChecking::Custom)?; - if args.is_present("list") { + if args.flag("list") { ops::install_list(root, config)?; } else { ops::install( @@ -146,11 +170,28 @@ krates, source, from_cwd, - version, &compile_opts, - args.is_present("force"), - args.is_present("no-track"), + args.flag("force"), + args.flag("no-track"), )?; } Ok(()) } + +fn resolve_crate<'k>( + mut krate: &'k str, + mut version: Option<&'k str>, +) -> crate::CargoResult<(&'k str, Option<&'k str>)> { + if let Some((k, v)) = krate.split_once('@') { + if version.is_some() { + anyhow::bail!("cannot specify both `@{v}` and `--version`"); + } + if k.is_empty() { + // by convention, arguments starting with `@` are response files + anyhow::bail!("missing crate name for `@{v}`"); + } + krate = k; + version = Some(v); + } + Ok((krate, version)) +} diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/locate_project.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/locate_project.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/locate_project.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/locate_project.rs 2022-10-20 06:00:42.000000000 +0000 @@ -6,7 +6,7 @@ pub fn cli() -> App { subcommand("locate-project") .about("Print a JSON representation of a Cargo.toml file's location") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg_manifest_path() .arg( opt( @@ -15,7 +15,7 @@ ) .value_name("FMT"), ) - .arg(opt("workspace", "Locate Cargo.toml of the workspace root")) + .arg(flag("workspace", "Locate Cargo.toml of the workspace root")) .after_help("Run `cargo help locate-project` for more detailed information.\n") } @@ -24,7 +24,7 @@ root: &'a str, } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let root_manifest; let workspace; let root = match WhatToFind::parse(args) { @@ -64,8 +64,8 @@ } impl WhatToFind { - fn parse(args: &ArgMatches<'_>) -> Self { - if args.is_present("workspace") { + fn parse(args: &ArgMatches) -> Self { + if args.flag("workspace") { WhatToFind::Workspace } else { WhatToFind::CurrentManifest @@ -79,8 +79,8 @@ } impl MessageFormat { - fn parse(args: &ArgMatches<'_>) -> CargoResult { - let fmt = match args.value_of("message-format") { + fn parse(args: &ArgMatches) -> CargoResult { + let fmt = match args.get_one::("message-format") { Some(fmt) => fmt, None => return Ok(MessageFormat::Json), }; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/login.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/login.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/login.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/login.rs 2022-10-20 06:00:42.000000000 +0000 @@ -8,23 +8,17 @@ "Save an api token from the registry locally. \ If token is not specified, it will be read from stdin.", ) - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("token")) - // --host is deprecated (use --registry instead) - .arg( - opt("host", "Host to set the token for") - .value_name("HOST") - .hidden(true), - ) + .arg_quiet() + .arg(Arg::new("token")) .arg(opt("registry", "Registry to use").value_name("REGISTRY")) .after_help("Run `cargo help login` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { ops::registry_login( config, - args.value_of("token").map(String::from), - args.value_of("registry").map(String::from), + args.get_one::("token").cloned(), + args.get_one::("registry").cloned(), )?; Ok(()) } diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/logout.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/logout.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/logout.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/logout.rs 2022-10-20 06:00:42.000000000 +0000 @@ -4,18 +4,18 @@ pub fn cli() -> App { subcommand("logout") .about("Remove an API token from the registry locally") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg(opt("registry", "Registry to use").value_name("REGISTRY")) .after_help("Run `cargo help logout` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { if !config.cli_unstable().credential_process { config .cli_unstable() .fail_if_stable_command(config, "logout", 8933)?; } config.load_credentials()?; - ops::registry_logout(config, args.value_of("registry").map(String::from))?; + ops::registry_logout(config, args.get_one::("registry").cloned())?; Ok(()) } diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/metadata.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/metadata.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/metadata.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/metadata.rs 2022-10-20 06:00:42.000000000 +0000 @@ -8,14 +8,14 @@ the concrete used versions including overrides, \ in machine-readable format", ) - .arg(opt("quiet", "Do not print cargo log messages").short("q")) + .arg_quiet() .arg_features() .arg(multi_opt( "filter-platform", "TRIPLE", "Only include resolve dependencies matching the given target-triple", )) - .arg(opt( + .arg(flag( "no-deps", "Output information only about the workspace members \ and don't fetch dependencies", @@ -24,15 +24,15 @@ .arg( opt("format-version", "Format version") .value_name("VERSION") - .possible_value("1"), + .value_parser(["1"]), ) .after_help("Run `cargo help metadata` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; - let version = match args.value_of("format-version") { + let version = match args.get_one::("format-version") { None => { config.shell().warn( "please specify `--format-version` flag explicitly \ @@ -45,7 +45,7 @@ let options = OutputMetadataOptions { cli_features: args.cli_features()?, - no_deps: args.is_present("no-deps"), + no_deps: args.flag("no-deps"), filter_platforms: args._values_of("filter-platform"), version, }; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/mod.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/mod.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/mod.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/mod.rs 2022-10-20 06:00:42.000000000 +0000 @@ -2,6 +2,7 @@ pub fn builtin() -> Vec { vec![ + add::cli(), bench::cli(), build::cli(), check::cli(), @@ -12,6 +13,7 @@ fix::cli(), generate_lockfile::cli(), git_checkout::cli(), + help::cli(), init::cli(), install::cli(), locate_project::cli(), @@ -40,8 +42,9 @@ ] } -pub fn builtin_exec(cmd: &str) -> Option) -> CliResult> { +pub fn builtin_exec(cmd: &str) -> Option CliResult> { let f = match cmd { + "add" => add::exec, "bench" => bench::exec, "build" => build::exec, "check" => check::exec, @@ -52,6 +55,7 @@ "fix" => fix::exec, "generate-lockfile" => generate_lockfile::exec, "git-checkout" => git_checkout::exec, + "help" => help::exec, "init" => init::exec, "install" => install::exec, "locate-project" => locate_project::exec, @@ -82,6 +86,7 @@ Some(f) } +pub mod add; pub mod bench; pub mod build; pub mod check; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/new.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/new.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/new.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/new.rs 2022-10-20 06:00:42.000000000 +0000 @@ -5,19 +5,19 @@ pub fn cli() -> App { subcommand("new") .about("Create a new cargo package at ") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("path").required(true)) + .arg_quiet() + .arg(Arg::new("path").required(true)) .arg(opt("registry", "Registry to use").value_name("REGISTRY")) .arg_new_opts() .after_help("Run `cargo help new` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let opts = args.new_options(config)?; ops::new(&opts, config)?; - let path = args.value_of("path").unwrap(); - let package_name = if let Some(name) = args.value_of("name") { + let path = args.get_one::("path").unwrap(); + let package_name = if let Some(name) = args.get_one::("name") { name } else { path diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/owner.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/owner.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/owner.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/owner.rs 2022-10-20 06:00:42.000000000 +0000 @@ -5,15 +5,15 @@ pub fn cli() -> App { subcommand("owner") .about("Manage the owners of a crate on the registry") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("crate")) + .arg_quiet() + .arg(Arg::new("crate")) .arg( multi_opt( "add", "LOGIN", "Name of a user or team to invite as an owner", ) - .short("a"), + .short('a'), ) .arg( multi_opt( @@ -21,30 +21,30 @@ "LOGIN", "Name of a user or team to remove as an owner", ) - .short("r"), + .short('r'), ) - .arg(opt("list", "List owners of a crate").short("l")) + .arg(flag("list", "List owners of a crate").short('l')) .arg(opt("index", "Registry index to modify owners for").value_name("INDEX")) .arg(opt("token", "API token to use when authenticating").value_name("TOKEN")) .arg(opt("registry", "Registry to use").value_name("REGISTRY")) .after_help("Run `cargo help owner` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { config.load_credentials()?; let registry = args.registry(config)?; let opts = OwnersOptions { - krate: args.value_of("crate").map(|s| s.to_string()), - token: args.value_of("token").map(|s| s.to_string()), - index: args.value_of("index").map(|s| s.to_string()), + krate: args.get_one::("crate").cloned(), + token: args.get_one::("token").cloned(), + index: args.get_one::("index").cloned(), to_add: args - .values_of("add") - .map(|xs| xs.map(|s| s.to_string()).collect()), + .get_many::("add") + .map(|xs| xs.cloned().collect()), to_remove: args - .values_of("remove") - .map(|xs| xs.map(|s| s.to_string()).collect()), - list: args.is_present("list"), + .get_many::("remove") + .map(|xs| xs.cloned().collect()), + list: args.flag("list"), registry, }; ops::modify_owners(config, &opts)?; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/package.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/package.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/package.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/package.rs 2022-10-20 06:00:42.000000000 +0000 @@ -5,23 +5,23 @@ pub fn cli() -> App { subcommand("package") .about("Assemble the local package into a distributable tarball") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg( - opt( + flag( "list", "Print files included in a package without making one", ) - .short("l"), + .short('l'), ) - .arg(opt( + .arg(flag( "no-verify", "Don't verify the contents by building them", )) - .arg(opt( + .arg(flag( "no-metadata", "Ignore warnings about a lack of human-usable metadata", )) - .arg(opt( + .arg(flag( "allow-dirty", "Allow dirty working directories to be packaged", )) @@ -38,7 +38,7 @@ .after_help("Run `cargo help package` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; let specs = args.packages_from_flags()?; @@ -46,13 +46,14 @@ &ws, &PackageOpts { config, - verify: !args.is_present("no-verify"), - list: args.is_present("list"), - check_metadata: !args.is_present("no-metadata"), - allow_dirty: args.is_present("allow-dirty"), + verify: !args.flag("no-verify"), + list: args.flag("list"), + check_metadata: !args.flag("no-metadata"), + allow_dirty: args.flag("allow-dirty"), to_package: specs, targets: args.targets(), jobs: args.jobs()?, + keep_going: args.keep_going(), cli_features: args.cli_features()?, }, )?; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/pkgid.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/pkgid.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/pkgid.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/pkgid.rs 2022-10-20 06:00:42.000000000 +0000 @@ -6,19 +6,22 @@ pub fn cli() -> App { subcommand("pkgid") .about("Print a fully qualified package specification") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("spec")) + .arg_quiet() + .arg(Arg::new("spec")) .arg_package("Argument to get the package ID specifier for") .arg_manifest_path() .after_help("Run `cargo help pkgid` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; if args.is_present_with_zero_values("package") { print_available_packages(&ws)? } - let spec = args.value_of("spec").or_else(|| args.value_of("package")); + let spec = args + .get_one::("spec") + .or_else(|| args.get_one::("package")) + .map(String::as_str); let spec = ops::pkgid(&ws, spec)?; cargo::drop_println!(config, "{}", spec); Ok(()) diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/publish.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/publish.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/publish.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/publish.rs 2022-10-20 06:00:42.000000000 +0000 @@ -5,14 +5,14 @@ pub fn cli() -> App { subcommand("publish") .about("Upload a package to the registry") - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg_index() .arg(opt("token", "Token to use when uploading").value_name("TOKEN")) - .arg(opt( + .arg(flag( "no-verify", "Don't verify the contents by building them", )) - .arg(opt( + .arg(flag( "allow-dirty", "Allow dirty working directories to be packaged", )) @@ -27,25 +27,26 @@ .after_help("Run `cargo help publish` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { config.load_credentials()?; let registry = args.registry(config)?; let ws = args.workspace(config)?; - let index = args.index(config)?; + let index = args.index()?; ops::publish( &ws, &PublishOpts { config, - token: args.value_of("token").map(|s| s.to_string()), + token: args.get_one::("token").map(|s| s.to_string()), index, - verify: !args.is_present("no-verify"), - allow_dirty: args.is_present("allow-dirty"), + verify: !args.flag("no-verify"), + allow_dirty: args.flag("allow-dirty"), to_publish: args.packages_from_flags()?, targets: args.targets(), jobs: args.jobs()?, - dry_run: args.is_present("dry-run"), + keep_going: args.keep_going(), + dry_run: args.dry_run(), registry, cli_features: args.cli_features()?, }, diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/read_manifest.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/read_manifest.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/read_manifest.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/read_manifest.rs 2022-10-20 06:00:42.000000000 +0000 @@ -9,14 +9,12 @@ Deprecated, use `cargo metadata --no-deps` instead.\ ", ) - .arg(opt("quiet", "No output printed to stdout").short("q")) + .arg_quiet() .arg_manifest_path() } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; - config - .shell() - .print_json(&ws.current()?.serialized(config))?; + config.shell().print_json(&ws.current()?.serialized())?; Ok(()) } diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/report.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/report.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/report.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/report.rs 2022-10-20 06:00:42.000000000 +0000 @@ -1,5 +1,4 @@ use crate::command_prelude::*; -use anyhow::anyhow; use cargo::core::compiler::future_incompat::{OnDiskReports, REPORT_PREAMBLE}; use cargo::drop_println; @@ -7,7 +6,8 @@ subcommand("report") .about("Generate and display various kinds of reports") .after_help("Run `cargo help report` for more detailed information.\n") - .setting(clap::AppSettings::SubcommandRequiredElseHelp) + .subcommand_required(true) + .arg_required_else_help(true) .subcommand( subcommand("future-incompatibilities") .alias("future-incompat") @@ -18,27 +18,31 @@ "identifier of the report generated by a Cargo command invocation", ) .value_name("id"), - ), + ) + .arg_package("Package to display a report for"), ) } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { - if !config.nightly_features_allowed { - return Err(anyhow!("`cargo report` can only be used on the nightly channel").into()); - } +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { match args.subcommand() { - ("future-incompatibilities", Some(args)) => report_future_incompatibilies(config, args), - (cmd, _) => panic!("unexpected command `{}`", cmd), + Some(("future-incompatibilities", args)) => report_future_incompatibilities(config, args), + Some((cmd, _)) => { + unreachable!("unexpected command {}", cmd) + } + None => { + unreachable!("unexpected command") + } } } -fn report_future_incompatibilies(config: &Config, args: &ArgMatches<'_>) -> CliResult { +fn report_future_incompatibilities(config: &Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; let reports = OnDiskReports::load(&ws)?; let id = args .value_of_u32("id")? .unwrap_or_else(|| reports.last_id()); - let report = reports.get_report(id, config)?; + let krate = args.get_one::("package").map(String::as_str); + let report = reports.get_report(id, config, krate)?; drop_println!(config, "{}", REPORT_PREAMBLE); drop(config.shell().print_ansi_stdout(report.as_bytes())); Ok(()) diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/run.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/run.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/run.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/run.rs 2022-10-20 06:00:42.000000000 +0000 @@ -8,10 +8,14 @@ subcommand("run") // subcommand aliases are handled in aliased_command() // .alias("r") - .setting(AppSettings::TrailingVarArg) + .trailing_var_arg(true) .about("Run a binary or example of the local package") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("args").multiple(true)) + .arg_quiet() + .arg( + Arg::new("args") + .value_parser(value_parser!(std::ffi::OsString)) + .multiple_values(true), + ) .arg_targets_bin_example( "Name of the bin target to run", "Name of the example target to run", @@ -27,10 +31,11 @@ .arg_message_format() .arg_unit_graph() .arg_ignore_rust_version() + .arg_timings() .after_help("Run `cargo help run` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; let mut compile_opts = args.compile_options( @@ -51,26 +56,15 @@ } } - if !args.is_present("example") && !args.is_present("bin") { + if !args.contains_id("example") && !args.contains_id("bin") { let default_runs: Vec<_> = compile_opts .spec .get_packages(&ws)? .iter() .filter_map(|pkg| pkg.manifest().default_run()) .collect(); - if default_runs.len() == 1 { - compile_opts.filter = CompileFilter::from_raw_arguments( - false, - vec![default_runs[0].to_owned()], - false, - vec![], - false, - vec![], - false, - vec![], - false, - false, - ); + if let [bin] = &default_runs[..] { + compile_opts.filter = CompileFilter::single_bin(bin.to_string()); } else { // ops::run will take care of errors if len pkgs != 1. compile_opts.filter = CompileFilter::Default { diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/rustc.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/rustc.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/rustc.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/rustc.rs 2022-10-20 06:00:42.000000000 +0000 @@ -3,13 +3,14 @@ use cargo::util::interning::InternedString; const PRINT_ARG_NAME: &str = "print"; +const CRATE_TYPE_ARG_NAME: &str = "crate-type"; pub fn cli() -> App { subcommand("rustc") - .setting(AppSettings::TrailingVarArg) + .trailing_var_arg(true) .about("Compile a package, and pass extra options to the compiler") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("args").multiple(true).help("Rustc flags")) + .arg_quiet() + .arg(Arg::new("args").multiple_values(true).help("Rustc flags")) .arg_package("Package to build") .arg_jobs() .arg_targets_all( @@ -35,21 +36,27 @@ ) .value_name("INFO"), ) + .arg(multi_opt( + CRATE_TYPE_ARG_NAME, + "CRATE-TYPE", + "Comma separated list of types of crates for the compiler to emit", + )) .arg_target_dir() .arg_manifest_path() .arg_message_format() .arg_unit_graph() .arg_ignore_rust_version() .arg_future_incompat_report() + .arg_timings() .after_help("Run `cargo help rustc` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; // This is a legacy behavior that changes the behavior based on the profile. // If we want to support this more formally, I think adding a --mode flag // would be warranted. - let mode = match args.value_of("profile") { + let mode = match args.get_one::("profile").map(String::as_str) { Some("test") => CompileMode::Test, Some("bench") => CompileMode::Bench, Some("check") => CompileMode::Check { test: false }, @@ -70,13 +77,20 @@ } else { Some(target_args) }; - if let Some(opt_value) = args.value_of(PRINT_ARG_NAME) { + if let Some(opt_value) = args.get_one::(PRINT_ARG_NAME) { config .cli_unstable() .fail_if_stable_opt(PRINT_ARG_NAME, 9357)?; ops::print(&ws, &compile_opts, opt_value)?; - } else { - ops::compile(&ws, &compile_opts)?; + return Ok(()); } + let crate_types = values(args, CRATE_TYPE_ARG_NAME); + compile_opts.target_rustc_crate_types = if crate_types.is_empty() { + None + } else { + Some(crate_types) + }; + ops::compile(&ws, &compile_opts)?; + Ok(()) } diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/rustdoc.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/rustdoc.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/rustdoc.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/rustdoc.rs 2022-10-20 06:00:42.000000000 +0000 @@ -4,11 +4,11 @@ pub fn cli() -> App { subcommand("rustdoc") - .setting(AppSettings::TrailingVarArg) + .trailing_var_arg(true) .about("Build a package's documentation, using specified custom flags.") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("args").multiple(true)) - .arg(opt( + .arg_quiet() + .arg(Arg::new("args").multiple_values(true)) + .arg(flag( "open", "Opens the docs in a browser after the operation", )) @@ -35,10 +35,11 @@ .arg_message_format() .arg_unit_graph() .arg_ignore_rust_version() + .arg_timings() .after_help("Run `cargo help rustdoc` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; let mut compile_opts = args.compile_options_for_single_package( config, @@ -53,7 +54,7 @@ Some(target_args) }; let doc_opts = DocOptions { - open_result: args.is_present("open"), + open_result: args.flag("open"), compile_opts, }; ops::doc(&ws, &doc_opts)?; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/search.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/search.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/search.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/search.rs 2022-10-20 06:00:42.000000000 +0000 @@ -7,8 +7,8 @@ pub fn cli() -> App { subcommand("search") .about("Search packages in crates.io") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("query").multiple(true)) + .arg_quiet() + .arg(Arg::new("query").multiple_values(true)) .arg_index() .arg( opt( @@ -21,12 +21,16 @@ .after_help("Run `cargo help search` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let registry = args.registry(config)?; - let index = args.index(config)?; + let index = args.index()?; let limit = args.value_of_u32("limit")?; let limit = min(100, limit.unwrap_or(10)); - let query: Vec<&str> = args.values_of("query").unwrap_or_default().collect(); + let query: Vec<&str> = args + .get_many::("query") + .unwrap_or_default() + .map(String::as_str) + .collect(); let query: String = query.join("+"); ops::search(&query, config, index, limit, registry)?; Ok(()) diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/test.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/test.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/test.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/test.rs 2022-10-20 06:00:42.000000000 +0000 @@ -1,29 +1,28 @@ use crate::command_prelude::*; -use anyhow::Error; -use cargo::ops::{self, CompileFilter, FilterRule, LibRule}; +use cargo::ops; pub fn cli() -> App { subcommand("test") // Subcommand aliases are handled in `aliased_command()`. // .alias("t") - .setting(AppSettings::TrailingVarArg) + .trailing_var_arg(true) .about("Execute all unit and integration tests and build examples of a local package") .arg( - Arg::with_name("TESTNAME") + Arg::new("TESTNAME") .help("If specified, only run tests containing this string in their names"), ) .arg( - Arg::with_name("args") + Arg::new("args") .help("Arguments for the test binary") - .multiple(true) + .multiple_values(true) .last(true), ) .arg( - opt( + flag( "quiet", "Display one character per test instead of one line", ) - .short("q"), + .short('q'), ) .arg_targets_all( "Test only this package's library unit tests", @@ -37,9 +36,9 @@ "Test all benches", "Test all targets", ) - .arg(opt("doc", "Test only this library's documentation")) - .arg(opt("no-run", "Compile, but don't run tests")) - .arg(opt("no-fail-fast", "Run all tests regardless of failure")) + .arg(flag("doc", "Test only this library's documentation")) + .arg(flag("no-run", "Compile, but don't run tests")) + .arg(flag("no-fail-fast", "Run all tests regardless of failure")) .arg_package_spec( "Package to run tests for", "Test all packages in the workspace", @@ -56,10 +55,14 @@ .arg_message_format() .arg_unit_graph() .arg_future_incompat_report() - .after_help("Run `cargo help test` for more detailed information.\n") + .arg_timings() + .after_help( + "Run `cargo help test` for more detailed information.\n\ + Run `cargo test -- --help` for test binary options.\n", + ) } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; let mut compile_opts = args.compile_options( @@ -74,64 +77,37 @@ // `TESTNAME` is actually an argument of the test binary, but it's // important, so we explicitly mention it and reconfigure. - let test_name: Option<&str> = args.value_of("TESTNAME"); - let test_args = args.value_of("TESTNAME").into_iter(); - let test_args = test_args.chain(args.values_of("args").unwrap_or_default()); - let test_args = test_args.collect::>(); + let test_name = args.get_one::("TESTNAME"); + let test_args = args.get_one::("TESTNAME").into_iter(); + let test_args = test_args.chain(args.get_many::("args").unwrap_or_default()); + let test_args = test_args.map(String::as_str).collect::>(); - let no_run = args.is_present("no-run"); - let doc = args.is_present("doc"); + let no_run = args.flag("no-run"); + let doc = args.flag("doc"); if doc { - if let CompileFilter::Only { .. } = compile_opts.filter { - return Err(CliError::new( - anyhow::format_err!("Can't mix --doc with other target selecting options"), - 101, - )); + if compile_opts.filter.is_specific() { + return Err( + anyhow::format_err!("Can't mix --doc with other target selecting options").into(), + ); } if no_run { - return Err(CliError::new( - anyhow::format_err!("Can't skip running doc tests with --no-run"), - 101, - )); + return Err(anyhow::format_err!("Can't skip running doc tests with --no-run").into()); } compile_opts.build_config.mode = CompileMode::Doctest; - compile_opts.filter = ops::CompileFilter::new( - LibRule::True, - FilterRule::none(), - FilterRule::none(), - FilterRule::none(), - FilterRule::none(), - ); - } else if test_name.is_some() { - if let CompileFilter::Default { .. } = compile_opts.filter { - compile_opts.filter = ops::CompileFilter::new( - LibRule::Default, // compile the library, so the unit tests can be run filtered - FilterRule::All, // compile the binaries, so the unit tests in binaries can be run filtered - FilterRule::All, // compile the tests, so the integration tests can be run filtered - FilterRule::none(), // specify --examples to unit test binaries filtered - FilterRule::none(), // specify --benches to unit test benchmarks filtered - ); // also, specify --doc to run doc tests filtered - } + compile_opts.filter = ops::CompileFilter::lib_only(); + } else if test_name.is_some() && !compile_opts.filter.is_specific() { + // If arg `TESTNAME` is provided, assumed that the user knows what + // exactly they wants to test, so we use `all_test_targets` to + // avoid compiling unnecessary targets such as examples, which are + // included by the logic of default target filter. + compile_opts.filter = ops::CompileFilter::all_test_targets(); } let ops = ops::TestOptions { no_run, - no_fail_fast: args.is_present("no-fail-fast"), + no_fail_fast: args.flag("no-fail-fast"), compile_opts, }; - let err = ops::run_tests(&ws, &ops, &test_args)?; - match err { - None => Ok(()), - Some(err) => { - let context = anyhow::format_err!("{}", err.hint(&ws, &ops.compile_opts)); - let e = match err.code { - // Don't show "process didn't exit successfully" for simple errors. - Some(i) if cargo_util::is_simple_exit_code(i) => CliError::new(context, i), - Some(i) => CliError::new(Error::from(err).context(context), i), - None => CliError::new(Error::from(err).context(context), 101), - }; - Err(e) - } - } + ops::run_tests(&ws, &ops, &test_args) } diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/tree.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/tree.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/tree.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/tree.rs 2022-10-20 06:00:42.000000000 +0000 @@ -12,32 +12,25 @@ pub fn cli() -> App { subcommand("tree") .about("Display a tree visualization of a dependency graph") - .arg(opt("quiet", "Suppress status messages").short("q")) + .arg_quiet() .arg_manifest_path() .arg_package_spec_no_all( "Package to be used as the root of the tree", "Display the tree for all packages in the workspace", "Exclude specific workspace members", ) - // Deprecated, use --no-dedupe instead. - .arg(Arg::with_name("all").long("all").short("a").hidden(true)) - // Deprecated, use --target=all instead. - .arg( - Arg::with_name("all-targets") - .long("all-targets") - .hidden(true), + .arg( + flag("all", "Deprecated, use --no-dedupe instead") + .short('a') + .hide(true), ) + .arg(flag("all-targets", "Deprecated, use --target=all instead").hide(true)) .arg_features() .arg_target_triple( "Filter dependencies matching the given target-triple (default host platform). \ Pass `all` to include all targets.", ) - // Deprecated, use -e=no-dev instead. - .arg( - Arg::with_name("no-dev-dependencies") - .long("no-dev-dependencies") - .hidden(true), - ) + .arg(flag("no-dev-dependencies", "Deprecated, use -e=no-dev instead").hide(true)) .arg( multi_opt( "edges", @@ -46,7 +39,7 @@ (features, normal, build, dev, all, \ no-normal, no-build, no-dev, no-proc-macro)", ) - .short("e"), + .short('e'), ) .arg( optional_multi_opt( @@ -54,7 +47,7 @@ "SPEC", "Invert the tree direction and focus on the given package", ) - .short("i"), + .short('i'), ) .arg(multi_opt( "prune", @@ -62,81 +55,74 @@ "Prune the given package from the display of the dependency tree", )) .arg(opt("depth", "Maximum display depth of the dependency tree").value_name("DEPTH")) - // Deprecated, use --prefix=none instead. - .arg(Arg::with_name("no-indent").long("no-indent").hidden(true)) - // Deprecated, use --prefix=depth instead. - .arg( - Arg::with_name("prefix-depth") - .long("prefix-depth") - .hidden(true), - ) + .arg(flag("no-indent", "Deprecated, use --prefix=none instead").hide(true)) + .arg(flag("prefix-depth", "Deprecated, use --prefix=depth instead").hide(true)) .arg( opt( "prefix", "Change the prefix (indentation) of how each entry is displayed", ) .value_name("PREFIX") - .possible_values(&["depth", "indent", "none"]) + .value_parser(["depth", "indent", "none"]) .default_value("indent"), ) - .arg(opt( + .arg(flag( "no-dedupe", "Do not de-duplicate (repeats all shared dependencies)", )) .arg( - opt( + flag( "duplicates", "Show only dependencies which come in multiple versions (implies -i)", ) - .short("d") + .short('d') .alias("duplicate"), ) .arg( opt("charset", "Character set to use in output: utf8, ascii") .value_name("CHARSET") - .possible_values(&["utf8", "ascii"]) + .value_parser(["utf8", "ascii"]) .default_value("utf8"), ) .arg( opt("format", "Format string used for printing dependencies") .value_name("FORMAT") - .short("f") + .short('f') .default_value("{p}"), ) .arg( // Backwards compatibility with old cargo-tree. - Arg::with_name("version") - .long("version") - .short("V") - .hidden(true), + flag("version", "Print version info and exit") + .short('V') + .hide(true), ) .after_help("Run `cargo help tree` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { - if args.is_present("version") { - let verbose = args.occurrences_of("verbose") > 0; +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { + if args.flag("version") { + let verbose = args.verbose() > 0; let version = cli::get_version_string(verbose); cargo::drop_print!(config, "{}", version); return Ok(()); } - let prefix = if args.is_present("no-indent") { + let prefix = if args.flag("no-indent") { config .shell() .warn("the --no-indent flag has been changed to --prefix=none")?; "none" - } else if args.is_present("prefix-depth") { + } else if args.flag("prefix-depth") { config .shell() .warn("the --prefix-depth flag has been changed to --prefix=depth")?; "depth" } else { - args.value_of("prefix").unwrap() + args.get_one::("prefix").unwrap().as_str() }; let prefix = tree::Prefix::from_str(prefix).map_err(|e| anyhow::anyhow!("{}", e))?; - let no_dedupe = args.is_present("no-dedupe") || args.is_present("all"); - if args.is_present("all") { + let no_dedupe = args.flag("no-dedupe") || args.flag("all"); + if args.flag("all") { config.shell().warn( "The `cargo tree` --all flag has been changed to --no-dedupe, \ and may be removed in a future version.\n\ @@ -144,7 +130,7 @@ )?; } - let targets = if args.is_present("all-targets") { + let targets = if args.flag("all-targets") { config .shell() .warn("the --all-targets flag has been changed to --target=all")?; @@ -161,7 +147,7 @@ let packages = args.packages_from_flags()?; let mut invert = args - .values_of("invert") + .get_many::("invert") .map_or_else(|| Vec::new(), |is| is.map(|s| s.to_string()).collect()); if args.is_present_with_zero_values("invert") { match &packages { @@ -196,7 +182,7 @@ print_available_packages(&ws)?; } - let charset = tree::Charset::from_str(args.value_of("charset").unwrap()) + let charset = tree::Charset::from_str(args.get_one::("charset").unwrap()) .map_err(|e| anyhow::anyhow!("{}", e))?; let opts = tree::TreeOptions { cli_features: args.cli_features()?, @@ -207,9 +193,9 @@ pkgs_to_prune, prefix, no_dedupe, - duplicates: args.is_present("duplicates"), + duplicates: args.flag("duplicates"), charset, - format: args.value_of("format").unwrap().to_string(), + format: args.get_one::("format").cloned().unwrap(), graph_features, max_display_depth: args.value_of_u32("depth")?.unwrap_or(u32::MAX), no_proc_macro, @@ -226,13 +212,10 @@ /// Parses `--edges` option. /// /// Returns a tuple of `EdgeKind` map and `no_proc_marco` flag. -fn parse_edge_kinds( - config: &Config, - args: &ArgMatches<'_>, -) -> CargoResult<(HashSet, bool)> { +fn parse_edge_kinds(config: &Config, args: &ArgMatches) -> CargoResult<(HashSet, bool)> { let (kinds, no_proc_macro) = { let mut no_proc_macro = false; - let mut kinds = args.values_of("edges").map_or_else( + let mut kinds = args.get_many::("edges").map_or_else( || Vec::new(), |es| { es.flat_map(|e| e.split(',')) @@ -244,7 +227,7 @@ }, ); - if args.is_present("no-dev-dependencies") { + if args.flag("no-dev-dependencies") { config .shell() .warn("the --no-dev-dependencies flag has changed to -e=no-dev")?; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/uninstall.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/uninstall.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/uninstall.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/uninstall.rs 2022-10-20 06:00:42.000000000 +0000 @@ -5,16 +5,16 @@ pub fn cli() -> App { subcommand("uninstall") .about("Remove a Rust binary") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(Arg::with_name("spec").multiple(true)) + .arg_quiet() + .arg(Arg::new("spec").multiple_values(true)) .arg_package_spec_simple("Package to uninstall") .arg(multi_opt("bin", "NAME", "Only uninstall the binary NAME")) .arg(opt("root", "Directory to uninstall packages from").value_name("DIR")) .after_help("Run `cargo help uninstall` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { - let root = args.value_of("root"); +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { + let root = args.get_one::("root").map(String::as_str); if args.is_present_with_zero_values("package") { return Err(anyhow::anyhow!( @@ -25,8 +25,9 @@ } let specs = args - .values_of("spec") - .unwrap_or_else(|| args.values_of("package").unwrap_or_default()) + .get_many::("spec") + .unwrap_or_else(|| args.get_many::("package").unwrap_or_default()) + .map(String::as_str) .collect(); ops::uninstall(root, specs, &values(args, "bin"), config)?; Ok(()) diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/update.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/update.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/update.rs 2021-10-04 17:24:20.000000000 +0000 +++ cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/update.rs 2022-10-20 06:00:42.000000000 +0000 @@ -6,10 +6,10 @@ pub fn cli() -> App { subcommand("update") .about("Update dependencies as recorded in the local lock file") - .arg(opt("quiet", "No output printed to stdout").short("q")) - .arg(opt("workspace", "Only update the workspace packages").short("w")) + .arg_quiet() + .arg(flag("workspace", "Only update the workspace packages").short('w')) .arg_package_spec_simple("Package to update") - .arg(opt( + .arg(flag( "aggressive", "Force updating all dependencies of SPEC as well when used with -p", )) @@ -25,7 +25,7 @@ .after_help("Run `cargo help update` for more detailed information.\n") } -pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { +pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { let ws = args.workspace(config)?; if args.is_present_with_zero_values("package") { @@ -33,11 +33,11 @@ } let update_opts = UpdateOptions { - aggressive: args.is_present("aggressive"), - precise: args.value_of("precise"), + aggressive: args.flag("aggressive"), + precise: args.get_one::("precise").map(String::as_str), to_update: values(args, "package"), - dry_run: args.is_present("dry-run"), - workspace: args.is_present("workspace"), + dry_run: args.dry_run(), + workspace: args.flag("workspace"), config, }; ops::update_lockfile(&ws, &update_opts)?; diff -Nru cargo-mozilla-0.57.0/src/bin/cargo/commands/vendor.rs cargo-mozilla-0.66.0+ds1/src/bin/cargo/commands/vendor.rs --- cargo-mozilla-0.57.0/src/bin/cargo/commands/vendor.rs 2021-10-04 17:24:20.000