-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
make dist vendoring configurable #130110
make dist vendoring configurable #130110
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -308,6 +308,7 @@ pub struct Config { | |
pub dist_compression_formats: Option<Vec<String>>, | ||
pub dist_compression_profile: String, | ||
pub dist_include_mingw_linker: bool, | ||
pub dist_vendor: bool, | ||
|
||
// libstd features | ||
pub backtrace: bool, // support for RUST_BACKTRACE | ||
|
@@ -933,6 +934,7 @@ define_config! { | |
compression_formats: Option<Vec<String>> = "compression-formats", | ||
compression_profile: Option<String> = "compression-profile", | ||
include_mingw_linker: Option<bool> = "include-mingw-linker", | ||
vendor: Option<bool> = "vendor", | ||
} | ||
} | ||
|
||
|
@@ -2028,13 +2030,19 @@ impl Config { | |
compression_formats, | ||
compression_profile, | ||
include_mingw_linker, | ||
vendor, | ||
} = dist; | ||
config.dist_sign_folder = sign_folder.map(PathBuf::from); | ||
config.dist_upload_addr = upload_addr; | ||
config.dist_compression_formats = compression_formats; | ||
set(&mut config.dist_compression_profile, compression_profile); | ||
set(&mut config.rust_dist_src, src_tarball); | ||
set(&mut config.dist_include_mingw_linker, include_mingw_linker) | ||
set(&mut config.dist_include_mingw_linker, include_mingw_linker); | ||
config.dist_vendor = vendor.unwrap_or_else(|| { | ||
// If we're building from git or tarball sources, enable it by default. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What's the alternative option to these two? Someone clones git and then deletes .git? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
That produces a broken source archive as all git submodules missing. You can't even build the standard library from that archive as both stdarch ( |
||
config.rust_info.is_managed_git_subrepository() | ||
|| config.rust_info.is_from_tarball() | ||
}); | ||
} | ||
|
||
if let Some(r) = rustfmt { | ||
|
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.
It shouldn't be necessary to vendor when building from a source tarball. We can just reuse the existing vendor directory.
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 thought about that, but then decided to leave the task to
cargo
instead of handling it manually. I couldn't get rid of the paranoia about users potentially cluttering the vendor folder.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.
Exactly!
I'm building using a source release tarball (when packaging for pkgsrc), and expect the tarball to be self-contained. Ref. issue #130708.