Hi,

would the following changes be acceptable for
grub-mkrescue ?

- Option  --xorriso=PROGFILE  allows to use a
  particular binary as xorriso program.
  This will avoid the need to install xorriso.
  One can just unpack and build it in some
  directory and use .../xorriso/xorriso
  as binary.

- Option --diet saves about 400 kB of image
  size without losing much benefit.

I attach an untested patch to illustrate the
intended changes.
If ok in principle, then i would do
beautifications and make some tests.

Nevertheless, a GRUB expert should make own
tests afterwards. So maybe Vladimir wants 
to take it just as proposal for an own 
more qualified change.


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.ts	2010-05-19 13:53:18.000000000 +0200
@@ -38,6 +38,9 @@ efi32_dir=${libdir}/$(echo ${PACKAGE_TAR
 efi64_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/x86_64-efi
 rom_directory=
 
+xorriso=xorriso
+diet=no
+
 # Usage: usage
 # Print the usage.
 usage () {
@@ -50,6 +53,8 @@ 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]
+  --diet                  apply size reducing measures [optional]
 
 $0 generates a bootable rescue image with specified source files or directories.
 
@@ -78,6 +83,10 @@ for option in "$@"; do
 	PATH=${override_dir}:$PATH
 	export PATH
 	;;
+    --xorriso=*)
+	xorriso=`echo "${option}/" | sed 's/--xorriso=//'` ;;
+    --diet)
+	diet=yes ;;
     -*)
 	echo "Unrecognized option \`$option'" 1>&2
 	usage
@@ -254,7 +263,14 @@ 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}
+if [ "${diet}" = yes ]; then
+    if [ -e "${output_image}" ]; then
+        rm "${output_image}" || exit 1
+    fi
+    "${xorriso}" -report_about HINT -as mkisofs -graft-points -no-pad ${grub_mkisofs_arguments} --protective-msdos-label -r ${iso9660_dir} ${source} | cat >"${output_image}"
+else
+    "${xorriso}" -report_about HINT -as mkisofs -graft-points ${grub_mkisofs_arguments} --protective-msdos-label -o "${output_image}" -r ${iso9660_dir} ${source}
+fi
 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