diff --git a/devel/cargo-c/Makefile b/devel/cargo-c/Makefile index b7f46933296d..e13be476cbfc 100644 --- a/devel/cargo-c/Makefile +++ b/devel/cargo-c/Makefile @@ -1,32 +1,32 @@ PORTNAME= cargo-c DISTVERSION= 0.9.8 DISTVERSIONSUFFIX= +cargo-0.60 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= devel MASTER_SITES= CRATESIO # XXX Teach USES=cargo to have proper default DISTFILES= ${CARGO_DIST_SUBDIR}/${DISTNAME}${CARGO_CRATE_EXT} MAINTAINER= jbeich@FreeBSD.org COMMENT= Cargo C-ABI helpers 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 USES= cargo ssl PLIST_FILES= bin/cargo-capi \ bin/cargo-cbuild \ bin/cargo-cinstall \ bin/cargo-ctest \ ${NULL} post-patch: @${REINPLACE_CMD} -e 's,libdir.join("pkgconfig,prefix.join("libdata/pkgconfig,' \ ${WRKSRC}/src/install.rs .include diff --git a/devel/cargo-c/Makefile.crates b/devel/cargo-c/Makefile.crates index 6c17ec1c7551..f00ed94ac8bf 100644 --- a/devel/cargo-c/Makefile.crates +++ b/devel/cargo-c/Makefile.crates @@ -1,134 +1,134 @@ CARGO_CRATES= adler-1.0.2 \ aho-corasick-0.7.18 \ ansi_term-0.12.1 \ anyhow-1.0.55 \ arrayvec-0.5.2 \ atty-0.2.14 \ autocfg-1.1.0 \ bitflags-1.3.2 \ bitmaps-2.1.0 \ bstr-0.2.17 \ bytesize-1.1.0 \ cargo-0.60.0 \ cargo-platform-0.1.2 \ cargo-util-0.1.2 \ cbindgen-0.20.0 \ cc-1.0.73 \ cfg-if-1.0.0 \ clap-2.34.0 \ commoncrypto-0.2.0 \ commoncrypto-sys-0.2.0 \ core-foundation-0.9.3 \ core-foundation-sys-0.8.3 \ - crates-io-0.33.1 \ + crates-io-0.34.0 \ crc32fast-1.3.2 \ crossbeam-utils-0.8.7 \ 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 \ fnv-1.0.7 \ foreign-types-0.3.2 \ foreign-types-shared-0.1.1 \ form_urlencoded-1.0.1 \ fwdansi-1.1.0 \ git2-0.13.25 \ git2-curl-0.14.1 \ glob-0.3.0 \ globset-0.4.8 \ hashbrown-0.11.2 \ heck-0.3.3 \ hermit-abi-0.1.19 \ hex-0.3.2 \ hex-0.4.3 \ home-0.5.3 \ humantime-2.1.0 \ idna-0.2.3 \ ignore-0.4.18 \ im-rc-15.0.0 \ indexmap-1.8.0 \ instant-0.1.12 \ itertools-0.10.3 \ itoa-1.0.1 \ jobserver-0.1.24 \ lazy_static-1.4.0 \ lazycell-1.3.0 \ libc-0.2.119 \ libgit2-sys-0.12.26+1.3.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 \ miow-0.3.7 \ num_cpus-1.13.1 \ once_cell-1.9.0 \ opener-0.5.0 \ openssl-0.10.38 \ 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 \ 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 \ regex-automata-0.1.10 \ regex-syntax-0.6.25 \ remove_dir_all-0.5.3 \ rustc-workspace-hack-1.0.0 \ rustfix-0.6.0 \ ryu-1.0.9 \ 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 \ shell-escape-0.1.5 \ sized-chunks-0.6.5 \ socket2-0.4.4 \ strip-ansi-escapes-0.1.1 \ strsim-0.8.0 \ structopt-0.3.26 \ structopt-derive-0.4.18 \ syn-1.0.86 \ tar-0.4.38 \ tempfile-3.3.0 \ termcolor-1.1.2 \ textwrap-0.11.0 \ thread_local-1.1.4 \ tinyvec-1.5.1 \ tinyvec_macros-0.1.0 \ toml-0.5.8 \ 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 \ 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 \ walkdir-2.3.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 diff --git a/devel/cargo-c/distinfo b/devel/cargo-c/distinfo index bf272d89b486..cfbd081cd542 100644 --- a/devel/cargo-c/distinfo +++ b/devel/cargo-c/distinfo @@ -1,271 +1,271 @@ 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 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/arrayvec-0.5.2.crate) = 23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b SIZE (rust/crates/arrayvec-0.5.2.crate) = 27838 SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8 SIZE (rust/crates/atty-0.2.14.crate) = 5470 SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa SIZE (rust/crates/autocfg-1.1.0.crate) = 13272 SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 SHA256 (rust/crates/bitmaps-2.1.0.crate) = 031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2 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/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-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/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/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 SIZE (rust/crates/commoncrypto-sys-0.2.0.crate) = 4338 SHA256 (rust/crates/core-foundation-0.9.3.crate) = 194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146 SIZE (rust/crates/core-foundation-0.9.3.crate) = 27059 SHA256 (rust/crates/core-foundation-sys-0.8.3.crate) = 5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc SIZE (rust/crates/core-foundation-sys-0.8.3.crate) = 17519 -SHA256 (rust/crates/crates-io-0.33.1.crate) = b2d7714dc2b336c5a579a1a2aa2d41c7cd7a31ccb25e2ea908dba8934cfeb75a -SIZE (rust/crates/crates-io-0.33.1.crate) = 9435 +SHA256 (rust/crates/crates-io-0.34.0.crate) = 6b4a87459133b2e708195eaab34be55039bc30e0d120658bd40794bb00b6328d +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/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/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/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/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/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/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/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/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/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/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/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/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-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/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/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/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/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/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/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/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/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_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/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/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 SIZE (rust/crates/vte-0.10.1.crate) = 24947 SHA256 (rust/crates/vte_generate_state_changes-0.1.1.crate) = d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff SIZE (rust/crates/vte_generate_state_changes-0.1.1.crate) = 2422 SHA256 (rust/crates/walkdir-2.3.2.crate) = 808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56 SIZE (rust/crates/walkdir-2.3.2.crate) = 23516 SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 SIZE (rust/crates/winapi-0.3.9.crate) = 1200382 SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6 SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815 SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178 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 diff --git a/devel/cargo-c/files/patch-cargo-dep b/devel/cargo-c/files/patch-cargo-dep new file mode 100644 index 000000000000..c042f3ba0986 --- /dev/null +++ b/devel/cargo-c/files/patch-cargo-dep @@ -0,0 +1,1602 @@ +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> = ("Provide a terminal width to rustc for error truncation"), + timings: Option> = ("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 = ("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>, 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 to Vec +- 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 to Vec ++ 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>>, +- /// 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>>, + 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| { +- 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> { +- 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 { + 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> { +- let mut result: HashMap> = 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, + features: Rc, +- has_namespaced_features: bool, +- has_overlapping_features: Option, + checksum: Option, + links: Option, + } +@@ -37,15 +35,11 @@ impl Summary { + features: &BTreeMap>, + links: Option>, + ) -> CargoResult { +- // ****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>, + dependencies: &[Dependency], +-) -> CargoResult<(FeatureMap, bool)> { ++) -> CargoResult { + 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/graphics/libimagequant/Makefile b/graphics/libimagequant/Makefile index c87584a9f592..18209fc9d6b0 100644 --- a/graphics/libimagequant/Makefile +++ b/graphics/libimagequant/Makefile @@ -1,45 +1,41 @@ PORTNAME= libimagequant PORTVERSION= 4.0.4 CATEGORIES= graphics MAINTAINER= jbeich@FreeBSD.org COMMENT= Image Quantization Library WWW= https://pngquant.org/lib/ LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/COPYRIGHT BUILD_DEPENDS= cargo-cbuild:devel/cargo-c USES= cargo USE_GITHUB= yes GH_ACCOUNT= ImageOptim WRKSRC_SUBDIR= imagequant-sys USE_LDCONFIG= yes PLIST_FILES= include/libimagequant.h \ lib/libimagequant.a \ lib/libimagequant.so \ lib/libimagequant.so.0 \ lib/libimagequant.so.0.0.0 \ libdata/pkgconfig/imagequant.pc -post-patch: -# XXX Drop after devel/cargo-c >= 0.9.9 per https://github.com/rust-lang/cargo/commit/43a063c80a53 - @${REINPLACE_CMD} 's/dep://g' ${WRKSRC:H}/Cargo.toml - do-build: @${CARGO_CARGO_RUN} cbuild \ --verbose \ --verbose \ ${CARGO_BUILD_ARGS} do-install: @${CARGO_CARGO_RUN} cinstall \ --verbose \ --verbose \ --destdir "${STAGEDIR}" \ --prefix "${PREFIX}" \ ${CARGO_INSTALL_ARGS} @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so .include