@@ -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