executed with options '-q -B' and empty boot/isolinux works as well.
* Introduce $NO_WINDOWS_BINARIES which replaces $WINDOWS_BINARIES so
we can improve sanity checks and easify configuration.
+ * Support installation of local files (not being part of any Debian package)
+ through $CHROOT_INSTALL.
* Software related changes:
- Add git-email to GRML_FULL (thanks to Joerg Woelke for mentioning).
- Add aesfix, aeskeyfind, bios-memimage, chaosreader, ext3grep, fatback,
isolinux.cfg, syslinux.cfg with each other; provide a fallback
way to boot MirOS bsd4grml from both GRUB versions using modules
- -- Michael Prokop <mika@grml.org> Sun, 16 Aug 2009 22:57:46 +0200
+ -- Michael Prokop <mika@grml.org> Sun, 16 Aug 2009 23:36:14 +0200
grml-live (0.9.20) unstable; urgency=low
Specify name of ISO which will be available inside $OUTPUT_DIRECTORY/grml_isos
by default.
+ -I **CHROOT_INSTALL**::
+
+Specify name of source directory which provides files that should become part of
+the chroot/ISO. Not enabled by default. Note: the files are installed under '/'
+in the chroot so you have to create the rootfs structure on your own.
+
-o **OUTPUT_DIRECTORY**::
Main output directory of the build process of FAI. Some directories are created
# consider using lzma only for space reasons (resulting in longer
# build time but smaller ISO):
SQUASHFS_OPTIONS="-nolzma"
+ # install local files into the chroot
+ CHROOT_INSTALL="/etc/grml/fai/chroot_install"
## adjust if necessary (defaults to /grml/grml-live):
## OUTPUT="/srv/grml-live"
FAI_DEBOOTSTRAP="squeeze http://ftp.de.debian.org/debian/"
grml-live you can get commercial support via
link:http://grml-solutions.com/[Grml Solutions].
+[[install-local-files]]
+How to I install further files into the chroot/ISO?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Just point the configuration variable CHROOT_INSTALL to the directory which
+provides the files you would like to install. Note that the files are installed
+under '/' in the chroot - so you have to create the rootfs structure on your
+own. Usage example:
+
+ echo "CHROOT_INSTALL=\$GRML_FAI_CONFIG/chroot_install" >> /etc/grml/grml-live.local
+ mkdir -p /etc/grml/fai/chroot_install/usr/src/
+ wget example.org/foo.tar.gz
+ mv foo.tar.gz /etc/grml/fai/chroot_install/usr/src/
+ grml-live ...
+
[[local-debian-mirror]]
Can I use my own (local) Debian mirror?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Directory of configuration files for grml-live's FAI:
# GRML_FAI_CONFIG=/etc/grml/fai
+# Do you want to put any local files into the chroot?
+# If so then point CHROOT_INSTALL to a directory providing the files.
+# Note: the files are installed under '/' in the chroot -
+# so you have to create the rootfs structure on your own.
+# CHROOT_INSTALL="$GRML_FAI_CONFIG/chroot_install"
+
# Do you want to pass any additional arguments to FAI?
# FAI_ARGS=""
-g <grml_name>] set the grml flavour name
-h display short usage information and exit
-i <iso_name> name of ISO
+ -I <src_directory> directory which provides files that should become
+ part of the chroot/ISO
-o <output_directory> main output directory of the build process
-q skip mksquashfs
-r <release_name< release name
# }}}
# command line parsing {{{
-while getopts "a:C:c:g:i:o:r:s:t:v:bBFuqVz" opt; do
+while getopts "a:C:c:g:i:I:o:r:s:t:v:bBFuqVz" opt; do
case "$opt" in
a) ARCH="$OPTARG" ;;
b) BUILD_ONLY=1 ;;
C) CONFIG="$OPTARG" ;;
g) GRML_NAME="$OPTARG" ;;
i) ISO_NAME="$OPTARG" ;;
+ I) CHROOT_INSTALL="$OPTARG" ;;
o) OUTPUT="$OPTARG" ;;
q) SKIP_MKSQUASHFS=1 ;;
r) RELEASENAME="$OPTARG" ;;
[ -n "$ARCH" ] && echo " Architecture: $ARCH"
[ -n "$BOOT_METHOD" ] && echo " Boot method: $BOOT_METHOD"
[ -n "$TEMPLATE_DIRECTORY" ] && echo " Template files: $TEMPLATE_DIRECTORY"
+ [ -n "$CHROOT_INSTALL" ] && echo " Install files from directory to chroot: $CHROOT_INSTALL"
[ -n "$FAI_ARGS" ] && echo " additional arguments for FAI: $FAI_ARGS"
[ -n "$LOGFILE" ] && echo " Logging to file: $LOGFILE"
[ -n "$SQUASHFS_ZLIB" ] && echo " Using ZLIB (instead of LZMA) compression."
fi
einfo "Finished execution of stage 'boot'" ; eend 0
fi
-# ppc:
-elif [ "$ARCH" = powerpc ] ; then
- ewarn 'Warning: formorer, it is your turn. :)'>&2
-# unsuported:
else
+ log 'Error: Unsupported ARCH, sorry. Want to support it? Contribute!'
eerror 'Error: Unsupported ARCH, sorry. Want to support it? Contribute!' ; eend 1
fi
+# support installation of local files into the chroot/ISO
+if [ -n "$CHROOT_INSTALL" ] ; then
+ if ! [ -d "$CHROOT_INSTALL" ] ; then
+ log "Configuration variable \$CHROOT_INSTALL is set but not a directory; ignoring"
+ ewarn "Configuration variable \$CHROOT_INSTALL is set but not a directory; ignoring"
+ else
+ log "Copying local files to chroot as requested via \$CHROOT_INSTALL"
+ einfo "Copying local files to chroot as requested via \$CHROOT_INSTALL"
+ rsync -avz --inplace "$CHROOT_INSTALL"/ "$CHROOT_OUTPUT/"
+ eend $?
+ einfo "Make sure to run squashfs stage, otherwise your local files won't be part of the ISO."
+ fi
+fi
+
if [ -f "$BUILD_OUTPUT"/live/${GRML_NAME}.squashfs -a -z "$UPDATE" -a -z "$BUILD_ONLY" -a -z "$BUILD_DIRTY" ] ; then
log "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs'"
ewarn "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs'" ; eend 0