-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Filter cargo-credential-*
dependencies by OS
#12949
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
r? @epage (rustbot has picked a reviewer for you, use r? to override) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am good with this change. Thank you!
This was a workaround to make cargo buildable on every supported platform, as well as those crates themselves, before any progress made in #6179. |
@bors r+ Thanks! |
☀️ Test successful - checks-actions |
Update cargo 12 commits in 7046d992f9f32ba209a8079f662ebccf9da8de25..6790a5127895debec95c24aefaeb18e059270df3 2023-11-08 03:24:57 +0000 to 2023-11-10 17:09:35 +0000 - refactor(source): Prepare for new PackageIDSpec syntax (rust-lang/cargo#12938) - credential: include license files in all published crates (rust-lang/cargo#12953) - fix: preserve jobserver file descriptors on rustc invocation in `fix_exec_rustc` (rust-lang/cargo#12951) - refactor(resolver): Consolidate logic in `VersionPreferences` (rust-lang/cargo#12930) - refactor(toml): Simplify code to make schema split easier (rust-lang/cargo#12948) - Filter `cargo-credential-*` dependencies by OS (rust-lang/cargo#12949) - refactor(util): Pull out `mod util_semver` (rust-lang/cargo#12940) - Fix the invalidate feature name message (rust-lang/cargo#12939) - refactor(util): Prepare for splitting out semver logic (rust-lang/cargo#12926) - feat: Make browser links out of HTML file paths (rust-lang/cargo#12889) - Do not allow empty feature name (rust-lang/cargo#12928) - fix(timings): unnecessary backslash when error happens (rust-lang/cargo#12934) r? ghost
Update cargo 12 commits in 7046d992f9f32ba209a8079f662ebccf9da8de25..6790a5127895debec95c24aefaeb18e059270df3 2023-11-08 03:24:57 +0000 to 2023-11-10 17:09:35 +0000 - refactor(source): Prepare for new PackageIDSpec syntax (rust-lang/cargo#12938) - credential: include license files in all published crates (rust-lang/cargo#12953) - fix: preserve jobserver file descriptors on rustc invocation in `fix_exec_rustc` (rust-lang/cargo#12951) - refactor(resolver): Consolidate logic in `VersionPreferences` (rust-lang/cargo#12930) - refactor(toml): Simplify code to make schema split easier (rust-lang/cargo#12948) - Filter `cargo-credential-*` dependencies by OS (rust-lang/cargo#12949) - refactor(util): Pull out `mod util_semver` (rust-lang/cargo#12940) - Fix the invalidate feature name message (rust-lang/cargo#12939) - refactor(util): Prepare for splitting out semver logic (rust-lang/cargo#12926) - feat: Make browser links out of HTML file paths (rust-lang/cargo#12889) - Do not allow empty feature name (rust-lang/cargo#12928) - fix(timings): unnecessary backslash when error happens (rust-lang/cargo#12934) r? ghost
What does this PR try to resolve?
The
cargo-credential-*
crates have OS-specific functionality, withcfg
for an "unsupported" fallback, and these are unconditional dependencies ofcargo
. In distros like Fedora that package dependencies individually, that means these crates still have to be packaged even when they are useless on Linux. (Or else patch them out as a downstream change.) Instead, we can filter those dependencies inCargo.toml
and add the fallback at the point of use.Fixes #12945.
Additional information
We could further remove the
cfg
-unsupported fallbacks from the individual crates, and just have them#![cfg(..)]
themselves globally. I haven't done that yet, because it would look like a big change for mostly just whitespace removing the nested module. I'm happy to add that if desired though.