mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-24 22:04:19 +08:00
Merge branch 'adjust-filesystem-ignore' into 'master'
Download binary packages and really ignore ignored packages See merge request redox-os/cookbook!695
This commit is contained in:
commit
c9594cdc50
@ -444,13 +444,8 @@ fn parse_args(args: Vec<String>) -> anyhow::Result<(CliConfig, CliCommand, Vec<C
|
||||
.packages
|
||||
.iter()
|
||||
.filter_map(|(f, v)| {
|
||||
// same logic as list_installer
|
||||
match v {
|
||||
PackageConfig::Build(rule) if rule == "source" || rule == "local" => {}
|
||||
PackageConfig::Build(rule) if rule == "binary" || rule == "ignore" => {
|
||||
return None;
|
||||
}
|
||||
_ if conf.general.repo_binary == Some(true) => {
|
||||
PackageConfig::Build(rule) if rule == "ignore" => {
|
||||
return None;
|
||||
}
|
||||
_ => {}
|
||||
@ -492,18 +487,25 @@ fn parse_args(args: Vec<String>) -> anyhow::Result<(CliConfig, CliCommand, Vec<C
|
||||
PackageConfig::Build(rule) if rule == "source" => {}
|
||||
// keep local changes
|
||||
PackageConfig::Build(rule) if rule == "local" => recipe.recipe.source = None,
|
||||
// should not gone here, but if it does, then some deps need it
|
||||
PackageConfig::Build(rule) if rule == "binary" || rule == "ignore" => {
|
||||
// download from remote build
|
||||
PackageConfig::Build(rule) if rule == "binary" => {
|
||||
recipe.recipe.source = None;
|
||||
recipe.recipe.build.set_as_remote();
|
||||
}
|
||||
// don't build this recipe (unlikely to go here unless some deps need it)
|
||||
// TODO: Note that we're assuming this being ignored from e.g. metapackages
|
||||
// TODO: Will totally broke build if this recipe needed as some other build dependencies
|
||||
PackageConfig::Build(rule) if rule == "ignore" => {
|
||||
recipe.recipe.source = None;
|
||||
recipe.recipe.build.set_as_none();
|
||||
}
|
||||
PackageConfig::Build(rule) => {
|
||||
return Err(anyhow!(
|
||||
bail!(
|
||||
// Fail fast because we could risk losing local changes if "local" was typo'ed
|
||||
"Invalid pkg config {} = \"{}\"\nExpecting either 'source', 'local', 'binary' or 'ignore'",
|
||||
recipe.name.as_str(),
|
||||
rule
|
||||
));
|
||||
);
|
||||
}
|
||||
_ => {
|
||||
if conf.general.repo_binary == Some(true) {
|
||||
@ -513,6 +515,11 @@ fn parse_args(args: Vec<String>) -> anyhow::Result<(CliConfig, CliCommand, Vec<C
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if conf.general.repo_binary == Some(true) {
|
||||
recipe.recipe.source = None;
|
||||
recipe.recipe.build.set_as_remote();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -204,7 +204,7 @@ pub fn build(
|
||||
return Ok((stage_dir, auto_deps));
|
||||
}
|
||||
|
||||
let source_modified = modified_dir_ignore_git(source_dir)?;
|
||||
let source_modified = modified_dir_ignore_git(source_dir).unwrap_or(SystemTime::UNIX_EPOCH);
|
||||
let deps_modified = dep_pkgars
|
||||
.iter()
|
||||
.map(|(_dep, pkgar)| modified(pkgar))
|
||||
@ -220,7 +220,7 @@ pub fn build(
|
||||
remove_all(&sysroot_dir)?;
|
||||
}
|
||||
}
|
||||
if !sysroot_dir.is_dir() {
|
||||
if !sysroot_dir.is_dir() && recipe.build.kind != BuildKind::Remote {
|
||||
// Create sysroot.tmp
|
||||
let sysroot_dir_tmp = target_dir.join("sysroot.tmp");
|
||||
create_dir_clean(&sysroot_dir_tmp)?;
|
||||
|
||||
@ -176,6 +176,12 @@ impl BuildRecipe {
|
||||
self.kind = BuildKind::Remote;
|
||||
self.dev_dependencies = Vec::new();
|
||||
}
|
||||
|
||||
pub fn set_as_none(&mut self) {
|
||||
self.kind = BuildKind::None;
|
||||
self.dependencies = Vec::new();
|
||||
self.dev_dependencies = Vec::new();
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user