Hi, attached is an updated patch to summarize my current proposal for grub-mkrescue.
My reply to mails of Vladimir and Seth seems still stuck in eggs.gnu.org. (At least that was the culprit last time.) The current proposal follows Vladimir's idea: > I'm thinking to allow passing arbitrary options to xorriso by just > putting it on command line. It would give the user control over option -no-pad (saves 300 kB) and allow to switch from mkisofs emulation to the native xorriso command set. ----------------------------------------------- New ponderings: ----------------------------------------------- The following statement in the proposed help text is due to the way how extra arguments are handled via variable $source: "Be aware that source paths must be single words. Quotation marks will not work." If grub-mkrescue options would be prescribed to precede any source paths or xorriso options, then we could use a while loop, shift and "$@", rather than a for loop and ${source}. while test -n "$1"; do case "$1" in ... --modules=*) modules=`echo "$1" | sed 's/--modules=//'` shift ;; ... *) break ;; esac done ... ${xorriso} ... "$@" This would be safe for nearly all filenames. (Newlines are still not allowed then.) Question is whether support for apple-ish file names is worth a change in the rules for grub-mkrescue. Have a nice day :) Thomas -- GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
--- grub-mkrescue.in 2010-05-18 10:02:06.000000000 +0200 +++ grub-mkrescue.in.ts2 2010-05-20 09:34:56.000000000 +0200 @@ -38,6 +38,8 @@ efi32_dir=${libdir}/$(echo ${PACKAGE_TAR efi64_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/x86_64-efi rom_directory= +xorriso=xorriso + # Usage: usage # Print the usage. usage () { @@ -50,10 +52,15 @@ Make GRUB rescue image. --output=FILE save output in FILE [required] --modules=MODULES pre-load specified modules MODULES --rom-directory=DIR save rom images in DIR [optional] + --xorriso=PROGFILE use PROGFILE as xorriso program [optional] -$0 generates a bootable rescue image with specified source files or directories. +$0 generates a bootable rescue image with specified source files, source +directories, or mkisofs options listed by: xorriso -as mkisofs -help +Option -- switches to native xorriso command mode. +Be aware that source paths must be single words. Quotation marks will not work. Report bugs to <bug-g...@gnu.org>. +Mail xorriso support requests to <bug-xorr...@gnu.org>. EOF } @@ -78,11 +85,8 @@ for option in "$@"; do PATH=${override_dir}:$PATH export PATH ;; - -*) - echo "Unrecognized option \`$option'" 1>&2 - usage - exit 1 - ;; + --xorriso=*) + xorriso=`echo "${option}/" | sed 's/--xorriso=//'` ;; *) source="${source} ${option}" ;; esac @@ -254,7 +258,12 @@ if [ -e "${iso9660_dir}/boot/coreboot.el fi # build iso image -xorriso -pathspecs on -as mkisofs ${grub_mkisofs_arguments} --protective-msdos-label -o ${output_image} -r ${iso9660_dir} ${source} +"${xorriso}" -report_about HINT -as mkisofs -graft-points \ + ${grub_mkisofs_arguments} --protective-msdos-label -r \ + --sort-weight 0 / --sort-weight 1 /boot \ + -o "${output_image}" \ + ${iso9660_dir} ${source} + rm -rf ${iso9660_dir} rm -f ${embed_img}
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel