From 35f9517732ecd4fd816e86c28ce2f3ebccc47aca Mon Sep 17 00:00:00 2001 From: Valentin Haudiquet Date: Mon, 12 Jan 2026 18:54:07 +0100 Subject: [PATCH] pull: extract orig tarball as well on archive download --- src/pull.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/pull.rs b/src/pull.rs index 4b69229..c45062f 100644 --- a/src/pull.rs +++ b/src/pull.rs @@ -329,6 +329,24 @@ async fn fetch_archive_sources( std::fs::remove_file(&path)?; } + // Extract the orig tarball if present and not native package + if !info.is_native() + && let Some(orig_file) = info + .stanza + .files + .iter() + .find(|f| f.name.contains(".orig.tar.")) + { + let path = package_dir.join(&orig_file.name); + let extract_dir = package_dir.join(&info.stanza.package); + + if (orig_file.name.ends_with(".tar.xz") || orig_file.name.ends_with(".tar.gz")) + && let Err(e) = extract_archive(&path, &extract_dir) + { + return Err(format!("Failed to extract {}: {}", orig_file.name, e).into()); + } + } + Ok(()) }