aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2022-04-25 14:43:17 +0000
committerJan Beich <jbeich@FreeBSD.org>2022-11-06 00:57:21 +0000
commitc9724410bb382f7ad67a08757c573c957fbf863d (patch)
tree23f7c78087bea8ca982fd4419659b2864f55bffc
parent8ce88744d07433c86c108e4b38d54ef394a5c066 (diff)
downloadports-c9724410bb382f7ad67a08757c573c957fbf863d.tar.gz
ports-c9724410bb382f7ad67a08757c573c957fbf863d.zip
devel/cargo-c: update to 0.9.14
-rw-r--r--devel/cargo-c/Makefile14
-rw-r--r--devel/cargo-c/Makefile.crates170
-rw-r--r--devel/cargo-c/distinfo342
-rw-r--r--devel/cargo-c/files/patch-cargo-dep1602
-rw-r--r--devel/cargo-c/files/patch-libressl-3.5252
5 files changed, 291 insertions, 2089 deletions
diff --git a/devel/cargo-c/Makefile b/devel/cargo-c/Makefile
index e13be476cbfc..39c94e94a6a1 100644
--- a/devel/cargo-c/Makefile
+++ b/devel/cargo-c/Makefile
@@ -1,7 +1,6 @@
PORTNAME= cargo-c
-DISTVERSION= 0.9.8
-DISTVERSIONSUFFIX= +cargo-0.60
-PORTREVISION= 7
+DISTVERSION= 0.9.14
+DISTVERSIONSUFFIX= +cargo-0.66
CATEGORIES= devel
MASTER_SITES= CRATESIO
# XXX Teach USES=cargo to have proper default
@@ -14,9 +13,7 @@ WWW= https://github.com/lu-zero/cargo-c
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-LIB_DEPENDS= libgit2.so:devel/libgit2 \
- libcurl.so:ftp/curl \
- libssh2.so:security/libssh2
+LIB_DEPENDS= libcurl.so:ftp/curl
USES= cargo ssl
PLIST_FILES= bin/cargo-capi \
@@ -28,5 +25,10 @@ PLIST_FILES= bin/cargo-capi \
post-patch:
@${REINPLACE_CMD} -e 's,libdir.join("pkgconfig,prefix.join("libdata/pkgconfig,' \
${WRKSRC}/src/install.rs
+# XXX Need devel/libgit2 >= 1.4.4; libgit2 depends on libssh2, so bundle both
+ @${REINPLACE_CMD} 's/if try_to_use_system_libgit2/if false/' \
+ ${WRKSRC}/cargo-crates/libgit2-sys-*/build.rs
+ @${REINPLACE_CMD} '/env::var/s/LIBSSH2.*PKG/disabled_&/' \
+ ${WRKSRC}/cargo-crates/libssh2-sys-*/build.rs
.include <bsd.port.mk>
diff --git a/devel/cargo-c/Makefile.crates b/devel/cargo-c/Makefile.crates
index f00ed94ac8bf..52b84398ff67 100644
--- a/devel/cargo-c/Makefile.crates
+++ b/devel/cargo-c/Makefile.crates
@@ -1,129 +1,133 @@
CARGO_CRATES= adler-1.0.2 \
- aho-corasick-0.7.18 \
- ansi_term-0.12.1 \
- anyhow-1.0.55 \
+ aho-corasick-0.7.19 \
+ anyhow-1.0.66 \
arrayvec-0.5.2 \
atty-0.2.14 \
autocfg-1.1.0 \
bitflags-1.3.2 \
bitmaps-2.1.0 \
bstr-0.2.17 \
+ bytes-1.2.1 \
bytesize-1.1.0 \
- cargo-0.60.0 \
+ cargo-0.66.0 \
cargo-platform-0.1.2 \
- cargo-util-0.1.2 \
- cbindgen-0.20.0 \
- cc-1.0.73 \
+ cargo-util-0.2.2 \
+ cbindgen-0.24.3 \
+ cc-1.0.74 \
cfg-if-1.0.0 \
- clap-2.34.0 \
+ clap-3.2.23 \
+ clap_derive-3.2.18 \
+ clap_lex-0.2.4 \
+ combine-4.6.6 \
commoncrypto-0.2.0 \
commoncrypto-sys-0.2.0 \
core-foundation-0.9.3 \
core-foundation-sys-0.8.3 \
crates-io-0.34.0 \
crc32fast-1.3.2 \
- crossbeam-utils-0.8.7 \
+ crossbeam-utils-0.8.12 \
crypto-hash-0.3.4 \
- curl-0.4.42 \
- curl-sys-0.4.52+curl-7.81.0 \
- either-1.6.1 \
- env_logger-0.9.0 \
- fastrand-1.7.0 \
- filetime-0.2.15 \
- flate2-1.0.22 \
+ curl-0.4.44 \
+ curl-sys-0.4.59+curl-7.86.0 \
+ either-1.8.0 \
+ env_logger-0.9.1 \
+ fastrand-1.8.0 \
+ filetime-0.2.18 \
+ flate2-1.0.24 \
fnv-1.0.7 \
foreign-types-0.3.2 \
foreign-types-shared-0.1.1 \
- form_urlencoded-1.0.1 \
+ form_urlencoded-1.1.0 \
fwdansi-1.1.0 \
- git2-0.13.25 \
- git2-curl-0.14.1 \
+ git2-0.15.0 \
+ git2-curl-0.16.0 \
glob-0.3.0 \
- globset-0.4.8 \
- hashbrown-0.11.2 \
- heck-0.3.3 \
+ globset-0.4.9 \
+ hashbrown-0.12.3 \
+ heck-0.4.0 \
hermit-abi-0.1.19 \
hex-0.3.2 \
hex-0.4.3 \
- home-0.5.3 \
+ home-0.5.4 \
humantime-2.1.0 \
- idna-0.2.3 \
+ idna-0.3.0 \
ignore-0.4.18 \
- im-rc-15.0.0 \
- indexmap-1.8.0 \
+ im-rc-15.1.0 \
+ indexmap-1.9.1 \
instant-0.1.12 \
- itertools-0.10.3 \
- itoa-1.0.1 \
- jobserver-0.1.24 \
+ itertools-0.10.5 \
+ itoa-1.0.4 \
+ jobserver-0.1.25 \
+ kstring-2.0.0 \
lazy_static-1.4.0 \
lazycell-1.3.0 \
- libc-0.2.119 \
- libgit2-sys-0.12.26+1.3.0 \
+ libc-0.2.137 \
+ libgit2-sys-0.14.0+1.5.0 \
libnghttp2-sys-0.1.7+1.45.0 \
libssh2-sys-0.2.23 \
- libz-sys-1.1.3 \
- log-0.4.14 \
- matches-0.1.9 \
- memchr-2.4.1 \
- miniz_oxide-0.4.4 \
+ libz-sys-1.1.8 \
+ log-0.4.17 \
+ memchr-2.5.0 \
+ miniz_oxide-0.5.4 \
miow-0.3.7 \
- num_cpus-1.13.1 \
- once_cell-1.9.0 \
+ once_cell-1.16.0 \
opener-0.5.0 \
- openssl-0.10.38 \
+ openssl-0.10.42 \
+ openssl-macros-0.1.0 \
openssl-probe-0.1.5 \
- openssl-src-111.17.0+1.1.1m \
- openssl-sys-0.9.72 \
- os_info-3.2.0 \
- percent-encoding-2.1.0 \
- pkg-config-0.3.24 \
+ openssl-src-111.24.0+1.1.1s \
+ openssl-sys-0.9.77 \
+ os_info-3.5.1 \
+ os_str_bytes-6.3.1 \
+ pathdiff-0.2.1 \
+ percent-encoding-2.2.0 \
+ pkg-config-0.3.26 \
proc-macro-error-1.0.4 \
proc-macro-error-attr-1.0.4 \
- proc-macro2-1.0.36 \
- quote-1.0.15 \
- rand_core-0.5.1 \
- rand_xoshiro-0.4.0 \
- redox_syscall-0.2.10 \
- regex-1.5.4 \
+ proc-macro2-1.0.47 \
+ quote-1.0.21 \
+ rand_core-0.6.4 \
+ rand_xoshiro-0.6.0 \
+ redox_syscall-0.2.16 \
+ regex-1.6.0 \
regex-automata-0.1.10 \
- regex-syntax-0.6.25 \
+ regex-syntax-0.6.27 \
remove_dir_all-0.5.3 \
rustc-workspace-hack-1.0.0 \
- rustfix-0.6.0 \
- ryu-1.0.9 \
+ rustfix-0.6.1 \
+ ryu-1.0.11 \
same-file-1.0.6 \
- schannel-0.1.19 \
- semver-1.0.6 \
- serde-1.0.136 \
- serde_derive-1.0.136 \
- serde_ignored-0.1.2 \
- serde_json-1.0.79 \
+ schannel-0.1.20 \
+ semver-1.0.14 \
+ serde-1.0.147 \
+ serde_derive-1.0.147 \
+ serde_ignored-0.1.5 \
+ serde_json-1.0.87 \
shell-escape-0.1.5 \
sized-chunks-0.6.5 \
- socket2-0.4.4 \
+ socket2-0.4.7 \
+ static_assertions-1.1.0 \
strip-ansi-escapes-0.1.1 \
- strsim-0.8.0 \
- structopt-0.3.26 \
- structopt-derive-0.4.18 \
- syn-1.0.86 \
+ strsim-0.10.0 \
+ syn-1.0.103 \
tar-0.4.38 \
tempfile-3.3.0 \
- termcolor-1.1.2 \
- textwrap-0.11.0 \
+ termcolor-1.1.3 \
+ textwrap-0.16.0 \
thread_local-1.1.4 \
- tinyvec-1.5.1 \
+ tinyvec-1.6.0 \
tinyvec_macros-0.1.0 \
- toml-0.5.8 \
+ toml-0.5.9 \
+ toml_edit-0.14.4 \
typenum-1.15.0 \
- unicode-bidi-0.3.7 \
- unicode-normalization-0.1.19 \
- unicode-segmentation-1.9.0 \
- unicode-width-0.1.9 \
- unicode-xid-0.2.2 \
- url-2.2.2 \
+ unicode-bidi-0.3.8 \
+ unicode-ident-1.0.5 \
+ unicode-normalization-0.1.22 \
+ unicode-width-0.1.10 \
+ unicode-xid-0.2.4 \
+ url-2.3.1 \
utf8parse-0.2.0 \
vcpkg-0.2.15 \
- vec_map-0.8.2 \
version_check-0.9.4 \
vte-0.10.1 \
vte_generate_state_changes-0.1.1 \
@@ -131,4 +135,18 @@ CARGO_CRATES= adler-1.0.2 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
winapi-util-0.1.5 \
- winapi-x86_64-pc-windows-gnu-0.4.0
+ winapi-x86_64-pc-windows-gnu-0.4.0 \
+ windows-sys-0.36.1 \
+ windows-sys-0.42.0 \
+ windows_aarch64_gnullvm-0.42.0 \
+ windows_aarch64_msvc-0.36.1 \
+ windows_aarch64_msvc-0.42.0 \
+ windows_i686_gnu-0.36.1 \
+ windows_i686_gnu-0.42.0 \
+ windows_i686_msvc-0.36.1 \
+ windows_i686_msvc-0.42.0 \
+ windows_x86_64_gnu-0.36.1 \
+ windows_x86_64_gnu-0.42.0 \
+ windows_x86_64_gnullvm-0.42.0 \
+ windows_x86_64_msvc-0.36.1 \
+ windows_x86_64_msvc-0.42.0
diff --git a/devel/cargo-c/distinfo b/devel/cargo-c/distinfo
index cfbd081cd542..00fdd4686dfa 100644
--- a/devel/cargo-c/distinfo
+++ b/devel/cargo-c/distinfo
@@ -1,14 +1,12 @@
-TIMESTAMP = 1645825027
-SHA256 (rust/crates/cargo-c-0.9.8+cargo-0.60.crate) = cd08abb3a9222878f1898bcc69456061bb5c40f4368af12033376599dbd0bffd
-SIZE (rust/crates/cargo-c-0.9.8+cargo-0.60.crate) = 34992
+TIMESTAMP = 1667662439
+SHA256 (rust/crates/cargo-c-0.9.14+cargo-0.66.crate) = 9490736b2de3b311501d6f195c053ac5808bb87f820660047cedbb01217d5b72
+SIZE (rust/crates/cargo-c-0.9.14+cargo-0.66.crate) = 36110
SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
SIZE (rust/crates/adler-1.0.2.crate) = 12778
-SHA256 (rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f
-SIZE (rust/crates/aho-corasick-0.7.18.crate) = 112923
-SHA256 (rust/crates/ansi_term-0.12.1.crate) = d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2
-SIZE (rust/crates/ansi_term-0.12.1.crate) = 24838
-SHA256 (rust/crates/anyhow-1.0.55.crate) = 159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd
-SIZE (rust/crates/anyhow-1.0.55.crate) = 44429
+SHA256 (rust/crates/aho-corasick-0.7.19.crate) = b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e
+SIZE (rust/crates/aho-corasick-0.7.19.crate) = 113070
+SHA256 (rust/crates/anyhow-1.0.66.crate) = 216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6
+SIZE (rust/crates/anyhow-1.0.66.crate) = 43770
SHA256 (rust/crates/arrayvec-0.5.2.crate) = 23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b
SIZE (rust/crates/arrayvec-0.5.2.crate) = 27838
SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
@@ -21,22 +19,30 @@ SHA256 (rust/crates/bitmaps-2.1.0.crate) = 031043d04099746d8db04daf1fa424b2bc8bd
SIZE (rust/crates/bitmaps-2.1.0.crate) = 16717
SHA256 (rust/crates/bstr-0.2.17.crate) = ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223
SIZE (rust/crates/bstr-0.2.17.crate) = 330350
+SHA256 (rust/crates/bytes-1.2.1.crate) = ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db
+SIZE (rust/crates/bytes-1.2.1.crate) = 54857
SHA256 (rust/crates/bytesize-1.1.0.crate) = 6c58ec36aac5066d5ca17df51b3e70279f5670a72102f5752cb7e7c856adfc70
SIZE (rust/crates/bytesize-1.1.0.crate) = 9370
-SHA256 (rust/crates/cargo-0.60.0.crate) = bc194fab2f0394703f2794faeb9fcca34301af33eee96fa943b856028f279a77
-SIZE (rust/crates/cargo-0.60.0.crate) = 1850582
+SHA256 (rust/crates/cargo-0.66.0.crate) = 4cbff5076ff17b84f81946ca2d5536e60bfa2344cd365efb57c19fd808a17640
+SIZE (rust/crates/cargo-0.66.0.crate) = 2038772
SHA256 (rust/crates/cargo-platform-0.1.2.crate) = cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27
SIZE (rust/crates/cargo-platform-0.1.2.crate) = 11645
-SHA256 (rust/crates/cargo-util-0.1.2.crate) = a51c783163bdf4549820b80968d386c94ed45ed23819c93f59cca7ebd97fe0eb
-SIZE (rust/crates/cargo-util-0.1.2.crate) = 21287
-SHA256 (rust/crates/cbindgen-0.20.0.crate) = 51e3973b165dc0f435831a9e426de67e894de532754ff7a3f307c03ee5dec7dc
-SIZE (rust/crates/cbindgen-0.20.0.crate) = 183277
-SHA256 (rust/crates/cc-1.0.73.crate) = 2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11
-SIZE (rust/crates/cc-1.0.73.crate) = 57880
+SHA256 (rust/crates/cargo-util-0.2.2.crate) = b75f6bfca7b85d6e8c6a42405e9b4ecadd2e63f75f94aabfb524378b57a557a4
+SIZE (rust/crates/cargo-util-0.2.2.crate) = 23867
+SHA256 (rust/crates/cbindgen-0.24.3.crate) = a6358dedf60f4d9b8db43ad187391afe959746101346fe51bb978126bec61dfb
+SIZE (rust/crates/cbindgen-0.24.3.crate) = 195698
+SHA256 (rust/crates/cc-1.0.74.crate) = 581f5dba903aac52ea3feb5ec4810848460ee833876f1f9b0fdeab1f19091574
+SIZE (rust/crates/cc-1.0.74.crate) = 59410
SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
-SHA256 (rust/crates/clap-2.34.0.crate) = a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c
-SIZE (rust/crates/clap-2.34.0.crate) = 202210
+SHA256 (rust/crates/clap-3.2.23.crate) = 71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5
+SIZE (rust/crates/clap-3.2.23.crate) = 219435
+SHA256 (rust/crates/clap_derive-3.2.18.crate) = ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65
+SIZE (rust/crates/clap_derive-3.2.18.crate) = 28208
+SHA256 (rust/crates/clap_lex-0.2.4.crate) = 2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5
+SIZE (rust/crates/clap_lex-0.2.4.crate) = 9652
+SHA256 (rust/crates/combine-4.6.6.crate) = 35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4
+SIZE (rust/crates/combine-4.6.6.crate) = 132428
SHA256 (rust/crates/commoncrypto-0.2.0.crate) = d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007
SIZE (rust/crates/commoncrypto-0.2.0.crate) = 3009
SHA256 (rust/crates/commoncrypto-sys-0.2.0.crate) = 1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2
@@ -49,210 +55,212 @@ SHA256 (rust/crates/crates-io-0.34.0.crate) = 6b4a87459133b2e708195eaab34be55039
SIZE (rust/crates/crates-io-0.34.0.crate) = 9543
SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d
SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661
-SHA256 (rust/crates/crossbeam-utils-0.8.7.crate) = b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6
-SIZE (rust/crates/crossbeam-utils-0.8.7.crate) = 39751
+SHA256 (rust/crates/crossbeam-utils-0.8.12.crate) = edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac
+SIZE (rust/crates/crossbeam-utils-0.8.12.crate) = 41785
SHA256 (rust/crates/crypto-hash-0.3.4.crate) = 8a77162240fd97248d19a564a565eb563a3f592b386e4136fb300909e67dddca
SIZE (rust/crates/crypto-hash-0.3.4.crate) = 8102
-SHA256 (rust/crates/curl-0.4.42.crate) = 7de97b894edd5b5bcceef8b78d7da9b75b1d2f2f9a910569d0bde3dd31d84939
-SIZE (rust/crates/curl-0.4.42.crate) = 90376
-SHA256 (rust/crates/curl-sys-0.4.52+curl-7.81.0.crate) = 14b8c2d1023ea5fded5b7b892e4b8e95f70038a421126a056761a84246a28971
-SIZE (rust/crates/curl-sys-0.4.52+curl-7.81.0.crate) = 2984593
-SHA256 (rust/crates/either-1.6.1.crate) = e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457
-SIZE (rust/crates/either-1.6.1.crate) = 13641
-SHA256 (rust/crates/env_logger-0.9.0.crate) = 0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3
-SIZE (rust/crates/env_logger-0.9.0.crate) = 33573
-SHA256 (rust/crates/fastrand-1.7.0.crate) = c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf
-SIZE (rust/crates/fastrand-1.7.0.crate) = 11265
-SHA256 (rust/crates/filetime-0.2.15.crate) = 975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98
-SIZE (rust/crates/filetime-0.2.15.crate) = 14511
-SHA256 (rust/crates/flate2-1.0.22.crate) = 1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f
-SIZE (rust/crates/flate2-1.0.22.crate) = 76026
+SHA256 (rust/crates/curl-0.4.44.crate) = 509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22
+SIZE (rust/crates/curl-0.4.44.crate) = 91415
+SHA256 (rust/crates/curl-sys-0.4.59+curl-7.86.0.crate) = 6cfce34829f448b08f55b7db6d0009e23e2e86a34e8c2b366269bf5799b4a407
+SIZE (rust/crates/curl-sys-0.4.59+curl-7.86.0.crate) = 2996584
+SHA256 (rust/crates/either-1.8.0.crate) = 90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797
+SIZE (rust/crates/either-1.8.0.crate) = 15992
+SHA256 (rust/crates/env_logger-0.9.1.crate) = c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272
+SIZE (rust/crates/env_logger-0.9.1.crate) = 33425
+SHA256 (rust/crates/fastrand-1.8.0.crate) = a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499
+SIZE (rust/crates/fastrand-1.8.0.crate) = 11369
+SHA256 (rust/crates/filetime-0.2.18.crate) = 4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3
+SIZE (rust/crates/filetime-0.2.18.crate) = 14622
+SHA256 (rust/crates/flate2-1.0.24.crate) = f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6
+SIZE (rust/crates/flate2-1.0.24.crate) = 70191
SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
SIZE (rust/crates/fnv-1.0.7.crate) = 11266
SHA256 (rust/crates/foreign-types-0.3.2.crate) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1
SIZE (rust/crates/foreign-types-0.3.2.crate) = 7504
SHA256 (rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b
SIZE (rust/crates/foreign-types-shared-0.1.1.crate) = 5672
-SHA256 (rust/crates/form_urlencoded-1.0.1.crate) = 5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191
-SIZE (rust/crates/form_urlencoded-1.0.1.crate) = 8773
+SHA256 (rust/crates/form_urlencoded-1.1.0.crate) = a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8
+SIZE (rust/crates/form_urlencoded-1.1.0.crate) = 8734
SHA256 (rust/crates/fwdansi-1.1.0.crate) = 08c1f5787fe85505d1f7777268db5103d80a7a374d2316a7ce262e57baf8f208
SIZE (rust/crates/fwdansi-1.1.0.crate) = 8280
-SHA256 (rust/crates/git2-0.13.25.crate) = f29229cc1b24c0e6062f6e742aa3e256492a5323365e5ed3413599f8a5eff7d6
-SIZE (rust/crates/git2-0.13.25.crate) = 194192
-SHA256 (rust/crates/git2-curl-0.14.1.crate) = 883539cb0ea94bab3f8371a98cd8e937bbe9ee7c044499184aa4c17deb643a50
-SIZE (rust/crates/git2-curl-0.14.1.crate) = 9336
+SHA256 (rust/crates/git2-0.15.0.crate) = 2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1
+SIZE (rust/crates/git2-0.15.0.crate) = 198983
+SHA256 (rust/crates/git2-curl-0.16.0.crate) = ed817a00721e2f8037ba722e60358d4956dae9cca10315fc982f967907d3b0cd
+SIZE (rust/crates/git2-curl-0.16.0.crate) = 9289
SHA256 (rust/crates/glob-0.3.0.crate) = 9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574
SIZE (rust/crates/glob-0.3.0.crate) = 18724
-SHA256 (rust/crates/globset-0.4.8.crate) = 10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd
-SIZE (rust/crates/globset-0.4.8.crate) = 22886
-SHA256 (rust/crates/hashbrown-0.11.2.crate) = ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e
-SIZE (rust/crates/hashbrown-0.11.2.crate) = 85713
-SHA256 (rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c
-SIZE (rust/crates/heck-0.3.3.crate) = 10260
+SHA256 (rust/crates/globset-0.4.9.crate) = 0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a
+SIZE (rust/crates/globset-0.4.9.crate) = 22929
+SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
+SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
+SHA256 (rust/crates/heck-0.4.0.crate) = 2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9
+SIZE (rust/crates/heck-0.4.0.crate) = 11161
SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
SHA256 (rust/crates/hex-0.3.2.crate) = 805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77
SIZE (rust/crates/hex-0.3.2.crate) = 9053
SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
SIZE (rust/crates/hex-0.4.3.crate) = 13299
-SHA256 (rust/crates/home-0.5.3.crate) = 2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654
-SIZE (rust/crates/home-0.5.3.crate) = 7890
+SHA256 (rust/crates/home-0.5.4.crate) = 747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408
+SIZE (rust/crates/home-0.5.4.crate) = 8538
SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4
SIZE (rust/crates/humantime-2.1.0.crate) = 16749
-SHA256 (rust/crates/idna-0.2.3.crate) = 418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8
-SIZE (rust/crates/idna-0.2.3.crate) = 271023
+SHA256 (rust/crates/idna-0.3.0.crate) = e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6
+SIZE (rust/crates/idna-0.3.0.crate) = 271128
SHA256 (rust/crates/ignore-0.4.18.crate) = 713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d
SIZE (rust/crates/ignore-0.4.18.crate) = 53174
-SHA256 (rust/crates/im-rc-15.0.0.crate) = 3ca8957e71f04a205cb162508f9326aea04676c8dfd0711220190d6b83664f3f
-SIZE (rust/crates/im-rc-15.0.0.crate) = 182171
-SHA256 (rust/crates/indexmap-1.8.0.crate) = 282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223
-SIZE (rust/crates/indexmap-1.8.0.crate) = 52583
+SHA256 (rust/crates/im-rc-15.1.0.crate) = af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe
+SIZE (rust/crates/im-rc-15.1.0.crate) = 194077
+SHA256 (rust/crates/indexmap-1.9.1.crate) = 10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e
+SIZE (rust/crates/indexmap-1.9.1.crate) = 54114
SHA256 (rust/crates/instant-0.1.12.crate) = 7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c
SIZE (rust/crates/instant-0.1.12.crate) = 6128
-SHA256 (rust/crates/itertools-0.10.3.crate) = a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3
-SIZE (rust/crates/itertools-0.10.3.crate) = 118661
-SHA256 (rust/crates/itoa-1.0.1.crate) = 1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35
-SIZE (rust/crates/itoa-1.0.1.crate) = 11059
-SHA256 (rust/crates/jobserver-0.1.24.crate) = af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa
-SIZE (rust/crates/jobserver-0.1.24.crate) = 21303
+SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
+SIZE (rust/crates/itertools-0.10.5.crate) = 115354
+SHA256 (rust/crates/itoa-1.0.4.crate) = 4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc
+SIZE (rust/crates/itoa-1.0.4.crate) = 10601
+SHA256 (rust/crates/jobserver-0.1.25.crate) = 068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b
+SIZE (rust/crates/jobserver-0.1.25.crate) = 21888
+SHA256 (rust/crates/kstring-2.0.0.crate) = ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747
+SIZE (rust/crates/kstring-2.0.0.crate) = 22063
SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
SHA256 (rust/crates/lazycell-1.3.0.crate) = 830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55
SIZE (rust/crates/lazycell-1.3.0.crate) = 12502
-SHA256 (rust/crates/libc-0.2.119.crate) = 1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4
-SIZE (rust/crates/libc-0.2.119.crate) = 575749
-SHA256 (rust/crates/libgit2-sys-0.12.26+1.3.0.crate) = 19e1c899248e606fbfe68dcb31d8b0176ebab833b103824af31bddf4b7457494
-SIZE (rust/crates/libgit2-sys-0.12.26+1.3.0.crate) = 1476836
+SHA256 (rust/crates/libc-0.2.137.crate) = fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89
+SIZE (rust/crates/libc-0.2.137.crate) = 606185
+SHA256 (rust/crates/libgit2-sys-0.14.0+1.5.0.crate) = 47a00859c70c8a4f7218e6d1cc32875c4b55f6799445b842b0d8ed5e4c3d959b
+SIZE (rust/crates/libgit2-sys-0.14.0+1.5.0.crate) = 1740370
SHA256 (rust/crates/libnghttp2-sys-0.1.7+1.45.0.crate) = 57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f
SIZE (rust/crates/libnghttp2-sys-0.1.7+1.45.0.crate) = 4527090
SHA256 (rust/crates/libssh2-sys-0.2.23.crate) = b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca
SIZE (rust/crates/libssh2-sys-0.2.23.crate) = 493516
-SHA256 (rust/crates/libz-sys-1.1.3.crate) = de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66
-SIZE (rust/crates/libz-sys-1.1.3.crate) = 1341394
-SHA256 (rust/crates/log-0.4.14.crate) = 51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710
-SIZE (rust/crates/log-0.4.14.crate) = 34582
-SHA256 (rust/crates/matches-0.1.9.crate) = a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f
-SIZE (rust/crates/matches-0.1.9.crate) = 2246
-SHA256 (rust/crates/memchr-2.4.1.crate) = 308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a
-SIZE (rust/crates/memchr-2.4.1.crate) = 64977
-SHA256 (rust/crates/miniz_oxide-0.4.4.crate) = a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b
-SIZE (rust/crates/miniz_oxide-0.4.4.crate) = 49938
+SHA256 (rust/crates/libz-sys-1.1.8.crate) = 9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf
+SIZE (rust/crates/libz-sys-1.1.8.crate) = 2481844
+SHA256 (rust/crates/log-0.4.17.crate) = abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e
+SIZE (rust/crates/log-0.4.17.crate) = 38028
+SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
+SIZE (rust/crates/memchr-2.5.0.crate) = 65812
+SHA256 (rust/crates/miniz_oxide-0.5.4.crate) = 96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34
+SIZE (rust/crates/miniz_oxide-0.5.4.crate) = 53485
SHA256 (rust/crates/miow-0.3.7.crate) = b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21
SIZE (rust/crates/miow-0.3.7.crate) = 24563
-SHA256 (rust/crates/num_cpus-1.13.1.crate) = 19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1
-SIZE (rust/crates/num_cpus-1.13.1.crate) = 14752
-SHA256 (rust/crates/once_cell-1.9.0.crate) = da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5
-SIZE (rust/crates/once_cell-1.9.0.crate) = 30702
+SHA256 (rust/crates/once_cell-1.16.0.crate) = 86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860
+SIZE (rust/crates/once_cell-1.16.0.crate) = 32120
SHA256 (rust/crates/opener-0.5.0.crate) = 4ea3ebcd72a54701f56345f16785a6d3ac2df7e986d273eb4395c0b01db17952
SIZE (rust/crates/opener-0.5.0.crate) = 12350
-SHA256 (rust/crates/openssl-0.10.38.crate) = 0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95
-SIZE (rust/crates/openssl-0.10.38.crate) = 207436
+SHA256 (rust/crates/openssl-0.10.42.crate) = 12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13
+SIZE (rust/crates/openssl-0.10.42.crate) = 225875
+SHA256 (rust/crates/openssl-macros-0.1.0.crate) = b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c
+SIZE (rust/crates/openssl-macros-0.1.0.crate) = 5566
SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf
SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227
-SHA256 (rust/crates/openssl-src-111.17.0+1.1.1m.crate) = 05d6a336abd10814198f66e2a91ccd7336611f30334119ca8ce300536666fcf4
-SIZE (rust/crates/openssl-src-111.17.0+1.1.1m.crate) = 5097946
-SHA256 (rust/crates/openssl-sys-0.9.72.crate) = 7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb
-SIZE (rust/crates/openssl-sys-0.9.72.crate) = 56510
-SHA256 (rust/crates/os_info-3.2.0.crate) = 023df84d545ef479cf67fd2f4459a613585c9db4852c2fad12ab70587859d340
-SIZE (rust/crates/os_info-3.2.0.crate) = 20477
-SHA256 (rust/crates/percent-encoding-2.1.0.crate) = d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e
-SIZE (rust/crates/percent-encoding-2.1.0.crate) = 9748
-SHA256 (rust/crates/pkg-config-0.3.24.crate) = 58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe
-SIZE (rust/crates/pkg-config-0.3.24.crate) = 16489
+SHA256 (rust/crates/openssl-src-111.24.0+1.1.1s.crate) = 3498f259dab01178c6228c6b00dcef0ed2a2d5e20d648c017861227773ea4abd
+SIZE (rust/crates/openssl-src-111.24.0+1.1.1s.crate) = 5106276
+SHA256 (rust/crates/openssl-sys-0.9.77.crate) = b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a
+SIZE (rust/crates/openssl-sys-0.9.77.crate) = 60799
+SHA256 (rust/crates/os_info-3.5.1.crate) = c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f
+SIZE (rust/crates/os_info-3.5.1.crate) = 22593
+SHA256 (rust/crates/os_str_bytes-6.3.1.crate) = 3baf96e39c5359d2eb0dd6ccb42c62b91d9678aa68160d261b9e0ccbf9e9dea9
+SIZE (rust/crates/os_str_bytes-6.3.1.crate) = 22934
+SHA256 (rust/crates/pathdiff-0.2.1.crate) = 8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd
+SIZE (rust/crates/pathdiff-0.2.1.crate) = 7142
+SHA256 (rust/crates/percent-encoding-2.2.0.crate) = 478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e
+SIZE (rust/crates/percent-encoding-2.2.0.crate) = 10075
+SHA256 (rust/crates/pkg-config-0.3.26.crate) = 6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160
+SIZE (rust/crates/pkg-config-0.3.26.crate) = 18662
SHA256 (rust/crates/proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c
SIZE (rust/crates/proc-macro-error-1.0.4.crate) = 25293
SHA256 (rust/crates/proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869
SIZE (rust/crates/proc-macro-error-attr-1.0.4.crate) = 7971
-SHA256 (rust/crates/proc-macro2-1.0.36.crate) = c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029
-SIZE (rust/crates/proc-macro2-1.0.36.crate) = 41411
-SHA256 (rust/crates/quote-1.0.15.crate) = 864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145
-SIZE (rust/crates/quote-1.0.15.crate) = 27281
-SHA256 (rust/crates/rand_core-0.5.1.crate) = 90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19
-SIZE (rust/crates/rand_core-0.5.1.crate) = 21116
-SHA256 (rust/crates/rand_xoshiro-0.4.0.crate) = a9fcdd2e881d02f1d9390ae47ad8e5696a9e4be7b547a1da2afbc61973217004
-SIZE (rust/crates/rand_xoshiro-0.4.0.crate) = 17029
-SHA256 (rust/crates/redox_syscall-0.2.10.crate) = 8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff
-SIZE (rust/crates/redox_syscall-0.2.10.crate) = 23582
-SHA256 (rust/crates/regex-1.5.4.crate) = d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461
-SIZE (rust/crates/regex-1.5.4.crate) = 236581
+SHA256 (rust/crates/proc-macro2-1.0.47.crate) = 5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725
+SIZE (rust/crates/proc-macro2-1.0.47.crate) = 41955
+SHA256 (rust/crates/quote-1.0.21.crate) = bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179
+SIZE (rust/crates/quote-1.0.21.crate) = 28030
+SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/rand_xoshiro-0.6.0.crate) = 6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa
+SIZE (rust/crates/rand_xoshiro-0.6.0.crate) = 17125
+SHA256 (rust/crates/redox_syscall-0.2.16.crate) = fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a
+SIZE (rust/crates/redox_syscall-0.2.16.crate) = 24012
+SHA256 (rust/crates/regex-1.6.0.crate) = 4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b
+SIZE (rust/crates/regex-1.6.0.crate) = 239329
SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
-SHA256 (rust/crates/regex-syntax-0.6.25.crate) = f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b
-SIZE (rust/crates/regex-syntax-0.6.25.crate) = 293293
+SHA256 (rust/crates/regex-syntax-0.6.27.crate) = a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244
+SIZE (rust/crates/regex-syntax-0.6.27.crate) = 297300
SHA256 (rust/crates/remove_dir_all-0.5.3.crate) = 3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7
SIZE (rust/crates/remove_dir_all-0.5.3.crate) = 9184
SHA256 (rust/crates/rustc-workspace-hack-1.0.0.crate) = fc71d2faa173b74b232dedc235e3ee1696581bb132fc116fa3626d6151a1a8fb
SIZE (rust/crates/rustc-workspace-hack-1.0.0.crate) = 774
-SHA256 (rust/crates/rustfix-0.6.0.crate) = 6f0be05fc0675ef4f47119dc39cfc46636bb77d4fc4ef1bd851b9c3f7697f32a
-SIZE (rust/crates/rustfix-0.6.0.crate) = 18128
-SHA256 (rust/crates/ryu-1.0.9.crate) = 73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f
-SIZE (rust/crates/ryu-1.0.9.crate) = 48391
+SHA256 (rust/crates/rustfix-0.6.1.crate) = ecd2853d9e26988467753bd9912c3a126f642d05d229a4b53f5752ee36c56481
+SIZE (rust/crates/rustfix-0.6.1.crate) = 17352
+SHA256 (rust/crates/ryu-1.0.11.crate) = 4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09
+SIZE (rust/crates/ryu-1.0.11.crate) = 47007
SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
-SHA256 (rust/crates/schannel-0.1.19.crate) = 8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75
-SIZE (rust/crates/schannel-0.1.19.crate) = 42755
-SHA256 (rust/crates/semver-1.0.6.crate) = a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d
-SIZE (rust/crates/semver-1.0.6.crate) = 29941
-SHA256 (rust/crates/serde-1.0.136.crate) = ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789
-SIZE (rust/crates/serde-1.0.136.crate) = 76158
-SHA256 (rust/crates/serde_derive-1.0.136.crate) = 08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9
-SIZE (rust/crates/serde_derive-1.0.136.crate) = 54776
-SHA256 (rust/crates/serde_ignored-0.1.2.crate) = 1c2c7d39d14f2f2ea82239de71594782f186fd03501ac81f0ce08e674819ff2f
-SIZE (rust/crates/serde_ignored-0.1.2.crate) = 12179
-SHA256 (rust/crates/serde_json-1.0.79.crate) = 8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95
-SIZE (rust/crates/serde_json-1.0.79.crate) = 144451
+SHA256 (rust/crates/schannel-0.1.20.crate) = 88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2
+SIZE (rust/crates/schannel-0.1.20.crate) = 41579
+SHA256 (rust/crates/semver-1.0.14.crate) = e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4
+SIZE (rust/crates/semver-1.0.14.crate) = 29813
+SHA256 (rust/crates/serde-1.0.147.crate) = d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965
+SIZE (rust/crates/serde-1.0.147.crate) = 76697
+SHA256 (rust/crates/serde_derive-1.0.147.crate) = 4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852
+SIZE (rust/crates/serde_derive-1.0.147.crate) = 54861
+SHA256 (rust/crates/serde_ignored-0.1.5.crate) = 82b3da7eedd967647a866f67829d1c79d184d7c4521126e9cc2c46a9585c6d21
+SIZE (rust/crates/serde_ignored-0.1.5.crate) = 11858
+SHA256 (rust/crates/serde_json-1.0.87.crate) = 6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45
+SIZE (rust/crates/serde_json-1.0.87.crate) = 144383
SHA256 (rust/crates/shell-escape-0.1.5.crate) = 45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f
SIZE (rust/crates/shell-escape-0.1.5.crate) = 6847
SHA256 (rust/crates/sized-chunks-0.6.5.crate) = 16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e
SIZE (rust/crates/sized-chunks-0.6.5.crate) = 43628
-SHA256 (rust/crates/socket2-0.4.4.crate) = 66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0
-SIZE (rust/crates/socket2-0.4.4.crate) = 44048
+SHA256 (rust/crates/socket2-0.4.7.crate) = 02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd
+SIZE (rust/crates/socket2-0.4.7.crate) = 44619
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
SHA256 (rust/crates/strip-ansi-escapes-0.1.1.crate) = 011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8
SIZE (rust/crates/strip-ansi-escapes-0.1.1.crate) = 8668
-SHA256 (rust/crates/strsim-0.8.0.crate) = 8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a
-SIZE (rust/crates/strsim-0.8.0.crate) = 9309
-SHA256 (rust/crates/structopt-0.3.26.crate) = 0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10
-SIZE (rust/crates/structopt-0.3.26.crate) = 53798
-SHA256 (rust/crates/structopt-derive-0.4.18.crate) = dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0
-SIZE (rust/crates/structopt-derive-0.4.18.crate) = 20996
-SHA256 (rust/crates/syn-1.0.86.crate) = 8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b
-SIZE (rust/crates/syn-1.0.86.crate) = 235126
+SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
+SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/syn-1.0.103.crate) = a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d
+SIZE (rust/crates/syn-1.0.103.crate) = 236495
SHA256 (rust/crates/tar-0.4.38.crate) = 4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6
SIZE (rust/crates/tar-0.4.38.crate) = 49158
SHA256 (rust/crates/tempfile-3.3.0.crate) = 5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4
SIZE (rust/crates/tempfile-3.3.0.crate) = 27578
-SHA256 (rust/crates/termcolor-1.1.2.crate) = 2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4
-SIZE (rust/crates/termcolor-1.1.2.crate) = 17287
-SHA256 (rust/crates/textwrap-0.11.0.crate) = d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060
-SIZE (rust/crates/textwrap-0.11.0.crate) = 17322
+SHA256 (rust/crates/termcolor-1.1.3.crate) = bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755
+SIZE (rust/crates/termcolor-1.1.3.crate) = 17242
+SHA256 (rust/crates/textwrap-0.16.0.crate) = 222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d
+SIZE (rust/crates/textwrap-0.16.0.crate) = 53722
SHA256 (rust/crates/thread_local-1.1.4.crate) = 5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180
SIZE (rust/crates/thread_local-1.1.4.crate) = 13106
-SHA256 (rust/crates/tinyvec-1.5.1.crate) = 2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2
-SIZE (rust/crates/tinyvec-1.5.1.crate) = 44942
+SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50
+SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991
SHA256 (rust/crates/tinyvec_macros-0.1.0.crate) = cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c
SIZE (rust/crates/tinyvec_macros-0.1.0.crate) = 1817
-SHA256 (rust/crates/toml-0.5.8.crate) = a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa
-SIZE (rust/crates/toml-0.5.8.crate) = 54219
+SHA256 (rust/crates/toml-0.5.9.crate) = 8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7
+SIZE (rust/crates/toml-0.5.9.crate) = 55667
+SHA256 (rust/crates/toml_edit-0.14.4.crate) = 5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f
+SIZE (rust/crates/toml_edit-0.14.4.crate) = 105387
SHA256 (rust/crates/typenum-1.15.0.crate) = dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987
SIZE (rust/crates/typenum-1.15.0.crate) = 40741
-SHA256 (rust/crates/unicode-bidi-0.3.7.crate) = 1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f
-SIZE (rust/crates/unicode-bidi-0.3.7.crate) = 33759
-SHA256 (rust/crates/unicode-normalization-0.1.19.crate) = d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9
-SIZE (rust/crates/unicode-normalization-0.1.19.crate) = 107353
-SHA256 (rust/crates/unicode-segmentation-1.9.0.crate) = 7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99
-SIZE (rust/crates/unicode-segmentation-1.9.0.crate) = 93241
-SHA256 (rust/crates/unicode-width-0.1.9.crate) = 3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973
-SIZE (rust/crates/unicode-width-0.1.9.crate) = 16745
-SHA256 (rust/crates/unicode-xid-0.2.2.crate) = 8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3
-SIZE (rust/crates/unicode-xid-0.2.2.crate) = 14955
-SHA256 (rust/crates/url-2.2.2.crate) = a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c
-SIZE (rust/crates/url-2.2.2.crate) = 68555
+SHA256 (rust/crates/unicode-bidi-0.3.8.crate) = 099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992
+SIZE (rust/crates/unicode-bidi-0.3.8.crate) = 36575
+SHA256 (rust/crates/unicode-ident-1.0.5.crate) = 6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3
+SIZE (rust/crates/unicode-ident-1.0.5.crate) = 35455
+SHA256 (rust/crates/unicode-normalization-0.1.22.crate) = 5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921
+SIZE (rust/crates/unicode-normalization-0.1.22.crate) = 122604
+SHA256 (rust/crates/unicode-width-0.1.10.crate) = c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b
+SIZE (rust/crates/unicode-width-0.1.10.crate) = 18968
+SHA256 (rust/crates/unicode-xid-0.2.4.crate) = f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c
+SIZE (rust/crates/unicode-xid-0.2.4.crate) = 15352
+SHA256 (rust/crates/url-2.3.1.crate) = 0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643
+SIZE (rust/crates/url-2.3.1.crate) = 72777
SHA256 (rust/crates/utf8parse-0.2.0.crate) = 936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372
SIZE (rust/crates/utf8parse-0.2.0.crate) = 13392
SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426
SIZE (rust/crates/vcpkg-0.2.15.crate) = 228735
-SHA256 (rust/crates/vec_map-0.8.2.crate) = f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191
-SIZE (rust/crates/vec_map-0.8.2.crate) = 14466
SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
SIZE (rust/crates/version_check-0.9.4.crate) = 14895
SHA256 (rust/crates/vte-0.10.1.crate) = 6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983
@@ -269,3 +277,31 @@ SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e9
SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/windows-sys-0.36.1.crate) = ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2
+SIZE (rust/crates/windows-sys-0.36.1.crate) = 3347053
+SHA256 (rust/crates/windows-sys-0.42.0.crate) = 5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7
+SIZE (rust/crates/windows-sys-0.42.0.crate) = 3006791
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.0.crate) = 41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e
+SIZE (rust/crates/windows_aarch64_gnullvm-0.42.0.crate) = 357917
+SHA256 (rust/crates/windows_aarch64_msvc-0.36.1.crate) = 9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47
+SIZE (rust/crates/windows_aarch64_msvc-0.36.1.crate) = 661960
+SHA256 (rust/crates/windows_aarch64_msvc-0.42.0.crate) = dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4
+SIZE (rust/crates/windows_aarch64_msvc-0.42.0.crate) = 659424
+SHA256 (rust/crates/windows_i686_gnu-0.36.1.crate) = 180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6
+SIZE (rust/crates/windows_i686_gnu-0.36.1.crate) = 818115
+SHA256 (rust/crates/windows_i686_gnu-0.42.0.crate) = fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7
+SIZE (rust/crates/windows_i686_gnu-0.42.0.crate) = 728570
+SHA256 (rust/crates/windows_i686_msvc-0.36.1.crate) = e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024
+SIZE (rust/crates/windows_i686_msvc-0.36.1.crate) = 724575
+SHA256 (rust/crates/windows_i686_msvc-0.42.0.crate) = 84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246
+SIZE (rust/crates/windows_i686_msvc-0.42.0.crate) = 717477
+SHA256 (rust/crates/windows_x86_64_gnu-0.36.1.crate) = 4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1
+SIZE (rust/crates/windows_x86_64_gnu-0.36.1.crate) = 790934
+SHA256 (rust/crates/windows_x86_64_gnu-0.42.0.crate) = bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed
+SIZE (rust/crates/windows_x86_64_gnu-0.42.0.crate) = 692493
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.0.crate) = 09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028
+SIZE (rust/crates/windows_x86_64_gnullvm-0.42.0.crate) = 357906
+SHA256 (rust/crates/windows_x86_64_msvc-0.36.1.crate) = c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680
+SIZE (rust/crates/windows_x86_64_msvc-0.36.1.crate) = 661999
+SHA256 (rust/crates/windows_x86_64_msvc-0.42.0.crate) = f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5
+SIZE (rust/crates/windows_x86_64_msvc-0.42.0.crate) = 659377
diff --git a/devel/cargo-c/files/patch-cargo-dep b/devel/cargo-c/files/patch-cargo-dep
deleted file mode 100644
index c042f3ba0986..000000000000
--- a/devel/cargo-c/files/patch-cargo-dep
+++ /dev/null
@@ -1,1602 +0,0 @@
-https://github.com/rust-lang/cargo/commit/43a063c80a53
-
---- cargo-crates/cargo-0.60.0/Cargo.toml.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/Cargo.toml
-@@ -50,7 +50,7 @@ version = "2.34.0"
- version = "2.34.0"
-
- [dependencies.crates-io]
--version = "0.33.1"
-+version = "0.34.0"
-
- [dependencies.crossbeam-utils]
- version = "0.8"
---- cargo-crates/cargo-0.60.0/src/bin/cargo/commands/read_manifest.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/bin/cargo/commands/read_manifest.rs
-@@ -15,8 +15,6 @@ pub fn exec(config: &mut Config, args: &ArgMatches<'_>
-
- 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(())
- }
---- cargo-crates/cargo-0.60.0/src/cargo/core/features.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/cargo/core/features.rs
-@@ -642,7 +642,6 @@ unstable_cli_options!(
- minimal_versions: bool = ("Resolve minimal dependency versions instead of maximum"),
- mtime_on_use: bool = ("Configure Cargo to update the mtime of used files"),
- multitarget: bool = ("Allow passing multiple `--target` flags to the cargo subcommand selected"),
-- namespaced_features: bool = ("Allow features with `dep:` prefix"),
- no_index_update: bool = ("Do not update the registry index even if the cache is outdated"),
- panic_abort_tests: bool = ("Enable support to run tests with -Cpanic=abort"),
- host_config: bool = ("Enable the [host] section in the .cargo/config.toml file"),
-@@ -652,7 +651,6 @@ unstable_cli_options!(
- terminal_width: Option<Option<usize>> = ("Provide a terminal width to rustc for error truncation"),
- timings: Option<Vec<String>> = ("Display concurrency information"),
- unstable_options: bool = ("Allow the usage of unstable options"),
-- weak_dep_features: bool = ("Allow `dep_name?/feature` feature syntax"),
- // TODO(wcrichto): move scrape example configuration into Cargo.toml before stabilization
- // See: https://github.com/rust-lang/cargo/pull/9525#discussion_r728470927
- rustdoc_scrape_examples: Option<String> = ("Allow rustdoc to scrape examples from reverse-dependencies for documentation"),
-@@ -707,6 +705,10 @@ const STABILIZED_FUTURE_INCOMPAT_REPORT: &str =
- const STABILIZED_FUTURE_INCOMPAT_REPORT: &str =
- "The future-incompat-report feature is now always enabled.";
-
-+const STABILIZED_WEAK_DEP_FEATURES: &str = "Weak dependency features are now always available.";
-+
-+const STABILISED_NAMESPACED_FEATURES: &str = "Namespaced features are now always available.";
-+
- fn deserialize_build_std<'de, D>(deserializer: D) -> Result<Option<Vec<String>>, D::Error>
- where
- D: serde::Deserializer<'de>,
-@@ -873,8 +875,8 @@ impl CliUnstable {
- "multitarget" => self.multitarget = parse_empty(k, v)?,
- "rustdoc-map" => self.rustdoc_map = parse_empty(k, v)?,
- "terminal-width" => self.terminal_width = Some(parse_usize_opt(v)?),
-- "namespaced-features" => self.namespaced_features = parse_empty(k, v)?,
-- "weak-dep-features" => self.weak_dep_features = parse_empty(k, v)?,
-+ "namespaced-features" => stabilized_warn(k, "1.60", STABILISED_NAMESPACED_FEATURES),
-+ "weak-dep-features" => stabilized_warn(k, "1.60", STABILIZED_WEAK_DEP_FEATURES),
- "credential-process" => self.credential_process = parse_empty(k, v)?,
- "rustdoc-scrape-examples" => {
- if let Some(s) = v {
---- cargo-crates/cargo-0.60.0/src/cargo/core/package.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/cargo/core/package.rs
-@@ -208,7 +208,7 @@ impl Package {
- self.targets().iter().any(|t| t.is_example() || t.is_bin())
- }
-
-- pub fn serialized(&self, config: &Config) -> SerializedPackage {
-+ pub fn serialized(&self) -> SerializedPackage {
- let summary = self.manifest().summary();
- let package_id = summary.package_id();
- let manmeta = self.manifest().metadata();
-@@ -222,27 +222,19 @@ impl Package {
- .filter(|t| t.src_path().is_path())
- .cloned()
- .collect();
-- let features = if config.cli_unstable().namespaced_features {
-- // Convert Vec<FeatureValue> to Vec<InternedString>
-- summary
-- .features()
-- .iter()
-- .map(|(k, v)| {
-- (
-- *k,
-- v.iter()
-- .map(|fv| InternedString::new(&fv.to_string()))
-- .collect(),
-- )
-- })
-- .collect()
-- } else {
-- self.manifest()
-- .original()
-- .features()
-- .cloned()
-- .unwrap_or_default()
-- };
-+ // Convert Vec<FeatureValue> to Vec<InternedString>
-+ let features = summary
-+ .features()
-+ .iter()
-+ .map(|(k, v)| {
-+ (
-+ *k,
-+ v.iter()
-+ .map(|fv| InternedString::new(&fv.to_string()))
-+ .collect(),
-+ )
-+ })
-+ .collect();
-
- SerializedPackage {
- name: package_id.name(),
---- cargo-crates/cargo-0.60.0/src/cargo/core/resolver/features.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/cargo/core/resolver/features.rs
-@@ -1,19 +1,14 @@
- //! Feature resolver.
- //!
- //! This is a new feature resolver that runs independently of the main
--//! dependency resolver. It is enabled when the user specifies `resolver =
--//! "2"` in `Cargo.toml`.
-+//! dependency resolver. It has several options which can enable new feature
-+//! resolution behavior.
- //!
- //! One of its key characteristics is that it can avoid unifying features for
- //! shared dependencies in some situations. See `FeatureOpts` for the
- //! different behaviors that can be enabled. If no extra options are enabled,
- //! then it should behave exactly the same as the dependency resolver's
--//! feature resolution. This can be verified by setting the
--//! `__CARGO_FORCE_NEW_FEATURES=compare` environment variable and running
--//! Cargo's test suite (or building other projects), and checking if it
--//! panics. Note: the `features2` tests will fail because they intentionally
--//! compare the old vs new behavior, so forcing the old behavior will
--//! naturally fail the tests.
-+//! feature resolution.
- //!
- //! The preferred way to engage this new resolver is via
- //! `resolve_ws_with_opts`.
-@@ -59,22 +54,12 @@ pub struct ResolvedFeatures {
- ///
- /// The value is the `name_in_toml` of the dependencies.
- activated_dependencies: ActivateMap,
-- /// This is only here for legacy support when the new resolver is not enabled.
-- ///
-- /// This is the set of features enabled for each package.
-- legacy_features: Option<HashMap<PackageId, Vec<InternedString>>>,
-- /// This is only here for legacy support when the new resolver is not enabled.
-- ///
-- /// This is the set of optional dependencies enabled for each package.
-- legacy_dependencies: Option<HashMap<PackageId, HashSet<InternedString>>>,
- opts: FeatureOpts,
- }
-
- /// Options for how the feature resolver works.
- #[derive(Default)]
- pub struct FeatureOpts {
-- /// Use the new resolver instead of the old one.
-- new_resolver: bool,
- /// Build deps and proc-macros will not share share features with other dep kinds.
- decouple_host_deps: bool,
- /// Dev dep features will not be activated unless needed.
-@@ -132,7 +117,6 @@ impl FeatureOpts {
- let mut opts = FeatureOpts::default();
- let unstable_flags = ws.config().cli_unstable();
- let mut enable = |feat_opts: &Vec<String>| {
-- opts.new_resolver = true;
- for opt in feat_opts {
- match opt.as_ref() {
- "build_dep" | "host_dep" => opts.decouple_host_deps = true,
-@@ -159,15 +143,6 @@ impl FeatureOpts {
- enable(&vec!["all".to_string()]).unwrap();
- }
- }
-- // This env var is intended for testing only.
-- if let Ok(env_opts) = std::env::var("__CARGO_FORCE_NEW_FEATURES") {
-- if env_opts == "1" {
-- opts.new_resolver = true;
-- } else {
-- let env_opts = env_opts.split(',').map(|s| s.to_string()).collect();
-- enable(&env_opts)?;
-- }
-- }
- if let HasDevUnits::Yes = has_dev_units {
- // Dev deps cannot be decoupled when they are in use.
- opts.decouple_dev_deps = false;
-@@ -175,10 +150,6 @@ impl FeatureOpts {
- if let ForceAllTargets::Yes = force_all_targets {
- opts.ignore_inactive_targets = false;
- }
-- if unstable_flags.weak_dep_features {
-- // Force this ON because it only works with the new resolver.
-- opts.new_resolver = true;
-- }
- Ok(opts)
- }
-
-@@ -187,7 +158,6 @@ impl FeatureOpts {
- match behavior {
- ResolveBehavior::V1 => FeatureOpts::default(),
- ResolveBehavior::V2 => FeatureOpts {
-- new_resolver: true,
- decouple_host_deps: true,
- decouple_dev_deps: has_dev_units == HasDevUnits::No,
- ignore_inactive_targets: true,
-@@ -306,18 +276,11 @@ impl ResolvedFeatures {
- features_for: FeaturesFor,
- dep_name: InternedString,
- ) -> bool {
-- if let Some(legacy) = &self.legacy_dependencies {
-- legacy
-- .get(&pkg_id)
-- .map(|deps| deps.contains(&dep_name))
-- .unwrap_or(false)
-- } else {
-- let is_build = self.opts.decouple_host_deps && features_for == FeaturesFor::HostDep;
-- self.activated_dependencies
-- .get(&(pkg_id, is_build))
-- .map(|deps| deps.contains(&dep_name))
-- .unwrap_or(false)
-- }
-+ let is_build = self.opts.decouple_host_deps && features_for == FeaturesFor::HostDep;
-+ self.activated_dependencies
-+ .get(&(pkg_id, is_build))
-+ .map(|deps| deps.contains(&dep_name))
-+ .unwrap_or(false)
- }
-
- /// Variant of `activated_features` that returns `None` if this is
-@@ -336,15 +299,11 @@ impl ResolvedFeatures {
- pkg_id: PackageId,
- features_for: FeaturesFor,
- ) -> CargoResult<Vec<InternedString>> {
-- if let Some(legacy) = &self.legacy_features {
-- Ok(legacy.get(&pkg_id).map_or_else(Vec::new, |v| v.clone()))
-+ let is_build = self.opts.decouple_host_deps && features_for == FeaturesFor::HostDep;
-+ if let Some(fs) = self.activated_features.get(&(pkg_id, is_build)) {
-+ Ok(fs.iter().cloned().collect())
- } else {
-- let is_build = self.opts.decouple_host_deps && features_for == FeaturesFor::HostDep;
-- if let Some(fs) = self.activated_features.get(&(pkg_id, is_build)) {
-- Ok(fs.iter().cloned().collect())
-- } else {
-- bail!("features did not find {:?} {:?}", pkg_id, is_build)
-- }
-+ bail!("features did not find {:?} {:?}", pkg_id, is_build)
- }
- }
-
-@@ -352,14 +311,16 @@ impl ResolvedFeatures {
- ///
- /// Used by `cargo fix --edition` to display any differences.
- pub fn compare_legacy(&self, legacy: &ResolvedFeatures) -> DiffMap {
-- let legacy_features = legacy.legacy_features.as_ref().unwrap();
- self.activated_features
- .iter()
- .filter_map(|((pkg_id, for_host), new_features)| {
-- let old_features = match legacy_features.get(pkg_id) {
-- Some(feats) => feats.iter().cloned().collect(),
-- None => BTreeSet::new(),
-- };
-+ let old_features = legacy
-+ .activated_features
-+ .get(&(*pkg_id, *for_host))
-+ // The new features may have for_host entries where the old one does not.
-+ .or_else(|| legacy.activated_features.get(&(*pkg_id, false)))
-+ .map(|feats| feats.iter().cloned().collect())
-+ .unwrap_or_else(|| BTreeSet::new());
- // The new resolver should never add features.
- assert_eq!(new_features.difference(&old_features).next(), None);
- let removed_features: BTreeSet<_> =
-@@ -427,17 +388,6 @@ impl<'a, 'cfg> FeatureResolver<'a, 'cfg> {
- ) -> CargoResult<ResolvedFeatures> {
- use crate::util::profile;
- let _p = profile::start("resolve features");
--
-- if !opts.new_resolver {
-- // Legacy mode.
-- return Ok(ResolvedFeatures {
-- activated_features: HashMap::new(),
-- activated_dependencies: HashMap::new(),
-- legacy_features: Some(resolve.features_clone()),
-- legacy_dependencies: Some(compute_legacy_deps(resolve)),
-- opts,
-- });
-- }
- let track_for_host = opts.decouple_host_deps || opts.ignore_inactive_targets;
- let mut r = FeatureResolver {
- ws,
-@@ -460,8 +410,6 @@ impl<'a, 'cfg> FeatureResolver<'a, 'cfg> {
- Ok(ResolvedFeatures {
- activated_features: r.activated_features,
- activated_dependencies: r.activated_dependencies,
-- legacy_features: None,
-- legacy_dependencies: None,
- opts: r.opts,
- })
- }
-@@ -825,20 +773,4 @@ impl<'a, 'cfg> FeatureResolver<'a, 'cfg> {
- .expect("packages downloaded")
- .proc_macro()
- }
--}
--
--/// Computes a map of PackageId to the set of optional dependencies that are
--/// enabled for that dep (when the new resolver is not enabled).
--fn compute_legacy_deps(resolve: &Resolve) -> HashMap<PackageId, HashSet<InternedString>> {
-- let mut result: HashMap<PackageId, HashSet<InternedString>> = HashMap::new();
-- for pkg_id in resolve.iter() {
-- for (_dep_id, deps) in resolve.deps(pkg_id) {
-- for dep in deps {
-- if dep.is_optional() {
-- result.entry(pkg_id).or_default().insert(dep.name_in_toml());
-- }
-- }
-- }
-- }
-- result
- }
---- cargo-crates/cargo-0.60.0/src/cargo/core/summary.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/cargo/core/summary.rs
-@@ -23,8 +23,6 @@ struct Inner {
- package_id: PackageId,
- dependencies: Vec<Dependency>,
- features: Rc<FeatureMap>,
-- has_namespaced_features: bool,
-- has_overlapping_features: Option<InternedString>,
- checksum: Option<String>,
- links: Option<InternedString>,
- }
-@@ -37,15 +35,11 @@ impl Summary {
- features: &BTreeMap<InternedString, Vec<InternedString>>,
- links: Option<impl Into<InternedString>>,
- ) -> CargoResult<Summary> {
-- // ****CAUTION**** If you change anything here than may raise a new
-+ // ****CAUTION**** If you change anything here that may raise a new
- // error, be sure to coordinate that change with either the index
- // schema field or the SummariesCache version.
-- let mut has_overlapping_features = None;
- for dep in dependencies.iter() {
- let dep_name = dep.name_in_toml();
-- if features.contains_key(&dep_name) {
-- has_overlapping_features = Some(dep_name);
-- }
- if dep.is_optional() && !dep.is_transitive() {
- bail!(
- "dev-dependencies are not allowed to be optional: `{}`",
-@@ -53,8 +47,7 @@ impl Summary {
- )
- }
- }
-- let (feature_map, has_namespaced_features) =
-- build_feature_map(config, pkg_id, features, &dependencies)?;
-+ let feature_map = build_feature_map(config, pkg_id, features, &dependencies)?;
- Ok(Summary {
- inner: Rc::new(Inner {
- package_id: pkg_id,
-@@ -62,8 +55,6 @@ impl Summary {
- features: Rc::new(feature_map),
- checksum: None,
- links: links.map(|l| l.into()),
-- has_namespaced_features,
-- has_overlapping_features,
- }),
- })
- }
-@@ -87,46 +78,6 @@ impl Summary {
- &self.inner.features
- }
-
-- /// Returns an error if this Summary is using an unstable feature that is
-- /// not enabled.
-- pub fn unstable_gate(
-- &self,
-- namespaced_features: bool,
-- weak_dep_features: bool,
-- ) -> CargoResult<()> {
-- if !namespaced_features {
-- if self.inner.has_namespaced_features {
-- bail!(
-- "namespaced features with the `dep:` prefix are only allowed on \
-- the nightly channel and requires the `-Z namespaced-features` flag on the command-line"
-- );
-- }
-- if let Some(dep_name) = self.inner.has_overlapping_features {
-- bail!(
-- "features and dependencies cannot have the same name: `{}`",
-- dep_name
-- )
-- }
-- }
-- if !weak_dep_features {
-- for (feat_name, features) in self.features() {
-- for fv in features {
-- if matches!(fv, FeatureValue::DepFeature { weak: true, .. }) {
-- bail!(
-- "optional dependency features with `?` syntax are only \
-- allowed on the nightly channel and requires the \
-- `-Z weak-dep-features` flag on the command line\n\
-- Feature `{}` had feature value `{}`.",
-- feat_name,
-- fv
-- );
-- }
-- }
-- }
-- }
-- Ok(())
-- }
--
- pub fn checksum(&self) -> Option<&str> {
- self.inner.checksum.as_deref()
- }
-@@ -181,16 +132,12 @@ impl Hash for Summary {
-
- /// Checks features for errors, bailing out a CargoResult:Err if invalid,
- /// and creates FeatureValues for each feature.
--///
--/// The returned `bool` indicates whether or not the `[features]` table
--/// included a `dep:` prefixed namespaced feature (used for gating on
--/// nightly).
- fn build_feature_map(
- config: &Config,
- pkg_id: PackageId,
- features: &BTreeMap<InternedString, Vec<InternedString>>,
- dependencies: &[Dependency],
--) -> CargoResult<(FeatureMap, bool)> {
-+) -> CargoResult<FeatureMap> {
- use self::FeatureValue::*;
- let mut dep_map = HashMap::new();
- for dep in dependencies.iter() {
-@@ -210,7 +157,6 @@ fn build_feature_map(
- (*feature, fvs)
- })
- .collect();
-- let has_namespaced_features = map.values().flatten().any(|fv| fv.has_dep_prefix());
-
- // Add implicit features for optional dependencies if they weren't
- // explicitly listed anywhere.
-@@ -372,7 +318,7 @@ fn build_feature_map(
- );
- }
-
-- Ok((map, has_namespaced_features))
-+ Ok(map)
- }
-
- /// FeatureValue represents the types of dependencies a feature can have.
---- cargo-crates/cargo-0.60.0/src/cargo/ops/cargo_output_metadata.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/cargo/ops/cargo_output_metadata.rs
-@@ -31,9 +31,8 @@ pub fn output_metadata(ws: &Workspace<'_>, opt: &Outpu
- VERSION
- );
- }
-- let config = ws.config();
- let (packages, resolve) = if opt.no_deps {
-- let packages = ws.members().map(|pkg| pkg.serialized(config)).collect();
-+ let packages = ws.members().map(|pkg| pkg.serialized()).collect();
- (packages, None)
- } else {
- let (packages, resolve) = build_resolve_graph(ws, opt)?;
-@@ -152,11 +151,10 @@ fn build_resolve_graph(
- );
- }
- // Get a Vec of Packages.
-- let config = ws.config();
- let actual_packages = package_map
- .into_iter()
- .filter_map(|(pkg_id, pkg)| node_map.get(&pkg_id).map(|_| pkg))
-- .map(|pkg| pkg.serialized(config))
-+ .map(|pkg| pkg.serialized())
- .collect();
-
- let mr = MetadataResolve {
---- cargo-crates/cargo-0.60.0/src/cargo/ops/registry.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/cargo/ops/registry.rs
-@@ -287,7 +287,6 @@ fn transmit(
- license_file: license_file.clone(),
- badges: badges.clone(),
- links: links.clone(),
-- v: None,
- },
- tarball,
- )
---- cargo-crates/cargo-0.60.0/src/cargo/sources/registry/index.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/cargo/sources/registry/index.rs
-@@ -293,8 +293,6 @@ impl<'cfg> RegistryIndex<'cfg> {
- {
- let source_id = self.source_id;
- let config = self.config;
-- let namespaced_features = self.config.cli_unstable().namespaced_features;
-- let weak_dep_features = self.config.cli_unstable().weak_dep_features;
-
- // First up actually parse what summaries we have available. If Cargo
- // has run previously this will parse a Cargo-specific cache file rather
-@@ -309,11 +307,6 @@ impl<'cfg> RegistryIndex<'cfg> {
- // minimize the amount of work being done here and parse as little as
- // necessary.
- let raw_data = &summaries.raw_data;
-- let max_version = if namespaced_features || weak_dep_features {
-- INDEX_V_MAX
-- } else {
-- 1
-- };
- Ok(summaries
- .versions
- .iter_mut()
-@@ -328,7 +321,7 @@ impl<'cfg> RegistryIndex<'cfg> {
- },
- )
- .filter(move |is| {
-- if is.v > max_version {
-+ if is.v > INDEX_V_MAX {
- debug!(
- "unsupported schema version {} ({} {})",
- is.v,
-@@ -339,11 +332,6 @@ impl<'cfg> RegistryIndex<'cfg> {
- } else {
- true
- }
-- })
-- .filter(move |is| {
-- is.summary
-- .unstable_gate(namespaced_features, weak_dep_features)
-- .is_ok()
- }))
- }
-
---- cargo-crates/cargo-0.60.0/src/cargo/util/toml/mod.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/cargo/util/toml/mod.rs
-@@ -1299,8 +1299,6 @@ impl TomlManifest {
- me.features.as_ref().unwrap_or(&empty_features),
- project.links.as_deref(),
- )?;
-- let unstable = config.cli_unstable();
-- summary.unstable_gate(unstable.namespaced_features, unstable.weak_dep_features)?;
-
- let metadata = ManifestMetadata {
- description: project.description.clone(),
---- cargo-crates/cargo-0.60.0/src/doc/src/reference/features.md.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/doc/src/reference/features.md
-@@ -116,32 +116,47 @@ gif = { version = "0.11.1", optional = true }
- gif = { version = "0.11.1", optional = true }
- ```
-
--Optional dependencies implicitly define a feature of the same name as the
--dependency. This means that the same `cfg(feature = "gif")` syntax can be used
--in the code, and the dependency can be enabled just like a feature such as
--`--features gif` (see [Command-line feature
--options](#command-line-feature-options) below).
-+By default, this optional dependency implicitly defines a feature that looks
-+like this:
-
--> **Note**: A feature in the `[feature]` table cannot use the same name as a
--> dependency. Experimental support for enabling this and other extensions is
--> available on the nightly channel via [namespaced
--> features](unstable.md#namespaced-features).
-+```toml
-+[features]
-+gif = ["dep:gif"]
-+```
-
--Explicitly defined features can enable optional dependencies, too. Just
--include the name of the optional dependency in the feature list. For example,
--let's say in order to support the AVIF image format, our library needs two
--other dependencies to be enabled:
-+This means that this dependency will only be included if the `gif`
-+feature is enabled.
-+The same `cfg(feature = "gif")` syntax can be used in the code, and the
-+dependency can be enabled just like any feature such as `--features gif` (see
-+[Command-line feature options](#command-line-feature-options) below).
-
-+In some cases, you may not want to expose a feature that has the same name
-+as the optional dependency.
-+For example, perhaps the optional dependency is an internal detail, or you
-+want to group multiple optional dependencies together, or you just want to use
-+a better name.
-+If you specify the optional dependency with the `dep:` prefix anywhere
-+in the `[features]` table, that disables the implicit feature.
-+
-+> **Note**: The `dep:` syntax is only available starting with Rust 1.60.
-+> Previous versions can only use the implicit feature name.
-+
-+For example, let's say in order to support the AVIF image format, our library
-+needs two other dependencies to be enabled:
-+
- ```toml
- [dependencies]
- ravif = { version = "0.6.3", optional = true }
- rgb = { version = "0.8.25", optional = true }
-
- [features]
--avif = ["ravif", "rgb"]
-+avif = ["dep:ravif", "dep:rgb"]
- ```
-
- In this example, the `avif` feature will enable the two listed dependencies.
-+This also avoids creating the implicit `ravif` and `rgb` features, since we
-+don't want users to enable those individually as they are internal details to
-+our crate.
-
- > **Note**: Another way to optionally include a dependency is to use
- > [platform-specific dependencies]. Instead of using features, these are
-@@ -185,10 +200,31 @@ parallel = ["jpeg-decoder/rayon"]
- parallel = ["jpeg-decoder/rayon"]
- ```
-
--> **Note**: The `"package-name/feature-name"` syntax will also enable
--> `package-name` if it is an optional dependency. Experimental support for
--> disabling that behavior is available on the nightly channel via [weak
--> dependency features](unstable.md#weak-dependency-features).
-+The `"package-name/feature-name"` syntax will also enable `package-name`
-+if it is an optional dependency. Often this is not what you want.
-+You can add a `?` as in `"package-name?/feature-name"` which will only enable
-+the given feature if something else enables the optional dependency.
-+
-+> **Note**: The `?` syntax is only available starting with Rust 1.60.
-+
-+For example, let's say we have added some serialization support to our
-+library, and it requires enabling a corresponding feature in some optional
-+dependencies.
-+That can be done like this:
-+
-+```toml
-+[dependencies]
-+serde = { version = "1.0.133", optional = true }
-+rgb = { version = "0.8.25", optional = true }
-+
-+[features]
-+serde = ["dep:serde", "rgb?/serde"]
-+```
-+
-+In this example, enabling the `serde` feature will enable the serde
-+dependency.
-+It will also enable the `serde` feature for the `rgb` dependency, but only if
-+something else has enabled the `rgb` dependency.
-
- ### Command-line feature options
-
---- cargo-crates/cargo-0.60.0/src/doc/src/reference/registries.md.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/doc/src/reference/registries.md
-@@ -263,7 +263,45 @@ explaining the format of the entry.
- "yanked": false,
- // The `links` string value from the package's manifest, or null if not
- // specified. This field is optional and defaults to null.
-- "links": null
-+ "links": null,
-+ // An unsigned 32-bit integer value indicating the schema version of this
-+ // entry.
-+ //
-+ // If this not specified, it should be interpreted as the default of 1.
-+ //
-+ // Cargo (starting with version 1.51) will ignore versions it does not
-+ // recognize. This provides a method to safely introduce changes to index
-+ // entries and allow older versions of cargo to ignore newer entries it
-+ // doesn't understand. Versions older than 1.51 ignore this field, and
-+ // thus may misinterpret the meaning of the index entry.
-+ //
-+ // The current values are:
-+ //
-+ // * 1: The schema as documented here, not including newer additions.
-+ // This is honored in Rust version 1.51 and newer.
-+ // * 2: The addition of the `features2` field.
-+ // This is honored in Rust version 1.60 and newer.
-+ "v": 2,
-+ // This optional field contains features with new, extended syntax.
-+ // Specifically, namespaced features (`dep:`) and weak dependencies
-+ // (`pkg?/feat`).
-+ //
-+ // This is separated from `features` because versions older than 1.19
-+ // will fail to load due to not being able to parse the new syntax, even
-+ // with a `Cargo.lock` file.
-+ //
-+ // Cargo will merge any values listed here with the "features" field.
-+ //
-+ // If this field is included, the "v" field should be set to at least 2.
-+ //
-+ // Registries are not required to use this field for extended feature
-+ // syntax, they are allowed to include those in the "features" field.
-+ // Using this is only necessary if the registry wants to support cargo
-+ // versions older than 1.19, which in practice is only crates.io since
-+ // those older versions do not support other registries.
-+ "features2": {
-+ "serde": ["dep:serde", "chrono?/serde"]
-+ }
- }
- ```
-
---- cargo-crates/cargo-0.60.0/src/doc/src/reference/unstable.md.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/src/doc/src/reference/unstable.md
-@@ -69,8 +69,6 @@ Each new feature described below should explain how to
- * [avoid-dev-deps](#avoid-dev-deps) — Prevents the resolver from including dev-dependencies during resolution.
- * [minimal-versions](#minimal-versions) — Forces the resolver to use the lowest compatible version instead of the highest.
- * [public-dependency](#public-dependency) — Allows dependencies to be classified as either public or private.
-- * [Namespaced features](#namespaced-features) — Separates optional dependencies into a separate namespace from regular features, and allows feature names to be the same as some dependency name.
-- * [Weak dependency features](#weak-dependency-features) — Allows setting features for dependencies without enabling optional dependencies.
- * Output behavior
- * [out-dir](#out-dir) — Adds a directory where artifacts are copied to.
- * [terminal-width](#terminal-width) — Tells rustc the width of the terminal so that long diagnostic messages can be truncated to be more readable.
-@@ -252,68 +250,6 @@ lto = true
- lto = true
- ```
-
--
--### Namespaced features
--* Original issue: [#1286](https://github.com/rust-lang/cargo/issues/1286)
--* Tracking Issue: [#5565](https://github.com/rust-lang/cargo/issues/5565)
--
--The `namespaced-features` option makes two changes to how features can be
--specified:
--
--* Features may now be defined with the same name as a dependency.
--* Optional dependencies can be explicitly enabled in the `[features]` table
-- with the `dep:` prefix, which enables the dependency without enabling a
-- feature of the same name.
--
--By default, an optional dependency `foo` will define a feature `foo =
--["dep:foo"]` *unless* `dep:foo` is mentioned in any other feature, or the
--`foo` feature is already defined. This helps prevent unnecessary boilerplate
--of listing every optional dependency, but still allows you to override the
--implicit feature.
--
--This allows two use cases that were previously not possible:
--
--* You can "hide" an optional dependency, so that external users cannot
-- explicitly enable that optional dependency.
--* There is no longer a need to create "funky" feature names to work around the
-- restriction that features cannot shadow dependency names.
--
--To enable namespaced-features, use the `-Z namespaced-features` command-line
--flag.
--
--An example of hiding an optional dependency:
--
--```toml
--[dependencies]
--regex = { version = "1.4.1", optional = true }
--lazy_static = { version = "1.4.0", optional = true }
--
--[features]
--regex = ["dep:regex", "dep:lazy_static"]
--```
--
--In this example, the "regex" feature enables both `regex` and `lazy_static`.
--The `lazy_static` feature does not exist, and a user cannot explicitly enable
--it. This helps hide internal details of how your package is implemented.
--
--An example of avoiding "funky" names:
--
--```toml
--[dependencies]
--bigdecimal = "0.1"
--chrono = "0.4"
--num-bigint = "0.2"
--serde = {version = "1.0", optional = true }
--
--[features]
--serde = ["dep:serde", "bigdecimal/serde", "chrono/serde", "num-bigint/serde"]
--```
--
--In this case, `serde` is a natural name to use for a feature, because it is
--relevant to your exported API. However, previously you would need to use a
--name like `serde1` to work around the naming limitation if you wanted to also
--enable other features.
--
- ### Build-plan
- * Tracking Issue: [#5579](https://github.com/rust-lang/cargo/issues/5579)
-
-@@ -898,29 +834,6 @@ error: aborting due to previous error
- error: aborting due to previous error
- ```
-
--### Weak dependency features
--* Tracking Issue: [#8832](https://github.com/rust-lang/cargo/issues/8832)
--
--The `-Z weak-dep-features` command-line options enables the ability to use
--`dep_name?/feat_name` syntax in the `[features]` table. The `?` indicates that
--the optional dependency `dep_name` will not be automatically enabled. The
--feature `feat_name` will only be added if something else enables the
--`dep_name` dependency.
--
--Example:
--
--```toml
--[dependencies]
--serde = { version = "1.0.117", optional = true, default-features = false }
--
--[features]
--std = ["serde?/std"]
--```
--
--In this example, the `std` feature enables the `std` feature on the `serde`
--dependency. However, unlike the normal `serde/std` syntax, it will not enable
--the optional dependency `serde` unless something else has included it.
--
- ### per-package-target
- * Tracking Issue: [#9406](https://github.com/rust-lang/cargo/pull/9406)
- * Original Pull Request: [#9030](https://github.com/rust-lang/cargo/pull/9030)
-@@ -1375,3 +1288,13 @@ for more information.
- Support for generating a future-incompat report has been stabilized
- in the 1.59 release. See the [future incompat report chapter](future-incompat-report.md)
- for more information.
-+
-+### Namespaced features
-+
-+Namespaced features has been stabilized in the 1.60 release.
-+See the [Features chapter](features.md#optional-dependencies) for more information.
-+
-+### Weak dependency features
-+
-+Weak dependency features has been stabilized in the 1.60 release.
-+See the [Features chapter](features.md#dependency-features) for more information.
---- cargo-crates/cargo-0.60.0/tests/testsuite/features.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/tests/testsuite/features.rs
-@@ -36,7 +36,8 @@ Caused by:
- }
-
- #[cargo_test]
--fn invalid2() {
-+fn same_name() {
-+ // Feature with the same name as a dependency.
- let p = project()
- .file(
- "Cargo.toml",
-@@ -59,14 +60,24 @@ fn invalid2() {
- .file("bar/src/lib.rs", "")
- .build();
-
-- p.cargo("build")
-- .with_status(101)
-- .with_stderr(
-+ p.cargo("tree -f")
-+ .arg("{p} [{f}]")
-+ .with_stderr("")
-+ .with_stdout(
- "\
--[ERROR] failed to parse manifest at `[..]`
-+foo v0.0.1 ([..]) []
-+└── bar v1.0.0 ([..]) []
-+",
-+ )
-+ .run();
-
--Caused by:
-- features and dependencies cannot have the same name: `bar`
-+ p.cargo("tree --features bar -f")
-+ .arg("{p} [{f}]")
-+ .with_stderr("")
-+ .with_stdout(
-+ "\
-+foo v0.0.1 ([..]) [bar,baz]
-+└── bar v1.0.0 ([..]) []
- ",
- )
- .run();
---- cargo-crates/cargo-0.60.0/tests/testsuite/features_namespaced.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/tests/testsuite/features_namespaced.rs
-@@ -5,99 +5,6 @@ use cargo_test_support::{project, publish};
- use cargo_test_support::{project, publish};
-
- #[cargo_test]
--fn gated() {
-- // Need namespaced-features to use `dep:` syntax.
-- Package::new("bar", "1.0.0").publish();
-- let p = project()
-- .file(
-- "Cargo.toml",
-- r#"
-- [package]
-- name = "foo"
-- version = "0.1.0"
--
-- [dependencies]
-- bar = { version = "1.0", optional = true }
--
-- [features]
-- foo = ["dep:bar"]
-- "#,
-- )
-- .file("src/lib.rs", "")
-- .build();
--
-- p.cargo("check")
-- .with_status(101)
-- .with_stderr(
-- "\
--[ERROR] failed to parse manifest at `[..]/foo/Cargo.toml`
--
--Caused by:
-- namespaced features with the `dep:` prefix are only allowed on the nightly channel \
-- and requires the `-Z namespaced-features` flag on the command-line
--",
-- )
-- .run();
--}
--
--#[cargo_test]
--fn dependency_gate_ignored() {
-- // Dependencies with `dep:` features are ignored in the registry if not on nightly.
-- Package::new("baz", "1.0.0").publish();
-- Package::new("bar", "1.0.0")
-- .add_dep(Dependency::new("baz", "1.0").optional(true))
-- .feature("feat", &["dep:baz"])
-- .publish();
-- let p = project()
-- .file(
-- "Cargo.toml",
-- r#"
-- [package]
-- name = "foo"
-- version = "0.1.0"
--
-- [dependencies]
-- bar = "1.0"
-- "#,
-- )
-- .file("src/lib.rs", "")
-- .build();
--
-- p.cargo("check")
-- .masquerade_as_nightly_cargo()
-- .with_status(101)
-- .with_stderr(
-- "\
--[UPDATING] [..]
--[ERROR] no matching package named `bar` found
--location searched: registry `crates-io`
--required by package `foo v0.1.0 ([..]/foo)`
--",
-- )
-- .run();
--
-- // Publish a version without namespaced features, it should ignore 1.0.0
-- // and use this instead.
-- Package::new("bar", "1.0.1")
-- .add_dep(Dependency::new("baz", "1.0").optional(true))
-- .feature("feat", &["baz"])
-- .publish();
-- p.cargo("check")
-- .masquerade_as_nightly_cargo()
-- .with_stderr(
-- "\
--[UPDATING] [..]
--[DOWNLOADING] crates ...
--[DOWNLOADED] bar [..]
--[CHECKING] bar v1.0.1
--[CHECKING] foo v0.1.0 [..]
--[FINISHED] [..]
--",
-- )
-- .run();
--}
--
--#[cargo_test]
- fn dependency_with_crate_syntax() {
- // Registry dependency uses dep: syntax.
- Package::new("baz", "1.0.0").publish();
-@@ -120,8 +27,7 @@ fn dependency_with_crate_syntax() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("check -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -156,8 +62,7 @@ fn namespaced_invalid_feature() {
- .file("src/main.rs", "")
- .build();
-
-- p.cargo("build -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("build")
- .with_status(101)
- .with_stderr(
- "\
-@@ -188,8 +93,7 @@ fn namespaced_invalid_dependency() {
- .file("src/main.rs", "")
- .build();
-
-- p.cargo("build -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("build")
- .with_status(101)
- .with_stderr(
- "\
-@@ -223,8 +127,8 @@ fn namespaced_non_optional_dependency() {
- .file("src/main.rs", "")
- .build();
-
-- p.cargo("build -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("build")
-+
- .with_status(101)
- .with_stderr(
- "\
-@@ -261,8 +165,7 @@ fn namespaced_implicit_feature() {
- .file("src/main.rs", "fn main() {}")
- .build();
-
-- p.cargo("check -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -271,8 +174,7 @@ fn namespaced_implicit_feature() {
- ",
- )
- .run();
-- p.cargo("check -Z namespaced-features --features baz")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features baz")
- .with_stderr(
- "\
- [DOWNLOADING] crates ...
-@@ -307,8 +209,7 @@ fn namespaced_shadowed_dep() {
- .file("src/main.rs", "fn main() {}")
- .build();
-
-- p.cargo("build -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("build")
- .with_status(101)
- .with_stderr(
- "\
-@@ -344,9 +245,7 @@ fn namespaced_shadowed_non_optional() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("check -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-- .run();
-+ p.cargo("check").run();
- }
-
- #[cargo_test]
-@@ -370,7 +269,7 @@ fn namespaced_implicit_non_optional() {
- .file("src/main.rs", "fn main() {}")
- .build();
-
-- p.cargo("build -Z namespaced-features").masquerade_as_nightly_cargo().with_status(101).with_stderr(
-+ p.cargo("build").with_status(101).with_stderr(
- "\
- [ERROR] failed to parse manifest at `[..]`
-
-@@ -411,8 +310,7 @@ fn namespaced_same_name() {
- )
- .build();
-
-- p.cargo("run -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("run")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -424,8 +322,7 @@ fn namespaced_same_name() {
- .with_stdout("")
- .run();
-
-- p.cargo("run -Z namespaced-features --features baz")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("run --features baz")
- .with_stderr(
- "\
- [DOWNLOADING] crates ...
-@@ -473,8 +370,7 @@ fn no_implicit_feature() {
- )
- .build();
-
-- p.cargo("run -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("run")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -486,8 +382,7 @@ fn no_implicit_feature() {
- .with_stdout("")
- .run();
-
-- p.cargo("run -Z namespaced-features --features regex")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("run --features regex")
- .with_stderr_unordered(
- "\
- [DOWNLOADING] crates ...
-@@ -503,8 +398,7 @@ fn no_implicit_feature() {
- .with_stdout("regex")
- .run();
-
-- p.cargo("run -Z namespaced-features --features lazy_static")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("run --features lazy_static")
- .with_stderr(
- "\
- [ERROR] Package `foo v0.1.0 [..]` does not have feature `lazy_static`. \
-@@ -538,8 +432,7 @@ fn crate_syntax_bad_name() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("check -Z namespaced-features --features dep:bar")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features dep:bar")
- .with_status(101)
- .with_stderr(
- "\
-@@ -574,8 +467,7 @@ fn crate_syntax_in_dep() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("check -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check")
- .with_status(101)
- .with_stderr(
- "\
-@@ -608,8 +500,7 @@ fn crate_syntax_cli() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("check -Z namespaced-features --features dep:bar")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features dep:bar")
- .with_status(101)
- .with_stderr(
- "\
-@@ -619,8 +510,7 @@ fn crate_syntax_cli() {
- .run();
-
- switch_to_resolver_2(&p);
-- p.cargo("check -Z namespaced-features --features dep:bar")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features dep:bar")
- .with_status(101)
- .with_stderr(
- "\
-@@ -653,8 +543,7 @@ fn crate_required_features() {
- .file("src/main.rs", "fn main() {}")
- .build();
-
-- p.cargo("check -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check")
- .with_status(101)
- .with_stderr(
- "\
-@@ -685,8 +574,7 @@ fn json_exposed() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("metadata -Z namespaced-features --no-deps")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("metadata --no-deps")
- .with_json(
- r#"
- {
-@@ -775,8 +663,7 @@ fn crate_feature_with_explicit() {
- )
- .build();
-
-- p.cargo("check -Z namespaced-features --features f1")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features f1")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -814,8 +701,7 @@ fn optional_explicit_without_crate() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("build -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("build")
- .with_status(101)
- .with_stderr(
- "\
-@@ -856,13 +742,11 @@ fn tree() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("tree -e features -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features")
- .with_stdout("foo v0.1.0 ([ROOT]/foo)")
- .run();
-
-- p.cargo("tree -e features --features a -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features --features a")
- .with_stdout(
- "\
- foo v0.1.0 ([ROOT]/foo)
-@@ -876,8 +760,7 @@ foo v0.1.0 ([ROOT]/foo)
- )
- .run();
-
-- p.cargo("tree -e features --features a -i bar -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features --features a -i bar")
- .with_stdout(
- "\
- bar v1.0.0
-@@ -895,8 +778,7 @@ bar v1.0.0
- )
- .run();
-
-- p.cargo("tree -e features --features bar -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features --features bar")
- .with_stdout(
- "\
- foo v0.1.0 ([ROOT]/foo)
-@@ -910,8 +792,7 @@ foo v0.1.0 ([ROOT]/foo)
- )
- .run();
-
-- p.cargo("tree -e features --features bar -i bar -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features --features bar -i bar")
- .with_stdout(
- "\
- bar v1.0.0
-@@ -948,13 +829,11 @@ fn tree_no_implicit() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("tree -e features -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features")
- .with_stdout("foo v0.1.0 ([ROOT]/foo)")
- .run();
-
-- p.cargo("tree -e features --all-features -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features --all-features")
- .with_stdout(
- "\
- foo v0.1.0 ([ROOT]/foo)
-@@ -964,8 +843,7 @@ foo v0.1.0 ([ROOT]/foo)
- )
- .run();
-
-- p.cargo("tree -e features -i bar --all-features -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features -i bar --all-features")
- .with_stdout(
- "\
- bar v1.0.0
-@@ -1116,8 +994,7 @@ fn publish() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("publish --token sekrit -Z namespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("publish --token sekrit")
- .with_stderr(
- "\
- [UPDATING] [..]
---- cargo-crates/cargo-0.60.0/tests/testsuite/old_cargos.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/tests/testsuite/old_cargos.rs
-@@ -558,8 +558,7 @@ fn index_cache_rebuild() {
- fs::remove_file(p.root().join("Cargo.lock")).unwrap();
-
- // This should rebuild the cache and use 1.0.1.
-- p.cargo("check -Znamespaced-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check")
- .with_stderr(
- "\
- [UPDATING] [..]
---- cargo-crates/cargo-0.60.0/tests/testsuite/weak_dep_features.rs.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/cargo-0.60.0/tests/testsuite/weak_dep_features.rs
-@@ -21,100 +21,6 @@ fn require(enabled_features: &[&str], disabled_feature
- }
-
- #[cargo_test]
--fn gated() {
-- // Need -Z weak-dep-features to enable.
-- Package::new("bar", "1.0.0").feature("feat", &[]).publish();
-- let p = project()
-- .file(
-- "Cargo.toml",
-- r#"
-- [package]
-- name = "foo"
-- version = "0.1.0"
--
-- [dependencies]
-- bar = { version = "1.0", optional = true }
--
-- [features]
-- f1 = ["bar?/feat"]
-- "#,
-- )
-- .file("src/lib.rs", "")
-- .build();
-- p.cargo("check")
-- .with_status(101)
-- .with_stderr(
-- "\
--error: failed to parse manifest at `[ROOT]/foo/Cargo.toml`
--
--Caused by:
-- optional dependency features with `?` syntax are only allowed on the nightly \
-- channel and requires the `-Z weak-dep-features` flag on the command line
-- Feature `f1` had feature value `bar?/feat`.
--",
-- )
-- .run();
--}
--
--#[cargo_test]
--fn dependency_gate_ignored() {
-- // Dependencies with ? features in the registry are ignored in the
-- // registry if not on nightly.
-- Package::new("baz", "1.0.0").feature("feat", &[]).publish();
-- Package::new("bar", "1.0.0")
-- .add_dep(Dependency::new("baz", "1.0").optional(true))
-- .feature("feat", &["baz?/feat"])
-- .publish();
-- let p = project()
-- .file(
-- "Cargo.toml",
-- r#"
-- [package]
-- name = "foo"
-- version = "0.1.0"
--
-- [dependencies]
-- bar = "1.0"
-- "#,
-- )
-- .file("src/lib.rs", "")
-- .build();
--
-- p.cargo("check")
-- .masquerade_as_nightly_cargo()
-- .with_status(101)
-- .with_stderr(
-- "\
--[UPDATING] [..]
--[ERROR] no matching package named `bar` found
--location searched: registry `crates-io`
--required by package `foo v0.1.0 ([..]/foo)`
--",
-- )
-- .run();
--
-- // Publish a version without the ? feature, it should ignore 1.0.0
-- // and use this instead.
-- Package::new("bar", "1.0.1")
-- .add_dep(Dependency::new("baz", "1.0").optional(true))
-- .feature("feat", &["baz"])
-- .publish();
-- p.cargo("check")
-- .masquerade_as_nightly_cargo()
-- .with_stderr(
-- "\
--[UPDATING] [..]
--[DOWNLOADING] crates ...
--[DOWNLOADED] bar [..]
--[CHECKING] bar v1.0.1
--[CHECKING] foo v0.1.0 [..]
--[FINISHED] [..]
--",
-- )
-- .run();
--}
--
--#[cargo_test]
- fn simple() {
- Package::new("bar", "1.0.0")
- .feature("feat", &[])
-@@ -140,8 +46,7 @@ fn simple() {
-
- // It's a bit unfortunate that this has to download `bar`, but avoiding
- // that is extremely difficult.
-- p.cargo("check -Z weak-dep-features --features f1")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features f1")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -153,8 +58,7 @@ fn simple() {
- )
- .run();
-
-- p.cargo("check -Z weak-dep-features --features f1,bar")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features f1,bar")
- .with_stderr(
- "\
- [CHECKING] bar v1.0.0
-@@ -196,8 +100,7 @@ fn deferred() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("check -Z weak-dep-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -238,8 +141,7 @@ fn not_optional_dep() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("check -Z weak-dep-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check")
- .with_status(101)
- .with_stderr("\
- error: failed to parse manifest at `[ROOT]/foo/Cargo.toml`
-@@ -275,8 +177,7 @@ fn optional_cli_syntax() {
- .build();
-
- // Does not build bar.
-- p.cargo("check --features bar?/feat -Z weak-dep-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features bar?/feat")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -289,8 +190,7 @@ fn optional_cli_syntax() {
- .run();
-
- // Builds bar.
-- p.cargo("check --features bar?/feat,bar -Z weak-dep-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features bar?/feat,bar")
- .with_stderr(
- "\
- [CHECKING] bar v1.0.0
-@@ -304,8 +204,7 @@ fn optional_cli_syntax() {
- switch_to_resolver_2(&p);
- p.build_dir().rm_rf();
- // Does not build bar.
-- p.cargo("check --features bar?/feat -Z weak-dep-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features bar?/feat")
- .with_stderr(
- "\
- [CHECKING] foo v0.1.0 [..]
-@@ -315,8 +214,7 @@ fn optional_cli_syntax() {
- .run();
-
- // Builds bar.
-- p.cargo("check --features bar?/feat,bar -Z weak-dep-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features bar?/feat,bar")
- .with_stderr(
- "\
- [CHECKING] bar v1.0.0
-@@ -351,8 +249,7 @@ fn required_features() {
- .file("src/main.rs", "fn main() {}")
- .build();
-
-- p.cargo("check -Z weak-dep-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check")
- .with_status(101)
- .with_stderr(
- "\
-@@ -366,7 +263,7 @@ fn weak_with_host_decouple() {
-
- #[cargo_test]
- fn weak_with_host_decouple() {
-- // -Z weak-opt-features with new resolver
-+ // weak-dep-features with new resolver
- //
- // foo v0.1.0
- // └── common v1.0.0
-@@ -447,8 +344,7 @@ fn weak_with_host_decouple() {
- )
- .build();
-
-- p.cargo("run -Z weak-dep-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("run")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -493,8 +389,7 @@ fn weak_namespaced() {
- .file("src/lib.rs", &require(&["f1"], &["f2", "bar"]))
- .build();
-
-- p.cargo("check -Z weak-dep-features -Z namespaced-features --features f1")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features f1")
- .with_stderr(
- "\
- [UPDATING] [..]
-@@ -506,21 +401,18 @@ fn weak_namespaced() {
- )
- .run();
-
-- p.cargo("tree -Z weak-dep-features -Z namespaced-features -f")
-+ p.cargo("tree -f")
- .arg("{p} feats:{f}")
-- .masquerade_as_nightly_cargo()
- .with_stdout("foo v0.1.0 ([ROOT]/foo) feats:")
- .run();
-
-- p.cargo("tree -Z weak-dep-features -Z namespaced-features --features f1 -f")
-+ p.cargo("tree --features f1 -f")
- .arg("{p} feats:{f}")
-- .masquerade_as_nightly_cargo()
- .with_stdout("foo v0.1.0 ([ROOT]/foo) feats:f1")
- .run();
-
-- p.cargo("tree -Z weak-dep-features -Z namespaced-features --features f1,f2 -f")
-+ p.cargo("tree --features f1,f2 -f")
- .arg("{p} feats:{f}")
-- .masquerade_as_nightly_cargo()
- .with_stdout(
- "\
- foo v0.1.0 ([ROOT]/foo) feats:f1,f2
-@@ -532,8 +424,7 @@ foo v0.1.0 ([ROOT]/foo) feats:f1,f2
- // "bar" remains not-a-feature
- p.change_file("src/lib.rs", &require(&["f1", "f2"], &["bar"]));
-
-- p.cargo("check -Z weak-dep-features -Z namespaced-features --features f1,f2")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("check --features f1,f2")
- .with_stderr(
- "\
- [CHECKING] bar v1.0.0
-@@ -568,13 +459,11 @@ fn tree() {
- .file("src/lib.rs", &require(&["f1"], &[]))
- .build();
-
-- p.cargo("tree -Z weak-dep-features --features f1")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree --features f1")
- .with_stdout("foo v0.1.0 ([ROOT]/foo)")
- .run();
-
-- p.cargo("tree -Z weak-dep-features --features f1,bar")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree --features f1,bar")
- .with_stdout(
- "\
- foo v0.1.0 ([ROOT]/foo)
-@@ -583,8 +472,7 @@ foo v0.1.0 ([ROOT]/foo)
- )
- .run();
-
-- p.cargo("tree -Z weak-dep-features --features f1,bar -e features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree --features f1,bar -e features")
- .with_stdout(
- "\
- foo v0.1.0 ([ROOT]/foo)
-@@ -594,8 +482,7 @@ foo v0.1.0 ([ROOT]/foo)
- )
- .run();
-
-- p.cargo("tree -Z weak-dep-features --features f1,bar -e features -i bar")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree --features f1,bar -e features -i bar")
- .with_stdout(
- "\
- bar v1.0.0
-@@ -610,20 +497,17 @@ bar v1.0.0
- )
- .run();
-
-- p.cargo("tree -Z weak-dep-features -e features --features bar?/feat")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features --features bar?/feat")
- .with_stdout("foo v0.1.0 ([ROOT]/foo)")
- .run();
-
- // This is a little strange in that it produces no output.
- // Maybe `cargo tree` should print a note about why?
-- p.cargo("tree -Z weak-dep-features -e features -i bar --features bar?/feat")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features -i bar --features bar?/feat")
- .with_stdout("")
- .run();
-
-- p.cargo("tree -Z weak-dep-features -e features -i bar --features bar?/feat,bar")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("tree -e features -i bar --features bar?/feat,bar")
- .with_stdout(
- "\
- bar v1.0.0
-@@ -663,8 +547,7 @@ fn publish() {
- .file("src/lib.rs", "")
- .build();
-
-- p.cargo("publish --token sekrit -Z weak-dep-features")
-- .masquerade_as_nightly_cargo()
-+ p.cargo("publish --token sekrit")
- .with_stderr(
- "\
- [UPDATING] [..]
diff --git a/devel/cargo-c/files/patch-libressl-3.5 b/devel/cargo-c/files/patch-libressl-3.5
deleted file mode 100644
index 3368a9c3e450..000000000000
--- a/devel/cargo-c/files/patch-libressl-3.5
+++ /dev/null
@@ -1,252 +0,0 @@
-Compatibility with LibreSSL 3.5, taken from
-<https://github.com/sfackler/rust-openssl/commit/ea03bc0200a5>
-
---- cargo-crates/openssl-sys-0.9.72/build/cfgs.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-sys-0.9.72/build/cfgs.rs
-@@ -34,6 +34,9 @@ pub fn get(openssl_version: Option<u64>, libressl_vers
- if libressl_version >= 0x3_03_02_00_0 {
- cfgs.push("libressl332");
- }
-+ if libressl_version >= 0x3_05_00_00_0 {
-+ cfgs.push("libressl350");
-+ }
- } else {
- let openssl_version = openssl_version.unwrap();
-
---- cargo-crates/openssl-sys-0.9.72/build/main.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-sys-0.9.72/build/main.rs
-@@ -254,6 +254,7 @@ See rust-openssl README for more information:
- (3, 3, _) => ('3', '3', 'x'),
- (3, 4, 0) => ('3', '4', '0'),
- (3, 4, _) => ('3', '4', 'x'),
-+ (3, 5, _) => ('3', '5', 'x'),
- _ => version_error(),
- };
-
-@@ -296,7 +297,7 @@ fn version_error() -> ! {
- "
-
- This crate is only compatible with OpenSSL (version 1.0.1 through 1.1.1, or 3.0.0), or LibreSSL 2.5
--through 3.4.1, but a different version of OpenSSL was found. The build is now aborting
-+through 3.5, but a different version of OpenSSL was found. The build is now aborting
- due to this version mismatch.
-
- "
---- cargo-crates/openssl-sys-0.9.72/src/bn.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-sys-0.9.72/src/bn.rs
-@@ -43,7 +43,7 @@ extern "C" {
- pub fn BN_mul(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM, ctx: *mut BN_CTX) -> c_int;
- pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> c_int;
- pub fn BN_set_negative(bn: *mut BIGNUM, n: c_int);
-- #[cfg(ossl110)]
-+ #[cfg(any(ossl110, libressl350))]
- pub fn BN_is_negative(b: *const ::BIGNUM) -> c_int;
-
- pub fn BN_div(
-@@ -153,7 +153,7 @@ extern "C" {
- }
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- extern "C" {
- pub fn BN_get_rfc2409_prime_768(bn: *mut BIGNUM) -> *mut BIGNUM;
- pub fn BN_get_rfc2409_prime_1024(bn: *mut BIGNUM) -> *mut BIGNUM;
---- cargo-crates/openssl-sys-0.9.72/src/hmac.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-sys-0.9.72/src/hmac.rs
-@@ -3,7 +3,7 @@ use libc::*;
- use *;
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- extern "C" {
- pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
- pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
---- cargo-crates/openssl-sys-0.9.72/src/ossl_typ.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-sys-0.9.72/src/ossl_typ.rs
-@@ -40,7 +40,7 @@ cfg_if! {
- }
- }
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- pub enum BIGNUM {}
- } else {
- #[repr(C)]
-@@ -1015,7 +1015,7 @@ cfg_if! {
- pub enum COMP_CTX {}
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- pub enum COMP_METHOD {}
- } else {
- #[repr(C)]
---- cargo-crates/openssl-sys-0.9.72/src/x509.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-sys-0.9.72/src/x509.rs
-@@ -25,7 +25,7 @@ stack!(stack_st_X509_EXTENSION);
- stack!(stack_st_X509_ATTRIBUTE);
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- pub enum X509_REQ_INFO {}
- } else {
- #[repr(C)]
-@@ -40,7 +40,7 @@ cfg_if! {
- }
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- pub enum X509_CRL {}
- } else {
- #[repr(C)]
-@@ -67,7 +67,7 @@ cfg_if! {
- stack!(stack_st_X509_CRL);
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- pub enum X509_CRL_INFO {}
- } else {
- #[repr(C)]
-@@ -85,7 +85,7 @@ cfg_if! {
- }
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- pub enum X509_REVOKED {}
- } else {
- #[repr(C)]
-@@ -103,7 +103,7 @@ cfg_if! {
- stack!(stack_st_X509_REVOKED);
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- pub enum X509_REQ {}
- } else {
- #[repr(C)]
-@@ -117,7 +117,7 @@ cfg_if! {
- }
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- pub enum X509_CINF {}
- } else {
- #[repr(C)]
-@@ -140,7 +140,7 @@ cfg_if! {
- stack!(stack_st_X509);
-
- cfg_if! {
-- if #[cfg(not(ossl110))] {
-+ if #[cfg(not(any(ossl110, libressl350)))] {
- pub const X509_LU_FAIL: c_int = 0;
- pub const X509_LU_X509: c_int = 1;
- pub const X509_LU_CRL: c_int = 2;
-@@ -221,12 +221,12 @@ extern "C" {
-
- const_ptr_api! {
- extern "C" {
-- #[cfg(ossl102)]
-+ #[cfg(any(ossl102, libressl350))]
- pub fn X509_ALGOR_get0(
-- paobj: *mut #[const_ptr_if(ossl110)] ASN1_OBJECT,
-+ paobj: *mut #[const_ptr_if(any(ossl110, libressl350))] ASN1_OBJECT,
- pptype: *mut c_int,
-- ppval: *mut #[const_ptr_if(ossl110)] c_void,
-- alg: #[const_ptr_if(ossl110)] X509_ALGOR,
-+ ppval: *mut #[const_ptr_if(any(ossl110, libressl350))] c_void,
-+ alg: #[const_ptr_if(any(ossl110, libressl350))] X509_ALGOR,
- );
- }
- }
-@@ -343,7 +343,7 @@ const_ptr_api! {
- }
- }
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- extern "C" {
- pub fn X509_set1_notBefore(x: *mut ::X509, tm: *const ::ASN1_TIME) -> c_int;
- pub fn X509_set1_notAfter(x: *mut ::X509, tm: *const ::ASN1_TIME) -> c_int;
-@@ -356,10 +356,10 @@ cfg_if! {
- }
- }
- extern "C" {
-- #[cfg(ossl110)]
-+ #[cfg(any(ossl110, libressl350))]
- pub fn X509_REQ_get_version(req: *const X509_REQ) -> c_long;
- pub fn X509_REQ_set_version(req: *mut X509_REQ, version: c_long) -> c_int;
-- #[cfg(ossl110)]
-+ #[cfg(any(ossl110, libressl350))]
- pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut X509_NAME;
- }
- const_ptr_api! {
-@@ -632,7 +632,7 @@ extern "C" {
- }
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- extern "C" {
- pub fn X509_OBJECT_free(a: *mut X509_OBJECT);
- }
---- cargo-crates/openssl-sys-0.9.72/src/x509_vfy.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-sys-0.9.72/src/x509_vfy.rs
-@@ -204,7 +204,7 @@ extern "C" {
- pub fn X509_STORE_CTX_set_error(ctx: *mut X509_STORE_CTX, error: c_int);
- }
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- const_ptr_api! {
- extern "C" {
- pub fn X509_STORE_CTX_get0_chain(ctx: #[const_ptr_if(ossl300)] X509_STORE_CTX) -> *mut stack_st_X509;
---- cargo-crates/openssl-0.10.38/build.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-0.10.38/build.rs
-@@ -78,5 +78,9 @@ fn main() {
- if version >= 0x3_04_00_00_0 {
- println!("cargo:rustc-cfg=libressl340");
- }
-+
-+ if version >= 0x3_05_00_00_0 {
-+ println!("cargo:rustc-cfg=libressl350");
-+ }
- }
- }
---- cargo-crates/openssl-0.10.38/src/bn.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-0.10.38/src/bn.rs
-@@ -36,7 +36,7 @@ use crate::string::OpensslString;
- use crate::{cvt, cvt_n, cvt_p};
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- use ffi::{
- BN_get_rfc2409_prime_1024, BN_get_rfc2409_prime_768, BN_get_rfc3526_prime_1536,
- BN_get_rfc3526_prime_2048, BN_get_rfc3526_prime_3072, BN_get_rfc3526_prime_4096,
---- cargo-crates/openssl-0.10.38/src/x509/mod.rs.orig 2022-09-19 15:35:02 UTC
-+++ cargo-crates/openssl-0.10.38/src/x509/mod.rs
-@@ -1568,7 +1568,7 @@ cfg_if! {
- }
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- use ffi::{
- X509_ALGOR_get0, ASN1_STRING_get0_data, X509_STORE_CTX_get0_chain, X509_set1_notAfter,
- X509_set1_notBefore, X509_REQ_get_version, X509_REQ_get_subject_name,
-@@ -1623,7 +1623,7 @@ cfg_if! {
- }
-
- cfg_if! {
-- if #[cfg(ossl110)] {
-+ if #[cfg(any(ossl110, libressl350))] {
- use ffi::X509_OBJECT_free;
- } else {
- #[allow(bad_style)]