diff options
Diffstat (limited to 'scripts/live-bottom')
25 files changed, 1135 insertions, 0 deletions
diff --git a/scripts/live-bottom/01integrity_check b/scripts/live-bottom/01integrity_check new file mode 100755 index 0000000..d5bc5fe --- /dev/null +++ b/scripts/live-bottom/01integrity_check @@ -0,0 +1,18 @@ +#!/bin/sh + +PREREQ="" + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +grep integrity-check /proc/cmdline && live-md5check /cdrom /cdrom/md5sum.txt < /dev/tty8 diff --git a/scripts/live-bottom/02_timezone b/scripts/live-bottom/02_timezone new file mode 100755 index 0000000..873c1da --- /dev/null +++ b/scripts/live-bottom/02_timezone @@ -0,0 +1,21 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Setting timezone..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +cp -f /root/usr/share/zoneinfo/UTC /root/etc/localtime diff --git a/scripts/live-bottom/05mountpoints b/scripts/live-bottom/05mountpoints new file mode 100755 index 0000000..411660d --- /dev/null +++ b/scripts/live-bottom/05mountpoints @@ -0,0 +1,27 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Moving mount points..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +# Move to the new root filesystem so that programs there can get at it. +mkdir -p /root/cdrom +mount -n -o move /cdrom /root/cdrom + +log_end_msg diff --git a/scripts/live-bottom/10adduser b/scripts/live-bottom/10adduser new file mode 100755 index 0000000..9179f1b --- /dev/null +++ b/scripts/live-bottom/10adduser @@ -0,0 +1,66 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Adding live session user..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +# U6aMy0wojraho is just a blank password +chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null <<EOF +set passwd/root-password-crypted * +set passwd/user-password-crypted U6aMy0wojraho +set passwd/user-fullname $USERFULLNAME +set passwd/username $USERNAME +set passwd/user-uid 999 +EOF + +chroot /root /usr/lib/user-setup/user-setup-apply > /dev/null + +# Clear out debconf database again to avoid confusing ubiquity later. +chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null <<EOF +set passwd/root-password-crypted +set passwd/user-password-crypted +set passwd/user-fullname +set passwd/username +set passwd/user-uid +EOF + +if [ -f /root/etc/sudoers ]; then + if [ "${BUILD_SYSTEM}" = "Ubuntu" ]; then + grep -q '^%admin' /root/etc/sudoers && sed -i -e '/^%admin/s/ALL$/NOPASSWD: ALL/' /root/etc/sudoers || echo '%admin ALL=(ALL) NOPASSWD: ALL' >> /root/etc/sudoers + elif [ "${BUILD_SYSTEM}" = "Debian" ]; then + echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" >> /root/etc/sudoers + fi +fi + +# XXX - awful hack to stop xscreensaver locking the screen (#7150) +echo 'RUNNING_UNDER_GDM="yes"' >> /root/etc/environment + +for file in /usr/share/applications/ubiquity-gtkui.desktop /usr/share/applications/kde/ubiquity-kdeui.desktop; do + if [ -f "/root/$file" ]; then + chroot /root install -D -o $USERNAME -g $USERNAME $file /home/$USERNAME/Desktop/$(basename "$file") + break + fi +done + +if [ -L /root/home/$USERNAME/Examples ]; then + chroot /root install -o $USERNAME -g $USERNAME -d /home/$USERNAME/Desktop/ + mv /root/home/$USERNAME/Examples /root/home/$USERNAME/Desktop/ +fi + +log_end_msg diff --git a/scripts/live-bottom/12fstab b/scripts/live-bottom/12fstab new file mode 100755 index 0000000..fa9c642 --- /dev/null +++ b/scripts/live-bottom/12fstab @@ -0,0 +1,31 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Configuring fstab..." +FSTAB=/root/etc/fstab + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +cat > $FSTAB <<EOF +unionfs / unionfs rw 0 0 +tmpfs /tmp tmpfs nosuid,nodev 0 0 +EOF + +rm -f /root/etc/rcS.d/S*checkroot.sh + +log_end_msg diff --git a/scripts/live-bottom/13swap b/scripts/live-bottom/13swap new file mode 100755 index 0000000..fcef76c --- /dev/null +++ b/scripts/live-bottom/13swap @@ -0,0 +1,44 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Setting up swap..." +FSTAB=/root/etc/fstab + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +devices="" +for device in /dev/[hs]d[a-z][0-9]*; do + if ! [ -b "$device" ]; then + continue + fi + + magic=$(/bin/dd if="$device" bs=4086 skip=1 count=1 2>/dev/null | /bin/dd bs=10 count=1 2>/dev/null) || continue + + if [ "$magic" = "SWAPSPACE2" -o "$magic" = "SWAP-SPACE" ]; then +# log "Found $device" + devices="$devices $device" + fi +done + +for device in $devices; do + cat >> $FSTAB <<EOF +$device swap swap defaults 0 0 +EOF +done + +log_end_msg diff --git a/scripts/live-bottom/14locales b/scripts/live-bottom/14locales new file mode 100755 index 0000000..a03e0d1 --- /dev/null +++ b/scripts/live-bottom/14locales @@ -0,0 +1,63 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Setting up locales..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +if [ -e /root/etc/default/locale ]; then + grep_file=/root/etc/default/locale +elif [ -e /root/etc/environment ]; then # Old locales policy + grep_file=/root/etc/environment +fi + +if [ -n "${grep_file}" ]; then + # use rootfs configured locale + locale=$(grep -s 'LANG=' ${grep_file} | sed s/'LANG='// | tr -d '"' ) +else + grep_file=/root/etc/default/locale +fi + +# commandline +for x in $(cat /proc/cmdline); do + case $x in + debian-installer/locale=*) + locale=${x#debian-installer/locale=} + set_locale="true" + ;; + locale=*) + locale=${x#locale=} + set_locale="true" + ;; + esac +done + +if [ -z "${locale}" ]; then + # Set a default one + locale=en_US.UTF-8 + set_locale="true" +fi + +if [ "${set_locale}" ]; then + LANG=$(grep "^${locale}" /root/usr/share/i18n/SUPPORTED | grep UTF-8 |sed -e 's, .*,,' -e q) + printf 'LANG="%s"\n' "${LANG}" >> "${grep_file}" + printf '%s UTF-8\n' "${LANG}" > /root/etc/locale.gen + chroot /root /usr/sbin/locale-gen "${LANG}" +fi + +log_end_msg diff --git a/scripts/live-bottom/15autologin b/scripts/live-bottom/15autologin new file mode 100755 index 0000000..4b64dc7 --- /dev/null +++ b/scripts/live-bottom/15autologin @@ -0,0 +1,62 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Setting up automatic login..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +if chroot /root [ -f /etc/gdm/gdm-cdd.conf ]; then + GDMCONF=/etc/gdm/gdm-cdd.conf +else + GDMCONF=/etc/gdm/gdm.conf +fi + +if chroot /root [ -f ${GDMCONF} ]; then + # Configure GDM autologin + chroot /root sed -i \ + -e "s/^AutomaticLoginEnable=.*\$/AutomaticLoginEnable=true/" \ + -e "s/^AutomaticLogin=.*\$/AutomaticLogin=$USERNAME/" \ + -e "s/^TimedLoginEnable=.*\$/TimedLoginEnable=true/" \ + -e "s/^TimedLogin=.*\$/TimedLogin=$USERNAME/" \ + -e "s/^TimedLoginDelay=.*\$/TimedLoginDelay=10/" \ + ${GDMCONF} +fi + +if [ -f /root/etc/kde3/kdm/kdmrc ]; then + # Configure KDM autologin + sed -i -r \ + -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \ + -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=$USERNAME/" \ + -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \ + /root/etc/kde3/kdm/kdmrc +fi + +if chroot /root /usr/bin/which kpersonalizer >/dev/null; then + # Disable first-login wizard for KDE + if [ ! -f /root/etc/kde3/kpersonalizerrc ]; then + cat > /root/etc/kde3/kpersonalizerrc <<EOF +[General] +FirstLogin=false +EOF + else + echo "I'm not smart enough to disable kpersonalizer startup" >&2 + echo "Because kpersonalizerrc already exists" >&2 + fi +fi + +log_end_msg diff --git a/scripts/live-bottom/18hostname b/scripts/live-bottom/18hostname new file mode 100755 index 0000000..591e4ec --- /dev/null +++ b/scripts/live-bottom/18hostname @@ -0,0 +1,38 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Setting hostname..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +echo "$HOST" > /root/etc/hostname +cat > /root/etc/hosts <<EOF +127.0.0.1 localhost +127.0.1.1 $HOST + +# The following lines are desirable for IPv6 capable hosts +::1 ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +ff02::3 ip6-allhosts + +EOF + +log_end_msg diff --git a/scripts/live-bottom/19keyboard b/scripts/live-bottom/19keyboard new file mode 100755 index 0000000..d43e329 --- /dev/null +++ b/scripts/live-bottom/19keyboard @@ -0,0 +1,70 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Setting up console keyboard..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +kbd=us +cslayout= +csvariant= +csmodel= + +for x in $(cat /proc/cmdline); do + case $x in + kbd-chooser/method=*) + kbd=${x#kbd-chooser/method=} + ;; + console-setup/layoutcode=*) + cslayout=${x#console-setup/layoutcode=} + ;; + console-setup/variantcode=*) + csvariant=${x#console-setup/variantcode=} + ;; + console-setup/modelcode=*) + csmodel=${x#console-setup/modelcode=} + ;; + esac +done + +if [ -x /root/bin/setupcon ] && [ -f /root/etc/default/console-setup ]; then + if [ "$cslayout" ]; then + chroot /root sed -i "s/^XKBLAYOUT=.*/XKBLAYOUT=\"$cslayout\"/" \ + /etc/default/console-setup + if [ "$csvariant" ]; then + chroot /root sed -i "s/^XKBVARIANT=.*/XKBVARIANT=\"$csvariant\"/" \ + /etc/default/console-setup + else + live-preseed /root console-setup/variantcode '' false + fi + if [ "$csmodel" ]; then + chroot /root sed -i "s/^XKBMODEL=.*/XKBMODEL=\"$csmodel\"/" \ + /etc/default/console-setup + else + live-preseed /root console-setup/modelcode '' false + fi + else + live-preseed /root console-setup/layoutcode '' false + live-preseed /root console-setup/variantcode '' false + live-preseed /root console-setup/modelcode '' false + fi +else + chroot /root /usr/sbin/install-keymap $kbd + live-preseed /root debian-installer/keymap "$kbd" +fi +log_end_msg diff --git a/scripts/live-bottom/20xconfig b/scripts/live-bottom/20xconfig new file mode 100755 index 0000000..93c8722 --- /dev/null +++ b/scripts/live-bottom/20xconfig @@ -0,0 +1,61 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Configuring X..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +if [ "$TERM_TYPE" = "serial" ]; then + # Don't bother trying to configure or start X on a serial console + rm -f /etc/rc?.d/S??[gxk]dm + exit 0 +fi + +locale=en_US.UTF-8 + +for x in $(cat /proc/cmdline); do + case $x in + debian-installer/locale=*) + locale=${x#debian-installer/locale=} + ;; + locale=*) + locale=${x#locale=} + ;; + esac +done + +mount -n -o bind /sys /root/sys +mount -n -o bind /proc /root/proc +mount -n -o bind /dev /root/dev + +if [ -n "${XDEBCONF}" -a -x /root/usr/sbin/xdebconfigurator ]; then + # xdebconfigurator + chroot /root /usr/sbin/xdebconfigurator +fi + +chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null <<EOF +set xserver-xorg/autodetect_keyboard true +fset xserver-xorg/autodetect_keyboard seen true +EOF + +DEBUG_XORG_PACKAGE=1 DEBUG_XORG_DEBCONF=1 LANG=$(grep "^${locale}" /root/usr/share/i18n/SUPPORTED | grep UTF-8 | sed -e 's, .*,,' -e q) live-reconfigure /root xserver-xorg +umount /root/sys +umount /root/proc +umount /root/dev + +log_end_msg diff --git a/scripts/live-bottom/22gnome_panel_data b/scripts/live-bottom/22gnome_panel_data new file mode 100755 index 0000000..1b4d41b --- /dev/null +++ b/scripts/live-bottom/22gnome_panel_data @@ -0,0 +1,34 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Configuring gnome-panel-data..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +if [ -x /root/usr/sbin/laptop-detect ]; then + if chroot /root laptop-detect; then + live-reconfigure /root gnome-panel-data + fi +fi + +panel_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-panel-data 2>/dev/null) || panel_version="" +if [ -n "$panel_version" ]; then + chroot /root sudo -u "$USERNAME" gconftool-2 -s -t bool /apps/panel/global/disable_lock_screen true +fi + +log_end_msg diff --git a/scripts/live-bottom/22screensaver b/scripts/live-bottom/22screensaver new file mode 100755 index 0000000..6193a41 --- /dev/null +++ b/scripts/live-bottom/22screensaver @@ -0,0 +1,30 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Configuring screensaver..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +gnome_screensaver_version=$(chroot /root dpkg-query -W --showformat='${Version}' gnome-screensaver 2>/dev/null) || gnome_screensaver_version="" +if [ -n "$gnome_screensaver_version" ]; then + # Support legacy gconf value + chroot /root sudo -u "$USERNAME" gconftool-2 -t bool -s /apps/gnome-screensaver/lock false + chroot /root sudo -u "$USERNAME" gconftool-2 -t bool -s /apps/gnome-screensaver/lock_enabled false +fi + +log_end_msg diff --git a/scripts/live-bottom/23etc_modules b/scripts/live-bottom/23etc_modules new file mode 100755 index 0000000..6eec342 --- /dev/null +++ b/scripts/live-bottom/23etc_modules @@ -0,0 +1,30 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Preconfiguring /etc/modules..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +case "$DPKG_ARCH" in +# load the right modules +powerpc|ppc64) + echo snd_powermac >> /root/etc/modules + ;; +esac + +log_end_msg diff --git a/scripts/live-bottom/23networking b/scripts/live-bottom/23networking new file mode 100755 index 0000000..988206e --- /dev/null +++ b/scripts/live-bottom/23networking @@ -0,0 +1,107 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Preconfiguring networking..." +IFFILE="/root/etc/network/interfaces" + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +if [ "${STATICIP}" = "frommedia" -a -e "$IFFILE" ] ; then + # will use existent /etc/network/interfaces + log_end_msg + exit 0 +fi + +cat > "$IFFILE" <<EOF +auto lo +iface lo inet loopback + +EOF + +udevtrigger +udevsettle + +if [ -z "${NETBOOT}" -a -n "${STATICIP}" -a "${STATICIP}" != "frommedia" ]; then + parsed=$(echo "${STATICIP}" | sed -e 's/:/ /g') + for ifline in ${parsed}; do + ifname="$(echo ${ifline} | cut -f1 -d ',')" + ifaddress="$(echo ${ifline} | cut -f2 -d ',')" + ifnetmask="$(echo ${ifline} | cut -f3 -d ',')" + ifgateway="$(echo ${ifline} | cut -f4 -d ',')" + cat >> "$IFFILE" <<EOF +auto ${ifname} +iface ${ifname} inet static + address ${ifaddress} + netmask ${ifnetmask} + gateway ${ifgateway} + +EOF + done +else + if [ -z "${NETBOOT}" ]; then + # default, dhcp assigned + method="dhcp" + else + # make sure that the preconfigured interface would not get reassigned by dhcp + # on startup by ifup script - otherwise our root fs might be disconnected! + method="manual" + fi + # iterate the physical interfaces and add them to the interfaces list + for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*; do + [ -e $interface ] || continue + i="$(basename $interface)" + cat >> "$IFFILE" <<EOF +auto $i +iface $i inet $method + +EOF + done + if [ ! -f /root/etc/resolv.conf -a -f /netboot.config ] ; then + # create a resolv.conf if it is not present + cp /netboot.config /root/var/log/netboot.config + rc_search=$(cat netboot.config | awk '/domain/{print $3}') + rc_server0=$(cat netboot.config | awk '/dns0/{print $5}') + rc_server1=$(cat netboot.config | awk '/dns0/{print $8}') + rc_server0="nameserver ${rc_server0}" + if [ "${rc_server1}" = "0.0.0.0" ]; then + rc_server1="" + else + rc_server1="nameserver ${rc_server1}" + fi + cat > /root/etc/resolv.conf <<EOF +# /etc/resolv.conf +# Autogenerated by casper +search ${rc_search} +domain ${rc_search} +${rc_server0} +${rc_server1} +EOF + cat /root/etc/resolv.conf >> /root/var/log/netboot.config + fi +fi + +for i in eth0 eth1 eth2 ath0 wlan0; do + grep -q "iface $i" $IFFILE && continue + cat >> "$IFFILE" <<EOF +auto $i +iface $i inet dhcp + +EOF +done + +log_end_msg diff --git a/scripts/live-bottom/24preseed b/scripts/live-bottom/24preseed new file mode 100755 index 0000000..cd530ea --- /dev/null +++ b/scripts/live-bottom/24preseed @@ -0,0 +1,50 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Loading preseed file..." + +. /scripts/live-functions + +prereqs () +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +location= +for x in $(cat /proc/cmdline); do + case $x in + preseed/file=*) + location="${x#preseed/file=}" + ;; + file=*) + location="${x#file=}" + ;; + */*=*) + question="${x%%=*}" + value="${x#*=}" + live-preseed /root "$question" "$value" + ;; + locale=*) + value="${x#*=}" + live-preseed /root debian-installer/locale "$value" + ;; + esac +done + +if [ "$location" ]; then + chroot /root debconf-set-selections < "/root$location" +fi + +log_end_msg + +exit 0 diff --git a/scripts/live-bottom/25configure_init b/scripts/live-bottom/25configure_init new file mode 100755 index 0000000..1274990 --- /dev/null +++ b/scripts/live-bottom/25configure_init @@ -0,0 +1,58 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Setting up init..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +# Arrange for shells on virtual consoles, rather than login prompts + +if [ -n "$USERNAME" ]; then + if [ -f /root/etc/inittab ]; then + sed -i -e "s|^\([^:]*:[^:]*:[^:]*\):.*getty.*\<\(tty[0-9]*\).*$|\1:/bin/login -f $USERNAME </dev/\2 >/dev/\2 2>\&1|" /root/etc/inittab + fi + if [ "/root/etc/event.d/tty*" != "$(echo /root/etc/event.d/tty*)" ]; then + for f in /root/etc/event.d/tty*; do + sed -i -e "s|^exec.*|exec /bin/login -f $USERNAME </dev/$(basename $f) > /dev/$(basename $f) 2>\&1|" $f + done + fi +fi + +# This has the nice side effect of the cron.{daily,weekly,monthly} jobs in +# /etc/crontab remaining disabled, yet also not run by anacron +if [ -x /root/etc/init.d/anacron ]; then + for f in /root/etc/rc?.d/S??anacron; do + mv ${f} ${f%/*}/K00anacron + done +fi + +# No point, really +rm -f /root/etc/rc?.d/[SK]??postfix + +# Avoid clobbering the user's clock +rm -f /root/etc/rc?.d/K??hwclock.sh + +# Disable readahead since it doesn't play well with squashfs + unionfs +# use chmod instead of mv to not trigger unionfs bugs. +if [ -e /root/sbin/readahead-list ]; then + chmod -x /root/sbin/readahead-list +fi + +log_end_msg + +exit 0 diff --git a/scripts/live-bottom/30accessibility b/scripts/live-bottom/30accessibility new file mode 100755 index 0000000..127c48f --- /dev/null +++ b/scripts/live-bottom/30accessibility @@ -0,0 +1,106 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Configuring accessibility options..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf2 2>/dev/null) || gconf_version="" + +gct() { + if [ "$gconf_version" ]; then + chroot /root sudo -u "$USERNAME" gconftool-2 "$@" + fi +} + +kderc_addtoprefixes() { + if [ -e "/root/etc/kderc" ]; then + sed -i "s|\\(prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/\\)|\\1,$1|" /root/etc/kderc + fi +} + +for x in $(cat /proc/cmdline); do + case $x in + # Lesser Visual Impairment + access=v1) + gct -s -t string /desktop/gnome/interface/gtk_theme HighContrastLargePrint + gct -s -t string /desktop/gnome/interface/icon_theme HighContrast + gct -s -t string /desktop/gnome/interface/monospace_font_name "monospace 18" + gct -s -t string /desktop/gnome/interface/font_name "sans 18" + gct -s -t string /apps/metacity/general/theme Atlanta + gct -s -t string /desktop/gnome/background/picture_filename "" + gct -s -t string /desktop/gnome/background/picture_options none + gct -s -t string /desktop/gnome/background/primary_color \#666666 + gct -s -t string /desktop/gnome/background/secondary_color \#7F7F7F + gct -s -t string /desktop/gnome/background/color_shading_type solid + gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48 + gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass + + kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/ + if [ -d /root/usr/share/xubuntu-default-settings/accessibility ]; then + cp -a /root/usr/share/xubuntu-default-settings/accessibility/* /root/etc/xdg/ + fi + ;; + # Moderate Visual Impairment + access=v2) + gct -s -t bool /desktop/gnome/interface/accessibility true + gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [orca] + if [ -e /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py ]; then + sed -i '/^enableSpeech\W/ s/True/False/;/^enableMagnifier/ s/False/True/' /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py + fi + kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/,/usr/share/kubuntu-default-settings/kde-profile/moderate-visual-impairment/ + ;; + # Blindness + access=v3) + gct -s -t bool /desktop/gnome/sound/enable_esd false + gct -s -t bool /desktop/gnome/interface/accessibility true + gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [orca] + ;; + # Minor Motor Difficulties + access=m1) + gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true + gct -s -t bool /desktop/gnome/accessibility/keyboard/mousekeys_enable true + gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true + gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep true + gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false + gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true + gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700 + gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10 + + kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/ + if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then + sed -i 's/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml + fi + ;; + # Motor Difficulties - pointing devices + access=m2) + gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true + gct -s -t bool /desktop/gnome/interface/accessibility true + gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true + gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep false + gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false + gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [onboard] + + kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/ + if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then + sed -i '/Sticky/ s/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml + fi + ;; + esac +done +log_end_msg diff --git a/scripts/live-bottom/31disable_update_notifier b/scripts/live-bottom/31disable_update_notifier new file mode 100755 index 0000000..6c8b96f --- /dev/null +++ b/scripts/live-bottom/31disable_update_notifier @@ -0,0 +1,34 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Disabling update-notifier..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +# For GNOME, we divert away apt-check to avoid a regular 'apt-get update' +# equivalent in the live session. We want to run update-notifier for crash +# report handling. +chroot /root dpkg-divert --add --rename --quiet \ + /usr/lib/update-notifier/apt-check +ln -s /bin/true /root/usr/lib/update-notifier/apt-check + +# For KDE, adept_notifier's only useful function at the moment is an +# 'apt-get update' equivalent, so we disable it entirely. +rm -f /root/usr/share/autostart/adept_notifier_auto.desktop + +log_end_msg diff --git a/scripts/live-bottom/32disable_hibernation b/scripts/live-bottom/32disable_hibernation new file mode 100755 index 0000000..813abed --- /dev/null +++ b/scripts/live-bottom/32disable_hibernation @@ -0,0 +1,36 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Configuring power management..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + + +gpm_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-power-manager 2>/dev/null) || panel_version="" +if [ -n "$gpm_version" ]; then +# live-reconfigure /root gnome-power-manager + chroot /root sudo -u "$USERNAME" gconftool-2 -s -t bool /apps/gnome-power-manager/can_hibernate false + chroot /root sudo -u "$USERNAME" gconftool-2 -s -t bool /apps/gnome-power-manager/can_suspend false +fi + +if [ -d /root/usr/share/kubuntu-default-settings/kde-profile/default/share/config ]; then + echo "disableSuspend=1" >> /root/usr/share/kubuntu-default-settings/kde-profile/default/share/config/power-managerrc + echo "disableHibernate=1" >> /root/usr/share/kubuntu-default-settings/kde-profile/default/share/config/power-managerrc +fi + +log_end_msg diff --git a/scripts/live-bottom/33enable_apport_crashes b/scripts/live-bottom/33enable_apport_crashes new file mode 100755 index 0000000..1fb1145 --- /dev/null +++ b/scripts/live-bottom/33enable_apport_crashes @@ -0,0 +1,28 @@ +#!/bin/sh + +PREREQ="" +DESCRIPTION="Enabling notifications about program crashes..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +update_notifier_version=$(chroot /root dpkg-query -W --showformat='${Version}' update-notifier 2>/dev/null) || update_notifier_version="" +if [ -n "$update_notifier_version" ]; then + chroot /root sudo -u "$USERNAME" gconftool-2 -t bool -s /apps/update-notifier/show_apport_crashes true +fi + +log_end_msg diff --git a/scripts/live-bottom/34disable_kwallet b/scripts/live-bottom/34disable_kwallet new file mode 100755 index 0000000..9fd0c26 --- /dev/null +++ b/scripts/live-bottom/34disable_kwallet @@ -0,0 +1,25 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Disabling kwallet..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +rm -f /root/usr/share/services/kded/kwalletd.desktop + +log_end_msg diff --git a/scripts/live-bottom/35fix_language_selector b/scripts/live-bottom/35fix_language_selector new file mode 100755 index 0000000..1fb78e5 --- /dev/null +++ b/scripts/live-bottom/35fix_language_selector @@ -0,0 +1,32 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Fixing language selector..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +log_begin_msg "$DESCRIPTION" + +if [ -e /root/usr/share/applications/language-selector.desktop ]; then + sed -i '/^Exec/ s|/usr/bin/gnome-language-selector|"& -n"|' /root/usr/share/applications/language-selector.desktop + +fi + +if [ -x /root/usr/bin/fontconfig-voodoo ]; then + chroot /root fontconfig-voodoo --auto --quiet || true +fi + +log_end_msg diff --git a/scripts/live-bottom/40install_driver_updates b/scripts/live-bottom/40install_driver_updates new file mode 100755 index 0000000..5822f8f --- /dev/null +++ b/scripts/live-bottom/40install_driver_updates @@ -0,0 +1,40 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Installing driver updates..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +if [ ! -d /tmp/driver-updates ]; then + exit 0 +fi + +log_begin_msg "$DESCRIPTION" + +install_dir=/var/cache/driver-updates + +mkdir "/root$install_dir" +cp -a /tmp/driver-updates/*.deb "/root$install_dir/" + +# We cannot leave packages in a bad state. So if the install fails, remove +# it. This will get caught in casper.log. +for deb in "/root$install_dir"/*; do + if ! chroot /root dpkg -i "$install_dir/$deb"; then + chroot /root dpkg -P "${deb%%_*}" + fi +done + +log_end_msg diff --git a/scripts/live-bottom/41apt_cdrom b/scripts/live-bottom/41apt_cdrom new file mode 100755 index 0000000..97b2cdc --- /dev/null +++ b/scripts/live-bottom/41apt_cdrom @@ -0,0 +1,24 @@ +#! /bin/sh + +PREREQ="" +DESCRIPTION="Adding APT-CDROM source..." + +. /scripts/live-functions + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +mkdir -p /root/cdrom +mount -n -o bind /cdrom /root/cdrom +chroot /root apt-cdrom -m add +umount /root/cdrom |
