deb: consider all kinds of package dirs
Some checks failed
CI / build (push) Failing after 12m32s

This commit is contained in:
2026-01-12 11:29:18 +01:00
parent 21bb76153e
commit 593793373a

View File

@@ -96,9 +96,9 @@ pub(crate) fn find_package_directory(
let ctx = context::current();
// Try package/package pattern first
let package_dir_pattern1 = parent_dir.join(package).join(package);
if ctx.exists(&package_dir_pattern1)? {
return Ok(package_dir_pattern1);
let package_dir = parent_dir.join(package).join(package);
if ctx.exists(&package_dir)? {
return Ok(package_dir);
}
// Compute origversion from version: remove everything after first '-', after stripping epoch
@@ -109,11 +109,53 @@ pub(crate) fn find_package_directory(
.unwrap_or(version);
// Try package/package-origversion pattern
let package_dir_pattern2 = parent_dir
let package_dir = parent_dir
.join(package)
.join(format!("{}-{}", package, origversion));
if ctx.exists(&package_dir_pattern2)? {
return Ok(package_dir_pattern2);
if ctx.exists(&package_dir)? {
return Ok(package_dir);
}
// Try 'package' only
let package_dir = parent_dir.join(package);
if ctx.exists(&package_dir)? {
return Ok(package_dir);
}
// Try package-origversion only
let package_dir = parent_dir.join(format!("{}-{}", package, origversion));
if ctx.exists(&package_dir)? {
return Ok(package_dir);
}
// List all directories under 'package/' and log them
let package_parent = parent_dir;
if ctx.exists(package_parent)? {
log::debug!(
"Listing all directories under '{}':",
package_parent.display()
);
let entries = ctx.list_files(package_parent)?;
let mut found_dirs = Vec::new();
for entry in entries {
if entry.is_dir() {
if let Some(file_name) = entry.file_name() {
found_dirs.push(file_name.to_string_lossy().into_owned());
}
log::debug!(" - {}", entry.display());
}
}
// If we found directories but none matched our patterns, provide helpful error
if !found_dirs.is_empty() {
return Err(format!(
"Could not find package directory for {} in {}. Found directories: {}",
package,
parent_dir.display(),
found_dirs.join(", ")
)
.into());
}
}
Err(format!(
@@ -174,7 +216,8 @@ mod tests {
log::info!("Successfully pulled package {}", package);
// Change directory to the package directory
let cwd = crate::deb::find_package_directory(cwd, package, &package_info.stanza.version).expect("Cannot find package directory");
let cwd = crate::deb::find_package_directory(cwd, package, &package_info.stanza.version)
.expect("Cannot find package directory");
log::debug!("Package directory: {}", cwd.display());
log::info!("Starting binary package build...");