diff -Nurpd uck-code-orig/libraries/remaster-live-cd.sh uck-code-iso/libraries/remaster-live-cd.sh --- uck-code-orig/libraries/remaster-live-cd.sh 2012-10-20 22:20:20.000000000 +0200 +++ uck-code-iso/libraries/remaster-live-cd.sh 2013-07-16 18:52:52.606254833 +0200 @@ -602,50 +602,73 @@ function pack_iso() LIVECD_ISO_DESCRIPTION="Remastered Ubuntu LiveCD" fi + if [ -e "$CUSTOMIZE_DIR/iso_publisher" ] ; then + LIVECD_ISO_PUBLISHER=`cat "$CUSTOMIZE_DIR/iso_publisher"` + elif [ -n "$3" ]; then + LIVECD_ISO_PUBLISHER="$3" + else + LIVECD_ISO_PUBLISHER="ANONYMOUS" + fi + + # Canonical themselves use xorrisofs instead of genisoimage, so we'll prefer that, if available + GENISOIMAGE=`which xorrisofs` + if [ -z "$GENISOIMAGE" ] ; then + GENISOIMAGE=genisoimage + fi + echo "ISO description set to: $LIVECD_ISO_DESCRIPTION" + echo "ISO publisher set to: $LIVECD_ISO_PUBLISHER" MKISOFS_EXTRA_OPTIONS="" if [ -e "$CUSTOMIZE_DIR/mkisofs_extra_options" ] ; then MKISOFS_EXTRA_OPTIONS=`cat "$CUSTOMIZE_DIR/mkisofs_extra_options"` fi + if [ -e "$ISO_REMASTER_DIR/EFI/BOOT/BOOTx64.EFI" ]; then + ISO_EFI_OPTIONS="-eltorito-alt-boot -e EFI/BOOT/BOOTx64.EFI -no-emul-boot" + fi + if [ "$1" = "ppc" ]; then - genisoimage -o "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" \ - -p "Ubuntu Customization Kit - http://uck.sf.net" \ + $GENISOIMAGE -o "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" \ + -p "UBUNTU CONSTRUCTION KIT" \ -probe -map "$UCK_LIBRARIES_DIR/hfs.map" -chrp-boot -iso-level 2 \ -part -no-desktop -r --netatalk -hfs \ -hfs-bless "$ISO_REMASTER_DIR/install" \ -x "$ISO_REMASTER_DIR"/casper/manifest.diff \ -V "$LIVECD_ISO_DESCRIPTION" \ + -publisher "$LIVECD_ISO_PUBLISHER" \ -joliet-long \ $MKISOFS_EXTRA_OPTIONS \ "$ISO_REMASTER_DIR" elif [ "$1" = "x86_64" ]; then - genisoimage -o "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" \ + $GENISOIMAGE -o "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" \ -b "isolinux/isolinux.bin" -c "isolinux/boot.cat" \ - -p "Ubuntu Customization Kit - http://uck.sf.net" \ + -p "UBUNTU CONSTRUCTION KIT" \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -V "$LIVECD_ISO_DESCRIPTION" -cache-inodes -r -J -l \ + -publisher "$LIVECD_ISO_PUBLISHER" \ -x "$ISO_REMASTER_DIR"/casper/manifest.diff \ - -joliet-long \ + -joliet-long $ISO_EFI_OPTIONS \ $MKISOFS_EXTRA_OPTIONS \ "$ISO_REMASTER_DIR" elif [ "$1" = "ia64" ]; then - genisoimage -o "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" \ + $GENISOIMAGE -o "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" \ -b "isolinux/isolinux.bin" -c "isolinux/boot.cat" \ -no-emul-boot -V "$LIVECD_ISO_DESCRIPTION" -J -r \ + -publisher "$LIVECD_ISO_PUBLISHER" \ -x "$ISO_REMASTER_DIR"/casper/manifest.diff \ -joliet-long \ $MKISOFS_EXTRA_OPTIONS \ "$ISO_REMASTER_DIR" else - genisoimage -o "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" \ + $GENISOIMAGE -o "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" \ -b "isolinux/isolinux.bin" -c "isolinux/boot.cat" \ - -p "Ubuntu Customization Kit - http://uck.sf.net" \ + -p "UBUNTU CONSTRUCTION KIT" \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -V "$LIVECD_ISO_DESCRIPTION" -cache-inodes -r -J -l \ + -publisher "$LIVECD_ISO_PUBLISHER" \ -x "$ISO_REMASTER_DIR"/casper/manifest.diff \ - -joliet-long \ + -joliet-long $ISO_EFI_OPTIONS \ $MKISOFS_EXTRA_OPTIONS \ "$ISO_REMASTER_DIR" fi @@ -656,9 +679,9 @@ function pack_iso() fi if [ $HYBRID = 1 ]; then - if [ -e "/usr/bin/isohybrid" ] ; then + if [ -n `which isohybrid` ] ; then echo "Making your ISO hybrid..." - /usr/bin/isohybrid "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" + isohybrid "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" RESULT=$? if [ $RESULT -ne 0 ]; then @@ -668,6 +691,19 @@ function pack_iso() failure "You asked for a hybrid ISO but isohybrid command was not found" fi fi + + if [ -n `which implantisomd5` ] ; then + echo "Implanting ISO MD5..." + implantisomd5 --force "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" + if [ -n `which checkisomd5` ] ; then + echo "Checking implanted ISO MD5..." + checkisomd5 "$NEW_FILES_DIR/$NEW_ISO_FILE_NAME" + else + echo "Skipping check of implated MD5..." + fi + else + echo "Skipping ISO MD5 implant" + fi } function generate_md5_for_new_iso() @@ -675,6 +711,8 @@ function generate_md5_for_new_iso() echo "Generating md5sum for newly created ISO..." cd $NEW_FILES_DIR md5sum $NEW_ISO_FILE_NAME > $NEW_ISO_FILE_NAME.md5 + #sha1sum $NEW_ISO_FILE_NAME > $NEW_ISO_FILE_NAME.sha1 + #sha256sum $NEW_ISO_FILE_NAME > $NEW_ISO_FILE_NAME.sha256 } ###################### diff -Nurpd uck-code-orig/uck-gui uck-code-iso/uck-gui --- uck-code-orig/uck-gui 2012-10-20 22:20:20.000000000 +0200 +++ uck-code-iso/uck-gui 2013-07-16 18:52:52.606254833 +0200 @@ -269,6 +269,26 @@ while true; do break done +while true; do + # uppercase user name from passwd by default as it seems common practise to use uppercase in ISO9660 metadata fields + ISO_PUBLISHER=`getent passwd $USER | awk -F ':' '{print $5}' | awk -F ',' '{print $1}' | tr 'a-z' 'A-Z'` + + ISO_PUBLISHER=`dialog_line_input "Please enter the name for your CD (you can leave it blank, 32 chars max)" "$ISO_PUBLISHER"` + RESULT=$? + + if [ $RESULT -ne 0 ] ; then + failure_user + fi + + PUBLISHER_LEN=`echo "$ISO_PUBLISHER" | wc -c` + + if [ "$PUBLISHER_LEN" -gt 32 ]; then + dialog_msgbox "ISO publisher too long" "The publisher must not be longer than 32 characters (yours is $PUBLISHER_LEN characters)" + continue + fi + break +done + RUN_MANUAL_CUSTOMIZATIONS=`dialog_menu "Do you want to customize the CD manually during building (using package utilities, console, etc.)?" yes no` if [ $? -ne 0 ] ; then failure_user @@ -302,6 +322,7 @@ echo "$BOOT_CD_LANGS" >"$BUILD_DIR"/live echo "$BOOT_CD_LANG" >"$BUILD_DIR"/livecd_locale echo "$DESKTOP_TYPES" >"$BUILD_DIR"/desktop_types echo "$ISO_DESCRIPTION" >"$BUILD_DIR"/iso_description +echo "$ISO_PUBLISHER" >"$BUILD_DIR"/iso_publisher echo "$RUN_MANUAL_CUSTOMIZATIONS" >"$BUILD_DIR"/run_manual_customizations echo "$REMOVE_WIN32_FILES" >"$BUILD_DIR"/remove_win32_files echo "$HYBRID" >"$BUILD_DIR"/hybrid