diff options
Diffstat (limited to 'initramfs/distro-specs/suse/functions-default')
-rw-r--r-- | initramfs/distro-specs/suse/functions-default | 419 |
1 files changed, 321 insertions, 98 deletions
diff --git a/initramfs/distro-specs/suse/functions-default b/initramfs/distro-specs/suse/functions-default index c34c4003..71b0495c 100644 --- a/initramfs/distro-specs/suse/functions-default +++ b/initramfs/distro-specs/suse/functions-default @@ -1,5 +1,5 @@ -# Copyright (c) 2003 - 2006 - RZ Uni Freiburg -# Copyright (c) 2006, 2007 - OpenSLX GmbH +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# Copyright (c) 2006..2008 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -14,23 +14,54 @@ # inclusion of the main functions file). This file is the main base for the # several SuSE distro versions +# settings of central variables (formerly done via config-*, these variables +# are disputable ...) +# 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_ETCEXCL="*.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" +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" + # empty functions are defined at the beginning of /etc/functions # distro specific function called from servconfig script config_distro () { -# no need to run start scripts in parallel -# enable magic sysrequest for the clients - sed -e "1i# /etc/${D_SYSCONFDIR}/sysctl - modified by $0 version $version" \ + # 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 boot.d ; do + rm -rf /mnt/etc/init.d/${dir}/* + done + # link the additional key setup (notbook special keys) + [ grep -q -E "otebook" /etc/hwinfo.bios -a \ + -e /mnt/etc/init.d/hotkey-setup ] && rllinker "hotkey-setup" 25 25 + + # no need to run start scripts in parallel + # enable magic sysrequest for the clients + sed -e "1i# /etc/sysconfig/sysctl - modified by $0 version $version" \ -e "s,ENABLE_SYSRQ=.*,ENABLE_SYSRQ=\"yes\"," \ - -i /mnt/etc/${D_SYSCONFDIR}/sysctl + -i /mnt/etc/sysconfig/sysctl # add specific path /var/X11R6/bin ... echo -e "# stuff generated by $0 (out of InitRamFS written $date)\n\ PATH=\"\$PATH:/var/X11R6/bin\"\n\ test \"\$UID\" -ge 100 && PATH=\"\$PATH:.\"\n\ QTDIR=/usr/lib/qt3\nexport QTDIR\nno_proxy='localhost'\n\ -export no_proxy" > /mnt/etc/SuSEconfig/profile +export no_proxy" >/mnt/etc/SuSEconfig/profile echo -e "SLX VERSION = $SLXVERSION\nINITRAMFS GENERATION DATE = $date" \ - >> /mnt/etc/SuSE-release + >>/mnt/etc/SuSE-release # remove annoying udev rule set for changing eth interface and rtc symlink rm /mnt/etc/udev/rules.d/*persistent-net.rules \ @@ -50,21 +81,261 @@ export no_proxy" > /mnt/etc/SuSEconfig/profile rc_reset\ntest -e /etc/init.d/halt.local && { \techo Running /etc/init.d/halt.local\n\t/bin/sh /etc/init.d/halt.local \trc_status -v1 -r\n} -echo $message\nexec $command -d -f' > /mnt/etc/${D_INITDIR}/halt +echo $message\nexec $command -d -f' >/mnt/etc/init.d/halt # add the halt link to the 0 and 6 runlevel directories - ln -sf ../halt /mnt/etc/${D_INITDIR}/rc0.d/S20halt - ln -sf ../halt /mnt/etc/${D_INITDIR}/rc6.d/S20reboot + ln -sf ../halt /mnt/etc/init.d/rc0.d/S20halt + ln -sf ../halt /mnt/etc/init.d/rc6.d/S20reboot + + echo "LOGFILE=${LOGFILE}" >/mnt/etc/sysconfig/logfile + # fixme: rather ugly to write that boot script this way + echo ' +#!/bin/sh +# SuSE specific initial boot file modified for the use with OpenSLX clients +# +########################################################################### + +# 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 -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 + +########################################################################### +# +# 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="" + +# 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 -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 + +# 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' >/mnt/etc/init.d/boot + # enable execution of all important start scripts # running stuff in parallel seems to be rather useless and generates some # difficult to solve problems. If you want to try nevertheless enable the # following line and disable the latter one (switching off that feature) sed -e "s,RUN_PARALLEL=.*,RUN_PARALLEL=\"no\"," \ - -i /mnt/etc/${D_SYSCONFDIR}/boot + -i /mnt/etc/sysconfig/boot # if YaST2 should be runnable (without much effect anyway) on the client testmkd /mnt/var/log/YaST2 echo "$host_name" > /mnt/etc/HOSTNAME } +# initial (boot time) runlevel scripts +initial_boot () { +local scripts=$* +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 boot.slx boot.udev boot.proc boot.klog boot.loadmodules boot.clock \ +boot.sysctl boot.ipconfig boot.swap $D_SPLASHY; do + count=$(($count + 1)) + [ $DEBUGLEVEL -ge 2 ] && echo "boot-runlevelscript $i" + ln -sf /etc/init.d/$i /mnt/etc/init.d/boot.d/S${count}$i +done +} + # linking runlevel scripts rllinker () { local script="$1" @@ -78,7 +349,7 @@ fi # 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/${D_INITDIR}/$i + ln -sf ../$script /mnt/etc/init.d/$i done } @@ -86,7 +357,7 @@ done # second stop # function for ntp configuration config_ntp () { -if [ -e /mnt/etc/${D_INITDIR}/ntp ] ; then +if [ -e /mnt/etc/init.d/ntp ] ; then if ! strinfile "ntp:" /mnt/etc/passwd ; then echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ >>/mnt/etc/passwd @@ -107,7 +378,7 @@ fi # function for configuration of cron services config_cron () { if [ "x$start_cron" = "xyes" ] ; then - if [ -f /mnt/etc/${D_INITDIR}/cron ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then rllinker "cron" 18 2 testmkd /mnt/var/spool/cron/lastrun testmkd /mnt/var/spool/cron/tabs @@ -126,7 +397,7 @@ if [ "x$start_syslog" != "xno" ] ; then # enable basic logging to console tty10; file logging could be enabled via # setting of config_syslog="file" start_syslog="yes" - if [ -f /mnt/etc/${D_INITDIR}/syslog ] ; then + if [ -f /mnt/etc/init.d/syslog ] ; then sed -e "1i# modified in InitRamFS by $0" \ -e "s,SYSLOG_DAEMON=.*,SYSLOG_DAEMON=\"syslog-ng\"," \ -i /mnt/etc/sysconfig/syslog @@ -141,7 +412,7 @@ fi # secure shell service config_sshd () { if [ "x$start_sshd" = "xyes" ] ; then - if [ -f /mnt/etc/${D_INITDIR}/sshd ] ; then + if [ -f /mnt/etc/init.d/sshd ] ; then testmkd /mnt/var/run/sshd testmkd /mnt/var/lib/empty if ! strinfile "sshd:" /mnt/etc/passwd ; then @@ -151,7 +422,7 @@ if [ "x$start_sshd" = "xyes" ] ; then fi # set permissions with userid #echo -e "\tchown sshd:nogroup /var/run/sshd /var/lib/empty 2>/dev/null" \ - # >>/mnt/etc/${D_INITDIR}/boot.slx + # >>/mnt/etc/init.d/boot.slx rllinker "sshd" 25 10 else error "$df_errsshd" nonfatal @@ -161,7 +432,7 @@ fi # snmp agent for remote monitoring config_snmp () { if [ "x$start_snmp" = "xyes" ] ; then - if [ -f /mnt/etc/${D_INITDIR}/snmpd ] ; then + if [ -f /mnt/etc/init.d/snmpd ] ; then rllinker "snmpd" 24 2 testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 fi @@ -194,70 +465,30 @@ fi # configuration file if [ "x$lpr_servers" != "x" ] && [ ! -e /rootfs/etc/cups/client.conf ] ; then echo -e "# /etc/cups/client.conf - file generated by\n#\t$0:\n\ -#\t$date\n#\nServerName\t$lpr_servers" > /mnt/etc/cups/client.conf -fi -} -# configure samba service -config_samba () { -if [ "$start_samba" != "no" ]; then - testmkd /mnt/var/run/samba - if [ "$start_samba" = "yes" ] && [ -f /mnt/etc/init.d/smb ] ; then - rllinker "smb" 27 2 - rllinker "nmb" 28 2 - fi - # set up samba configuration with NetBIOS name servers etc. - if [ "x$netbios_name_servers" != "x" ]; then - wins_server="\\twins server = $netbios_name_servers" - else - wins_server=";\\twins server = 127.0.0.1" - fi - if [ "x$netbios_workgroup" != "x" ]; then - workgroup="workgroup = $new_netbios_workgroup" - else - workgroup="workgroup = openslx" - fi - # avoid to overwrite admin provided samba configuration file - [ ! -f /rootfs/etc/samba/smb.conf ] && [ -f /mnt/etc/samba/smb.conf ] && \ - sed -e "1i# modified in InitRamFS by $0" \ - -e "s,\s*netbios name.*,netbios name = ${host_name},g" \ - -e "s,\s*interfaces.*,interfaces = ${clientip}/${subnet_mask},g" \ - -e "s,;.*wins server.*,$wins_server,g" \ - -e "s,\s*workgroup =.*,$workgroup,g" \ - -i /mnt/etc/samba/smb.conf; - # special kde network discovery service - [ -f /mnt/etc/lisarc ] && [ ! -f /rootfs/etc/lisarc ] && - sed -e "1i# modified in InitRamFS by $0" \ - -e "s,AllowedA.*,AllowedAddresses=${clientip}/${subnet_mask};,g" \ - -e "s,BroadcastN.*,BroadcastNetwork=${clientip}/${subnet_mask};,g" \ - -e "s,PingAdd.*,PingAddresses=${clientip}/${subnet_mask};,g" \ - -i /mnt/etc/lisarc +#\t$date\n#\nServerName\t$lpr_servers" >/mnt/etc/cups/client.conf fi } # configure bluetooth services config_bt () { -if [ -e /mnt/etc/${D_SYSCONFDIR}/bluetooth ] ; then - sed -e "1i# /etc/${D_SYSCONFDIR}/bluetooth - file modified by $0" \ +if [ -e /mnt/etc/sysconfig/bluetooth ] ; then + sed -e "1i# /etc/sysconfig/bluetooth - file modified by $0" \ -e "s,START_SERVICES.*,START_SERVICES=\"yes\"," \ - -i /mnt/etc/${D_SYSCONFDIR}/bluetooth + -i /mnt/etc/sysconfig/bluetooth else : # no bluetooth components installed fi } -# set up keytable (function run in hwautocfg) -# kbd runlevel link is set via config_distro to avoid clashes between -# servconfig and hwautocfg settings -keytable () { +# set up localization like keytable and consolefont +dlocale () { +echo -e "\t# entries added by $0: $date" >> /mnt/etc/init.d/boot.slx sed -e "s,KEYTABLE=.*,KEYTABLE=\"${KEYTABLE}\"," \ - -i /mnt/etc/${D_SYSCONFDIR}/keyboard + -i /mnt/etc/sysconfig/keyboard echo -e "\tloadkeys ${KEYTABLE} >${LOGFILE} 2>&1\n" \ - >>/mnt/etc/${D_INITDIR}/boot.slx -} -# consolefont and language (function run in hwautocfg) -consolefont () { + >>/mnt/etc/init.d/boot.slx echo -e "\tsetfont ${CONSOLE_FONT} >${LOGFILE} 2>&1\n" \ - >>/mnt/etc/${D_INITDIR}/boot.slx + >>/mnt/etc/init.d/boot.slx sed -e "s,RC_LANG=.*,RC_LANG=\"${LANG}\" # added in initrd," \ - -i /mnt/etc/${D_SYSCONFDIR}/language + -i /mnt/etc/sysconfig/language } # acpi and powersave daemons, required e.g. to shutdown the machine via # power button, no need for early start @@ -279,7 +510,7 @@ if [ "x$start_dreshal" = "xyes" ]; then /var/cache/hald /var/lib/PolicyKit; do testmkd /mnt/$dir done - if [ -f /mnt/etc/${D_INITDIR}/dbus ] ; 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 @@ -287,10 +518,10 @@ if [ "x$start_dreshal" = "xyes" ]; then echo "messagebus:!:101:" >> /mnt/etc/group # set permissions with userid echo -e "\tchown messagebus:messagebus /var/run/dbus 2>/dev/null" \ - >>/mnt/etc/${D_INITDIR}/boot.slx + >>/mnt/etc/init.d/boot.slx rllinker "dbus" $start $stop fi - if [ -f /mnt/etc/${D_INITDIR}/consolekit ] ; then + if [ -f /mnt/etc/init.d/consolekit ] ; then strinfile "polkituser:" /mnt/etc/passwd || \ echo "polkituser:x:104:106:PolicyKit:/var/run/PolicyKit:/bin/false" \ >> /mnt/etc/passwd @@ -300,12 +531,12 @@ if [ "x$start_dreshal" = "xyes" ]; then echo -n > /mnt/var/lib/misc/PolicyKit.reload chmod a+x /mnt/var/lib/misc/PolicyKit.reload fi - if [ -f /mnt/etc/${D_INITDIR}/resmgr ] ; then + if [ -f /mnt/etc/init.d/resmgr ] ; then start=$(($start + 1)) stop=$(($stop - 1)) rllinker "resmgr" $start $stop fi - if [ -f /mnt/etc/${D_INITDIR}/haldaemon ] ; then + if [ -f /mnt/etc/init.d/haldaemon ] ; then strinfile "haldaemon:" /mnt/etc/passwd || \ echo "haldaemon:x:105:103:User for haldaemon:/var/run/hal:/bin/false" \ >> /mnt/etc/passwd @@ -314,20 +545,20 @@ if [ "x$start_dreshal" = "xyes" ]; then echo -n "" > /mnt/var/lib/PolicyKit/reload # set permissions with userid echo -e "\tchown haldaemon:haldaemon /var/run/hal /var/cache/hald \ - 2>/dev/null" >>/mnt/etc/${D_INITDIR}/boot.slx + 2>/dev/null" >>/mnt/etc/init.d/boot.slx start=$(($start + 1)) stop=$(($stop - 1)) rllinker "haldaemon" $start $stop fi fi } -# configure automounter (fixme: config version for NFSv4 might be required) +# configure automounter (fixme: to be moved into plugin) config_automount () { -if [ -e /mnt/etc/${D_SYSCONFDIR}/autofs ] ; then +if [ -e /mnt/etc/sysconfig/autofs ] ; then testmkd /var/lock/subsys - sed -e "1i# /etc/${D_SYSCONFDIR}/autofs - file modified by\n#\t$0:\n#" \ + sed -e "1i# /etc/sysconfig/autofs - file modified by\n#\t$0:\n#" \ -e "s,AUTOFS_OPTIONS.*,AUTOFS_OPTIONS=\"--timeout 3\"," \ - -i /mnt/etc/${D_SYSCONFDIR}/autofs + -i /mnt/etc/sysconfig/autofs rllinker "autofs" 18 4 else error "$df_erramt" nonfatal @@ -335,7 +566,7 @@ fi } # start name service caching daemon config_nscd () { -if [ -e /mnt/etc/${D_INITDIR}/nscd ] ; then +if [ -e /mnt/etc/init.d/nscd ] ; then testmkd /mnt/var/run/nscd rllinker "nscd" 16 16 else @@ -344,11 +575,11 @@ fi } # start portmapper (needed at least for nfs and nis services) config_portmap () { -rllinker "portmap" 2 20 + rllinker "portmap" 2 20 } -# start NIS +# start NIS (mostly deprecated) config_nis () { -if [ -f /mnt/etc/${D_INITDIR}/ypbind ] ; then +if [ -f /mnt/etc/init.d/ypbind -a ] ; then rllinker "ypbind" 6 16 config_portmap testmkd /mnt/var/yp/nicknames @@ -365,26 +596,18 @@ local name="$2" local info="$3" case "$1" in init) - echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/$name created \ + 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\ -. /etc/rc.status\n. /etc/${D_SYSCONFDIR}/logfile\nrc_reset\ncase \ -\"\$1\" in\n start)\n\techo -n \"$info\"" >>/mnt/etc/${D_INITDIR}/$name - chmod u+x /mnt/etc/${D_INITDIR}/$name +. /etc/rc.status\n. /etc/sysconfig/logfile\nrc_reset\ncase \ +\"\$1\" in\n start)\n\techo -n \"$info\"" >>/mnt/etc/init.d/${name} + chmod u+x /mnt/etc/init.d/${name} ;; close) echo -e "\trc_status -v\n\t;;\n stop)\n\t;;\nesac\nrc_exit" \ - >>/mnt/etc/${D_INITDIR}/$name + >>/mnt/etc/init.d/${name} ;; esac } -# Xorg variable settings. Lots of stuff changed since 10.2 -displayvars () { -Files='\tModulePath\t"/etc/X11/modules"\n -\tModulePath\t"/usr/lib/xorg/modules"\n -\tFontPath\t"/usr/share/fonts/misc/:unscaled"\n -\tFontPath\t"/usr/share/fonts/75dpi/:unscaled"\n -\tFontPath\t"/usr/share/fonts/100dpi/:unscaled"' -synapticsdrv="/usr/lib/xorg/modules/input/synaptics_drv.so" -} + |