attached is a patch offered to merge the ieee1275 implementation of grub-mkrescue into the common grub-mkrescue (currently shared only by grub-coreboot and grub-pc). It depends on grub-mkisofs supporting HFS extensions, though.
Once grub-mkisofs can support these features, this patch would supercede my earlier patch [0]. Perhaps the earlier patch should be applied in the meantime to normalize the interface to grub-mkrescue? The additional flags needed for support would be (see genisoimage(1) for descriptions of what they do): -hfs -part -map MAPFILE -hfs-bless BLESSDIR -chrp-boot Looking at cdrkit's libhfs_iso/ directory, it appears that the code to implement these features is mostly under "GPLv2 or later", despite the disclaimer at http://www.cdrkit.org/ which claims plain GPLv2. Similar code (probably with a common ancestor [1]) is also available in the hfsutils package, which does appear to be unambiguously GPLv2+. Neither hfsutils nor genisoimage offers a shared library, unfortunately. Regards, --dkg [0] http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=12;filename=570119.patch;att=1;bug=570119 [1] http://bugs.debian.org/570187
=== modified file 'util/grub-mkrescue.in'
--- util/grub-mkrescue.in 2009-12-22 17:20:27 +0000
+++ util/grub-mkrescue.in 2010-02-16 22:54:29 +0000
@@ -32,6 +32,7 @@
coreboot_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/${target_cpu}-coreboot
pc_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/${target_cpu}-pc
+ieee1275_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/${target_cpu}-ieee1275
# Usage: usage
# Print the usage.
@@ -120,13 +121,18 @@
if test -e "${pc_dir}" ; then
process_input_dir ${pc_dir} pc
fi
+ if test -e "${ieee1275_dir}" ; then
+ process_input_dir ${ieee1275_dir} ieee1275
+ fi
else
process_input_dir ${override_dir} ${native_platform}
coreboot_dir=
pc_dir=
+ ieee1275_dir=
case "${native_platform}" in
coreboot) coreboot_dir=${override_dir} ;;
pc) pc_dir=${override_dir} ;;
+ ieee1275) ieee1275_dir=${override_dir} ;;
esac
fi
@@ -183,10 +189,34 @@
--embedded-boot ${embed_img}"
fi
+# build ieee1275 core.img
+if test -e "${ieee1275_dir}" ; then
+ echo "Enabling ieee1275 support ..."
+ boot_dir=${iso9660_dir}/boot/grub/powerpc-ieee1275/boot
+ mkdir ${boot_dir}
+ grub-mkelfimage -n -d ${ieee1275_dir}/ -o ${boot_dir}/grub.img ${modules} iso9660
+
+ modules="$(cat ${ieee1275_dir}/partmap.lst) ${modules}"
+ (for i in ${modules} ; do
+ echo "insmod $i"
+ done ; \
+ echo "source /boot/grub/grub.cfg") \
+ > ${iso9660_dir}/boot/grub/powerpc-ieee1275/grub.cfg
+
+ map_file=`mktemp`
+ cat >${map_file} <<EOF
+# EXTN XLate CREATOR TYPE Comment
+grub.img Raw 'UNIX' 'tbxi' "bootstrap"
+EOF
+
+ grub_mkisofs_arguments="${grub_mkisofs_arguments} -hfs -part -no-desktop -map ${map_file} -hfs-bless ${boot_dir} -chrp-boot"
+fi
+
# build iso image
grub-mkisofs ${grub_mkisofs_arguments} --protective-msdos-label -o ${output_image} -r ${iso9660_dir} ${source}
rm -rf ${iso9660_dir}
rm -f ${embed_img}
+rm -f ${map_file}
exit 0
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Bug-grub mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-grub
