* support multiple kernel versions installed in one single live-system
-* support configuration of grml-live through specific directory instead
- of /etc/grml/* [see http://bts.grml.org/grml/issue880]
-
* Provide different interfaces for easy and common use of grml-live:
- a console interface (using dialog/stfl/...)
- a graphical interface (for example using pygtk)
-etc/grml/fai/live-initramfs
usr/sbin
usr/share/doc/grml-live
usr/share/grml-live
* parse_config_files(mainconfig=/etc/grml/grml-live.conf, localconfig=/etc/grml/grml-live.local): read /etc/grml/grml-live.local and /etc/grml/grml-live.conf
* cmdline_opts(): parse commandline, overrides configuration from parse_config()
-* update_config_files(): write active configuration to configuration files (like /etc/grml/fai/apt/sources.list)
+* update_config_files(): write active configuration to configuration files (like ${GRML_FAI_CONFIG}/apt/sources.list)
Installation of files:
details of a build process.
CAUTION: grml-live does **not** use /etc/fai for configuration but instead
-provides and uses /etc/grml/fai. This ensures that it does not clash with
-default FAI configuration and packages, so you can use grml-live and FAI
+provides and uses ${GRML_FAI_CONFIG} which is pointing to /etc/grml/fai by default
+(unless overriden using the ''-D'' option). This ensures that it does not clash
+with default FAI configuration and packages, so you can use grml-live and FAI
completely independent at the same time!
[NOTE]
of grml-live, so please make sure you use /etc/grml/grml-live.conf as a base for
your own configuration file (usually /etc/grml/grml-live.local). Please also
notice that the configuration file specified via this option is **not** (yet)
-supported inside the scripts/hooks/classes at /etc/grml/fai/config. Instead use
+supported inside the scripts/hooks/classes at ${GRML_FAI_CONFIG}/config. Instead use
/etc/grml/grml-live.local for configuration stuff used inside
-/etc/grml/fai/config.
+${GRML_FAI_CONFIG}/config.
-d **DATE**::
ISO with release information for a specific date but have to build it in
advance. Usage example: '-d 2009-10-30'
+ -D **CONFIGURATION_DIRECTORY**::
+
+The specified directory is used as configuration directory for grml-live and its
+FAI. By default /etc/grml/fai is used as default configuration directory. If
+you want to have different configuration scripts, package definitions, etc. with
+without messing with the global configuration under /etc/grml/fai provided by
+grml-live this option provides you the option to use your own configuration
+directory. This directory is what's being referred to as ${GRML_FAI_CONFIG}
+throughout this documentation.
+
-F::
Force execution and do not prompt for acknowledgment of configuration.
Specify the Debian suite you want to use for your live-system. Defaults to
"squeeze" (being current Debian/stable). Supported values are: etch, lenny,
squeeze, sid. Debian "squeeze" requires a recent base.tgz
-(/etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz) or a recent version of
+(${GRML_FAI_CONFIG}/config/basefiles/$CLASSNAME.tar.gz) or a recent version of
debootstrap.
-t **TEMPLATE_DIRECTORY**::
GRML_SMALL, GRML_MEDIUM or GRML_FULL). The following files and directories are
relevant for class GRMLBASE by default:
- /etc/grml/fai/config/scripts/GRMLBASE/
- /etc/grml/fai/config/debconf/GRMLBASE
- /etc/grml/fai/config/class/GRMLBASE.var
- /etc/grml/fai/config/hooks/instsoft.GRMLBASE
- /etc/grml/fai/config/package_config/GRMLBASE
+ ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/
+ ${GRML_FAI_CONFIG}/config/debconf/GRMLBASE
+ ${GRML_FAI_CONFIG}/config/class/GRMLBASE.var
+ ${GRML_FAI_CONFIG}/config/hooks/instsoft.GRMLBASE
+ ${GRML_FAI_CONFIG}/config/package_config/GRMLBASE
Take a look at the next section for information about the concept of those
files/directories.
-----------------
The package selection part of the classes can be found in
-/etc/grml/fai/config/package_config whereas some further classes are defined for
-example in /etc/grml/fai/config/scripts/ so specific feature sets can be
+${GRML_FAI_CONFIG}/config/package_config whereas some further classes are defined for
+example in ${GRML_FAI_CONFIG}/config/scripts/ so specific feature sets can be
selected. The following classes are predefined:
* DEBORPHAN: get rid of all packages listed in output of Deborphan
Notice that grml-live ships FAI configuration files that do not use the same
namespace as the FAI packages itself. This ensures that grml-live does not clash
with your usual FAI configuration, so instead of /etc/fai/fai.conf (package
-fai-client) grml uses /etc/grml/fai/fai.conf instead. For more details see
+fai-client) grml uses ${GRML_FAI_CONFIG}/fai.conf instead. For more details see
below. To get an idea how another configuration or example files could look like
check out /usr/share/doc/fai-doc/examples/simple/ (provided by Debian package
fai-doc). Furthermore /usr/share/doc/fai-doc/fai-guide.html/ch-config.html
from /etc/grml/grml-live.local as well you have to specify them on the grml-live
commandline.
- /etc/grml/fai/fai.conf
+ ${GRML_FAI_CONFIG}/fai.conf
Main configuration file for FAI which specifies where all the configuration
files and scripts for FAI/grml-live can be found. By default the configuration
variables are FAI_CONFIG_SRC=file:///etc/grml/fai/config and
-FAI_CONFIGDIR=/etc/grml/fai/config - both pointing to a directory shipped by
+GRML_FAI_CONFIG=/etc/grml/fai/config - both pointing to a directory shipped by
grml-live out-of-the-box so you shouldn't have to configure anything in this
file.
- /etc/grml/fai/make-fai-nfsroot.conf
+ ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf
This file is used by make-fai-nfsroot(8) only. Usually you don't have to change
anything inside this file. If you want to modify NFSROOT though you can adjust
it there.
- /etc/grml/fai/NFSROOT
+ ${GRML_FAI_CONFIG}/NFSROOT
This file specifies the package list for creating the NFSROOT.
- /etc/grml/fai/apt/sources.list
+ ${GRML_FAI_CONFIG}/apt/sources.list
This file specifies which mirrors should be considered for retrieving the Debian
packages when creating the main chroot (including all the software you would
like to see included). Important: this file should *not* be adjusted manually!
Instead use the GRML_LIVE_SOURCES variable inside /etc/grml/grml-live.conf or
-/etc/grml/grml-live.local which modifies /etc/grml/fai/apt/sources.list
+/etc/grml/grml-live.local which modifies ${GRML_FAI_CONFIG}/apt/sources.list
on-the-fly via grml-live then. If you want to generally adjust apt configuration
-use FAI's fcopy command with /etc/grml/fai/config/files instead.
+use FAI's fcopy command with ${GRML_FAI_CONFIG}/config/files instead.
- /etc/grml/fai/config/
+ ${GRML_FAI_CONFIG}/config/
The main directory for configuration of FAI/grml-live. More details below.
- /etc/grml/fai/config/class/
+ ${GRML_FAI_CONFIG}/config/class/
This directory contains files which specify main configuration variables for the
FAI classes.
- /etc/grml/fai/config/debconf/
+ ${GRML_FAI_CONFIG}/config/debconf/
This directory provides the files for preseeding/configuration of debconf
through files.
- /etc/grml/fai/config/hooks/
+ ${GRML_FAI_CONFIG}/config/hooks/
This directory provides files for customising the build process through hooks.
Hooks are user defined programs or scripts, which are called during the
installation process.
- /etc/grml/fai/config/package_config/
+ ${GRML_FAI_CONFIG}/config/package_config/
Directory with lists of software packages to be installed or removed. The
different classes describe what should find its way to your ISO. When running
directory GRMLBASE contains a package list defining a minimum but still
reasonable package configuration.
- /etc/grml/fai/config/scripts/
+ ${GRML_FAI_CONFIG}/config/scripts/
Scripts for customising the ISO within the build process.
- /etc/grml/fai/live-initramfs/
+ ${GRML_FAI_CONFIG}/live-initramfs/
This directory provides the files used for building the initramfs/initrd via
live-initramfs(8).
and the ISO can be found inside /grml-live/grml-live/grml_isos/ then.
+[[grml_fai_config_variable]]
+What is $GRML_FAI_CONFIG?
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The variable '$GRML_FAI_CONFIG' is pointing to the directory /etc/grml/fai by
+default. To provide you a maximum of flexibility you can set up your own
+configuration directory (e.g. based on /etc/grml/fai) and use this directory
+running grml-live with the '-D <config_dir>' option. Now '$GRML_FAI_CONFIG'
+points to the specified directory instead of using /etc/grml/fai and all the
+configuration files, scripts and hooks will be taken from your
+'$GRML_FAI_CONFIG' directory.
+
[[fai-on-etch]]
Help, I'm using Debian etch and I don't have FAI version >3.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
well.
Unless you specify GRML_LIVE_SOURCES and/or FAI_DEBOOTSTRAP the default from
-/etc/grml/fai/apt/sources.list and /etc/grml/fai/make-fai-nfsroot.conf will be
+${GRML_FAI_CONFIG}/apt/sources.list and ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf will be
taken. If you customise the variables in /etc/grml/grml-live.conf then the two
files will be adjusted during runtime automatically.
+++ /dev/null
-# NOTE: This directory is *NOT* meant for manual customisation! Files in this
-# directory are written by grml-live only and any changes might be overridden.
-# You might consider using GRML_LIVE_SOURCES in /etc/grml/grml-live.conf*
-# or FAI's fcopy command with /etc/grml/fai/config/files instead!
-# NOTE: This file is *NOT* meant for manual customisation! This file is
-# modified by grml-live and any changes might be overridden.
-# You might consider using GRML_LIVE_SOURCES in /etc/grml/grml-live.conf*
-# or FAI's fcopy command with /etc/grml/fai/config/files instead!
+# NOTE: This file is used as input file for generating
+# ${GRML_FAI_CONFIG}/config/files/etc/apt/sources.list/GRMLBASE
+# which is copied to /etc/apt/sources.list to the chroot.
+# Do *NOT* modify this file directly but instead consider using
+# GRML_LIVE_SOURCES in /etc/grml/grml-live.conf* or FAI's
+# fcopy command with ${GRML_FAI_CONFIG}/config/files instead!
deb http://deb.grml.org/ grml-stable main
deb http://deb.grml.org/ grml-testing main
-deb http://cdn.debian.net/debian lenny main contrib non-free
+deb http://cdn.debian.net/debian squeeze main contrib non-free
-// Installed via /etc/grml/fai/config/files/etc/apt/apt.conf.d/15grml-live/GRMLBASE
+// Installed via ${GRML_FAI_CONFIG}/config/files/etc/apt/apt.conf.d/15grml-live/GRMLBASE
// work around http://trac.lighttpd.net/trac/ticket/657
Acquire::http::Pipeline-Depth 0; // added by grml-live"
# /etc/fstab - static file system information
#
# This file was deployed via grml-live's
-# /etc/grml/fai/config/scripts/GRMLBASE/30-fstab script, using
-# /etc/grml/fai/config/files/etc/fstab/GRMLBASE
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/30-fstab script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/fstab/GRMLBASE
#
# <filesystem> <mountpoint> <type> <options> <dump> <pass>
proc /proc proc rw,nosuid,nodev,noexec 0 0
# This file was deployed via grml-live's
-# /etc/grml/fai/config/scripts/GRMLBASE/34-hosts script, using
-# /etc/grml/fai/config/files/etc/hosts/GRMLBASE
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/34-hosts script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/hosts/GRMLBASE
127.0.0.1 $HOSTNAME localhost
--- /dev/null
+# This file was deployed via grml-live's
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/15-initsetup script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/inittab/GRMLBASE
+################################################################################
+# Filename: inittab
+# Purpose: init(8) configuration.
+# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2.
+################################################################################
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:respawn:/bin/zsh --login >/dev/tty1 2>&1 </dev/tty1
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/grml-halt
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/grml-reboot
+
+# What to do when CTRL-ALT-DEL is pressed.
+ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
+
+# Action on special keypress (ALT-UpArrow).
+kb::kbrequest:/bin/echo "Keyboard Request -- edit /etc/inittab to let this work."
+
+# What to do when the power fails/returns.
+pf::powerwait:/etc/init.d/powerfail start
+pn::powerfailnow:/etc/init.d/powerfail now
+po::powerokwait:/etc/init.d/powerfail stop
+
+# /sbin/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+# <id>:<runlevels>:<action>:<process>
+# 4 virtual consoles with immortal shells
+# Note that on most Debian systems tty7 is used by the X Window System.
+# Use tty8 a second xserver.
+1:12345:respawn:/sbin/rungetty tty1 --noclear -u root -g root --autologin root /usr/bin/zsh-login
+2:2345:respawn:/sbin/rungetty tty2 -u root -g root --autologin root /usr/bin/grml-screen
+3:2345:respawn:/sbin/rungetty tty3 -u root -g root --autologin root /usr/bin/grml-screen
+4:2345:respawn:/sbin/rungetty tty4 -u grml -g grml --autologin grml /usr/bin/grml-init
+5:2345:respawn:/sbin/rungetty tty5 -u grml -g grml --autologin grml /usr/bin/grml-init
+6:2345:respawn:/sbin/rungetty tty6 -u grml -g grml --autologin grml /usr/bin/grml-init
+9:2345:respawn:/sbin/getty 38400 tty9
+10:2345:respawn:/bin/zsh --login -c "/usr/sbin/grml-iptstate ; /usr/bin/grml-screen" >/dev/tty10 2>&1 </dev/tty10
+11:2345:respawn:/bin/zsh --login -c "/usr/bin/htop ; /usr/bin/grml-screen" >/dev/tty11 2>&1 </dev/tty11
+12:2345:respawn:/bin/zsh --login -c "/usr/bin/grml-init-multitail ; /usr/bin/grml-screen" >/dev/tty12 2>&1 </dev/tty12
+
+################################################################################
+# Please do NOT remove the line with the marker as it is important for the
+# bootoption serial/console. line(s) will be inserted here according to the
+# provided kernel command line:
+#grmlserial# is a marker, important for the bootoption serial/console
+################################################################################
+
+# Example how to put a getty on a serial line (for a terminal)
+# T0:23:respawn:/bin/bash -c "/sbin/getty -L ttyS0 -l /usr/bin/zsh-login 9600 vt100 || sleep 30"
+# T1:23:respawn:/bin/bash -c "/sbin/getty -L ttyS1 -l /usr/bin/zsh-login 9600 vt100 || sleep 30"
+# T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+# T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+
+#-- isdnutils begin
+# Change the lines below for your local setup and uncomment them.
+# Use "init q" to reread inittab.
+# look at the vboxgetty / mgetty manpage for more information (mgetty isn't
+# standard!)
+#
+#I0:2345:respawn:/usr/sbin/vboxgetty -d /dev/ttyI0
+#I1:2345:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&Eyourmsnhere OK AT&B512 OK' -s 38400 ttyI1
+#-- isdnutils end
+
+# Run X Window session from CDROM in runlevel 5
+#w5:5:wait:/bin/sleep 2
+#x5:5:wait:/etc/init.d/xsession start
+
+# Use line below to use secvpnmon. Use init q to reread inittab.
+# SVPN:2345:respawn:/usr/sbin/secvpnmon
--- /dev/null
+# This file was deployed via grml-live's
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/15-initsetup script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/inittab/GRML_SMALL
+################################################################################
+# Filename: inittab.small
+# Purpose: init(8) configuration for grml-small
+# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2.
+################################################################################
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:respawn:/bin/zsh --login >/dev/tty1 2>&1 </dev/tty1
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/grml-halt
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/grml-reboot
+
+# What to do when CTRL-ALT-DEL is pressed.
+ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
+
+# Action on special keypress (ALT-UpArrow).
+kb::kbrequest:/bin/echo "Keyboard Request -- edit /etc/inittab to let this work."
+
+# What to do when the power fails/returns.
+pf::powerwait:/etc/init.d/powerfail start
+pn::powerfailnow:/etc/init.d/powerfail now
+po::powerokwait:/etc/init.d/powerfail stop
+
+# /sbin/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+# <id>:<runlevels>:<action>:<process>
+# 4 virtual consoles with immortal shells
+# Note that on most Debian systems tty7 is used by the X Window System.
+# Use tty8 a second xserver.
+1:12345:respawn:/sbin/rungetty tty1 --noclear -u root -g root --autologin root /usr/bin/zsh-login
+2:2345:respawn:/sbin/rungetty tty2 -u grml -g grml --autologin grml /usr/bin/grml-init
+3:2345:respawn:/sbin/rungetty tty3 -u grml -g grml --autologin grml /usr/bin/grml-init
+#4:2345:respawn:/sbin/rungetty tty4 -u grml -g grml --autologin grml /usr/bin/grml-init
+#5:2345:respawn:/sbin/rungetty tty5 -u grml -g grml --autologin grml /usr/bin/grml-init
+#6:2345:respawn:/sbin/rungetty tty6 -u grml -g grml --autologin grml /usr/bin/grml-init
+#9:2345:respawn:/sbin/getty 38400 tty9
+#10:2345:respawn:/bin/zsh --login -c "/usr/sbin/grml-iptstate ; /usr/bin/grml-screen" >/dev/tty10 2>&1 </dev/tty10
+#11:2345:respawn:/bin/zsh --login -c "/usr/bin/htop ; /usr/bin/grml-screen" >/dev/tty11 2>&1 </dev/tty11
+#12:2345:respawn:/bin/zsh --login -c "/usr/bin/grml-init-multitail ; /usr/bin/grml-screen" >/dev/tty12 2>&1 </dev/tty12
+
+################################################################################
+# Please do NOT remove the line with the marker as it is important for the
+# bootoption serial/console. line(s) will be inserted here according to the
+# provided kernel command line:
+#grmlserial# is a marker, important for the bootoption serial/console
+################################################################################
+
+# Example how to put a getty on a serial line (for a terminal)
+# T0:23:respawn:/bin/bash -c "/sbin/getty -L ttyS0 -l /usr/bin/zsh-login 9600 vt100 || sleep 30"
+# T1:23:respawn:/bin/bash -c "/sbin/getty -L ttyS1 -l /usr/bin/zsh-login 9600 vt100 || sleep 30"
+# T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+# T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+
+#-- isdnutils begin
+# Change the lines below for your local setup and uncomment them.
+# Use "init q" to reread inittab.
+# look at the vboxgetty / mgetty manpage for more information (mgetty isn't
+# standard!)
+#
+#I0:2345:respawn:/usr/sbin/vboxgetty -d /dev/ttyI0
+#I1:2345:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&Eyourmsnhere OK AT&B512 OK' -s 38400 ttyI1
+#-- isdnutils end
+
+# Run X Window session from CDROM in runlevel 5
+#w5:5:wait:/bin/sleep 2
+#x5:5:wait:/etc/init.d/xsession start
+
+# Use line below to use secvpnmon. Use init q to reread inittab.
+# SVPN:2345:respawn:/usr/sbin/secvpnmon
--- /dev/null
+# This file was deployed via grml-live's
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/25-locales script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/locale.gen/GRMLBASE
+################################################################################
+# This file lists locales that you wish to have built. You can find a list
+# of valid supported locales at /usr/share/i18n/SUPPORTED. Other
+# combinations are possible, but may not be well tested. If you change
+# this file, you need to rerun locale-gen.
+
+de_AT ISO-8859-1
+de_AT.UTF-8 UTF-8
+de_AT@euro ISO-8859-15
+de_CH ISO-8859-1
+de_CH.UTF-8 UTF-8
+de_DE ISO-8859-1
+de_DE.UTF-8 UTF-8
+de_DE@euro ISO-8859-15
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_GB.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
--- /dev/null
+# This file was deployed via grml-live's
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/25-locales script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/locale.gen/GRMLBASE
+################################################################################
+# This file lists locales that you wish to have built. You can find a list
+# of valid supported locales at /usr/share/i18n/SUPPORTED. Other
+# combinations are possible, but may not be well tested. If you change
+# this file, you need to rerun locale-gen.
+
+# XXX GENERATED XXX
+#
+# NOTE!!! If you change this file by hand, and want to continue
+# maintaining manually, remove the above line. Otherwise, use the command
+# "dpkg-reconfigure locales" to manipulate this file. You can manually
+# change this file without affecting the use of debconf, however, since it
+# does read in your changes.
+
+be_BY CP1251
+be_BY@latin UTF-8
+be_BY.UTF-8 UTF-8
+bg_BG CP1251
+bg_BG.UTF-8 UTF-8
+da_DK ISO-8859-1
+da_DK.ISO-8859-15 ISO-8859-15
+da_DK.UTF-8 UTF-8
+de_AT@euro ISO-8859-15
+de_AT ISO-8859-1
+de_AT.UTF-8 UTF-8
+de_BE@euro ISO-8859-15
+de_BE ISO-8859-1
+de_BE.UTF-8 UTF-8
+de_CH ISO-8859-1
+de_CH.UTF-8 UTF-8
+de_DE@euro ISO-8859-15
+de_DE ISO-8859-1
+de_DE.UTF-8 UTF-8
+el_GR ISO-8859-7
+el_GR.UTF-8 UTF-8
+en_AU ISO-8859-1
+en_AU.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_GB.UTF-8 UTF-8
+en_IE@euro ISO-8859-15
+en_IE ISO-8859-1
+en_IE.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
+es_ES@euro ISO-8859-15
+es_ES ISO-8859-1
+es_ES.UTF-8 UTF-8
+fi_FI@euro ISO-8859-15
+fi_FI ISO-8859-1
+fi_FI.UTF-8 UTF-8
+fr_FR@euro ISO-8859-15
+fr_FR ISO-8859-1
+fr_FR.UTF-8 UTF-8
+ga_IE@euro ISO-8859-15
+ga_IE ISO-8859-1
+ga_IE.UTF-8 UTF-8
+he_IL ISO-8859-8
+he_IL.UTF-8 UTF-8
+it_IT@euro ISO-8859-15
+it_IT ISO-8859-1
+it_IT.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ja_JP.UTF-8 UTF-8
+nl_BE ISO-8859-1
+nl_BE.UTF-8 UTF-8
+nl_BE@euro ISO-8859-15
+nl_NL@euro ISO-8859-15
+nl_NL ISO-8859-1
+nl_NL.UTF-8 UTF-8
+pl_PL ISO-8859-2
+pl_PL.UTF-8 UTF-8
+pt_BR ISO-8859-1
+pt_BR.UTF-8 UTF-8
+pt_PT@euro ISO-8859-15
+pt_PT ISO-8859-1
+pt_PT.UTF-8 UTF-8
+ru_RU.CP1251 CP1251
+ru_RU ISO-8859-5
+ru_RU.KOI8-R KOI8-R
+ru_RU.UTF-8 UTF-8
+sk_SK ISO-8859-2
+sk_SK.UTF-8 UTF-8
+sl_SI ISO-8859-2
+sl_SI.UTF-8 UTF-8
+sv_SE ISO-8859-1
+sv_SE.ISO-8859-15 ISO-8859-15
+sv_SE.UTF-8 UTF-8
+tr_TR ISO-8859-9
+tr_TR.UTF-8 UTF-8
+zh_CN GB2312
+zh_CN.UTF-8 UTF-8
+zh_TW BIG5
+zh_TW.UTF-8 UTF-8
--- /dev/null
+# This file was deployed via grml-live's
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/25-locales script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/locale.gen/GRMLBASE
+################################################################################
+# This file lists locales that you wish to have built. You can find a list
+# of valid supported locales at /usr/share/i18n/SUPPORTED. Other
+# combinations are possible, but may not be well tested. If you change
+# this file, you need to rerun locale-gen.
+
+# XXX GENERATED XXX
+#
+# NOTE!!! If you change this file by hand, and want to continue
+# maintaining manually, remove the above line. Otherwise, use the command
+# "dpkg-reconfigure locales" to manipulate this file. You can manually
+# change this file without affecting the use of debconf, however, since it
+# does read in your changes.
+
+be_BY CP1251
+be_BY@latin UTF-8
+be_BY.UTF-8 UTF-8
+bg_BG CP1251
+bg_BG.UTF-8 UTF-8
+da_DK ISO-8859-1
+da_DK.ISO-8859-15 ISO-8859-15
+da_DK.UTF-8 UTF-8
+de_AT@euro ISO-8859-15
+de_AT ISO-8859-1
+de_AT.UTF-8 UTF-8
+de_BE@euro ISO-8859-15
+de_BE ISO-8859-1
+de_BE.UTF-8 UTF-8
+de_CH ISO-8859-1
+de_CH.UTF-8 UTF-8
+de_DE@euro ISO-8859-15
+de_DE ISO-8859-1
+de_DE.UTF-8 UTF-8
+el_GR ISO-8859-7
+el_GR.UTF-8 UTF-8
+en_AU ISO-8859-1
+en_AU.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_GB.UTF-8 UTF-8
+en_IE@euro ISO-8859-15
+en_IE ISO-8859-1
+en_IE.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
+es_ES@euro ISO-8859-15
+es_ES ISO-8859-1
+es_ES.UTF-8 UTF-8
+fi_FI@euro ISO-8859-15
+fi_FI ISO-8859-1
+fi_FI.UTF-8 UTF-8
+fr_FR@euro ISO-8859-15
+fr_FR ISO-8859-1
+fr_FR.UTF-8 UTF-8
+ga_IE@euro ISO-8859-15
+ga_IE ISO-8859-1
+ga_IE.UTF-8 UTF-8
+he_IL ISO-8859-8
+he_IL.UTF-8 UTF-8
+it_IT@euro ISO-8859-15
+it_IT ISO-8859-1
+it_IT.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ja_JP.UTF-8 UTF-8
+nl_BE ISO-8859-1
+nl_BE.UTF-8 UTF-8
+nl_BE@euro ISO-8859-15
+nl_NL@euro ISO-8859-15
+nl_NL ISO-8859-1
+nl_NL.UTF-8 UTF-8
+pl_PL ISO-8859-2
+pl_PL.UTF-8 UTF-8
+pt_BR ISO-8859-1
+pt_BR.UTF-8 UTF-8
+pt_PT@euro ISO-8859-15
+pt_PT ISO-8859-1
+pt_PT.UTF-8 UTF-8
+ru_RU.CP1251 CP1251
+ru_RU ISO-8859-5
+ru_RU.KOI8-R KOI8-R
+ru_RU.UTF-8 UTF-8
+sk_SK ISO-8859-2
+sk_SK.UTF-8 UTF-8
+sl_SI ISO-8859-2
+sl_SI.UTF-8 UTF-8
+sv_SE ISO-8859-1
+sv_SE.ISO-8859-15 ISO-8859-15
+sv_SE.UTF-8 UTF-8
+tr_TR ISO-8859-9
+tr_TR.UTF-8 UTF-8
+zh_CN GB2312
+zh_CN.UTF-8 UTF-8
+zh_TW BIG5
+zh_TW.UTF-8 UTF-8
# This file was deployed via grml-live's
-# /etc/grml/fai/config/scripts/GRMLBASE/39-modprobe script, using
-# /etc/grml/fai/config/files/etc/modprobe.d/loop-part.conf/GRMLBASE
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/39-modprobe script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/modprobe.d/loop-part.conf/GRMLBASE
#
# Filename: /etc/modprobe.d/loop-part.conf
# Purpose: Enable partitions for loop devices per default in Grml
# This file was deployed via grml-live's
-# /etc/grml/fai/config/scripts/GRMLBASE/39-modprobe script, using
-# /etc/grml/fai/config/files/etc/modprobe.d/radeon-kms.conf/GRMLBASE
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/39-modprobe script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/modprobe.d/radeon-kms.conf/GRMLBASE
#
# Filename: /etc/modprobe.d/radeon-kms.conf
# Purpose: Disable KMS for radeon, due to bugs on ES1000 radeons
--- /dev/null
+# This file was deployed via grml-live's
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/41-modules script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/modules/GRMLBASE
+################################################################################
+# This file should contain the names of kernel modules that are
+# to be loaded at boot time, one per line. Comments begin with
+# a `#', and everything on the line after them are ignored.
+
+evdev
+fuse
-grml - Linux for geeks
+Grml - Linux for geeks
# This file was deployed via grml-live's
-# /etc/grml/fai/config/scripts/GRMLBASE/35-network script, using
-# /etc/grml/fai/config/files/etc/network/interfaces/GRMLBASE
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/35-network script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/network/interfaces/GRMLBASE
# The loopback interface
auto lo
# Read runlevel.conf(5) man page for more information about this file.
############################################################################
# This file was deployed via grml-live's
-# /etc/grml/fai/config/scripts/GRMLBASE/15-initsetup script, using
-# /etc/grml/fai/config/files/etc/runlevel.conf/GRMLBASE
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/15-initsetup script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/runlevel.conf/GRMLBASE
############################################################################
# *IMPORTANT* This is the file used by the Grml live system.
# Please notice that customization of this file will not work with the
# See the man page for details on how to write a sudoers file.
# This file was deployed via grml-live's
-# /etc/grml/fai/config/scripts/GRMLBASE/20-sudo script, using
-# /etc/grml/fai/config/files/etc/sudoers/GRMLBASE
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/20-sudo script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/sudoers/GRMLBASE
# Host alias specification
#!/bin/sh
#
# This file was deployed via grml-live's
-# /etc/grml/fai/config/scripts/GRMLBASE/10-build-initramfs script, using
-# /etc/grml/fai/config/files/usr/share/initramfs-tools/scripts/init-top/grml/GRMLBASE
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/10-build-initramfs script, using
+# ${GRML_FAI_CONFIG}/config/files/usr/share/initramfs-tools/scripts/init-top/grml/GRMLBASE
#
# Filename: /usr/share/initramfs-tools/scripts/init-top/grml
# Purpose: Early boot progress handler
#!/bin/bash
-# Filename: /etc/grml/fai/config/hooks/instsoft.GRMLBASE
+# Filename: ${GRML_FAI_CONFIG}/hooks/instsoft.GRMLBASE
# Purpose: Grml specific software installation in the chroot, executed after updatebase
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
set -u
set -e
+GRML_SOURCES_LIST="$target/etc/apt/sources.list.d/grml.list"
+DEBIAN_SOURCES_LIST="$target/etc/apt/sources.list.d/debian.list"
+
# if hooks/updatebase.GRMLBASE fails for whatever reason
# and can't skip instsoft.GRMLBASE we have to make sure
# we exit here as well
# FAI softupdate executes upgrade only with the sources.list being
# present in the chroot - so let's do it on our own:
- if [ -r /etc/grml/fai/apt/sources.list ] ; then
- if [ -L $target/etc/apt/sources.list ] ; then
- rm $target/etc/apt/sources.list
- fi
-
- # install grml-live's (on the fly adjusted) sources.list config
- cp /etc/grml/fai/apt/sources.list $target/etc/apt/sources.list.d/grml-live.list
+ fcopy /etc/apt/sources.list
+
+ # when re-running grml-live with the -u option we do not want to use the
+ # sources.list config of the live system but grml-live's config instead,
+ # therefore temporarly move known files and restore them again later on
+ # through /etc/grml/fai/config/scripts/GRMLBASE/33-aptsetup:
+ if [ -r "$GRML_SOURCES_LIST" ] ; then
+ mv "$GRML_SOURCES_LIST" "${GRML_SOURCES_LIST}.unused"
+ fi
- # when re-running grml-live with the -u option we do not want to use the
- # sources.list config of the live system but grml-live's config instead,
- # therefore temporarly move known files and restore them again later on
- # through /etc/grml/fai/config/scripts/GRMLBASE/33-aptsetup:
- if [ -r $target/etc/apt/sources.list.d/grml.list ] ; then
- mv $target/etc/apt/sources.list.d/grml.list $target/etc/apt/sources.list.d/grml.unused
- fi
- if [ -r $target/etc/apt/sources.list.d/debian.list ] ; then
- mv $target/etc/apt/sources.list.d/debian.list $target/etc/apt/sources.list.d/debian.unused
- fi
+ if [ -r "$DEBIAN_SOURCES_LIST" ] ; then
+ mv "$DEBIAN_SOURCES_LIST" "${DEBIAN_SOURCES_LIST}.unused"
fi
# run it on our own, as updatebase is used at the wrong stage for our needs,
- # see /etc/grml/fai/config/hooks/updatebase.GRMLBASE
+ # see ${GRML_FAI_CONFIG}/hooks/updatebase.GRMLBASE
# the apt-get update might return an error if there's for example
# a hashsum mismatch on Debian mirror sources, we might want to continue
# but should warn the user
#!/bin/bash
-# Filename: /etc/grml/fai/config/hooks/updatebase.GRMLBASE
+# Filename: ${GRML_FAI_CONFIG}/hooks/updatebase.GRMLBASE
# Purpose: Updates the base packages of the system, prepare chroot for instsoft
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
skiptask configure
fi
-# no softupdate but updating chroot e.g. based on /etc/grml/fai/config/basefiles/*
+# no softupdate but updating chroot e.g. based on ${GRML_FAI_CONFIG}/basefiles/*
echo "Action $FAI_ACTION of FAI (hooks/updatebase.GRMLBASE) via grml-live running"
# install all apt related files
fcopy -r /etc/apt
-# remove grml-live's notice file from chroot:
-if [ -r $target/etc/apt/important_note.txt ] ; then
- grep -q GRML_LIVE_SOURCES $target/etc/apt/important_note.txt && rm $target/etc/apt/important_note.txt
-fi
-
-# install grml gpg key:
-fcopy /etc/apt/grml.key
+# install Grml gpg key:
$ROOTCMD apt-key add /etc/apt/grml.key
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/grml/grml_cleanup_chroot.deborphan
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/DEBORPHAN/98-clean-chroot
# Purpose: drop as many packages from grml as possible
# Authors: (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2.
################################################################################
+set -u
+set -e
+
# remove all packages not necessary anymore:
-apt-get -y --purge autoremove
+$ROOTCMD apt-get -y --purge autoremove
# remove packages until deborphan does not find anymore:
-while [ "$(deborphan)" != "" ] ; do
- apt-get -y --purge remove $(deborphan)
+while [ "$($ROOTCMD deborphan)" != "" ] ; do
+ $ROOTCMD apt-get -y --purge remove $(deborphan)
done
## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/01-packages
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/01-packages
# Purpose: check for packages that have been requested but could not be installed
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/02-run
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/02-run
# Purpose: cleanup after initscripts postinst for /run
# Authors: grml-team (grml.org)
# Bug-Reports: see http://grml.org/bugs/
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/05-hostname
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/05-hostname
# Purpose: set hostname of live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/10-build-initramfs
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/10-build-initramfs
# Purpose: configure live-initramfs and build initramfs for booting
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2 or any later version.
################################################################################
+set -u
set -e
fcopy /usr/share/initramfs-tools/scripts/init-top/grml
fcopy /etc/initramfs-tools/conf.d/xz-compress
if ! [ -f $target/usr/share/initramfs-tools/scripts/live ] ; then
- echo "Error: live-boot/-initramfs does not seem to be present, can not create initramfs. Exiting.">&2
- exit 1
+ echo "Error: live-boot/-initramfs does not seem to be present, can not create initramfs. Exiting.">&2
+ exit 1
fi
# The initramfs itself will be created through grml-live script itself.
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/15-initsetup
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/15-initsetup
# Purpose: configure init system for the live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# provide Grml's default file-rc configuration
fcopy /etc/runlevel.conf
+# provide Grml's inittab configuration
+fcopy /etc/inittab
+
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
--- /dev/null
+#!/bin/bash
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/16-depmod
+# Purpose: set up kernel's modules.dep
+# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2 or any later version.
+################################################################################
+
+set -u
+set -e
+
+if ! [ -x $target/sbin/depmod ] ; then
+ echo "Warning: depmod not installed"
+ exit 0
+fi
+
+# detect kernel version, assume newest kernel version
+for kernel in $(find $target/lib/modules/ -maxdepth 1 -type d -name [0-9]*) ; do
+ kernelversion=$(basename $kernel)
+ echo "Updating modules.dep for kernel $kernelversion"
+ $ROOTCMD depmod -ae -F /boot/System.map-"$kernelversion" "$kernelversion"
+done
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/18-timesetup
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/18-timesetup
# Purpose: apply default time and timezone settings
# Authors: (c) Thomas Lehmann <thomas.lehmann@kvt.de>
# Bug-Reports: send to author and see http://grml.org/bugs/
fi
## END OF FILE ################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/20-sudo
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/20-sudo
# Purpose: configure sudo setup of the live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
chmod 440 $target/etc/sudoers
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/21-usersetup
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/21-usersetup
# Purpose: adjust user setup of the live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/25-locales
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/25-locales
# Purpose: locales (language) configuration of the live system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2 or any later version.
################################################################################
+set -u
set -e
-if [ -z "$ROOTCMD" ] ; then
- echo "variable \$ROOTCMD not set, exiting to avoid any possible damage">&2
- exit 1
-fi
-
-# use full locales setup only in classes GRML_FULL and LOCALES
-if ifclass GRML_FULL || ifclass LOCALES ; then
- echo 'Using /etc/locale.gen.grml for locales generation'
- cp $target/etc/locale.gen.grml $target/etc/locale.gen
-else
- echo 'Using /etc/locale.gen.minimal for locales generation'
- cp $target/etc/locale.gen.minimal $target/etc/locale.gen
-fi
+# set up /etc/locale.gen, only GRML_FULL and LOCALES have
+# the full setup, GRMLBASE installs a minimal configuration
+fcopy /etc/locale.gen
# get rid of locales unless using class LOCALES
-# TODO
-# * this should be improved in the long run, ideas welcome :)
-# * what about /usr/share/i18n/locales?
+set +u
if ! ifclass LOCALES ; then
+set -u
echo 'Removing /usr/share/locale'
# get rid of the original
- $ROOTCMD rm -rf /usr/share/locale
+ rm -rf $target/usr/share/locale
# restore *empty* directories because otherwise installation/upgrade of packages might fail
[ -d "$target"/usr/share/locale ] || mkdir "$target"/usr/share/locale
$ROOTCMD dpkg-reconfigure -f noninteractive localepurge
fi
-if [ -x $target/usr/sbin/locale-gen ] ; then
- $ROOTCMD locale-gen
+if ! [ -x $target/usr/sbin/locale-gen ] ; then
+ echo 'Warning: locale-gen [package locales] not installed'
else
- echo 'Warning: locale-gen [package locales] not available'
+ echo "Running locale-gen"
+ $ROOTCMD locale-gen
fi
-if [ -x $target/usr/sbin/localepurge ] ; then
- $ROOTCMD localepurge
+if ! [ -x $target/usr/sbin/localepurge ] ; then
+ echo "Warning: localepurge not installed"
+else
+ echo "Running localepurge."
+ $ROOTCMD localepurge
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/30-fstab
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/30-fstab
# Purpose: create initial /etc/fstab for use on live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
sed -i "s/uid=USERNAME,gid=USERNAME/uid=$USERNAME,gid=$USERNAME/" $target/etc/fstab
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/31-motd
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/31-motd
# Purpose: replace motd
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fcopy /etc/motd
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/32-xorg
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/32-xorg
# Purpose: make sure there does not exist /etc/X11/xorg.conf by default
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/33-aptsetup
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/33-aptsetup
# Purpose: configure Debian package management of live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2 or any later version.
################################################################################
+set -u
set -e
-if [ -L "$target"/etc/apt/sources.list ] ; then
- echo "Note: $target/etc/apt/sources.list seems to be the old sources.list setup."
- echo "|-> Not modifying anything. If you want to switch to the new setup just"
- echo "\`-> remove symlink $target/etc/apt/sources.list"
- exit 0
-fi
-
-# remove leftover from /etc/grml/fai/config/hooks/instsoft.GRMLBASE:
-rm -f $target/etc/apt/sources.list.d/grml-live.list
+GRML_SOURCES_LIST="$target/etc/apt/sources.list.d/grml.list"
+DEBIAN_SOURCES_LIST="$target/etc/apt/sources.list.d/debian.list"
# restore original grml sources.list file (temporarly moved via
# /etc/grml/fai/config/hooks/instsoft.GRMLBASE):
-if [ -r $target/etc/apt/sources.list.d/grml.unused ] ; then
- mv $target/etc/apt/sources.list.d/grml.unused $target/etc/apt/sources.list.d/grml.list
+if [ -r "${GRML_SOURCES_LIST}.unused" ] ; then
+ mv "${GRML_SOURCES_LIST}.unused" "${GRML_SOURCES_LIST}"
fi
-if [ -r $target/etc/apt/sources.list.d/debian.unused ] ; then
- mv $target/etc/apt/sources.list.d/debian.unused $target/etc/apt/sources.list.d/debian.list
+if [ -r "${DEBIAN_SOURCES_LIST}.unused" ] ; then
+ mv "${DEBIAN_SOURCES_LIST}.unused" "${DEBIAN_SOURCES_LIST}"
fi
-GRML_SOURCES_LIST="$target/etc/apt/sources.list.d/grml.list"
-DEBIAN_SOURCES_LIST="$target/etc/apt/sources.list.d/debian.list"
-
[ -d $target/etc/apt/sources.list.d ] || mkdir $target/etc/apt/sources.list.d
# remove any existing sources.list and inform user about the new
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/34-hosts
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/34-hosts
# Purpose: configure /etc/hosts of live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
sed -i "s/\$HOSTNAME/$HOSTNAME/" $target/etc/hosts
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/35-network
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/35-network
# Purpose: set up /etc/network/interfaces of live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fcopy /etc/network/interfaces
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/36-cpufrequtils
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/36-cpufrequtils
# Purpose: configure cpufrequtils of live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/37-portmap
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/37-portmap
# Purpose: configure portmap of live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/38-udev
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/38-udev
# Purpose: configure udev of live-system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/39-modprobe
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/39-modprobe
# Purpose: adjust modprobe configuration
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fcopy /etc/modprobe.d/loop-part.conf
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/40-deborphan
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/40-deborphan
# Purpose: configure packages for deborphan (usually exception rules)
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
--- /dev/null
+#!/bin/bash
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/41-modules
+# Purpose: set up /etc/modules
+# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2 or any later version.
+################################################################################
+
+set -u
+set -e
+
+fcopy /etc/modules
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/90-update-alternatives
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/90-update-alternatives
# Purpose: set up /etc/alternatives/* according to grml preferences
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
set -u
set -e
-## Editor:
-# Too many people don't expect to get that, so use it only for grml-small
-# avoid "debug: unbound variable":
-set +u
-if ifclass GRML_SMALL ; then
-set -u
- if [ -r $target/usr/bin/vim.tiny ] ; then
- # update-alternates does not work without /usr/share/man because
- # it configures (in our case non-existent) manpages as well :-/
- # $ROOTCMD update-alternatives --set editor /usr/bin/vim.tiny
- # $ROOTCMD update-alternatives --set vi /usr/bin/vim.tiny
- $ROOTCMD ln -sf /etc/alternatives/editor /usr/bin/editor
- $ROOTCMD ln -sf /usr/bin/vim.tiny /etc/alternatives/editor
- $ROOTCMD ln -sf /etc/alternatives/vi /usr/bin/vi
- $ROOTCMD ln -sf /usr/bin/vim.tiny /etc/alternatives/vi
- $ROOTCMD ln -sf /etc/alternatives/vim /usr/bin/vim
- $ROOTCMD ln -sf /usr/bin/vim.tiny /etc/alternatives/vim
- $ROOTCMD ln -sf /etc/alternatives/view /usr/bin/view
- $ROOTCMD ln -sf /usr/bin/vim.tiny /etc/alternatives/view
- fi
-fi
-
if [ -r $target/usr/bin/vim.basic ] ; then
- $ROOTCMD update-alternatives --set editor /usr/bin/vim.basic
- $ROOTCMD update-alternatives --set vi /usr/bin/vim.basic
- $ROOTCMD update-alternatives --set vim /usr/bin/vim.basic
- $ROOTCMD update-alternatives --set view /usr/bin/vim.basic
+ $ROOTCMD update-alternatives --set editor /usr/bin/vim.basic
+ $ROOTCMD update-alternatives --set vi /usr/bin/vim.basic
+ $ROOTCMD update-alternatives --set vim /usr/bin/vim.basic
+ $ROOTCMD update-alternatives --set view /usr/bin/vim.basic
fi
if [ -r $target/usr/bin/vim.gtk ] ; then
- $ROOTCMD update-alternatives --set editor /usr/bin/vim.gtk
- $ROOTCMD update-alternatives --set vi /usr/bin/vim.gtk
- $ROOTCMD update-alternatives --set vim /usr/bin/vim.gtk
- $ROOTCMD update-alternatives --set view /usr/bin/vim.gtk
+ $ROOTCMD update-alternatives --set editor /usr/bin/vim.gtk
+ $ROOTCMD update-alternatives --set vi /usr/bin/vim.gtk
+ $ROOTCMD update-alternatives --set vim /usr/bin/vim.gtk
+ $ROOTCMD update-alternatives --set view /usr/bin/vim.gtk
fi
if [ -r $target/usr/bin/uxterm ] ; then
- $ROOTCMD update-alternatives --set x-terminal-emulator /usr/bin/uxterm
+ $ROOTCMD update-alternatives --set x-terminal-emulator /usr/bin/uxterm
elif [ -r $target/usr/bin/xterm ] ; then
- $ROOTCMD update-alternatives --set x-terminal-emulator /usr/bin/xterm
+ $ROOTCMD update-alternatives --set x-terminal-emulator /usr/bin/xterm
fi
if [ -r $target/etc/X11/cursors/whiteglass.theme ] ; then
- $ROOTCMD update-alternatives --set x-cursor-theme /etc/X11/cursors/whiteglass.theme
+ $ROOTCMD update-alternatives --set x-cursor-theme /etc/X11/cursors/whiteglass.theme
fi
if [ -r $target/usr/bin/iceweasel ] || [ -L $target/usr/bin/iceweasel ] ; then
- $ROOTCMD update-alternatives --set x-www-browser /usr/bin/iceweasel
+ $ROOTCMD update-alternatives --set x-www-browser /usr/bin/iceweasel
fi
if [ -r $target/usr/bin/w3m ] ; then
- $ROOTCMD update-alternatives --set www-browser /usr/bin/w3m
+ $ROOTCMD update-alternatives --set www-browser /usr/bin/w3m
fi
if [ -r $target/usr/bin/wm-ng ] ; then
- # activate wm-ng only if it is registered as x-window-manager:
- if $ROOTCMD update-alternatives --list x-window-manager | grep -q wm-ng ; then
- $ROOTCMD update-alternatives --set x-window-manager /usr/bin/wm-ng
- fi
+ # activate wm-ng only if it is registered as x-window-manager:
+ if $ROOTCMD update-alternatives --list x-window-manager | grep -q wm-ng ; then
+ $ROOTCMD update-alternatives --set x-window-manager /usr/bin/wm-ng
+ fi
fi
# sadly isn't available via update-alternates, anyway - use
# ntfs-3g (if available) as default for ntfs
if [ -r $target/sbin/mount.ntfs-3g ] || [ -L $target/sbin/mount.ntfs-3g ] ; then
- $ROOTCMD ln -sf /sbin/mount.ntfs-3g /sbin/mount.ntfs
+ $ROOTCMD ln -sf /sbin/mount.ntfs-3g /sbin/mount.ntfs
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
--- /dev/null
+#!/bin/bash
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/91-update-pciids
+# Purpose: update pciids
+# Authors: (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2.
+################################################################################
+
+if ifclass NO_ONLINE ; then
+ echo "Ignoring script 91-update-pciids as NO_ONLINE is set."
+ exit 0
+fi
+
+set -u
+set -e
+
+[ -x $target/usr/bin/timeout ] && TIMEOUT="10" || TIMEOUT=""
+
+if ! [ -x $target/usr/bin/update-pciids ] ; then
+ echo "Warning: update-pciids/update-usbids not installed"
+else
+ echo "Updating PCI- and USB-ids"
+ if [ -n "$TIMEOUT" ] ; then
+ $ROOTCMD timeout $TIMEOUT update-pciids
+ $ROOTCMD timeout $TIMEOUT update-usbids
+ else
+ $ROOTCMD update-pciids
+ $ROOTCMD update-usbids
+ fi
+fi
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
--- /dev/null
+#!/bin/bash
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/92-update-freshclam
+# Purpose: update freshclam database
+# Authors: (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2.
+################################################################################
+
+if ifclass NO_ONLINE ; then
+ echo "Ignoring script 91-update-pciids as NO_ONLINE is set."
+ exit 0
+fi
+
+set -u
+set -e
+
+[ -x $target/usr/bin/timeout ] && TIMEOUT="10" || TIMEOUT=""
+
+if ! [ -x $target/usr/bin/freshclam ] ; then
+ echo "freshclam not installed"
+else
+ echo "Updating clamav database via running freshclam"
+ if [ -n "$TIMEOUT" ] ; then
+ $ROOTCMD timeout $TIMEOUT /usr/bin/freshclam
+ else
+ $ROOTCMD /usr/bin/freshclam
+ fi
+fi
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/95-package-information
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/95-package-information
# Purpose: store package information of chroot system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2 or any later version.
################################################################################
+set -u
+set -e
+
HOSTNAME=''
[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
PACKAGE_LOG=/var/log/fai/"$HOSTNAME"/last/
# generate the package list and store it on the ISO itself for grml-docs:
-[ -d $target/usr/share/doc/grml-docs/packages ] || mkdir $target/usr/share/doc/grml-docs/packages
+[ -d $target/usr/share/doc/grml-docs/packages ] || mkdir -p $target/usr/share/doc/grml-docs/packages
COLUMNS=200 $ROOTCMD dpkg --list > $target/usr/share/doc/grml-docs/packages/dpkg_list
if ! [ -w "$PACKAGE_LOG" ] ; then
fi
## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/96-apt-listbugs
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/96-apt-listbugs
# Purpose: retreive list of bugreports of installed packages inside chroot
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2 or any later version.
################################################################################
+set -u
set -e
if [ -r $target/etc/apt/apt.conf.d/10apt-listbugs ] ; then
- if [ -x $target/usr/sbin/apt-listbugs ] ; then
- sed -i 's#//DPkg::#DPkg::#' $target/etc/apt/apt.conf.d/10apt-listbugs
- fi
+ if [ -x $target/usr/sbin/apt-listbugs ] ; then
+ sed -i 's#//DPkg::#DPkg::#' $target/etc/apt/apt.conf.d/10apt-listbugs
+ fi
fi
+set +u
if ifclass RELEASE ; then
-
+set -u
HOSTNAME=''
[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
fi
## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/97-apt-listchanges
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/97-apt-listchanges
# Purpose: configure apt-listchanges
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2 or any later version.
################################################################################
+set -u
set -e
# Defaults:
#apt-listchanges apt-listchanges/save-seen boolean true
if [ -x $target/usr/bin/apt-listchanges ] ; then
- echo 'apt-listchanges apt-listchanges/confirm boolean true' | $ROOTCMD debconf-set-selections
- echo 'apt-listchanges apt-listchanges/which select both' | $ROOTCMD debconf-set-selections
-
+ echo 'apt-listchanges apt-listchanges/confirm boolean true' | $ROOTCMD debconf-set-selections
+ echo 'apt-listchanges apt-listchanges/which select both' | $ROOTCMD debconf-set-selections
fi
if [ -r $target/etc/apt/listchanges.conf ] ; then
- sed -i "s/^which=news/which=both/" $target/etc/apt/listchanges.conf
- sed -i "s/^confirm=0/confirm=1/" $target/etc/apt/listchanges.conf
+ sed -i "s/^which=news/which=both/" $target/etc/apt/listchanges.conf
+ sed -i "s/^confirm=0/confirm=1/" $target/etc/apt/listchanges.conf
fi
## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/98-clean-chroot
# Purpose: clean up chroot system
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
-# License: This file is licensed under the GPL v2 or any later version.
+# License: This file is licensed under the GPL v2.
################################################################################
+set -u
set -e
-# remove some big directories when using class LATEX_CLEANUP:
-if ifclass LATEX_CLEANUP ; then
- cp /etc/grml/fai/grml/grml_cleanup_chroot.latex_cleanup $target/root/
- $ROOTCMD /root/grml_cleanup_chroot.latex_cleanup
- rm $target/root/grml_cleanup_chroot.latex_cleanup
+if ! [ $(ls $target/boot/config-* 2>/dev/null) ] ; then
+ echo "No kernel config files (/boot/config-*) found. No kernel-image package installed?" >&2
+ exit 1
fi
-# skip tasks which require only when using class NO_ONLINE:
-if ! ifclass NO_ONLINE ; then
- cp /etc/grml/fai/grml/grml_cleanup_chroot.online $target/root/
- $ROOTCMD /root/grml_cleanup_chroot.online
- rm $target/root/grml_cleanup_chroot.online
+echo "Creating ~/.zshrc"
+touch $target/root/.zshrc
+
+if [ -x $target/usr/sbin/localepurge ] ; then
+ echo "Running localepurge"
+ $ROOTCMD localepurge
+else
+ echo "Warning: localepurg not installed"
+fi
+
+# find /var -name \*.pid
+echo "Removing pid-files"
+find $target/var/run -name \*.pid -exec rm {} \;
+
+echo "Removing /var/lib/apt/lists/*-stuff, dpkg-status-old and pkgcache.bin"
+rm -f $target/var/lib/apt/lists/*Packages \
+ $target/var/lib/apt/lists/*Release \
+ $target/var/lib/apt/lists/*Sources \
+ $target/var/lib/apt/lists/*IndexDiff \
+ $target/var/lib/apt/lists/*.gpg \
+ $target/var/cache/apt-show-versions/* \
+ $target/var/cache/debconf/templates.dat-old \
+ $target/var/cache/apt/*.bin
+$ROOTCMD apt-get check 2>/dev/null
+$ROOTCMD dpkg --clear-avail
+$ROOTCMD apt-cache gencaches 2>/dev/null
+$ROOTCMD apt-get clean
+
+rm -f $target/var/lib/dpkg/status-old $target/var/lib/dpkg/available-old
+
+if ! [ -x $target/usr/bin/grep-dctrl ] ; then
+ echo "Warning: grep-dctrl not installed"
+else
+ echo "Cleaning up /var/lib/dpkg/status"
+ if $ROOTCMD grep-dctrl -v -F Status "purge ok not-installed" \
+ /var/lib/dpkg/status > $target/var/lib/dpkg/status.new ; then
+ mv $target/var/lib/dpkg/status.new $target/var/lib/dpkg/status
+ chmod 644 $target/var/lib/dpkg/status
+ chown root:root $target/var/lib/dpkg/status
+ fi
+fi
+
+echo "Removing host ssh-keys"
+rm -f $target/etc/ssh/*key*
+
+if [ -d $target/var/spool/squid/ ] ; then
+ echo "Cleaning /var/spool/squid/0*"
+ rm -rf $target/var/spool/squid/0*
+fi
+
+echo "Cleaning and removing some misc files and directories"
+find $target/etc -type f -name *.pre_fcopy -delete
+rm -rf $target/etc/sysconfig/* $target/etc/motd.dpkg-* $target/etc/auto.master.*dpkg* \
+ $target/etc/samba/*.SID $target/etc/samba/*.tdb \
+ $target/var/run/ $target/var/log/ksymoops/* $target/var/lock/* \
+ $target/var/state/* $target/var/log/nessus/* \
+ $target/halt $target/reboot $target/ash.static \
+ $target/etc/dhcpc/*.info $target/etc/dhcpc/resolv* \
+ $target/etc/*passwd- $target/etc/*shadow- \
+ $target/etc/*group- $target/var/spool/postfix/maildrop/* \
+ $target/etc/*.old $target/etc/*.original \
+ $target/etc/lvm/.cache $target/etc/lvm/cache/.cache \
+ $target/etc/lvm/backup/main $target/tmp/* \
+ $target/var/tmp/* $target/var/backups/* \
+ $target/var/lib/mysql $target/var/log/lilo_log.* $target/core*
+
+# remove only "temporary" or saved files in the given directories
+nuke(){
+ for i in $(find "$@" -name \*.gz -o -name \*.bz2 -o -name \*.0 2>/dev/null); do
+ rm -f "$i"
+ done
+}
+
+# set all files in the given directories to a length of zero
+zero(){
+ for i in $(find "$@" -type f -size +0 -not -name \*.ini 2>/dev/null); do
+ :> "$i"
+ done
+}
+
+echo "Cleaning log and cache directories"
+nuke ${target}/var/log ${target}/var/cache
+zero ${target}/var/local ${target}/var/log \
+ ${target}/var/spool ${target}/var/lib/games \
+ ${target}/var/cache/man ${target}/var/lib/nfs \
+ ${target}/var/lib/xkb ${target}/var/mail/grml \
+ ${target}/var/account/pacct
+
+# on /run we don't have to create it
+if [ -d ${target}/var/run ] ; then
+ echo "Recreate empty utmp and wtmp"
+ :>${target}/var/run/utmp
+ :>${target}/var/run/wtmp
+fi
+
+if ! [ -x $target/usr/sbin/update-ca-certificates ] ; then
+ echo "Warning: update-ca-certificates not installed"
+else
+ echo "Updating ca-certificates"
+ $ROOTCMD update-ca-certificates
+fi
+
+# regenerate ls.so.cache
+if ! [ -x $target/sbin/ldconfig ] ; then
+ echo "Warning: ldconfig not installed"
+else
+ echo "Updating ld.so.cache"
+ $ROOTCMD ldconfig
fi
-# make sure to drop from grml-small what's unnecessary:
-if ifclass GRML_SMALL ; then
- $ROOTCMD apt-get -y --purge remove aptitude
- for pkg in groff-base info locales man-db manpages nano; do
- $ROOTCMD apt-get --purge remove --yes $pkg || true
- done
+if [ -x $target/usr/bin/update-menus ] ; then
+ echo "Warning: update-menus not installed"
+else
+ echo "Updating windowmanager menus"
+ $ROOTCMD update-menus -v
fi
-# drop unnecessary software:
-if ifclass GRML_SMALL || ifclass DEBORPHAN ; then
- if [ -f /etc/grml/fai/grml/grml_cleanup_chroot.deborphan ] ; then
- cp /etc/grml/fai/grml/grml_cleanup_chroot.deborphan $target/root/
- $ROOTCMD /root/grml_cleanup_chroot.deborphan
- rm $target/root/grml_cleanup_chroot.deborphan
- fi
+if ! [ -x $target/usr/bin/mandb ] ; then
+ echo "Warning: mandb not installed"
+else
+ echo "Updating mandb"
+ $ROOTCMD mandb -c
+ $ROOTCMD man doesnotexist >/dev/null 2>&1 || true
fi
-# remove /usr/share/doc, /usr/share/info,... only in class REMOVE_DOCS:
-# (important: remove them *after* deinstalling packages, otherwise
-# removing packages might fail due to lack of /usr/share/man/...)
-if ifclass REMOVE_DOCS ; then
- cp /etc/grml/fai/grml/grml_cleanup_chroot.remove_docs $target/root/
- $ROOTCMD /root/grml_cleanup_chroot.remove_docs
- rm $target/root/grml_cleanup_chroot.remove_docs
+if ! [ -d $target/var/lib/clamav/ ] ; then
+ echo "Warning: clamav[-freshclam] not installed"
+else
+ echo "Cleaning /var/lib/clamav/"
+ rm -f $target/var/lib/clamav/clamav-*
+
+ echo "Setting up daily.cvd and main.cvd symlinks"
+ if [ -f $target/var/lib/clamav/daily.cvd ] ; then
+ mkdir -p $target/usr/share/doc/clamav-freshclam/examples/
+ ln -sf /var/lib/clamav/daily.cvd $target/usr/share/doc/clamav-freshclam/examples/
+ ln -sf /var/lib/clamav/main.cvd $target/usr/share/doc/clamav-freshclam/examples/
+ fi
fi
-# misc cleanup:
-if [ -f /etc/grml/fai/grml/grml_cleanup_chroot ] ; then
- cp /etc/grml/fai/grml/grml_cleanup_chroot $target/root/
- $ROOTCMD /root/grml_cleanup_chroot
- rm $target/root/grml_cleanup_chroot
+
+if ! [ -r $target/etc/ld.so.nohwcap ] ; then
+ echo "Creating /etc/ld.so.nohwcap"
+ touch $target/etc/ld.so.nohwcap
fi
-# make sure GRML_SMALL uses the appropriate configuration:
-if ifclass GRML_SMALL ; then
- cp $target/etc/inittab.small $target/etc/inittab
+# installation of resolvconf in chroot *with* /proc
+# is different from an installation without /proc,
+# so make sure it is OK in any case
+if ! [ -d $target/etc/resolvconf ] ; then
+ echo "Warning: resolvconf not installed"
+else
+ echo "Setting up resolvconf"
+ if [ -L $target/etc/resolvconf/run ] ; then # resolvconf with /run
+ # /etc/resolvconf/run symlinks to /run/resolvconf
+ RESOLV_CONF=/run/resolvconf/
+ else # no /run present
+ RESOLV_CONF=/etc/resolvconf/run/
+ fi
+
+ rm -rf ${target}/${RESOLV_CONF}
+ mkdir -p ${target}/${RESOLV_CONF}
+
+ touch ${target}/${RESOLV_CONF}/enable-updates
+ mkdir ${target}/${RESOLV_CONF}/interface
+
+ cat > ${target}/${RESOLV_CONF}/resolv.conf << EOF
+# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
+# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
+EOF
fi
-if ifclass RELEASE ; then
- # Remove all FAI logs from chroot via grml-live later then:
- touch $target/etc/grml_fai_release
- # Remove all files inside /root/ of chroot:
- rm -rf $target/root && mkdir -m 0755 $target/root
+if ! [ -x $target/usr/bin/updatedb ] ; then
+ echo "Warning: updatedb not installed"
+else
+ echo "Updating locate-database"
+ $ROOTCMD updatedb --prunepaths='/tmp /usr/tmp /var/tmp /grml /root /proc /sys'
fi
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
#!/bin/bash
-# Filename: /etc/grml/fai/config/scripts/GRMLBASE/99-finish-grml-build
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/99-finish-grml-build
# Purpose: finalize grml chroot build
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
set -u
set -e
-# Restore usual Debian behaviour
-#if [ -r "$target"/etc/apt/apt.conf.d/15grml-live ] ; then
-# rm -f "$target"/etc/apt/apt.conf.d/15grml-live
-#fi
-
# Restore original state from softupdate:
if [ -r $target/etc/policy-rc.d.conf ] ; then
sed -i "s/EXITSTATUS='101'/EXITSTATUS='0'/" $target/etc/policy-rc.d.conf
touch $target/etc/grml_cd
## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
--- /dev/null
+#!/bin/bash
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/90-update-alternatives
+# Purpose: set up /etc/alternatives/* according to grml preferences
+# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2 or any later version.
+################################################################################
+
+set -u
+set -e
+
+## Editor:
+# Too many people don't expect to get that, so use it only for grml-small
+# avoid "debug: unbound variable":
+set +u
+if ifclass GRML_SMALL ; then
+set -u
+ if [ -r $target/usr/bin/vim.tiny ] ; then
+ # update-alternates does not work without /usr/share/man because
+ # it configures (in our case non-existent) manpages as well :-/
+ # $ROOTCMD update-alternatives --set editor /usr/bin/vim.tiny
+ # $ROOTCMD update-alternatives --set vi /usr/bin/vim.tiny
+ $ROOTCMD ln -sf /etc/alternatives/editor /usr/bin/editor
+ $ROOTCMD ln -sf /usr/bin/vim.tiny /etc/alternatives/editor
+ $ROOTCMD ln -sf /etc/alternatives/vi /usr/bin/vi
+ $ROOTCMD ln -sf /usr/bin/vim.tiny /etc/alternatives/vi
+ $ROOTCMD ln -sf /etc/alternatives/vim /usr/bin/vim
+ $ROOTCMD ln -sf /usr/bin/vim.tiny /etc/alternatives/vim
+ $ROOTCMD ln -sf /etc/alternatives/view /usr/bin/view
+ $ROOTCMD ln -sf /usr/bin/vim.tiny /etc/alternatives/view
+ fi
+fi
--- /dev/null
+#!/bin/bash
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/GRML_SMALL/98-clean-chroot
+# Purpose: clean up Grml chroot on grml-small
+# Authors: (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2.
+################################################################################
+
+set -e
+set -u
+
+echo "Removing /var/cache/debconf/templates.dat"
+rm -f $target/var/cache/debconf/templates.dat
+
+echo "Removing /usr/share/ssh/blacklist.*"
+rm -f $target/usr/share/ssh/blacklist.DSA-1024 $target/usr/share/ssh/blacklist.RSA-2048
+
+# get rid of large kernel modules:
+echo "Removing some very large kernel drivers:"
+for kernel in $(find $target/lib/modules/ -maxdepth 1 -type d -name [0-9]*) ; do
+ kernelversion=$(basename $kernel)
+ if [ -r "${target}/lib/modules/${kernelversion}/kernel/fs/ocfs2/ocfs2.ko" ] ; then
+ echo "Removing /lib/modules/${kernelversion}/kernel/fs/ocfs2/ocfs2.ko"
+ rm -f "${target}/lib/modules/${kernelversion}/kernel/fs/ocfs2/ocfs2.ko"
+ fi
+ if [ -d "${target}/lib/modules/${kernelversion}/kernel/drivers/isdn/hisax/" ] ; then
+ echo "Removing /lib/modules/${kernelversion}/kernel/drivers/isdn/hisax"
+ rm -rf "${target}/lib/modules/${kernelversion}/kernel/drivers/isdn/hisax"
+ fi
+done
+
+# make sure to drop from grml-small what's unnecessary:
+$ROOTCMD apt-get -y --purge remove aptitude
+for pkg in groff-base info locales man-db manpages nano; do
+ $ROOTCMD apt-get --purge remove --yes $pkg || true
+done
+
+echo "Cleaning documentation directories"
+if [ -d $target/usr/share/doc/grml-docs ] ; then
+ mv $target/usr/share/doc/grml-docs $target/tmp/
+fi
+
+rm -rf $target/usr/share/doc
+mkdir $target/usr/share/doc
+
+if [ -d $target/tmp/grml-docs ] ; then
+ mv $target/tmp/grml-docs $target/usr/share/doc/grml-docs
+fi
+
+rm -rf $target/usr/share/gtk-doc/ \
+ $target/usr/share/man/ \
+ $target/usr/man \
+ $target/usr/share/info \
+ $target/var/cache/man/*
+
+echo "Creating /usr/share/info/..."
+mkdir -p $target/usr/share/info/
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
--- /dev/null
+#!/bin/bash
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/LATEX/98-clean-chroot
+# Purpose: remove some large LaTeX documentation directories
+# Authors: (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2.
+################################################################################
+
+set -u
+set -e
+
+rm -rf ${target}/usr/share/doc/texlive-latex-recommended/latex/ \
+ ${target}/usr/share/doc/texlive-latex-base/latex/ \
+ ${target}/usr/share/doc/texlive-base-bin/pdftex/thanh/ \
+ ${target}/usr/share/doc/texlive-latex-base/latex/base/ \
+ ${target}/usr/share/doc/texlive-latex-base/latex/hyperref/ \
+ ${target}/usr/share/doc/texlive-latex-base/generic/babel/ \
+ ${target}/usr/share/doc/texlive-latex-recommended/latex/koma-script/ \
+ ${target}/usr/share/doc/texmf/pgf/pgfmanual.pdf.gz
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
--- /dev/null
+#!/bin/bash
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/RELEASE/98-clean-chroot
+# Purpose: clean up $HOMEs for release
+# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2 or any later version.
+################################################################################
+
+set -u
+set -e
+
+# Remove all FAI logs from chroot via grml-live later then
+echo "Setting up /etc/grml_fai_release for grml-live"
+touch $target/etc/grml_fai_release
+
+echo "Removing all files inside /root"
+rm -rf $target/root
+mkdir -m 0755 $target/root
+
+echo "Removing all files inside /home/grml"
+rm -rf $target/home/grml
+mkdir -m 0755 $target/home/grml
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
--- /dev/null
+#!/bin/bash
+# Filename: ${GRML_FAI_CONFIG}/config/scripts/REMOVE_DOCS/98-clean-chroot
+# Purpose: remove docs in Grml chroot
+# Authors: (c) Michael Prokop <mika@grml.org>
+# License: This file is licensed under the GPL v2.
+################################################################################
+
+set -u
+set -e
+
+echo "Cleaning documentation directories"
+if [ -d $target/usr/share/doc/grml-docs ] ; then
+ mv $target/usr/share/doc/grml-docs $target/tmp/
+fi
+
+rm -rf $target/usr/share/doc
+mkdir $target/usr/share/doc
+
+if [ -d $target/tmp/grml-docs ] ; then
+ mv $target/tmp/grml-docs $target/usr/share/doc/grml-docs
+fi
+
+rm -rf $target/usr/share/gtk-doc/ \
+ $target/usr/share/man/ \
+ $target/usr/man \
+ $target/usr/share/info \
+ $target/var/cache/man/*
+
+echo "Creating /usr/share/info/..."
+mkdir -p $target/usr/share/info/
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
-# $Id: fai.conf 4294 2007-06-10 11:06:11Z lange $
-
-# /etc/fai/fai.conf -- configuration for FAI (Fully Automatic Installation)
+# fai.conf -- configuration for FAI (Fully Automatic Installation)
# Access to Debian mirror via NFS mounted directory
# If FAI_DEBMIRROR is defined, install clients mount it to $MNTPOINT
FAI_LOGPROTO=ssh
# how to access the fai config space
-# default if undefined here: nfs://`hostname`/$FAI_CONFIGDIR
# supported URL-types: nfs, file, cvs, cvs+ssh, svn+file, svn+http,...
+# NOTE: grml-live set's the values according to command line options,
+# please adjust here only if you know what you're doing
#FAI_CONFIG_SRC=nfs://yourservername$FAI_CONFIGDIR
-FAI_CONFIG_SRC=file:///etc/grml/fai/config
-FAI_CONFIGDIR=/etc/grml/fai/config
+#FAI_CONFIG_SRC=file:///etc/grml/fai/config
+#FAI_CONFIGDIR=/etc/grml/fai
# the following variables are read only for most users
+++ /dev/null
-#!/bin/bash
-# Filename: /etc/grml/fai/grml/grml_cleanup_chroot
-# Purpose: clean up grml chroot
-# Authors: (c) Michael Prokop <mika@grml.org>
-# Bug-Reports: see http://grml.org/bugs/
-# License: This file is licensed under the GPL v2.
-################################################################################
-
-# misc stuff
- umask 022
- . /etc/grml/lsb-functions || exit 6
- [ -x /lib64 ] && GRML64=yes || GRML64=''
-
-# detect kernel version, assume newest kernel version
- KERNEL=$(ls -1 /lib/modules/ | sort -r -u | head -1)
-
-if [ -f /usr/share/fonts/X11/misc/artwiz-cursor.pcf.gz ] ; then
- if dpkg-divert --list artwiz-cursor | grep -q /usr/share/fonts/X11/misc/cursor.pcf.gz ; then
- eerror "Broken diversion of artwiz-cursor, see #341397, trying to fix it"
- ( cd /usr/share/fonts/X11/misc/ &&
- dpkg-divert --remove /usr/share/fonts/X11/misc/cursor.pcf.gz && mkfontdir )
- eend 0
- fi
-fi
-
-# start of main cleanup process...
-if ! [ -r /boot/config-"$KERNEL" ] ; then
- eerror "/boot/config-$KERNEL not available. \$KERNEL not set to correct value?"
- eend 1
- exit 9
-fi
-
-einfo "Preparing grml-system: $(cat /etc/grml_version)" ; eend 0
-
-einfo "Setting up /etc/motd.tail"
-echo "" > /etc/motd.tail ; eend 0
-
-einfo "Setting up /etc/modules: "
-cat>/etc/modules<<EOF
-# /etc/modules: kernel modules to load at boot time.
-#
-# This file should contain the names of kernel modules that are
-# to be loaded at boot time, one per line. Comments begin with
-# a \`#', and everything on the line after them are ignored.
-EOF
-echo "" >> /etc/modules
-grep '^[a-z]' /etc/grml/modules >> /etc/modules
-eend 0
-
-einfo "Setting up /etc/inittab"
-cp /etc/inittab.grml /etc/inittab
-eend $?
-
-if [ "$(dpkg --list | awk '/^rc/ { print $2}')" != '' ] ; then
- einfo "Purging removed packages"
- dpkg --purge $(dpkg --list | awk '/^rc/ { print $2}')
- eend $?
-fi
-
-if [ -x /usr/bin/make -a -r /usr/src/Makefile ] ; then
- einfo "Cleaning up /usr/src/linux-headers-$KERNEL"
- ( cd /usr/src
- VER=$(/bin/ls -d /usr/src/linux-headers-* | head -1)
- VER=${VER##/usr/src/linux-headers-}
- if [ -n "$VER" ] ; then
- VER=$VER make clean && \
- VER=$VER make symlinks
- else
- make clean && \
- make symlinks
- fi
- )
- eend $?
-fi
-
-einfo "Creating ~/.zshrc"
- touch ~/.zshrc
-eend $?
-
-if [ -d /usr/lib/valgrind/x86-linux/ ] ; then
- einfo "Stripping /usr/lib/valgrind/x86-linux/"
- strip --strip-unneeded /usr/lib/valgrind/x86-linux/*
- eend $?
-else
- ewarn "valgrind not installed" ; eend 0
-fi
-
-if [ -x /usr/sbin/localepurge ] ; then
- einfo "Running localepurge"
- localepurge ; eend $?
-else
- ewarn "localepurg not available" ; eend 0
-fi
-
-# find /var -name \*.pid
-einfo "Removing pid-files"
- find /var/run -name \*.pid -exec rm {} \;
-eend $?
-
-einfo "Removing /var/lib/apt/lists/*-stuff, dpkg-status-old and pkgcache.bin"
- rm -f /var/lib/apt/lists/*Packages
- rm -f /var/lib/apt/lists/*Release
- rm -f /var/lib/apt/lists/*Sources
- rm -f /var/lib/apt/lists/*IndexDiff
- rm -f /var/lib/apt/lists/*.gpg
- rm -f /var/cache/apt-show-versions/*
- rm -f /var/cache/debconf/templates.dat-old
- rm -f /var/cache/apt/*.bin
- apt-get check 2>/dev/null
- dpkg --clear-avail
- apt-cache gencaches 2>/dev/null
- rm -f /var/lib/dpkg/status-old
- rm -f /var/lib/dpkg/available-old
-eend $?
-
-if ifclass GRML_SMALL ; then
- einfo "Removing /var/cache/debconf/templates.dat"
- rm -f /var/cache/debconf/templates.dat
- eend $?
-
- einfo "Removing /usr/share/ssh/blacklist.*"
- rm -f /usr/share/ssh/blacklist.DSA-1024 /usr/share/ssh/blacklist.RSA-2048
- eend $?
-fi
-
-# get rid of large kernel modules:
-if ifclass GRML_SMALL ; then
- einfo "Identified grml-small, removing some very large kernel drivers:"
- if [ -r "/lib/modules/${KERNEL}/kernel/fs/ocfs2/ocfs2.ko" ] ; then
- einfo "Removing /lib/modules/${KERNEL}/kernel/fs/ocfs2/ocfs2.ko"
- rm -f "/lib/modules/${KERNEL}/kernel/fs/ocfs2/ocfs2.ko"
- eend $?
- fi
- if [ -d "/lib/modules/${KERNEL}/kernel/drivers/isdn/hisax/" ] ; then
- einfo "Removing /lib/modules/${KERNEL}/kernel/drivers/isdn/hisax"
- rm -rf "/lib/modules/${KERNEL}/kernel/drivers/isdn/hisax"
- eend $?
- fi
-fi
-
-if [ -x /usr/bin/grep-dctrl ] ; then
- einfo "Cleaning up /var/lib/dpkg/status"
- grep-dctrl -v -F Status "purge ok not-installed" /var/lib/dpkg/status > status.new && \
- cp status.new /var/lib/dpkg/status && chmod 644 /var/lib/dpkg/status && \
- chown root:root /var/lib/dpkg/status && rm status.new && eend 0 || eend 1
-else
- ewarn "Warning: /usr/bin/grep-dctrl not available."
-fi
-
-einfo "Removing x-server-conffiles"
- rm -f /etc/X11/xorg.conf /etc/X11/XF86Config-4 \
- /etc/X11/XF86Config /etc/XF86Config /etc/XF86Config-4
-eend $?
-
-einfo "Removing ssh-keys"
- rm -f /etc/ssh/*key*
-eend $?
-
-einfo "Removing unused/backup files"
- find / -name *~ -print0 | xargs -0 rm -f
-eend $?
-
-# remove only "temporary" or saved files in the given directories
-nuke(){
- for i in `find "$@" -name \*.gz -o -name \*.bz2 -o -name \*.0 2>/dev/null`; do
- rm -f "$i"
- done
-}
-
-# set all files in the given directories to a length of zero
-zero(){
- for i in `find "$@" -type f -size +0 -not -name \*.ini 2>/dev/null`; do
- :> "$i"
- done
-}
-
-#for i in `find /usr/*/man -name \*.\[0-9ln\]` ; do
-# [ -f "$i".gz -o -f "$i".bz2 ] && rm -f "$i"
-#done
-
-if [ -d /var/spool/squid/ ] ; then
- einfo "Cleaning /var/spool/squid/0*"
- rm -rf /var/spool/squid/0*
- eend $?
-else
- ewarn "update-ca-certificates not installed" ; eend 0
-fi
-
-# delete old dowloaded packages
-einfo "Running apt-get clean"
- apt-get clean
-eend $?
-
-if [ -x /usr/bin/nvi ] ; then
- if ! [ -d /var/tmp/vi.recover ] ; then
- einfo "Creating nvi /var/tmp directory"
- mkdir -p /var/tmp/vi.recover
- chown root:root /var/tmp/vi.recover
- chmod 1777 /var/tmp/vi.recover
- eend $?
- fi
-else
- ewarn "nvi not installed" ; eend 0
-fi
-
-if [ -x /sbin/depmod ] ; then
- if [ -r /lib/modules/$KERNEL ] ; then
- einfo "Updating modules.dep for kernel $KERNEL"
- depmod -ae -F /boot/System.map-"$KERNEL" "$KERNEL"
- eend $?
- fi
-else
- ewarn "depmod not installed" ; eend 0
-fi
-
-einfo "Cleaning and removing some misc files and directories"
- find /etc -type f -name *.pre_fcopy -delete
- rm -f /etc/sysconfig/* /etc/motd.dpkg-new /etc/auto.master.distrib.dpkg-new \
- /etc/samba/*.SID /etc/samba/*.tdb /dev/mouse* /dev/cdrom* /dev/cdwriter* \
- /var/run/*/* /var/run/* /var/log/ksymoops/* /var/lock/*/* /var/lock/* \
- /var/state/*/* /var/state/* /var/log/nessus/* \
- /halt /reboot /ash.static /etc/dhcpc/*.info /etc/dhcpc/resolv* \
- /etc/*passwd- /etc/*shadow- /etc/*group- /var/spool/postfix/maildrop/* \
- /etc/*.old /etc/*.original \
- /etc/lvm/.cache /etc/lvm/cache/.cache /etc/lvm/backup/main 2>/dev/null
- rm -rf /tmp/* /var/tmp/* /var/tmp/.* /var/backups/* /.ssh /root/.ssh /home/*/.ssh \
- /home/grml/* /home/grml/.??* /var/lib/texmf/ls-R /var/spool/texmf/ls-R \
- /var/lib/mysql /var/log/lilo_log.* /core* 2>/dev/null
- nuke /var/log /var/cache
- zero /var/local /var/log /var/spool \
- /var/lib/games /var/cache/man \
- /var/lib/nfs /var/lib/xkb \
- /var/mail/grml /var/account/pacct
- # Recreate empty utmp and wtmp
- :>/var/run/utmp
- :>/var/run/wtmp
-eend $?
-
-if [ -x /usr/sbin/update-ca-certificates ] ; then
- einfo "Updating ca-certificates"
- update-ca-certificates 1>/dev/null
- eend $?
-else
- ewarn "update-ca-certificates not installed" ; eend 0
-fi
-
-# regenerate module dependencies and ls.so.cache
-if [ -x /sbin/ldconfig ] ; then
- einfo "Updating ld.so.cache"
- ldconfig
- eend $?
-else
- ewarn "ldconfig not installed" ; eend 0
-fi
-
-if [ -x /usr/bin/update-menus ] ; then
- einfo "Updating windowmanager menus"
- update-menus -v
- eend $?
-else
- ewarn "update-menus not installed" ; eend 0
-fi
-
-if [ -x /usr/bin/mktexlsr ] ; then
- einfo "Updating texhash"
- mktexlsr
- eend $?
-else
- ewarn "mktexlsr not installed" ; eend 0
-fi
-
-if [ -x /usr/bin/mandb ] ; then
- einfo "Updating mandb"
- mandb -c
- man doesnotexist >/dev/null 2>&1
- eend $?
-else
- ewarn "mandb not installed" ; eend 0
-fi
-
-if [ -d /var/lib/clamav/ ] ; then
- einfo "Cleaning /var/lib/clamav/"
- rm -f /var/lib/clamav/clamav-* ; eend $?
- if [ -f /var/lib/clamav/daily.cvd ] ; then
- ( mkdir -p /usr/share/doc/clamav-freshclam/examples/ && \
- cd /usr/share/doc/clamav-freshclam/examples/ && \
- ln -sf /var/lib/clamav/daily.cvd . && \
- ln -sf /var/lib/clamav/main.cvd . )
- fi
-else
- ewarn "clamav[-freshclam] not installed" ; eend 0
-fi
-
-if ! [ -r /etc/ld.so.nohwcap ] ; then
- einfo "Creating /etc/ld.so.nohwcap"
- touch /etc/ld.so.nohwcap
-fi
-
-# installation of resolvconf in chroot *with* /proc
-# is different from an installation without /proc,
-# so make sure it is OK in any case
-if [ -d /etc/resolvconf ] ; then
- if [ -L /etc/resolvconf/run ] ; then # resolvconf with /run
- # /etc/resolvconf/run symlinks to /run/resolvconf
- rm -rf /run/resolvconf
- mkdir -p /run/resolvconf
- else # no /run present
- rm -rf /etc/resolvconf/run
- mkdir /etc/resolvconf/run
- fi
-
- touch /etc/resolvconf/run/enable-updates
- mkdir /etc/resolvconf/run/interface
- cat > /etc/resolvconf/run/resolv.conf << EOF
-# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
-# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
-EOF
-fi
-
-if [ -x /usr/bin/updatedb ] ; then
- einfo "Updating locate-database"
- updatedb --prunepaths='/tmp /usr/tmp /var/tmp /grml /root /proc /sys'
- eend $?
-else
- ewarn "updatedb not installed" ; eend 0
-fi
-
-################################################################################
-# MISC STUFF
-# ~~~~~~~~~~
-# list dangling symlinks: ls **/*(-@)
-#
-# Security-audit:
-# find / \! -type l -perm -2000 -ls > audit/sgid-files
-# find / \! -type l -perm -0002 -ls > audit/world-writeable-files
-# find / \! -type l -perm -4000 -ls > audit/suid-files
-# find / ( -perm 4000 -o -perm -2000 \) -exec ls -ld {} \;
-# find / -perm -0777 -type d -ls > audit/writeable-dirs
-# find / -size +3000k > audit/big_files.new
-# find /all_filesystems -name ".. " -print -xdev | cat -vet
-# find / -name ".*" -print -xdev | cat -v > audit/hidden-files
-# find / -name ".. " -print -xdev | cat -vet > audit/unusal-file-names
-#
-# list non-stripped files:
-# file /usr/sbin/* | grep -v ', stripped' | grep -v 'perl' | grep -v 'Bourne' | grep -v 'python' | grep -v 'symbolic link'
-#
-# Is software by grml-repos up2date?
-# grep-dctrl --field Maintainer 'Michael Prokop' /var/lib/apt/lists/* | grep Package | awk '{print $2}' | xargs echo
-################################################################################
-
-## END OF FILE #################################################################
+++ /dev/null
-#!/bin/bash
-# Filename: /etc/grml/fai/grml/grml_cleanup_chroot_latex_cleanup
-# Purpose: remove some large LaTeX directories
-# Authors: (c) Michael Prokop <mika@grml.org>
-# Bug-Reports: see http://grml.org/bugs/
-# License: This file is licensed under the GPL v2.
-################################################################################
-
-# misc stuff
- . /etc/grml/lsb-functions || exit 6
-
-rm -rf /usr/share/doc/texlive-latex-recommended/latex/ \
- /usr/share/doc/texlive-latex-base/latex/ \
- /usr/share/doc/texlive-base-bin/pdftex/thanh/ \
- /usr/share/doc/texlive-latex-base/latex/base/ \
- /usr/share/doc/texlive-latex-base/latex/hyperref/ \
- /usr/share/doc/texlive-latex-base/generic/babel/ \
- /usr/share/doc/texlive-latex-recommended/latex/koma-script/ \
- /usr/share/doc/texmf/pgf/pgfmanual.pdf.gz
-
-## END OF FILE #################################################################
+++ /dev/null
-#!/bin/bash
-# Filename: /etc/grml/fai/grml/grml_cleanup_chroot_no_online
-# Purpose: execute tasks that require network access
-# Authors: (c) Michael Prokop <mika@grml.org>
-# Bug-Reports: see http://grml.org/bugs/
-# License: This file is licensed under the GPL v2.
-################################################################################
-
-# misc stuff
- umask 022
- . /etc/grml/lsb-functions || exit 6
- [ -x /usr/bin/timeout ] && TIMEOUT="10" || TIMEOUT=""
-
-if [ -x /usr/bin/freshclam ] ; then
- einfo "Updating clamav database via running freshclam"
- if [ -n "$TIMEOUT" ] ; then
- timeout $TIMEOUT /usr/bin/freshclam ; eend $?
- else
- /usr/bin/freshclam ; eend $?
- fi
-else
- ewarn "freshclam not installed" ; eend 0
-fi
-
-if [ -x /usr/bin/update-pciids ] ; then
- einfo "Updating PCI- and USB-ids"
- if [ -n "$TIMEOUT" ] ; then
- timeout $TIMEOUT update-pciids || echo "Warning: update-pciids was not successfull">&2
- timeout $TIMEOUT update-usbids || echo "Warning: update-usbids was not successfull">&2
- else
- update-pciids || echo "Warning: update-pciids was not successfull">&2
- update-usbids || echo "Warning: update-usbids was not successfull">&2
- fi
- eend $?
-else
- ewarn "update-pciids/update-usbids not installed" ; eend 0
-fi
-
-if [ -x /usr/sbin/nessus-update-plugins ] ; then
- einfo "Updating nessus-plugins"
- if [ -n "$TIMEOUT" ] ; then
- timeout $TIMEOUT nessus-update-plugins || echo "Warning: nessus-update-plugins was not successfull">&2
- else
- nessus-update-plugins || echo "Warning: nessus-update-plugins was not successfull">&2
- fi
- eend $?
-else
- ewarn "nessus-update-plugins not installed" ; eend 0
-fi
-
-## END OF FILE #################################################################
+++ /dev/null
-#!/bin/bash
-# Filename: /etc/grml/fai/grml/grml_cleanup_chroot_remove_docs
-# Purpose: remove docs in grml chroot
-# Authors: (c) Michael Prokop <mika@grml.org>
-# License: This file is licensed under the GPL v2.
-################################################################################
-
-. /etc/grml/lsb-functions || exit 6
-
-einfo "Cleaning documentation directories..."
-if [ -d /usr/share/doc/grml-docs ] ; then
- mv /usr/share/doc/grml-docs /tmp/
-fi
-
-rm -rf /usr/share/doc
-mkdir /usr/share/doc
-
-if [ -d /tmp/grml-docs ] ; then
- mv /tmp/grml-docs /usr/share/doc/grml-docs
-fi
-
-rm -rf /usr/share/gtk-doc/
-rm -rf /usr/share/man/
-rm -rf /usr/man
-rm -rf /usr/share/info
-rm -rf /var/cache/man/*
-eend $?
-
-einfo "Creating /usr/share/info/..."
-mkdir -p /usr/share/info/
-eend $?
-
-## END OF FILE #################################################################
TFTPROOT=/srv/tftp/fai
# location of the configuration space
-# FAI_CONFIGDIR=/etc/grml/fai/config
+# GRML_FAI_CONFIG=/etc/grml/fai/config
# Add a line for mirrorhost and installserver when DNS is not available
# on the clients. This line(s) will be added to $nfsroot/etc/hosts.
# Which Debian mirror do you want to use for main packages (after debootstrapping
# has been finished)?
# If you do *not* set GRML_LIVE_SOURCES here then grml-live will just take what
-# /etc/grml/fai/apt/sources.list provides by default. But please do *not*
-# manually edit /etc/grml/fai/apt/sources.list but instead use $GRML_LIVE_SOURCES.
+# ${GRML_FAI_CONFIG}/apt/sources.list provides by default. But please do *not*
+# manually edit ${GRML_FAI_CONFIG}/apt/sources.list but instead use $GRML_LIVE_SOURCES.
# Use the variable as your /etc/apt/sources.list looks like.
# GRML_LIVE_SOURCES="
#deb http://deb.grml.org/ grml-stable main
GRML_LIVE_VERSION='0.14.1'
PN="$(basename $0)"
CMDLINE="$0 $@"
-SOURCES_LIST_FILE='/etc/grml/fai/apt/sources.list'
ADDONS_LIST_FILE='/boot/isolinux/addons_list.cfg'
# }}}
-c <classe[s]> classes to be used for building the ISO via FAI
-C <configfile> configuration file for grml-live
-d <date> use specified date instead of build time as date of release
+ -D <configdir> use specified configuration directory instead of /etc/grml/fai
-F force execution without prompting
-g <grml_name> set the grml flavour name
-h display short usage information and exit
# }}}
# command line parsing {{{
-while getopts "a:C:c:d:g:i:I:o:r:s:t:v:bBFnNquVz" opt; do
+while getopts "a:C:c:d:D:g:i:I:o:r:s:t:v:bBFnNquVz" opt; do
case "$opt" in
a) ARCH="$OPTARG" ;;
b) BUILD_ONLY=1 ;;
c) CLASSES="$OPTARG" ;;
C) CONFIG="$OPTARG" ;;
d) DATE="$OPTARG" ;;
+ D) GRML_FAI_CONFIG="$OPTARG" ;;
g) GRML_NAME="$OPTARG" ;;
i) ISO_NAME="$OPTARG" ;;
I) CHROOT_INSTALL="$OPTARG" ;;
# }}}
# assume sane defaults (if not set already) {{{
-[ -n "$ARCH" ] || ARCH="$(dpkg --print-architecture)"
-[ -n "$BOOT_METHOD" ] || BOOT_METHOD='isolinux'
-[ -n "$CLASSES" ] || CLASSES="GRMLBASE,GRML_MEDIUM,I386"
-[ -n "$DATE" ] || DATE="$(date +%Y-%m-%d)"
-[ -n "$DISTRI_INFO" ] || DISTRI_INFO='Grml - Live Linux for system administrators '
-[ -n "$DISTRI_NAME" ] || DISTRI_NAME="grml"
-[ -n "$DISTRI_SPLASH" ] || DISTRI_SPLASH='grml.png'
-[ -n "$FORCE_ISO_REBUILD" ] || FORCE_ISO_REBUILD="false"
-[ -n "$GRML_FAI_CONFIG" ] || GRML_FAI_CONFIG='/etc/grml/fai'
-[ -n "$GRML_NAME" ] || GRML_NAME='grml'
-[ -n "$HOSTNAME" ] || HOSTNAME='grml'
-[ -n "$HYBRID_METHOD" ] || HYBRID_METHOD='manifold'
-[ -n "$NFSROOT_CONF" ] || NFSROOT_CONF='/etc/grml/fai/make-fai-nfsroot.conf'
-[ -n "$RELEASENAME" ] || RELEASENAME='grml-live rocks'
-[ -n "$SQUASHFS_EXCLUDES_FILE " ] || SQUASHFS_EXCLUDES_FILE='/etc/grml/fai/squashfs-excludes'
-[ -n "$SUITE" ] || SUITE='squeeze'
-[ -n "$TEMPLATE_DIRECTORY" ] || TEMPLATE_DIRECTORY='/usr/share/grml-live/templates'
-[ -n "$USERNAME" ] || USERNAME='grml'
-[ -n "$VERSION" ] || VERSION='0.0.1'
+[ -n "$ARCH" ] || ARCH="$(dpkg --print-architecture)"
+[ -n "$BOOT_METHOD" ] || BOOT_METHOD='isolinux'
+[ -n "$CLASSES" ] || CLASSES="GRMLBASE,GRML_MEDIUM,I386"
+[ -n "$DATE" ] || DATE="$(date +%Y-%m-%d)"
+[ -n "$DISTRI_INFO" ] || DISTRI_INFO='Grml - Live Linux for system administrators '
+[ -n "$DISTRI_NAME" ] || DISTRI_NAME="grml"
+[ -n "$DISTRI_SPLASH" ] || DISTRI_SPLASH='grml.png'
+[ -n "$FORCE_ISO_REBUILD" ] || FORCE_ISO_REBUILD="false"
+[ -n "$GRML_FAI_CONFIG" ] || GRML_FAI_CONFIG='/etc/grml/fai'
+[ -n "$GRML_NAME" ] || GRML_NAME='grml'
+[ -n "$HOSTNAME" ] || HOSTNAME='grml'
+[ -n "$HYBRID_METHOD" ] || HYBRID_METHOD='manifold'
+[ -n "$NFSROOT_CONF" ] || NFSROOT_CONF="${GRML_FAI_CONFIG}/make-fai-nfsroot.conf"
+[ -n "$RELEASENAME" ] || RELEASENAME='grml-live rocks'
+[ -n "$SOURCES_LIST_INPUT" ] || SOURCES_LIST_INPUT="${GRML_FAI_CONFIG}/apt/sources.list"
+[ -n "$SOURCES_LIST_OUTPUT" ] || SOURCES_LIST_OUTPUT="${GRML_FAI_CONFIG}/config/files/etc/apt/sources.list/GRMLBASE"
+[ -n "$SQUASHFS_EXCLUDES_FILE " ] || SQUASHFS_EXCLUDES_FILE="${GRML_FAI_CONFIG}/config/grml/squashfs-excludes"
+[ -n "$SUITE" ] || SUITE='squeeze'
+[ -n "$TEMPLATE_DIRECTORY" ] || TEMPLATE_DIRECTORY='/usr/share/grml-live/templates'
+[ -n "$USERNAME" ] || USERNAME='grml'
+[ -n "$VERSION" ] || VERSION='0.0.1'
# output specific stuff, depends on $OUTPUT (iff not set):
[ -n "$OUTPUT" ] || OUTPUT='/grml/grml-live'
echo " FAI classes: $CLASSES"
[ -r "$LOCAL_CONFIG" ] && echo " Local config: /etc/grml/grml-live.local"
[ -n "$CONFIG" ] && echo " Configuration: $CONFIG"
+ [ -n "$GRML_FAI_CONFIG" ] && echo " Config directory: $GRML_FAI_CONFIG"
echo " main directory: $OUTPUT"
[ -n "$CHROOT_OUTPUT" ] && echo " Chroot target: $CHROOT_OUTPUT"
[ -n "$BUILD_OUTPUT" ] && echo " Build target: $BUILD_OUTPUT"
# }}}
# on-the-fly configuration {{{
-if [ -n "$MIRROR_DIRECTORY" ] ; then
- if ! [ -d "$MIRROR_DIRECTORY/debian" ] ; then
- log "Error: $MIRROR_DIRECTORY/debian does not seem to exist. Exiting. [$(date)]"
- eerror "Error: $MIRROR_DIRECTORY/debian does not seem to exist. Exiting." ; eend 1
- bailout 1
- fi
- cat > "$SOURCES_LIST_FILE" << EOF
-# NOTE: This file is *NOT* meant for manual customisation! This file is
-# modified by grml-live and any changes might be overridden.
-# You might consider using GRML_LIVE_SOURCES in /etc/grml/grml-live.conf*
-# or FAI's fcopy command with /etc/grml/fai/config/files instead!
-EOF
- echo "$MIRROR_SOURCES" >> "$SOURCES_LIST_FILE"
- if [ -n "$GRML_LIVE_SOURCES" ] ; then
- echo "$GRML_LIVE_SOURCES" >> "$SOURCES_LIST_FILE"
- fi
-elif [ -n "$GRML_LIVE_SOURCES" ] ; then
- cat > "$SOURCES_LIST_FILE" << EOF
+mkdir -p "$(dirname $SOURCES_LIST_OUTPUT)" # might not be present in -D config space
+
+cat > "$SOURCES_LIST_OUTPUT" << EOF
# NOTE: This file is *NOT* meant for manual customisation! This file is
-# modified by grml-live and any changes might be overridden.
+# modified by grml-live and any changes will be overridden.
# You might consider using GRML_LIVE_SOURCES in /etc/grml/grml-live.conf*
-# or FAI's fcopy command with /etc/grml/fai/config/files instead!
+# or FAI's fcopy command with ${GRML_FAI_CONFIG}/config/files instead!
EOF
- echo "$GRML_LIVE_SOURCES" >> "$SOURCES_LIST_FILE"
+
+if [ -n "$MIRROR_DIRECTORY" ] ; then
+ if ! [ -d "$MIRROR_DIRECTORY/debian" ] ; then
+ log "Error: $MIRROR_DIRECTORY/debian does not seem to exist. Exiting. [$(date)]"
+ eerror "Error: $MIRROR_DIRECTORY/debian does not seem to exist. Exiting." ; eend 1
+ bailout 1
+ fi
+ echo "$MIRROR_SOURCES" >> "$SOURCES_LIST_OUTPUT"
+fi
+
+if [ -n "$GRML_LIVE_SOURCES" ] ; then
+ echo "$GRML_LIVE_SOURCES" >> "$SOURCES_LIST_OUTPUT"
fi
if [ -n "$FAI_DEBOOTSTRAP" ] ; then
- sed "s#^FAI_DEBOOTSTRAP=.*#FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"#" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
+ sed "s#^FAI_DEBOOTSTRAP=.*#FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"#" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
fi
# does this suck? YES!
esac
DIST=" etch\| stable\| lenny\| squeeze\| wheezy\| testing\| sid\| unstable"
-sed "s/\(^deb .\+\)\([ \t]*\)\($DIST\)\([ \t]*\)\(main \)/\1 \2$SUITE\4\5/" "$SOURCES_LIST_FILE" | sponge "$SOURCES_LIST_FILE"
+sed "s/\(^deb .\+\)\([ \t]*\)\($DIST\)\([ \t]*\)\(main \)/\1 \2$SUITE\4\5/" "$SOURCES_LIST_INPUT" | sponge "$SOURCES_LIST_OUTPUT"
for file in "$LIVE_CONF" "$CONFIG" "$LOCAL_CONFIG" ; do
if [ -n "$file" ] ; then
sed "s/^SUITE=.*/SUITE=\"$SUITE\"/" $file | sponge $file
done
# notice: activate grml-live pool only if we are building against unstable:
-if grep -qwe unstable -qwe sid "$SOURCES_LIST_FILE" ; then
- grep -q 'grml-live.*main' "$SOURCES_LIST_FILE" || \
- grep grml-stable "$SOURCES_LIST_FILE" | \
- sed 's/grml-stable/grml-live/' >> "$SOURCES_LIST_FILE"
+if grep -qwe unstable -qwe sid "$SOURCES_LIST_INPUT" ; then
+ grep -q 'grml-live.*main' "$SOURCES_LIST_OUTPUT" || \
+ grep grml-stable "$SOURCES_LIST_OUTPUT" | \
+ sed 's/grml-stable/grml-live/' >> "$SOURCES_LIST_OUTPUT"
else
- grep -q 'grml-live.*main' "$SOURCES_LIST_FILE" && \
- sed 's/.*grml-live.*/# removed grml-live repository/' "$SOURCES_LIST_FILE" | sponge "$SOURCES_LIST_FILE"
+ grep -q 'grml-live.*main' "$SOURCES_LIST_INPUT" && \
+ sed 's/.*grml-live.*/# removed grml-live repository/' "$SOURCES_LIST_INPUT" | sponge "$SOURCES_LIST_OUTPUT"
fi
for file in "$LIVE_CONF" "$CONFIG" "$LOCAL_CONFIG" "$NFSROOT_CONF" ; do
echo force-unsafe-io > "$CHROOT_OUTPUT/etc/dpkg/dpkg.cfg.d/unsafe-io"
log "Executed FAI command line:"
- log "BUILD_ONLY=$BUILD_ONLY BOOTSTRAP_ONLY=$BOOTSTRAP_ONLY fai $VERBOSE -C $GRML_FAI_CONFIG -c$CLASSES -u $HOSTNAME $FAI_ACTION $CHROOT_OUTPUT $FAI_ARGS"
- BUILD_ONLY="$BUILD_ONLY" BOOTSTRAP_ONLY="$BOOTSTRAP_ONLY" fai $VERBOSE -C "$GRML_FAI_CONFIG" -c"$CLASSES" -u \
- "$HOSTNAME" $FAI_ACTION "$CHROOT_OUTPUT" $FAI_ARGS | tee -a $LOGFILE
+ log "BUILD_ONLY=$BUILD_ONLY BOOTSTRAP_ONLY=$BOOTSTRAP_ONLY fai $VERBOSE -C $GRML_FAI_CONFIG -s file:///$GRML_FAI_CONFIG/config -c$CLASSES -u $HOSTNAME $FAI_ACTION $CHROOT_OUTPUT $FAI_ARGS"
+ BUILD_ONLY="$BUILD_ONLY" BOOTSTRAP_ONLY="$BOOTSTRAP_ONLY" fai $VERBOSE \
+ -C "$GRML_FAI_CONFIG" -s "file:///$GRML_FAI_CONFIG/config" -c"$CLASSES" \
+ -u "$HOSTNAME" "$FAI_ACTION" "$CHROOT_OUTPUT" $FAI_ARGS | tee -a $LOGFILE
RC="$PIPESTATUS" # notice: bash-only
rm -f "$CHROOT_OUTPUT/etc/dpkg/dpkg.cfg.d/unsafe-io"
# }}}
## END OF FILE #################################################################
-# vim:foldmethod=marker ts=2 ft=sh ai expandtab tw=80 sw=3
+# vim:foldmethod=marker ts=2 ft=sh ai expandtab tw=80 sw=2