summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNico Dietrich2006-01-26 05:03:34 +0100
committerNico Dietrich2006-01-26 05:03:34 +0100
commitd1acea6820a5f7c7c0ada71241a9290d89323634 (patch)
tree7ca8364191c0f30551dcc3796485175d6c1baefe
parentminifix fehlende ROOTDIR-var (diff)
downloadcore-d1acea6820a5f7c7c0ada71241a9290d89323634.tar.gz
core-d1acea6820a5f7c7c0ada71241a9290d89323634.tar.xz
core-d1acea6820a5f7c7c0ada71241a9290d89323634.zip
neustrukturierung der distro-specs-verzeichnisstruktur
git-svn-id: http://svn.openslx.org/svn/openslx/dxs/ld4@35 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r--initrd/distro-specs/suse/.servconf.swpbin0 -> 12288 bytes
-rw-r--r--initrd/distro-specs/suse/config48
-rwxr-xr-xinitrd/distro-specs/suse/files/etc/init.d/boot286
-rwxr-xr-xinitrd/distro-specs/suse/files/etc/init.d/halt90
-rw-r--r--initrd/distro-specs/suse/functions-suse-10.0380
5 files changed, 804 insertions, 0 deletions
diff --git a/initrd/distro-specs/suse/.servconf.swp b/initrd/distro-specs/suse/.servconf.swp
new file mode 100644
index 00000000..2452cd37
--- /dev/null
+++ b/initrd/distro-specs/suse/.servconf.swp
Binary files differ
diff --git a/initrd/distro-specs/suse/config b/initrd/distro-specs/suse/config
new file mode 100644
index 00000000..52b22880
--- /dev/null
+++ b/initrd/distro-specs/suse/config
@@ -0,0 +1,48 @@
+# Description: distro specific settings for SuSE 10.0
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 06-01-2006
+#
+# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg
+
+
+# D_SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE
+# and RedHat, /etc/default in Debian and Ubuntu
+# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using
+# bind mounts
+# 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_BINDMNT - any code which is specific in bind mount environment
+# D_RCDIRS - runlevel directories relative to /etc
+# D_XF86CONFFILE - name and location of XFree/Xorg config file, e.g.
+# /etc/X11/xorg.conf or /etc/X11/XF86config, ...
+# D_XFONTPATH - path(es) where X11 fonts are installed (with trailing /*)
+# D_DEFAULTCOUNTRY - localization (see common functions)
+
+D_SYSCONFDIR=/sysconfig
+D_ETCEXCL="opt/gnome/gconf/*\n*.old\n*-\n*.rpmorig\n*.rpmnew\n\
+*.YaST2save\netc/autoinstall\nlogrotate*\nbootloader\n*~\n\
+*.SuSEconfig.saved\npptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\
+X11/xdm/pixmaps\n*.rpmsave\ndhclient*script\ninit.d/boot.d/*\n\
+init.d/rc3.d/*\ninit.d/rc5.d/*\nX11/xorg.conf*\n"
+D_BINDMPTS="tmp root media home"
+D_DIRINBINDMNT="/var/run /var/log /var/tmp"
+D_RODIRSINRW="/etc/opt/gnome/gconf /etc/X11/xkb /var/adm /var/lib/texmf /var/lib/rpm"
+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"
+D_BINDMNT="# spielspass fuer splash"
+D_INITDIR="/init.d"
+D_INITBOOTD="${D_INITDIR}/boot.d"
+D_RCDIRS="/init.d/rc0.d /init.d/rc1.d /init.d/rc2.d /init.d/rc3.d /init.d/rc4.d /init.d/rc5.d /init.d/rc6.d /init.d/rcS.d"
+D_INITSCRIPTS="boot.udev boot.proc boot.shm boot.klog boot.loadmodules boot.clock boot.sysctl boot.ipconfig"
+D_XF86CONFFILE="/etc/X11/xorg.conf"
+D_XFONTPATH="/usr/X11R6/lib/X11/fonts/*"
+D_DEFAULTCOUNTRY="de"
+
diff --git a/initrd/distro-specs/suse/files/etc/init.d/boot b/initrd/distro-specs/suse/files/etc/init.d/boot
new file mode 100755
index 00000000..f975046f
--- /dev/null
+++ b/initrd/distro-specs/suse/files/etc/init.d/boot
@@ -0,0 +1,286 @@
+#!/bin/sh
+#
+# Description: Modificated /etc/init.d/boot for use with Diskless
+# X Stations (v4.0) -> replaces /etc/init.d/boot
+# simply copied over the original file in initrd
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 08-01-2006
+# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg
+#
+# Version: 0.0.2b
+#
+# Some parts taken from /etc/init.d/boot by
+#
+# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany.
+# All rights reserved.
+#
+# Author: Ruediger Oertel <ro@suse.de>, 1996-2002
+# Werner Fink <werner@suse.de>, 1996-2003
+# Burchard Steinbild, 1996-2000
+# Florian La Roche, 1996
+#
+# first script to be executed from init on system startup
+#
+# Most of preparation is done within the initial ramdisk
+#
+################################################################
+LD_LIBRARY_PATH=/usr/lib
+
+# Before we do anything else, try at first to activate SELinux support
+test -d /selinux && mount -n -t selinuxfs none /selinux &>/dev/null
+
+# Configuration and coloring of the boot messages
+. /etc/rc.status
+. /etc/sysconfig/boot
+. /etc/sysconfig/logfile
+
+# Avoid be interrupted by child or keyboard
+trap "echo" SIGINT SIGSEGV SIGQUIT
+set +e
+
+# reasonable start values for bootsplash progress
+export progress=0
+export sscripts=45
+export kscripts=45
+
+echo -n "System Boot Control: "
+echo "Running $0"
+
+################################################################
+#
+
+# some important (un)mounts
+rc_reset
+echo -n "Mounting /proc, /sys and /dev/pts filesystems"
+# file /etc/fstab in some scenarios not available
+mount -n -t proc proc /proc &>/dev/null
+rc_status -v -r
+
+echo -n "Mounting /dev/pts"
+mount -t devpts -o mode=0620,gid=5 devpts /dev/pts
+rc_status -v -r
+if [ -d /sys ] ; then
+ while read a b c ; do
+ case "$b" in
+ sysfs)
+ echo -n "Mounting /sys filesystem"
+ echo -e "sysfs\t\t/sys\t\tsysfs\t\trw\t\t 0 0\n" \
+ >>/etc/fstab
+ mount -t sysfs sysfs /sys
+ rc_status -v -r
+ break
+ ;;
+ esac
+ done < /proc/filesystems
+fi
+
+# Start blogd, requires /proc and /dev/pts.
+# Export the real device in variable REDIRECT.
+test -x /sbin/blogd -a -n "$REDIRECT" && /sbin/blogd $REDIRECT
+if test -z "$REDIRECT" ; then
+ if (echo -n > /dev/tty) 2>/dev/null ; then
+ REDIRECT=/dev/tty
+ else
+ REDIRECT=/dev/console
+ fi
+fi
+
+################################################################
+#
+# Save old terminal settings and set -nl to avoid staircase
+# effect, do not lock scrolling, and avoid break characters.
+otty=$(stty -g)
+if test "$FLOW_CONTROL" = "yes" ; then
+ stty -nl ixon ignbrk -brkint
+else
+ stty -nl -ixon ignbrk -brkint
+fi
+
+################################################################
+#
+# Should we ask for interactive boot mode
+DO_CONFIRM=""
+read -t 2 check < /proc/cmdline 2> /dev/null
+case "$check" in
+ *confirm*) DO_CONFIRM=yes ;;
+esac
+test -z "$CONFIRM_PROMPT_TIMEOUT" && CONFIRM_PROMPT_TIMEOUT=5
+if test "$PROMPT_FOR_CONFIRM" = "yes" -a "$DO_CONFIRM" != "yes" ; then
+ echo -en "${extd}Enter Interactive startup mode?${norm}"
+ rc_timer_on "$CONFIRM_PROMPT_TIMEOUT" 37
+ read -t "$CONFIRM_PROMPT_TIMEOUT" -n 1 \
+ -p " ${extd}y${norm}/[${extd}n${norm}]\
+("${CONFIRM_PROMPT_TIMEOUT}s") " answer
+ rc_timer_off
+ case "$answer" in
+ [yYiI]) DO_CONFIRM=yes ;;
+ *) DO_CONFIRM= ;;
+ esac
+ unset answer
+ echo
+fi
+export DO_CONFIRM
+
+################################################################
+#
+# Common used variables
+bootrc=/etc/init.d/boot.d
+rex="[0-9][0-9]"
+failed=""
+skipped=""
+callord=""
+
+#
+# Initialize boosplash progressbar variables
+#
+. /etc/rc.splash B
+splashtrigger "rlchange B"
+
+################################################################
+#
+# Do we stop/start script in parallel?
+startpar=$(type -p startpar)
+test "$RUN_PARALLEL" = "yes" || startpar=""
+test "$DO_CONFIRM" = "yes" && startpar=""
+
+# Start bootup client scripts.
+if test -d ${bootrc}/ ; then
+ for i in ${bootrc}/S*; do
+ test -f $i || continue
+
+ B=${i##*/}
+ script=${B#*S$rex}
+ B=${B%$script}
+
+ rc_splash "$script start"
+
+ if test "$DO_CONFIRM" = "yes" ; then
+ rc_confirm -t 5 "Start bootup script ${script}" \
+ < $REDIRECT > $REDIRECT 2>&1
+ case "$?" in
+ 0) true ;;
+ 1) continue ;;
+ 2) DO_CONFIRM=""
+ esac
+ fi
+
+ if test -z "$startpar" ; then
+ blogger "$script start"
+
+ if test -x "$i" ; then
+ $i start
+ else
+ echo Running $i
+ /bin/sh $i b
+ rc_status -v1 -r
+ fi
+ status=$?
+ echo -en "$rc_reset"
+
+ case $status in
+ [1-4]) failed="${failed:+$failed }$script" ;;
+ [56]) skipped="${skipped:+$skipped }$script" ;;
+ [07]|*) ;;
+ esac
+
+ blogger "'$script start' exits with status $status"
+ else
+ # Parallel boot only for valid scripts
+ test -x $i || continue
+
+ # Current vector
+ eval cur=\${$B}
+ test -n "$cur" || callord="${callord:+$callord }$B"
+
+ # Remember scripts
+ eval $B="\${cur:+$i }\${cur:-$i}"
+ fi
+ done
+fi
+
+################################################################
+#
+# Call the scripts in correct order
+if test -n "$startpar" ; then
+ declare -i s
+ for p in $callord ; do
+ vect=$p
+ eval p=(\${$p})
+
+ blogger "run boot scripts (${p[@]##*S$rex})"
+ if test ${#p[@]} -eq 1 ; then
+ ${p} start
+ status=($?)
+ else
+ status=($($startpar -t 30 -T 3 -a start ${p[@]}))
+ fi
+ echo -en "$rc_reset"
+ blogger "exit status of (${p[@]##*S$rex}) is (${status[@]})"
+
+ s=0
+ for script in ${p[@]##*S$rex} ; do
+ case "${status[$s]}" in
+ [1-4]) failed="${failed:+$failed }$script" ;;
+ [56]) skipped="${skipped:+$skipped }$script" ;;
+ 0|*) ;;
+ esac
+ : $((s++))
+ done
+ done
+fi
+
+################################################################
+#
+# Be verbose and print stats
+echo -n "System Boot Control: "
+echo -e "The system has been ${stat}${extd}set up${norm}"
+if test -n "$failed" ; then
+ n=$((${#failed} + 7))
+ echo -n "Failed features: "
+ test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D"
+ echo -e "${warn}${failed}${norm}"
+fi
+if test -n "$skipped" ; then
+ n=$((${#skipped} + 7))
+ echo -n "Skipped features: "
+ test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D"
+ echo -e "${attn}${skipped}${norm}"
+fi
+
+
+################################################################
+#
+# Check for boot cycle detection
+test -s /lib/bootcycle/stats && . /lib/bootcycle/stats
+
+
+# Remember for master resource script
+if test "$DO_CONFIRM" = "yes" ; then
+ touch /var/run/do_confirm
+fi
+
+# Restore old terminal settings
+stty $otty
+
+################################################################
+#
+# Let zic set timezone - if present (from boot.ldconfig).
+if test -n "$TIMEZONE" -a -x /usr/sbin/zic ; then
+ echo -n Setting up timezone data
+ /usr/sbin/zic -l $TIMEZONE
+ rc_status -v -r
+fi
+
+################################################################
+#
+# start user defined bootup script.
+if test -f /etc/init.d/boot.local ; then
+ ECHO_RETURN=$rc_done_up
+ echo "Running /etc/init.d/boot.local"
+ /bin/sh /etc/init.d/boot.local || rc_failed
+ rc_status -v1; rc_reset
+ rc_splash "boot.local start"
+fi
+
+rc_reset
+exit 0
diff --git a/initrd/distro-specs/suse/files/etc/init.d/halt b/initrd/distro-specs/suse/files/etc/init.d/halt
new file mode 100755
index 00000000..65e5b0ad
--- /dev/null
+++ b/initrd/distro-specs/suse/files/etc/init.d/halt
@@ -0,0 +1,90 @@
+#! /bin/sh
+#
+# Description: Modificated /etc/init.d/halt for use with Diskless
+# X Stations (v4.0)
+# -> replaces /etc/init.d/halt
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 13-12-2005
+# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg
+#
+# Version: 0.0.3a
+#
+# Some parts taken from /etc/init.d/halt by
+#
+# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany.
+# All rights reserved.
+
+. /etc/rc.status
+. /etc/sysconfig/clock
+. /etc/sysconfig/suseconfig
+
+#
+# Avoid being interrupted by child or keyboard
+trap "echo" SIGINT SIGSEGV SIGQUIT SIGTERM
+set +e
+
+rc_reset
+case "$0" in
+ *halt)
+ message="The system is halted."
+ command="halt"
+ modprobe -q apm &>/dev/null
+ if test -e /proc/apm -o -e /proc/acpi -o -e /proc/sys/acpi ; then
+ command="halt -p"
+ else
+ read cmdline < /proc/cmdline
+ case "$cmdline" in
+ *apm=smp-power-off*|*apm=power-off*)
+ command="halt -p" ;;
+ esac
+ fi
+ ;;
+ *reboot)
+ message="Please stand by while rebooting the system..."
+ command="reboot"
+ ;;
+ *)
+ echo "$0: call me as \"halt\" or \"reboot\" please!"
+ exit 1
+ ;;
+esac
+
+# Write to wtmp file before unmounting /var (only needed with
+# persistent mounted filesystem)
+# $command -w
+
+rc_reset
+echo "Turning off swap"
+sync ; sync
+swapoff -a || rc_failed
+rc_status
+
+UMOUNT_FAILED=false
+rc_reset
+echo "Unmounting file systems and devices"
+for unmount in /media/* ; do
+ umount -fnt $unmount &>/dev/null
+done
+umount -fnt /tmp/scratch &>/dev/null
+eject /dev/zip &>/dev/null &
+rc_status -v1
+
+umount -anft noproc,nonfs &>/dev/null
+
+rc_reset
+# maybe we use multiple devices
+if test -f /etc/mdtab -a -x /sbin/mdadd ; then
+ echo -n "Disable Multiple Devices"
+ /sbin/mdstop -a || rc_failed
+ rc_status -v1
+fi
+
+sync
+
+# show "the system is down" message
+if test "$SPLASH" = yes ; then
+ /sbin/splash -q -p 65535 -t "isdown"
+fi
+
+echo $message
+exec $command -d -f
diff --git a/initrd/distro-specs/suse/functions-suse-10.0 b/initrd/distro-specs/suse/functions-suse-10.0
new file mode 100644
index 00000000..8b63085f
--- /dev/null
+++ b/initrd/distro-specs/suse/functions-suse-10.0
@@ -0,0 +1,380 @@
+# Description: configuration script for SuSE 10.0 to configure
+# linux diskless clients (included by init, hwautocfg,
+# servconfig, ... within initial ramdisk after inclusion
+# of the main functions file)
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 20-01-2006
+# Blabla
+# Blub
+#
+# Copyright: (c) 2006 - RZ Universitaet Freiburg
+#
+# Version: 0.2.1a
+
+# distro specific stuff to initialize
+preinit () {
+ # do nothing yet
+ echo > /dev/null
+}
+
+# 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
+for i in rc3.d/K$stop$script rc5.d/K$stop$script \
+ rc3.d/S$start$script rc5.d/S$start$script ; do
+ ln -sf ../$script /mnt/etc/init.d/$i
+done
+}
+
+# group of functions for the normal runlevels - first parameter is start
+# second stop
+# function for ntp configuration
+config_ntp () {
+local start=$1
+local stop=$2
+if [ -f /mnt/etc/init.d/ntp ] ; then
+ strinfile "ntp:" /mnt/etc/passwd || \
+ echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \
+ >>/mnt/etc/passwd
+ testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null
+ if [ "x$start_ntp" = "xinitial" ] ; then
+ echo -e "\t# entry added by $0: $date" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+ echo -e "\tntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+ else
+ rllinker "ntp" "$start" "$stop"
+ fi
+fi
+}
+
+# function for atd
+config_atd () {
+if [ "x$start_atd" = "xyes" ]; then
+ rllinker "atd" "$1" "$2"
+fi
+}
+
+# function for configuration of cron services
+config_cron () {
+if [ "x$start_cron" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/cron ] ; then
+ testmkd /mnt/var/spool/cron/lastrun
+ testmkd /mnt/var/spool/cron/tabs
+ 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 " The cron start script seems not to be installed, so requesting \
+\n the start of cron services make no sense." nonfatal
+ fi
+fi
+}
+
+# syslog service
+config_syslog () {
+if [ "x$start_syslog" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/syslog ] ; then
+ # how to configure remote log server?
+ # logging servers might be specified in $log_servers (from e.g. dhcp)
+ echo -e "# File modified by $0 within initial ramdisk" \
+ > /etc/syslog-ng.conf
+ sed -e "s,.*dhcp/dev.*,," -e "s,.*named/dev.*,," \
+ /mnt/etc/syslog-ng/syslog-ng.conf >> /etc/syslog-ng.conf
+ cp /etc/syslog-ng.conf /mnt/etc/syslog-ng/syslog-ng.conf
+ rllinker syslog "$1" "$2"
+ fi
+fi
+}
+
+# secure shell service
+config_sshd () {
+if [ "x$start_sshd" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/sshd ] ; then
+ testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty
+ rllinker "sshd" "$1" "$2"
+ 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" "$1" "$2"
+ testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1
+ fi
+ # fixme!!
+ # write service monitor depending on services started
+ fi
+}
+
+# x11 stuff
+descsession () {
+if [ "x$desktop_session" != "x" ] ; then
+ windowmanagers="$desktop_session"
+ # write script for desktop-session chooser
+ if [ "x$vmware" != "xno" ] ; then
+ debug=""
+ [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1"
+ echo -e "#!/bin/sh\n#\n# file generated by\n#\t$0:\n#\t$date\n
+OSTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$1}'\`
+SPECTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$2}'\`\n
+OPTS=\"-o \$OSTYPE \${SPECTYPE:+\"-s \$SPECTYPE\"}\"\n
+xterm -bg black -fg white -geometry 170x30+0-0 +sb \
+-e \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session
+ chmod a+x /mnt/var/X11R6/bin/desktop-session
+ addpath="true";
+ fi
+else
+ windowmanagers="kde,gnome,icewm,failsafe"
+fi
+# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin
+if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then
+ sesspath="/usr/X11R6/bin"
+else
+ sesspath="/var/X11R6/bin"
+ addpath="true"
+fi
+
+# create links to desktop-session chooser
+[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist`
+testmkd /mnt/etc/X11/sessions
+for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do
+ # beware!! quickhack for VMware sessions
+ strinstr "$i" "$wmlist" || \
+ test -x /mnt/usr/X11R6/bin/$i || \
+ echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\
+Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\
+Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop
+ # does not work correctly (add /var/X11R6/bin to path!!)
+ test -x /mnt/usr/X11R6/bin/$i || \
+ ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i
+done
+
+# add special path /var/X11R6/bin to the PATH variable
+[ "x$addpath" != "x" ] && \
+ echo -e "# added path component by $0: $date\n\
+PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile
+
+}
+
+# configure X display manager (/etc/sysconfig/displaymanager)
+config_dm_entry () {
+local dm="$1"
+# should be stated that entries were made (fixmee how??)
+sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \
+ -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dm\"," \
+ /mnt/etc/sysconfig/displaymanager > /etc/displaymanager
+cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager
+# start the display manager as early as possible
+ln -sf /etc/init.d/xdm /mnt/etc/init.d/boot.d/S12boot.xdm
+ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm
+ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm
+}
+
+# configure X display manager (runlevel links and kind of manager)
+config_xdm () {
+config_dm_entry yes
+}
+
+# configure gdm as display manager
+config_gdm () {
+config_dm_entry yes
+testmkd /mnt/var/lib/gdm
+strinfile "gdm:" /mnt/etc/passwd || echo "gdm:x:50:15:Gnome Display Manager \
+Daemon:/var/lib/gdm:/bin/false" >>/mnt/etc/passwd
+# hack - gdm should be user 50 and shadow group 15
+chown 50:15 /mnt/var/lib/gdm
+chmod 0750 /mnt/var/lib/gdm
+xdmcp_hosts=`echo $x_display_manager|sed -e "s; ;,;"`
+if [ "${DEBUGLEVEL}" -gt 0 ] ; then
+ debug="true"
+else
+ debug="false"
+fi
+echo -e "# /etc/opt/gnome/gdm/gdm.conf - file generated by $0\n\
+[daemon]
+AutomaticLoginEnable=false
+TimedLoginEnable=false
+#AlwaysRestartServer=false
+Chooser=/opt/gnome/lib/gdm/gdmchooser
+Greeter=/opt/gnome/lib/gdm/gdmgreeter
+RemoteGreeter=/opt/gnome/lib/gdm/gdmgreeter
+DefaultPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/bin:\
+/opt/gnome/bin:/opt/kde3/bin:/opt/kde/bin:/usr/openwin/bin
+RootPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/local/bin:/usr/bin:\
+/usr/X11R6/bin:/bin:/usr/games:/opt/bin:/opt/gnome/bin:/opt/kde3/bin:\
+/opt/kde/bin:/usr/openwin/bin:/opt/cross/bin
+User=gdm
+Group=shadow
+#KillInitClients=true
+LogDir=/var/lib/gdm
+ServAuthDir=/var/lib/gdm
+PostLoginScriptDir=/etc/opt/gnome/gdm/PostLogin/
+PreSessionScriptDir=/etc/opt/gnome/gdm/PreSession/
+PostSessionScriptDir=/etc/opt/gnome/gdm/PostSession/
+DisplayInitDir=/etc/opt/gnome/gdm/Init
+XKeepsCrashing=/etc/opt/gnome/gdm/XKeepsCrashing
+RebootCommand=/sbin/shutdown -r now
+HaltCommand=/sbin/shutdown -h now
+SuspendCommand=/usr/bin/powersave --suspend-to-disk
+BaseXsession=/etc/opt/gnome/gdm/Xsession
+SessionDesktopDir=/usr/share/xsessions/:/etc/X11/sessions/:\
+/etc/opt/gnome/dm/Sessions/:/opt/gnome/share/gdm/BuiltInSessions/
+BaseXsession=/etc/opt/gnome/gdm/Xsession
+SessionDesktopDir=/usr/share/xsessions/:/etc/opt/gnome/dm/Sessions/:\
+/opt/gnome/share/gdm/BuiltInSessions/
+UserAuthFBDir=/tmp
+UserAuthFile=.Xauthority
+StandardXServer=/usr/X11R6/bin/X
+Xnest=/usr/X11R6/bin/Xnest -audit 0 -name Xnest
+
+[security]
+AllowRoot=true
+AllowRemoteRoot=true
+AllowRemoteAutoLogin=false
+CheckDirOwner=true
+#UserMaxFile=65536
+RetryDelay=1
+#SessionMaxFile=524388
+NeverPlaceCookiesOnNFS=true
+
+[xdmcp]
+Enable=$xdmcp
+HonorIndirect=true
+MaxPending=4
+MaxPendingIndirect=4
+MaxSessions=10
+MaxWait=15
+MaxWaitIndirect=15
+DisplaysPerHost=2
+Willing=/etc/X11/xdm/Xwilling
+
+[gui]
+#MaxIconWidth=128
+#MaxIconWidth=128
+
+[greeter]
+Browser=false
+#TitleBar=true
+MinimalUID=500
+Quiver=true
+Welcome=Welcome to %n
+LockPosition=true
+BackgroundImage=0
+BackgroundColor=#000000
+ShowGnomeFailsafeSession=false
+ShowXtermFailsafeSession=false
+ShowLastSession=false
+Use24Clock=true
+GraphicalTheme=GDM-SuSE
+GraphicalTheme=circles
+GraphicalThemeDir=/opt/gnome/share/gdm/themes/
+GraphicalThemeRand=false
+#SystemMenu=true
+InfoMsgFile=/opt/gnome/share/gdm/UserInfo
+InfoMsgFont=monospace 10
+SoundOnLogin=false
+[chooser]
+HostImageDir=/opt/gnome/share/hosts/
+Broadcast=false
+Multicast=false
+Hosts=$xdmcp_hosts
+
+[debug]
+Enable=$debug" >/mnt/etc/opt/gnome/gdm/gdm.conf
+if [ "x$start_x" = "xindirect" ] ; then
+ # when X server consumes to much mem set X -terminate
+ echo -e "\n[servers]\n0=Terminal -audit 0 -indirect \
+$host_name\n\n\
+[server-Terminal]\nname=Terminal server\ncommand=/usr/X11R6/bin/X \
+-audit 0\n\
+flexible=true\nhandled=true\nchooser=true" >>/mnt/etc/opt/gnome/gdm/gdm.conf
+else
+ echo -e "\n[servers]\n0=Standard\n\n\
+[server-Standard]\nname=Standard server\ncommand=/usr/X11R6/bin/X\n\
+flexible=true\nhandled=true" >>/mnt/etc/opt/gnome/gdm/gdm.conf
+fi
+}
+
+# configure gdm as display manager
+config_kdm () {
+config_dm_entry yes
+
+}
+
+# consolefont
+consolefont () {
+echo -e "\tsetfont ${CONSOLE_FONT} >${LOGFILE} 2>&1\n" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+}
+
+# acpi and powersave
+config_acpi () {
+local start_acpi=$1
+local stop_acpi=$2
+local start_powersave=`expr $1 + 5`
+local stop_powersave=`expr $1 - 1`
+rllinker acpid "$start_acpi" "$stop_acpi"
+rllinker powersaved "$start_powersave" "$stop_powersave"
+}
+
+# configure dbus (inter application communication for kde and gnome), hal
+# (hardware abstraction layer - used e.g. by powersaved) and resmgr
+# (resource manager - the user gets permissions to devices when loggin on)
+config_dreshal () {
+local start="$1"
+local stop="$2"
+if [ "x$start_dreshal" = "xyes" ]; then
+ if [ -f /mnt/etc/init.d/dbus ] ; then
+ strinfile "messagebus:" /mnt/etc/passwd || \
+ echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \
+ >> /mnt/etc/passwd
+ testmkd /mnt/var/run/dbus
+ # chown 100:101 /mnt/var/run/dbus
+ rllinker "dbus" "$start" "$stop"
+ fi
+ if [ -f /mnt/etc/init.d/resmgr ] ; then
+ testmkd /mnt/var/run/resmgr/classes
+ start="0"`expr $start + 1`
+ stop="0"`expr $start - 1`
+ rllinker "resmgr" "$start" "$stop"
+ fi
+ if [ -f /mnt/etc/init.d/haldaemon ] ; then
+ strinfile "haldaemon:" /mnt/etc/passwd || \
+ echo "haldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/false" \
+ >> /mnt/etc/passwd
+ start="0"`expr $start + 1`
+ stop="0"`expr $start - 1`
+ rllinker "haldaemon" "$start" "$stop"
+ fi
+fi
+}
+
+# initialize boot.ld - skript to be executed during early system startup
+# (before most of the normal boot init scripts)
+# this script should operate like a normal runlevel script
+d_mkbootld () {
+case "$1" in
+ init)
+ echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/boot.ld written \
+from $0" >/mnt/etc/${D_INITDIR}/boot.ld
+ echo -e '\n. /etc/rc.status\nrc_reset\ncase "$1" in\n start)' \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+ echo -e '\techo -n "Running post configuration required by initrd"' \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+ chmod u+x /mnt/etc/${D_INITDIR}/boot.ld
+ ;;
+ close)
+ echo -e "\trc_status -v\n\t;;\n stop)\n\t;;\nesac\nrc_exit" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+
+ ;;
+esac
+}