From ce99e1b5b1ab3c4766f11cea434a4f777b264031 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Sat, 21 Mar 2026 00:01:09 -0700 Subject: [PATCH] Ensure upgrade targets do not expand beyond installed packages Closes https://github.com/fosskers/aura/issues/975 --- rust/aura-pm/src/command/aur.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rust/aura-pm/src/command/aur.rs b/rust/aura-pm/src/command/aur.rs index dbc6326ac..41246f31f 100644 --- a/rust/aura-pm/src/command/aur.rs +++ b/rust/aura-pm/src/command/aur.rs @@ -622,6 +622,7 @@ pub(crate) fn upgrade<'a>( }) .filter(|p| env.aur.ignores.contains(p.name.as_ref()).not()) .collect(); + let eligible_names: HashSet<_> = filtered.iter().map(|p| p.name.as_ref()).collect(); debug!("After excluding ignores and debugs: {}", filtered.len()); // --- Ensure they all have local clones --- // @@ -675,6 +676,7 @@ pub(crate) fn upgrade<'a>( let db = alpm.alpm.localdb(); let mut to_upgrade: Vec<(aura_core::Package<'_>, aura_core::Package<'_>)> = from_api .into_iter() + .filter(|new| eligible_names.contains(new.name.as_str())) .filter_map(|new| db.pkg(new.name.as_str()).ok().map(|old| (old, new))) .filter_map( |(old, new)| match (Package::from_alpm(old), Package::from_faur(new)) { @@ -750,7 +752,8 @@ pub(crate) fn upgrade<'a>( let names = to_upgrade .iter() .map(|(old, _)| old.name.as_ref()) - .chain(vcs.iter().map(|p| p.name.as_ref())); + .chain(vcs.iter().map(|p| p.name.as_ref())) + .filter(|name| eligible_names.contains(*name)); install(fll, &env, Mode::Upgrade, names)?; }