X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=fcb62c769b868ccba3e397de9fe969cf90657c9a;hp=2acc7b263b7d144ccb785208d4f8209e1d1ae0e9;hb=6bd0487d3fa25a4f7ef376861f6443de86f34412;hpb=72b1c53fbd7c0d5c00a879ffd88744d00419337d diff --git a/grml-live b/grml-live index 2acc7b2..fcb62c7 100755 --- a/grml-live +++ b/grml-live @@ -4,7 +4,6 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2 or any later version. -# Latest change: Sun Aug 17 19:44:27 CEST 2008 [mika] ################################################################################ # read configuration files, set some misc variables {{{ @@ -15,7 +14,7 @@ export LC_ALL=C # exit on any error: set -e -GRML_LIVE_VERSION='0.9' +GRML_LIVE_VERSION='0.9.4' PN="$(basename $0)" CMDLINE="$0 $@" ISO_DATE="$(date +%Y-%m-%d)" @@ -26,25 +25,38 @@ usage() echo " $PN - build process script for generating a (grml based) Linux Live-ISO -Usage: $PN [-a ] [-c ] [-g ] \\ - [-i ] [-o ] [-s ] \\ - [-t ] [-s ] \\ - [-v ] [-bFVhu] +Usage: $PN [options, see as follows] + + -a architecture; available values: i386 and amd64 + -b build the ISO without updating the chroot via FAI + -c classes to be used for building the ISO via FAI + -C configuration file for grml-live + -F force execution without prompting + -g ] set the grml flavour name + -h display short usage information and exit + -i name of ISO + -o main output directory of the build process + -r release name + -s Debian suite; values: etch, lenny, sid + -t place of the templates + -u update existing chroot instead of rebuilding it from scratch + -v specify version number of the release + -V increase verbosity in the build process + -z use ZLIB instead of LZMA compression (depends on + squashfs-tools version) Usage examples: $PN - $PN -c GRMLBASE,GRML_SMALL,I386 -o /grml/ $PN -c GRMLBASE,GRML_MEDIUM,I386 -o /dev/shm/grml - $PN -c GRMLBASE,GRML_SMALL,I386 -g grml-small -v 1.0 + $PN -c GRMLBASE,GRML_SMALL,REMOVE_DOCS,I386 -g grml-small -v 1.0 $PN -c GRMLBASE,GRML_FULL,I386 -i grml_0.0-1.iso -v 0.0-1 $PN -c GRMLBASE,GRML_FULL,I386 -s sid -V -r 'grml-live rocks' -More details: man grml-live - /usr/share/doc/grml-live/grml-live.html +More details: man grml-live + /usr/share/doc/grml-live/grml-live.html + http://grml.org/grml-live/ -Please send your bug reports, feedback,.. to the grml-team. -http://grml.org/bugs/ +Please send your bug reports and feedback to the grml-team: http://grml.org/bugs/ " } @@ -234,6 +246,10 @@ specify it on the command line using the -o option." # trim characters that are known to cause problems inside $GRML_NAME; # for example isolinux does not like '-' inside the directory name [ -n "$GRML_NAME" ] && export SHORT_GRML_NAME="$(echo $GRML_NAME | tr -d ',./;\- ')" + +# export variables to have them available in fai scripts: +[ -n "$GRML_NAME" ] && export GRML_NAME="$GRML_NAME" +[ -n "$RELEASENAME" ] && export RELEASENAME="$RELEASENAME" # }}} # clean/zero grml-live logfile {{{ @@ -411,6 +427,10 @@ else log "Setting /etc/grml_version to $GRML_NAME $VERSION Release Codename $RELEASENAME [$ISO_DATE]" echo "$GRML_NAME $VERSION Release Codename $RELEASENAME [$ISO_DATE]" > $CHROOT_OUTPUT/etc/grml_version chmod 644 $CHROOT_OUTPUT/etc/grml_version + einfo "Rebuilding initramfs" + # make sure new /etc/grml_version reaches the initramfs: + chroot $CHROOT_OUTPUT update-initramfs -u -t + eend $? fi # Remove all FAI logs from chroot if class RELEASE is used: @@ -462,11 +482,13 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then ewarn "$BUILD_OUTPUT/boot exists already, skipping stage 'boot'" ; eend 0 else # booting stuff: - [ -d "$BUILD_OUTPUT"/boot/addons ] || mkdir -p "$BUILD_OUTPUT"/boot/addons [ -d "$BUILD_OUTPUT"/boot/isolinux ] || mkdir -p "$BUILD_OUTPUT"/boot/isolinux [ -d "$BUILD_OUTPUT"/boot/"${SHORT_GRML_NAME}" ] || mkdir -p "$BUILD_OUTPUT"/boot/"${SHORT_GRML_NAME}" - cp /boot/memtest86+.bin "$BUILD_OUTPUT"/boot/addons/memtest + if [ -z "$NO_ADDONS" ] ; then + [ -d "$BUILD_OUTPUT"/boot/addons ] || mkdir -p "$BUILD_OUTPUT"/boot/addons + cp /boot/memtest86+.bin "$BUILD_OUTPUT"/boot/addons/memtest + fi # if we don't have an initrd we a) can't boot and b) there was an error # during build, so check for the file: @@ -497,7 +519,10 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then fi cp ${TEMPLATE_DIRECTORY}/boot/isolinux/* "$BUILD_OUTPUT"/boot/isolinux/ - cp ${TEMPLATE_DIRECTORY}/boot/addons/* "$BUILD_OUTPUT"/boot/addons/ + + if [ -z "$NO_ADDONS" ] ; then + cp ${TEMPLATE_DIRECTORY}/boot/addons/* "$BUILD_OUTPUT"/boot/addons/ + fi if ! [ -d "${BUILD_OUTPUT}/boot/grub" ] ; then cp -a ${TEMPLATE_DIRECTORY}/boot/grub "$BUILD_OUTPUT"/boot/ @@ -588,9 +613,29 @@ else fi if echo "$SQUASHFS_OPTIONS" | grep -q -- "-nolzma" ; then - ewarn "mksquashfs does NOT support the nolzma option, falling back to zlib mode." - SQUASHFS_OPTIONS="$(echo $SQUASHFS_OPTIONS | sed 's/-nolzma//g')" - eend 0 + if ! mksquashfs --help 2>&1 | grep -q -- '-nolzma' ; then + ewarn "mksquashfs does NOT support the nolzma option, just using default zlib mode." + SQUASHFS_OPTIONS="$(echo $SQUASHFS_OPTIONS | sed 's/-nolzma//g')" + eend 0 + fi + fi + + if echo "$SQUASHFS_OPTIONS" | grep -q -- "-lzma" ; then + if ! mksquashfs --help 2>&1 | grep -q -- '-lzma' ; then + ewarn "mksquashfs does NOT support the lzma option, falling back to zlib mode." + SQUASHFS_OPTIONS="$(echo $SQUASHFS_OPTIONS | sed 's/-lzma//g')" + eend 0 + fi + fi + + # support exclusion of files via exclude-file: + if [ -n "$SQUASHFS_EXCLUDES_FILE" -a "$SQUASHFS_EXCLUDES_FILE" ] ; then + SQUASHFS_OPTIONS="$SQUASHFS_OPTIONS -ef $SQUASHFS_EXCLUDES_FILE" + fi + + # get rid of unnecessary files when building grml-small for final release: + if echo "$CLASSES" | grep -q GRML_SMALL ; then + SQUASHFS_OPTIONS="$SQUASHFS_OUTPUT -e initrd.img* vmlinuz*" fi SQUASHFS_OUTPUT="$(mktemp -t grml-live.XXXXXX)"