support for kernel 2.6.36-grml[64], drop backwards compatibility support, adjust...
authorMichael Prokop <mika@grml.org>
Wed, 24 Nov 2010 10:20:17 +0000 (11:20 +0100)
committerMichael Prokop <mika@grml.org>
Wed, 24 Nov 2010 10:34:54 +0000 (11:34 +0100)
The backwards compatibility stuff to support different kernel
versions with different squashfs-tools and all the mksquashfs
options used to be a ugly mess.

Now having xz support (which corresponds to what we have with
squashfs-lzma nowadays) in squashfs-tools (>=1:4.1-1) in Debian
and using a recent ondisk layout for squashfs-lzma in our kernel
versions since 2.6.35-grml[64] gives us the option to clean up
with this mess.

If custom mksquashfs binaries/options are still needed to
remaster old Grml releases or custom kernel versions either use
an older grml-live version or adjust SQUASHFS_BINARY and
SQUASHFS_OPTIONS in grml-live configuration accordingly.

grml-live depends on recent squashfs-tools and fai* versions now.

debian/control
docs/grml-live.txt
etc/grml/fai/config/package_config/GRML_FULL
etc/grml/fai/config/package_config/GRML_MEDIUM
etc/grml/fai/config/package_config/GRML_SMALL
grml-live

index ac3cc39..6d14f7a 100644 (file)
@@ -11,7 +11,7 @@ Vcs-Browser: http://git.grml.org/?p=grml-live.git
 
 Package: grml-live
 Architecture: all
-Depends: ${misc:Depends}, bc, fai-client (>= 3.2.4), fai-server (>= 3.2.4), mkisofs | genisoimage, mksh, moreutils, squashfs-lzma-tools4 | squashfs-lzma-tools | squashfs-tools, wget
+Depends: ${misc:Depends}, bc, fai-client (>= 3.4.0), fai-server (>= 3.4.0), mkisofs | genisoimage, mksh, moreutils, squashfs-tools (>= 1:4.1-1), wget
 Recommends: grml-live-addons, grml-live-db, ia32-libs
 Suggests: fai-doc
 Description: build system for creating a Grml (based) Linux live system
index 4bc5666..25752b8 100644 (file)
@@ -475,12 +475,11 @@ For further information see next section.
 Current state of grml-live with squashfs-tools and kernel
 ---------------------------------------------------------
 
-To make it easier to track problems this section documents current state of
-grml-live playing together with squashfs-tools / squashfs-lzma-tools /
-squashfs-lzma-tools4 (for building the compressed file) and the kernel version.
-Documentation of this section is up2date by 1st of september 2010, please report
-any bugs you encounter.
+Use squashfs-tools >=4.1-1 (available from Grml repositories as well as from
+Debian/experimental) to build Grml (based) ISOs featuring kernel version
+2.6.36-grml[64].
 
+////////////////////////////////////////////////////////////////////////////////
 Difference between squashfs-lzma-tools, squashfs-lzma-tools4 and squashfs-tools
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -515,7 +514,6 @@ with kernel versions 2.6.31-grml[64] and 2.6.33-grml[64]
 version 4, package maintained and available from Debian, recommended only for
 ZLIB-only builds of any grml-live builds with kernel versions >=2.6.31-grml[64]
 
-////////////////////////////////////////////////////////////////////////////////
 Outdated, JFTR:
 
 * squashfs-tools 1:3.3-7: ZLIB as default, no LZMA support/options, file format
@@ -526,7 +524,6 @@ option, file format version 3
 
 * squashfs-lzma-tools 3.3-1: LZMA as default, ZLIB support via '-nolzma' option,
 file format version 3
-////////////////////////////////////////////////////////////////////////////////
 
 Now, depending on the kernel version you want to use you need different versions
 of squashfs-tools/squashfs-lzma-tools[4]. Yes, that's a mess (don't ask how much
@@ -566,13 +563,14 @@ ZLIB compression instead.
 * Kernel 2.6.31-grml[64]: works with ZLIB compression, fails with LZMA
 * Kernel 2.6.33-grml[64]: works with ZLIB compression, fails with LZMA
 * Kernel 2.6.35-grml[64]: works with ZLIB *and* LZMA compression
+* Kernel 2.6.36-grml[64]: works with ZLIB *and* LZMA compression
 
 [NOTE]
-squashfs-lzma-tools4 is the recommended package for building up2date ISOs with
-grml-live! Please use other squashfs-* packages only if you want to build live
-systems providing kernel versions older than 2.6.35-grml*. Use
-squashfs-lzma-tools4 from Grml if you want to remaster any Grml releases MORE
-RECENT than 2010.04.
+squashfs-tools >=4.1-1 and/or squashfs-lzma-tools4 are the recommended package
+for building up2date ISOs with grml-live! Please use other squashfs-* packages
+only if you want to build live systems providing kernel versions older than
+2.6.35-grml*. Use squashfs-tools >=4.1-1 or squashfs-lzma-tools4 from Grml if
+you want to remaster any Grml releases MORE RECENT than 2010.04.
 
 Using squashfs-lzma-tools 4.0-2 on the build system
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -626,13 +624,13 @@ use Grml's squashfs-lzma-tools[4] (see sections above) instead.
 * Kernel 2.6.31-grml[64]: works (ZLIB only)
 * Kernel 2.6.33-grml[64]: works (ZLIB only)
 * Kernel 2.6.35-grml[64]: works (ZLIB only)
+* Kernel 2.6.36-grml[64]: works (ZLIB only)
 
 [NOTE]
-Please use squashfs-tools >=1:4.0-1 only if you want to remaster Grml releases
-starting with 2009.10 using the ZLIB compression, please use squashfs-lzma-tools
-/ squashfs-lzma-tools4 otherwise instead.
+Please use squashfs-tools between 4.0-1 and 4.1-1 only if you want to remaster
+Grml releases starting with 2009.10 using the ZLIB compression, please use other
+squashfs packages otherwise instead.
 
-//////////////////////////////////////////////////////////////////////////////////
 Outdated, JFTR:
 
 Using squashfs-lzma-tools 3.3-1 on the build system
@@ -742,11 +740,7 @@ Instructions
   Pin: origin deb.grml.org
   Pin-Priority: 1
 
-  Package: squashfs-lzma-tools
-  Pin: origin deb.grml.org
-  Pin-Priority: 996
-
-  Package: squashfs-lzma-tools4
+  Package: squashfs-tools
   Pin: origin deb.grml.org
   Pin-Priority: 996
   EOF
@@ -763,15 +757,13 @@ Instructions
 
   # install relevant tools
   # please check out http://grml.org/grml-live/#current_state when encountering problems!
-  apt-get -o APT::Install-Recommends=false install grml-live squashfs-lzma-tools squashfs-lzma-tools4
+  apt-get -o APT::Install-Recommends=false install grml-live squashfs-tools
 
   # adjust grml-live configuration for our needs:
   cat > /etc/grml/grml-live.local << EOF
   ## want a faster build process and don't need smaller ISOs?
-  ## if so use zlib compression, for kernels >=2.6.35-grml* and squashfs-lzma-tools4:
+  ## if so use zlib compression
   # SQUASHFS_OPTIONS="-comp gzip -b 256k"
-  ## ... or for kernels <=2.6.33-grml* and squashfs-lzma-tools:
-  # SQUASHFS_OPTIONS="-nolzma -b 256k"
   ## want to use a specific squashfs binary?
   # SQUASHFS_BINARY='/usr/bin/mksquashfs'
   # install local files into the chroot
index 9c16a7d..4bed3e4 100644 (file)
@@ -1716,22 +1716,22 @@ spicctrl
 # use linux-kernel-headers-grml instead of linux-libc-dev?
 # linux-kernel-headers-grml
 
-## current kernel version 2.6.35-grml:
-#fglrx-kernel-2.6.35-grml
-iscsitarget-module-2.6.35-grml
-linux-doc-2.6.35-grml
-linux-headers-2.6.35-grml
-linux-image-2.6.35-grml
-#linux-source-2.6.35-grml
-loop-aes-modules-2.6.35-grml
-ndiswrapper-modules-2.6.35-grml
-#nvidia-kernel-2.6.35-grml
-openafs-modules-2.6.35-grml
-speakup-modules-2.6.35-grml
-sysprof-module-2.6.35-grml
-tp-smapi-modules-2.6.35-grml
-virtualbox-ose-guest-modules-2.6.35-grml virtualbox-ose-guest-utils virtualbox-ose-guest-x11
-xtables-addons-modules-2.6.35-grml
+## current kernel version 2.6.36-grml:
+#fglrx-kernel-2.6.36-grml
+iscsitarget-module-2.6.36-grml
+linux-doc-2.6.36-grml
+linux-headers-2.6.36-grml
+linux-image-2.6.36-grml
+#linux-source-2.6.36-grml
+loop-aes-modules-2.6.36-grml
+ndiswrapper-modules-2.6.36-grml
+#nvidia-kernel-2.6.36-grml
+openafs-modules-2.6.36-grml
+speakup-modules-2.6.36-grml
+sysprof-module-2.6.36-grml
+tp-smapi-modules-2.6.36-grml
+virtualbox-ose-guest-modules-2.6.36-grml virtualbox-ose-guest-utils virtualbox-ose-guest-x11
+xtables-addons-modules-2.6.36-grml
 ## }}}
 
 ## amd64 specific packages {{{
@@ -1741,22 +1741,22 @@ PACKAGES aptitude AMD64
 grml64
 perf
 
-## current kernel version 2.6.35-grml64:
-#fglrx-kernel-2.6.35-grml64
-iscsitarget-module-2.6.35-grml64
-linux-doc-2.6.35-grml64
-linux-headers-2.6.35-grml64
-linux-image-2.6.35-grml64
-#linux-source-2.6.35-grml
-loop-aes-modules-2.6.35-grml64
-ndiswrapper-modules-2.6.35-grml64
-#nvidia-kernel-2.6.35-grml64
-openafs-modules-2.6.35-grml64
-speakup-modules-2.6.35-grml64
-sysprof-module-2.6.35-grml64
-tp-smapi-modules-2.6.35-grml64
-xtables-addons-modules-2.6.35-grml64
-virtualbox-ose-guest-modules-2.6.35-grml64 virtualbox-ose-guest-utils virtualbox-ose-guest-x11
+## current kernel version 2.6.36-grml64:
+#fglrx-kernel-2.6.36-grml64
+iscsitarget-module-2.6.36-grml64
+linux-doc-2.6.36-grml64
+linux-headers-2.6.36-grml64
+linux-image-2.6.36-grml64
+#linux-source-2.6.36-grml
+loop-aes-modules-2.6.36-grml64
+ndiswrapper-modules-2.6.36-grml64
+#nvidia-kernel-2.6.36-grml64
+openafs-modules-2.6.36-grml64
+speakup-modules-2.6.36-grml64
+sysprof-module-2.6.36-grml64
+tp-smapi-modules-2.6.36-grml64
+xtables-addons-modules-2.6.36-grml64
+virtualbox-ose-guest-modules-2.6.36-grml64 virtualbox-ose-guest-utils virtualbox-ose-guest-x11
 ## }}}
 
 # vim: foldmethod=marker
index 857296a..2bd1911 100644 (file)
@@ -190,9 +190,9 @@ PACKAGES aptitude I386
 # we want to use linux-kernel-headers-grml instead of linux-libc-dev:
 linux-kernel-headers-grml
 
-linux-image-2.6.35-grml
+linux-image-2.6.36-grml
 powernowd
-virtualbox-ose-guest-modules-2.6.35-grml virtualbox-ose-guest-utils virtualbox-ose-guest-x11
+virtualbox-ose-guest-modules-2.6.36-grml virtualbox-ose-guest-utils virtualbox-ose-guest-x11
 
 PACKAGES aptitude AMD64
-linux-image-2.6.35-grml64
+linux-image-2.6.36-grml64
index de467b2..121930e 100644 (file)
@@ -129,7 +129,7 @@ zoo
 zsh
 
 PACKAGES aptitude I386
-linux-image-2.6.35-grml
+linux-image-2.6.36-grml
 
 PACKAGES aptitude AMD64
-linux-image-2.6.35-grml64
+linux-image-2.6.36-grml64
index 854440b..498a535 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -59,8 +59,7 @@ Usage: $PN [options, see as follows]
    -u                      update existing chroot instead of rebuilding it from scratch
    -v <version_number>     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)
+   -z                      use ZLIB instead of LZMA compression
 
 Usage examples:
 
@@ -947,118 +946,29 @@ else
    # make sure we don't leave (even an empty) base.tgz:
    [ -f "$CHROOT_OUTPUT/base.tgz" ] && rm -f "$CHROOT_OUTPUT/base.tgz"
 
-   # $SQUASHFS_BINARY is specified in the configuration:
-   if [ -n "$SQUASHFS_BINARY" ] ; then
-      if which "$SQUASHFS_BINARY" >/dev/null 2>&1 ; then
-         log    "Using specified mksquashfs binary ${SQUASHFS_BINARY}"
-         einfo  "Using specified mksquashfs binary ${SQUASHFS_BINARY}" ; eend 0
-      else
-         log    "Error: specified mksquashfs binary ($SQUASHFS_BINARY) not found. Exiting."
-         eerror "Error: specified mksquashfs binary ($SQUASHFS_BINARY) not found. Exiting." ; eend 1
-         bailout
-      fi
-   # no $SQUASHFS_BINARY configured, let's find the according binary:
-   else
-      # Note: this is ALL for backward compatibility and yes: it's serious PITA.
-      # We'll definitely drop this once people build >=2.6.35-grml* only and
-      # the squashfs-tools vs. squashfs-lzma-tools vs. squashfs-lzma-tools4 and
-      # zlib/gzip vs. lzma situation is settling with new squashfs file format (v4)
-
-      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)"
-      else
-        KERNEL_IMAGE="unset"
-      fi
-
-      case $KERNEL_IMAGE in
-         *vmlinuz-2.6.31-grml*|*vmlinuz-2.6.33-grml*)
-           SQUASHFS_BINARY='mksquashfs-lzma'
-
-           # if using zlib compression kernel 2.6.3{1,3}-grml can be used with
-           # mksquashfs as well, therefore try to fall back if mksquashfs-lzma
-           # is NOT available
-           if ! which $SQUASHFS_BINARY >/dev/null 2>&1 && [ -n "$SQUASHFS_ZLIB" ] ; then
-             log "Squashfs binary $SQUASHFS_BINARY not available but building with zlib..."
-             log "\`-> trying to fall back to mksquashfs."
-             ewarn "Squashfs binary $SQUASHFS_BINARY not available but building with zlib..."
-             ewarn "\`-> trying to fall back to mksquashfs."
-             SQUASHFS_BINARY='mksquashfs'
-             eend 0
-           fi
-           ;;
-
-         *vmlinuz-2.6.35-grml*)
-           SQUASHFS_BINARY='mksquashfs-lzma4'
-
-           # if using zlib compression kernel 2.6.35-grml can be used with
-           # mksquashfs-lzma as well, therefore try to fall back if
-           # mksquashfs-lzma4 is NOT available
-           if ! which $SQUASHFS_BINARY >/dev/null 2>&1 && [ -n "$SQUASHFS_ZLIB" ] ; then
-             log "Squashfs binary $SQUASHFS_BINARY not available but building with zlib..."
-             log "\`-> trying to fall back to mksquashfs-lzma."
-             ewarn "Squashfs binary $SQUASHFS_BINARY not available but building with zlib..."
-             ewarn "\`-> trying to fall back to mksquashfs-lzma."
-             SQUASHFS_BINARY='mksquashfs-lzma'
-             eend 0
-           fi
-
-           # squashfs-tools 1:4.0-x work with 2.6.35-grml as well with default
-           # options, they just lack proper LZMA compression, so fall back as
-           # last option and inform user
-           if ! which $SQUASHFS_BINARY >/dev/null 2>&1 ; then
-             log   "Squashfs binary $SQUASHFS_BINARY not available either..."
-             log   "\`-> trying to fall back to mksquashfs, WARNING: very probably lacks LZMA compression."
-             ewarn "Squashfs binary $SQUASHFS_BINARY not available either..."
-             ewarn "\`-> trying to fall back to mksquashfs, WARNING: very probably lacks LZMA compression."
-             SQUASHFS_BINARY='mksquashfs'
-             eend 0
-           fi
-           ;;
-
-         *vmlinuz-2.6.23-grml*|*vmlinuz-2.6.26-grml*|*vmlinuz-2.6.28-grml*)
-            log    "Strongly outdated kernel version detected: $KERNEL_IMAGE"
-            eerror "Strongly outdated kernel version detected: $KERNEL_IMAGE"
-            eerror "|-> please update kernel version of live system to at *least* 2.6.31-grml[64]..."
-            eerror "\`-> or otherwise (not recommended though) set SQUASHFS_BINARY accordingly."
-            eend 1
-            bailout
-            ;;
-
-         *)
-           SQUASHFS_BINARY='mksquashfs'
-           log   "Could not detect grml kernel version and SQUASHFS_BINARY is unset."
-           ewarn "Could not detect grml kernel version and SQUASHFS_BINARY is unset."
-           ewarn "\`-> Assuming you want to use mksquashfs binary, if it fails please override with \$SQUASHFS_BINARY."
-           eend 0
-           ;;
-      esac
-
-      # check whether we have the according binary available:
-      if ! which $SQUASHFS_BINARY >/dev/null 2>&1 ; then
-         log    "Error: required mksquashfs binary (${SQUASHFS_BINARY}) could not be found. Exiting."
-         eerror "Error: required mksquashfs binary (${SQUASHFS_BINARY}) could not be found. Exiting."
-         eerror "|-> Make sure to install squashfs-tool, squashfs-lzma-tools and/or squashfs-lzma-tools4..."
-         eerror "|-> ... and set \$SQUASHFS_BINARY accordingly to the kernel version."
-         eerror "\`-> Visit http://grml.org/grml-live/#current_state for further details."
-         eend 1
-         bailout
-      fi
+   # if unconfigured default to squashfs-tools' mksquashfs binary
+   if [ -z "$SQUASHFS_BINARY" ] ; then
+      SQUASHFS_BINARY='mksquashfs'
+   fi
 
-   fi # end of SQUASHFS_BINARY handling
+   if which "$SQUASHFS_BINARY" >/dev/null 2>&1 ; then
+      log    "Using mksquashfs binary ${SQUASHFS_BINARY}"
+      einfo  "Using mksquashfs binary ${SQUASHFS_BINARY}" ; eend 0
+   else
+      log    "Error: mksquashfs binary ($SQUASHFS_BINARY) not found. Exiting."
+      eerror "Error: mksquashfs binary ($SQUASHFS_BINARY) not found. Exiting." ; eend 1
+      bailout
+   fi
 
    # use sane defaults if $SQUASHFS_OPTIONS isn't set
    if [ -z "$SQUASHFS_OPTIONS" ] ; then
      # use blocksize 256k as this gives best result with regards to time + compression
-     [[ "$SQUASHFS_BINARY" == mksquashfs-lzma* ]] && SQUASHFS_OPTIONS="-b 256k"
+     SQUASHFS_OPTIONS="-b 256k"
 
      # set lzma compression by default, unless -z option has been specified on command line
      if [ -z "$SQUASHFS_ZLIB" ] ; then
-       case "$SQUASHFS_BINARY" in
-         mksquashfs-lzma)  SQUASHFS_OPTIONS="$SQUASHFS_OPTIONS -lzma";;
-         mksquashfs-lzma4) SQUASHFS_OPTIONS="$SQUASHFS_OPTIONS -comp lzma";;
-       esac
+        SQUASHFS_OPTIONS="$SQUASHFS_OPTIONS -comp lzma"
      fi
-
    fi
 
    # support exclusion of files via exclude-file:
@@ -1071,24 +981,6 @@ else
       SQUASHFS_OPTIONS="$SQUASHFS_OPTIONS -e initrd.img* vmlinuz*"
    fi
 
-   # be backwards compatible, for squashfs-tools 1:3.2r2-9exp1 and squashfs-lzma-tools 3.3-1,
-   # make sure to drop the -nolzma option if it's not available:
-   if echo "$SQUASHFS_OPTIONS" | grep -q -- "-nolzma" ; then
-     if ! $SQUASHFS_BINARY --help 2>&1 | grep -q -- '-nolzma' ; then
-       log   "The $SQUASHFS_BINARY binary does NOT support the nolzma option, dropping it and using default mode."
-       ewarn "The $SQUASHFS_BINARY binary does NOT support the nolzma option, dropping it and using default mode."
-       SQUASHFS_OPTIONS="$(echo $SQUASHFS_OPTIONS | sed 's/-nolzma//g')"
-       eend 0
-     fi
-   fi
-
-   # if user doesn't want to use LZMA (e.g. running grml-live -z ...):
-   if [ -n "$SQUASHFS_ZLIB" ] ; then
-     if $SQUASHFS_BINARY --help 2>&1 | grep -q -- "-nolzma" ; then
-        SQUASHFS_OPTIONS="$SQUASHFS_OPTIONS -nolzma"
-     fi
-   fi
-
    # log stuff
    SQUASHFS_STDERR="$(mktemp -t grml-live.XXXXXX)"