summaryrefslogtreecommitdiffstats
path: root/src/initramfs/distro-specs/debian/functions-default
diff options
context:
space:
mode:
Diffstat (limited to 'src/initramfs/distro-specs/debian/functions-default')
-rw-r--r--src/initramfs/distro-specs/debian/functions-default209
1 files changed, 209 insertions, 0 deletions
diff --git a/src/initramfs/distro-specs/debian/functions-default b/src/initramfs/distro-specs/debian/functions-default
new file mode 100644
index 00000000..15639a2d
--- /dev/null
+++ b/src/initramfs/distro-specs/debian/functions-default
@@ -0,0 +1,209 @@
+# Copyright (c) 2003..2006 - RZ Uni Freiburg
+# Copyright (c) 2007..2010 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your feedback to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org
+#
+# Configuration script for general Debian distributions to setup linux
+# stateless clients (included within initial ramfs)
+
+# distro specific configuration variables used in the setup functions
+# (formerly done via config-*, these variables are disputable ...)
+# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw part
+# of the client filesystem
+# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on
+# TempFS usage
+# D_DIRINDXS - directories in client filesystem which should be present anyhow
+D_BINDMPTS="tmp root home"
+D_DIRINBINDMNT="/var/run /var/log /var/tmp /var/lib/gdm /etc/X11"
+D_RODIRSINRW="etc/gconf etc/X11/xkb /var/lib/texmf /var/cache/fontconfig \
+/var/lib/dpkg"
+D_DIRINDXS="/var/X11R6/compose-cache \
+/var/run/sysconfig/tmp /var/adm /var/lib/rpm /var/lib/nobody \
+/var/lib/pam_devperm /var/lib/bluetooth \
+/var/lib/texmf /var/lib/nfs/sm \
+/var/lib/misc /var/lib/acpi /var/spool/cron \
+/var/lock/subsys/sysconfig"
+
+# empty functions are defined at the beginning of /etc/functions
+
+# distro specific stuff to initialize
+preinit () {
+:
+}
+
+# distro specific function called from servconfig script
+config_distro () {
+ # clean the runlevel directories which will be populated by the stage3 setup
+ for dir in rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d ; do
+ rm -rf /mnt/etc/${dir}/*
+ done
+ # add the halt link to the 0 and 6 runlevel directories
+ ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt
+ ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot
+
+ # remove annoying udev rule set for changing eth interface
+ # fixme: not that simple, see ticket 187
+ #rm /mnt/etc/udev/rules.d/*persistent-net.rules >/dev/null 2>&1
+
+ # set default runlevel
+ sed -e "s/.*initdefault/id:3:initdefault/" -i /mnt/etc/inittab
+
+ # create needed auxiliary directories in (/mnt)/var,/etc,...
+ testmkd /mnt/var/run/screens root:utmp 0755
+
+ # add the slx specific path (/var/opt/openslx/bin) to the PATH variable
+ echo -e "# stuff generated by $0 (out of InitRamFS written $date)\n\
+export PATH=\"\$PATH:/var/opt/openslx/bin\"" >>/mnt/etc/profile
+
+ # check for inittab file
+ #test -f /mnt/etc/inittab || error "$df_erritab"
+}
+
+# initial (boot time) runlevel scripts
+initial_boot () {
+ local count=10
+ # boot.slx is a special runlevel script generated within initialramfs which
+ # should be executed before the normal runlevel scripts. Proper shutdown is
+ # not needed!?
+ for i in mountkernfs.sh mountvirtfs boot.slx udev procps.sh bootlogd \
+ $D_SPLASHY keymap.sh hwclock.sh sudo dbus-1; do
+ count=$(($count + 1))
+ [ $DEBUGLEVEL -ge 2 ] && echo "boot-runlevelscript $i"
+ ln -sf /etc/init.d/$i /mnt/etc/rcS.d/S${count}$i
+ done
+}
+
+# linking runlevel scripts
+rllinker () {
+ local script="$1"
+ local start="$2"
+ local stop="$3"
+ # empty runlevel links - decision on running certain services is passed via
+ # configuration or enabled through plugins
+ for i in rc2.d/K$stop$script rc3.d/K$stop$script \
+ rc2.d/S$start$script rc3.d/S$start$script ; do
+ if ! [ -f /mnt/etc/init.d/$script ]; then
+ echo "Target `pwd`../$script does not exist. Skipping links"
+ break
+ else
+ ln -sf ../init.d/$script /mnt/etc/$i
+ echo "Linked $script"
+ fi
+ done
+}
+
+# make a runlevel script
+d_mkrlscript () {
+ local switch=$1
+ local name=$2
+ local info=$3
+ case "$1" in
+ init)
+ echo -e "#!/bin/sh\n# skeleton of /etc/init.d/$name created \
+by $0\n# after you applied changes to the creation scripts you have to \
+rerun\n# the mkdxsinitrd script to get them applied\n\
+. /lib/lsb/init-functions\ncase \"\$1\" in\n start)\n\
+\tlog_begin_msg \"${info}\"" >>/mnt/etc/init.d/${name}
+ chmod u+x /mnt/etc/init.d/${name}
+ ;;
+ entry)
+ echo -e "\t${info}" >>/mnt/etc/init.d/${name}
+ ;;
+ close)
+ echo -e "\tlog_end_msg \$?\n\t;;\n stop)\n\tlog_end_msg \$?\n\t;;\
+ \nesac\nexit 0" >>/mnt/etc/init.d/${name}
+ ;;
+ esac
+}
+
+# group of functions for the normal runlevels - first parameter is start
+# second stop
+# function for ntp configuration
+config_ntp () {
+ if [ -f /mnt/etc/init.d/ntp -a "x$start_ntp" != "xno" ] ; then
+ echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \
+ >>/mnt/etc/passwd
+ testmkd /mnt/var/lib/ntp/var/run/ntp
+ rllinker "ntp" "07" "14"
+ fi
+}
+
+# function for atd
+config_atd () {
+ if [ "x$start_atd" = "xyes" ]; then
+ # fixme!! needed? Fix permissions
+ #testmkd /mnt/var/spool/cron/atjobs daemon:daemon
+ #testmkd /mnt/var/spool/cron/atspool daemon:daemon
+ rllinker "atd" "89" "01"
+fi
+}
+
+# function for configuration of cron services
+config_cron () {
+ if [ "x$start_cron" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/cron ] ; then
+ rllinker "cron" "89" "01"
+ testmkd /mnt/var/spool/cron/crontabs root:crontab
+ echo -e "# /etc/crontab - file generated by $0:\n\
+#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\
+\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \
+/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab
+ else
+ error "$df_errcron" nonfatal
+ fi
+ fi
+}
+
+# syslog service
+config_syslog () {
+ if [ "x$start_syslog" != "xno" ] ; then
+ : # fixme: handled by plugin in the future!
+ fi
+}
+
+# secure shell service
+config_sshd () {
+ if [ "x$start_sshd" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/ssh ] ; then
+ rllinker "ssh" "20" "02"
+ fi
+ fi
+}
+
+# snmp agent for remote monitoring
+config_snmp () {
+ if [ "x$start_snmp" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/snmpd ] ; then
+ rllinker "snmpd" "30" "03"
+ testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1
+ fi
+ # fixme!!
+ # write service monitor depending on services started
+ fi
+}
+
+# localization like consolefont and language
+dlocale () {
+ # console font setting program not available in Debian 4!?
+ d_mkrlscript entry boot.slx "#setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1"
+ # fixme!! check for proper operation
+ # sed -e "s,LANGUAGE=.*,LANGUAGE=\"${LANG}\" # set within initramfs," \
+ # -e "s,LANG=.*,LANG=\"${LANG}\" # set within initramfs," \
+ # -i /mnt/etc/environment
+ sed -e "s,LANG=.*,LANG=\"${LANG}\," # set within initramfs," \
+ -i /mnt/etc/default/locale
+}
+
+# configure hal, dbus, resmgr and services like that
+config_dreshal () {
+ if [ "x$start_dreshal" = "xyes" ]; then
+ :
+ fi
+}
+