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
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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
* 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
* 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 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
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
# 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
# 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 {{{
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
# 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
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
-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:
# 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:
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)"