From 44e1d90b8e00f448247f444101772c042254534f Mon Sep 17 00:00:00 2001 From: Wildan M Date: Wed, 19 Nov 2025 21:49:16 -0800 Subject: [PATCH 1/2] Download binary packages and really ignore ignored packages --- src/bin/repo.rs | 22 ++++++++++++---------- src/recipe.rs | 6 ++++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/bin/repo.rs b/src/bin/repo.rs index 5962122c0..684c9deed 100644 --- a/src/bin/repo.rs +++ b/src/bin/repo.rs @@ -436,13 +436,8 @@ fn parse_args(args: Vec) -> anyhow::Result<(CliConfig, CliCommand, Vec {} - 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; } _ => {} @@ -484,18 +479,25 @@ fn parse_args(args: Vec) -> anyhow::Result<(CliConfig, CliCommand, Vec {} // 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) { diff --git a/src/recipe.rs b/src/recipe.rs index 153be4076..96a83051a 100644 --- a/src/recipe.rs +++ b/src/recipe.rs @@ -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)] From e57f7ef214c1c491067cbf46ce750235bce158dc Mon Sep 17 00:00:00 2001 From: Wildan M Date: Thu, 20 Nov 2025 02:34:47 -0800 Subject: [PATCH 2/2] Fix misc issues with repo_binary --- src/bin/repo.rs | 5 +++++ src/cook/cook_build.rs | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bin/repo.rs b/src/bin/repo.rs index 684c9deed..849f6550f 100644 --- a/src/bin/repo.rs +++ b/src/bin/repo.rs @@ -507,6 +507,11 @@ fn parse_args(args: Vec) -> anyhow::Result<(CliConfig, CliCommand, Vec