Skip to content

Commit 346822b

Browse files
committed
remove build restrictions on binary types
1 parent 03bcf4d commit 346822b

2 files changed

Lines changed: 23 additions & 30 deletions

File tree

sbuild-meta/src/recipe.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -441,12 +441,6 @@ impl SBuildRecipe {
441441
.unwrap_or("static")
442442
.to_string();
443443

444-
// Determine pkg_type from recipe field or recipe name (first part before dot)
445-
let pkg_type = self
446-
.pkg_type
447-
.as_deref()
448-
.unwrap_or_else(|| recipe_name.split('.').next().unwrap_or("static"));
449-
450444
// Get unique package names from provides
451445
let provided_packages = self.get_provided_packages();
452446

sbuild/src/builder.rs

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -641,19 +641,18 @@ impl Builder {
641641

642642
let magic_bytes = calc_magic_bytes(&provide_path, 12);
643643

644-
if magic_bytes[..4] == ELF_MAGIC_BYTES && magic_bytes[4] != 2 {
645-
self.logger
646-
.error("32-bit binary is not supported. Aborting...");
647-
std::process::exit(1);
648-
}
649-
650644
if magic_bytes[8..] == APPIMAGE_MAGIC_BYTES {
651-
let filter = if *pkg_type == Some("nixappimage".into()) {
652-
self.pkg_type = PackageType::NixAppImage;
653-
Some(pkg_name.as_str())
654-
} else {
655-
self.pkg_type = PackageType::AppImage;
656-
None
645+
// Determine filter based on current pkg_type or recipe pkg_type
646+
let filter = match (self.pkg_type.clone(), pkg_type.as_deref()) {
647+
(PackageType::NixAppImage, _) | (_, Some("nixappimage")) => {
648+
self.pkg_type = PackageType::NixAppImage;
649+
Some(pkg_name.as_str())
650+
}
651+
(PackageType::Unknown, _) => {
652+
self.pkg_type = PackageType::AppImage;
653+
None
654+
}
655+
_ => None,
657656
};
658657

659658
let offset = get_offset(&provide_path).unwrap();
@@ -776,20 +775,20 @@ impl Builder {
776775
};
777776
}
778777
} else if magic_bytes[4..8] == FLATIMAGE_MAGIC_BYTES {
779-
self.pkg_type = PackageType::FlatImage
778+
// Only auto-detect if pkg_type is not already set
779+
if self.pkg_type == PackageType::Unknown {
780+
self.pkg_type = PackageType::FlatImage;
781+
}
780782
} else if magic_bytes[..4] == ELF_MAGIC_BYTES {
781-
self.pkg_type = if is_static_elf(&provide_path) {
782-
PackageType::Static
783-
} else {
784-
PackageType::Dynamic
785-
};
783+
// Only auto-detect if pkg_type is not already set
784+
if self.pkg_type == PackageType::Unknown {
785+
self.pkg_type = if is_static_elf(&provide_path) {
786+
PackageType::Static
787+
} else {
788+
PackageType::Dynamic
789+
};
790+
}
786791
};
787-
788-
if self.pkg_type == PackageType::Unknown {
789-
self.logger
790-
.error(format!("Unsupported binary file {}. Aborting.", cmd));
791-
std::process::exit(1);
792-
}
793792
}
794793

795794
if !exists_any {

0 commit comments

Comments
 (0)