+ # $SQUASHFS_BINARY is specified in the configuration:
+ if [ -n "$SQUASHFS_BINARY" ] ; then
+ if ! which "$SQUASHFS_BINARY" >/dev/null 2>&1 ; then
+ log "Error: specified mksquashfs binary ($SQUASHFS_BINARY) not found. Exiting."
+ eerror "Error: specified mksquashfs binary ($SQUASHFS_BINARY) not found. Exiting." ; eend 1
+ bailout
+ fi
+ else # no $SQUASHFS_BINARY configured, let's find the according binary:
+ # Note: this is ALL for backward compability and yes: it's serious PITA.
+ # We'll definitely drop this once people build >2.6.28-grml* only and
+ # the squashfs-tools vs. squashfs-lzma-tools + zlib vs. lzma situation
+ # is settling...
+
+ # assume the safe default if mksquashfs-lzma isn't present:
+ if ! which mksquashfs-lzma >/dev/null 2>&1 ; then
+ SQUASHFS_BINARY='mksquashfs'
+ else # mksquashfs-lzma is available since squashfs-lzma-tools 4.0:
+ # if the user wants to use zlib then don't use mksquashfs-lzma:
+ if echo "$SQUASHFS_OPTIONS" | grep -q -- "-nolzma" || [ -n "$SQUASHFS_ZLIB" ] ; then
+ SQUASHFS_BINARY='mksquashfs'
+ else # neither -nolzma nor -z and mksquashfs-lzma is available:
+ SQUASHFS_BINARY='mksquashfs-lzma'
+
+ # backwards compability: someone has squashfs-lzma-tools >=4 installed but
+ # 1) doesn't use -nolzma in $SQUASHFS_OPTIONS or the grml-live's -z option *and*
+ # 2) builds against kernel version <=2.6.28-grml[64]
+ if ls $CHROOT_OUTPUT/boot/vmlinuz* >/dev/null 2>&1 ; then
+ KERNEL_IMAGE="$(ls $CHROOT_OUTPUT/boot/vmlinuz* 2>/dev/null | sort -r | head -1)"
+
+ case $KERNEL_IMAGE in
+ *vmlinuz-2.6.28-grml*|*vmlinuz-2.6.26-grml*|*vmlinuz-2.6.23-grml*)
+ log "You seem to be building a system with squashfs file format 3 using squashfs-lzma-tools >=4."
+ ewarn "You seem to be building a system with squashfs file format 3 using squashfs-lzma-tools >=4."
+ ewarn "|-> Consider installing squashfs-lzma-tools 3.3-1 for support of file format version 3."
+ ewarn "|-> Trying the mksquashfs binary instead of mksquashfs-lzma (though this might fail)."
+ ewarn "\`-> Visit http://grml.org/grml-live/#current_state for further details if building fails."
+ eend 0
+ SQUASHFS_BINARY='mksquashfs'
+ ;;
+ esac
+ fi
+
+ # if we still want to use mksquashfs-lzma then let's choose
+ # blocksize 256k as this gives best result with regards to time + comopression
+ [[ "$SQUASHFS_BINARY" == "mksquashfs-lzma" ]] && SQUASHFS_OPTIONS="-b 256k -lzma"
+ fi
+
+ fi
+ fi
+