X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=7f6bda09ef1d329b3e2e33a4a0d466fe651e9a03;hp=a8116bc1c10e13bb4053a8cd4c80911228a4104b;hb=1ebce30e7ecfa743317e678898cc0f8854de452b;hpb=932cf8863066ce152668fa83ffc23af20a863077 diff --git a/grml-live b/grml-live index a8116bc..7f6bda0 100755 --- a/grml-live +++ b/grml-live @@ -65,6 +65,7 @@ Usage: $PN [options, see as follows] -Q skip netboot package build -r release name -s Debian suite/release, like: stable, testing, unstable + -S place of scripts (defaults to /usr/share/grml-live/scripts) -t place of the templates -u update existing chroot instead of rebuilding it from scratch -U arrange output to be owned by specified username @@ -146,7 +147,7 @@ else fi # source main configuration file: -LIVE_CONF=/etc/grml/grml-live.conf +[ -z "$LIVE_CONF" ] && LIVE_CONF='/etc/grml/grml-live.conf' if ! [ -r "$LIVE_CONF" ] ; then ewarn "Configuration file $LIVE_CONF can not be read, ignoring" else @@ -310,7 +311,7 @@ copy_addon_file() { # }}} # command line parsing {{{ -while getopts "a:C:c:d:D:e:g:i:I:o:r:s:t:U:v:AbBFhnNqQuVz" opt; do +while getopts "a:C:c:d:D:e:g:i:I:o:r:s:S:t:U:v:AbBFhnNqQuVz" opt; do case "$opt" in a) ARCH="$OPTARG" ;; A) CLEAN_ARTIFACTS=1 ;; @@ -332,6 +333,7 @@ while getopts "a:C:c:d:D:e:g:i:I:o:r:s:t:U:v:AbBFhnNqQuVz" opt; do Q) SKIP_NETBOOT=1 ;; r) RELEASENAME="$OPTARG" ;; s) SUITE="$OPTARG" ;; + S) SCRIPTS_DIRECTORY="$OPTARG";; t) TEMPLATE_DIRECTORY="$OPTARG";; v) VERSION="$OPTARG" ;; F) FORCE=1 ;; @@ -392,6 +394,7 @@ fi [ -n "$SQUASHFS_EXCLUDES_FILE" ] || SQUASHFS_EXCLUDES_FILE="${GRML_FAI_CONFIG}/config/grml/squashfs-excludes" [ -n "$SUITE" ] || SUITE='testing' [ -n "$TEMPLATE_DIRECTORY" ] || TEMPLATE_DIRECTORY='/usr/share/grml-live/templates' +[ -n "$SCRIPTS_DIRECTORY" ] || SCRIPTS_DIRECTORY='/usr/share/grml-live/scripts' [ -n "$USERNAME" ] || USERNAME='grml' [ -n "$VERSION" ] || VERSION='0.0.1' @@ -892,17 +895,19 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then bailout 8 fi - # since syslinux v3:6.03~pre1+dfsg-4 there's a split between - # isolinux and syslinux files :( + # copy _required_ isolinux files if [ -d "${CHROOT_OUTPUT}/usr/lib/ISOLINUX" ] ; then - syslinux_dir=/usr/lib/ISOLINUX - else - syslinux_dir=/usr/lib/syslinux + copy_addon_file isolinux.bin /usr/lib/ISOLINUX isolinux + copy_addon_file ifcpu64.c32 /usr/lib/syslinux/modules/bios/ isolinux + copy_addon_file ldlinux.c32 /usr/lib/syslinux/modules/bios/ isolinux + copy_addon_file libcom32.c32 /usr/lib/syslinux/modules/bios/ isolinux + copy_addon_file libutil.c32 /usr/lib/syslinux/modules/bios/ isolinux + copy_addon_file vesamenu.c32 /usr/lib/syslinux/modules/bios/ isolinux + else # syslinux versions <= 3:4.05+dfsg-6+deb8u1 + copy_addon_file isolinux.bin /usr/lib/syslinux isolinux + copy_addon_file ifcpu64.c32 /usr/lib/syslinux isolinux + copy_addon_file vesamenu.c32 /usr/lib/syslinux isolinux fi - # copy _required_ isolinux files - for file in ifcpu64.c32 isolinux.bin vesamenu.c32; do - copy_addon_file "${file}" "${syslinux_dir}" isolinux - done # *always* copy files to output directory so the variables # get adjusted according to the build. @@ -1327,7 +1332,7 @@ else # make a 2048-byte bootsector for El Torito dd if=/dev/zero of=boot/grub/toriboot.bin bs=512 count=4 2>/dev/null # those are in 2048-byte sectors, so 1 16 matches 4 63 below - echo 1 16 | mksh /usr/share/grml-live/scripts/bootgrub.mksh -B 11 | \ + echo 1 16 | mksh "${SCRIPTS_DIRECTORY}/bootgrub.mksh" -B 11 | \ dd of=boot/grub/toriboot.bin conv=notrunc 2>/dev/null fi log "$MKISOFS -V '${GRML_NAME} ${VERSION}' -publisher 'grml-live | grml.org' -l -r -J $BOOT_ARGS -o ${ISO_OUTPUT}/${ISO_NAME} ." @@ -1369,13 +1374,13 @@ else log "Creating hybrid ISO file with manifold/grub2 method" einfo "Creating hybrid ISO file with manifold/grub2 method" # 512 bytes: MBR, partition table, load GRUB 2 - echo 4 63 | mksh /usr/share/grml-live/scripts/bootgrub.mksh -A -M 4:0x96 -g $cyls:16:32 + echo 4 63 | mksh "${SCRIPTS_DIRECTORY}/bootgrub.mksh" -A -M 4:0x96 -g $cyls:16:32 else log "Creating hybrid ISO file with manifold method" einfo "Creating hybrid ISO file with manifold method" # read only one but 2048-byte sized (scale: << 2) sector echo $bootoff $bootoff | \ - mksh /usr/share/grml-live/scripts/bootilnx.mksh -A -M 4:0x96 -g $cyls:16:32 -S 2 + mksh ${SCRIPTS_DIRECTORY}/bootilnx.mksh -A -M 4:0x96 -g $cyls:16:32 -S 2 fi | dd of="${ISO_OUTPUT}/${ISO_NAME}" conv=notrunc 2>/dev/null eend $? fi