build: Use xorriso instead of mkisofs or genisoimage.
It seems that not all Linux distributions ship an EFI-enabled cdrtools (i.e. mkisofs takes -e option), Arch being one that does not. So instead, we now use xorriso universally, which is as (or more, in most cases) widely available, and supports emulating mkisofs with the EFI commands universally. This also has the added benefit that we can drop genisoimage support altogether.
This commit is contained in:
@@ -1565,13 +1565,14 @@ rule BuildCDBootImage image : bootfloppy : bootefi : extrafiles
|
|||||||
actions BuildCDBootImageMBR
|
actions BuildCDBootImageMBR
|
||||||
{
|
{
|
||||||
$(RM) $(<)
|
$(RM) $(<)
|
||||||
mkisofs -b $(BOOTIMG) -r -J -V bootimg -o $(<) $(>[1]) $(>[2-])
|
xorriso -as mkisofs -b $(BOOTIMG) -r -J -V bootimg -o $(<) $(>[1]) $(>[2-])
|
||||||
}
|
}
|
||||||
|
|
||||||
actions BuildCDBootImageEFI
|
actions BuildCDBootImageEFI
|
||||||
{
|
{
|
||||||
$(RM) $(<)
|
$(RM) $(<)
|
||||||
mkisofs -b $(BOOTIMG) -eltorito-alt-boot -no-emul-boot -e $(BOOTEFI) -r -J -V bootimg -o $(<) $(>[1]) $(>[2]) $(>[3-])
|
xorriso -as mkisofs -b $(BOOTIMG) -eltorito-alt-boot -no-emul-boot -e $(BOOTEFI) \
|
||||||
|
-r -J -V bootimg -o $(<) $(>[1]) $(>[2]) $(>[3-])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1605,11 +1606,7 @@ actions BuildCDBootPPCImage1 bind MAPS
|
|||||||
# Extras (readme files, etc)
|
# Extras (readme files, etc)
|
||||||
cp $(>[4]) $(HAIKU_OUTPUT_DIR)/cd/
|
cp $(>[4]) $(HAIKU_OUTPUT_DIR)/cd/
|
||||||
|
|
||||||
mkisofs -v -hfs -part -map $(MAPS) -no-desktop -hfs-volid bootimg \
|
xorriso -as mkisofs -v -hfs -part -map $(MAPS) -no-desktop -hfs-volid bootimg \
|
||||||
-V bootimg -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/boot -prep-boot \
|
|
||||||
boot/haikuloader.xcf -r -o $(<) $(HAIKU_OUTPUT_DIR)/cd \
|
|
||||||
|| \
|
|
||||||
genisoimage -v -hfs -part -map $(MAPS) -no-desktop -hfs-volid bootimg \
|
|
||||||
-V bootimg -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/boot -prep-boot \
|
-V bootimg -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/boot -prep-boot \
|
||||||
boot/haikuloader.xcf -r -o $(<) $(HAIKU_OUTPUT_DIR)/cd
|
boot/haikuloader.xcf -r -o $(<) $(HAIKU_OUTPUT_DIR)/cd
|
||||||
$(RM) -r $(HAIKU_OUTPUT_DIR)/cd
|
$(RM) -r $(HAIKU_OUTPUT_DIR)/cd
|
||||||
|
|||||||
@@ -329,18 +329,13 @@ if [ $isCD ]; then
|
|||||||
echo "Copying boot image ..."
|
echo "Copying boot image ..."
|
||||||
$cp "$cdBootFloppy" "$outputDir"
|
$cp "$cdBootFloppy" "$outputDir"
|
||||||
|
|
||||||
if [ $(which mkisofs) ]; then
|
if [ $(which xorriso) ]; then
|
||||||
# build the iso image using mkisofs
|
# build the iso image using xorriso
|
||||||
echo "Building CD image (mkisofs)..."
|
echo "Building CD image..."
|
||||||
mkisofs -uid 0 -gid 0 -b `basename $cdBootFloppy` -R -V "$cdLabel" -o "$cdImagePath" "$tPrefix"
|
xorriso -as mkisofs -r -b `basename $cdBootFloppy` \
|
||||||
elif [ $(which genisoimage) ]; then
|
-V "$cdLabel" -o "$cdImagePath" "$tPrefix"
|
||||||
# build the iso image using genisoimage
|
|
||||||
echo "Building CD image (genisoimage)..."
|
|
||||||
echo "WARNING: genisoimage fallback has known problems with long filenames!"
|
|
||||||
echo " Please install mkisofs before making production releases!"
|
|
||||||
genisoimage -r -iso-level 4 -b `basename $cdBootFloppy` -V "$cdLabel" -o "$cdImagePath" "$tPrefix"
|
|
||||||
else
|
else
|
||||||
echo "you need mkisofs (preferred) or genisoimage to create a CD image."
|
echo "you need xorriso to create a CD image."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user