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

Reply via email to