diff options
| author | Daniel Baumann <daniel@debian.org> | 2007-09-23 14:46:24 +0200 |
|---|---|---|
| committer | Daniel Baumann <daniel@debian.org> | 2007-09-23 14:46:24 +0200 |
| commit | 8a4793dbe68ec2e28f0dbcc123f13339f57fac2b (patch) | |
| tree | d563eae3de783c5622778aff2959688f546a891a /scripts | |
| parent | 6c1a2cfab139bb4a61e7bcf5f4cafe3b7498f64e (diff) | |
| download | live-boot-8a4793dbe68ec2e28f0dbcc123f13339f57fac2b.tar.gz live-boot-8a4793dbe68ec2e28f0dbcc123f13339f57fac2b.zip | |
Adding casper 1.68+debian-1.
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/casper | 54 | ||||
| -rw-r--r-- | scripts/casper-bottom/02etc_casper_conf | 7 | ||||
| -rwxr-xr-x | scripts/casper-bottom/19keyboard | 32 | ||||
| -rwxr-xr-x | scripts/casper-bottom/22screensaver | 10 | ||||
| -rwxr-xr-x | scripts/casper-bottom/23networking | 44 | ||||
| -rwxr-xr-x | scripts/casper-bottom/25configure_init | 14 | ||||
| -rwxr-xr-x | scripts/casper-bottom/30accessibility | 21 |
7 files changed, 132 insertions, 50 deletions
diff --git a/scripts/casper b/scripts/casper index 3e4ed06..c019e3b 100644 --- a/scripts/casper +++ b/scripts/casper @@ -6,20 +6,9 @@ export PATH=/root/usr/bin:/root/usr/sbin:/root/bin:/root/sbin:/usr/bin:/usr/sbin mountpoint=/live_media -# Will be mounted if found as copy on write instead of tmpfs root_persistence="casper-rw" - -# TODO -## Each file found with this pattern will be mounted directly in the -## mountpoint extracted from file name "${other_mounts_pattern}<mountpoint>" -#other_mounts_pattern="casper-mount-" home_persistence="home-rw" -#overlay_method=unionfs -#if [ "${DPKG_ARCH}" = "ia64" ] || [ "${DPKG_ARCH}" = "hppa" ] || [ "${DPKG_ARCH}" = "sparc" ]; then -# overlay_method=devmapper -#fi - USERNAME="casper" USERFULLNAME="Live session user" HOST="live" @@ -40,14 +29,32 @@ fi # looking for casper specifics options as kernel parameters for x in $(cat /proc/cmdline); do case $x in + userfullname*) + export USERFULLNAME=${x#userfullname=} + export CASPERCONF="changed" + ;; + host*) + export HOST=${x#host=} + export CASPERCONF="changed" + ;; + username*) + export USERNAME=${x#username=} + export CASPERCONF="changed" + ;; netboot*) export NETBOOT=${x#netboot=} ;; toram) export TORAM=1 ;; - show-cow) - export SHOWCOW=1 ;; + hide-cow) + export HIDECOW=1 ;; persistent) export PERSISTENT=1 ;; + staticip*) + STATICIP=${x#staticip=} + if [ "${STATICIP}" == "" ]; then + STATICIP="frommedia" + fi + export STATICIP ;; casper-getty) export CASPERGETTY=1 ;; esac @@ -155,8 +162,6 @@ setup_loop() { } get_fstype() { - #FIXME# one use of this function expects "unknown" another does not! - # which is it??? local FSTYPE local FSSIZE eval $(fstype < $1) @@ -374,7 +379,7 @@ setup_unionfs() { mkdir -p /cow cowdevice="tmpfs" cow_fstype="tmpfs" - + # Looking for "${root_persistence}" device or file if [ ! -z "${PERSISTENT}" ]; then cowprobe=$(find_cow_device "${root_persistence}") @@ -382,19 +387,24 @@ setup_unionfs() { cowdevice=${cowprobe} cow_fstype=$(get_fstype "${cowprobe}") else - [ "$quiet" != "y" ] && log_begin_msg "Unable to find the persistent medium" + [ "$quiet" != "y" ] && log_begin_msg "Unable to find the persistent medium" fi fi mount ${cowdevice} -t ${cow_fstype} -o rw /cow || panic "Can not mount $cowdevice on /cow" + + # Look for a snapshot to copy + mount -t unionfs -o dirs=/cow=rw:$rofsstring unionfs "$rootmnt" || panic "Unionfs mount failed" - + for d in ${rofslist}; do mkdir -p "${rootmnt}/casper/${d##*/}" case d in - *.dir) mount -o bind "${d}" "${rootmnt}/casper/${d##*/}" ;; - *) mount -o move "${d}" "${rootmnt}/casper/${d##*/}" ;; + *.dir) # do nothing # mount -o bind "${d}" "${rootmnt}/casper/${d##*/}" + ;; + *) mount -o move "${d}" "${rootmnt}/casper/${d##*/}" + ;; esac done @@ -408,7 +418,7 @@ setup_unionfs() { fi fi - if [ ! -z "${SHOWCOW}" ]; then + if [ -z "${HIDECOW}" ]; then mkdir -p "$rootmnt/cow" mount -o bind /cow "$rootmnt/cow" fi @@ -416,7 +426,7 @@ setup_unionfs() { is_usb_device() { sysfs_path="${1#/sys}" - if /lib/udev/path_id "${sysfs_path}" | grep -Eq "ID_PATH=(usb|pci-[^-]*-usb)"; then + if /lib/udev/path_id "${sysfs_path}" | grep -E -q "ID_PATH=(usb|pci-[^-]*-usb)"; then return 0 fi return 1 diff --git a/scripts/casper-bottom/02etc_casper_conf b/scripts/casper-bottom/02etc_casper_conf index fd19ac9..7c4d08d 100644 --- a/scripts/casper-bottom/02etc_casper_conf +++ b/scripts/casper-bottom/02etc_casper_conf @@ -17,7 +17,14 @@ esac if [ -f /etc/casper.conf ] ; then + if [ ! -z "${CASPERCONF}" ]; then + # Updating casper.conf + sed -i -e 's/\(USERNAME="\).*"/\1'"${USERNAME}"'"/g' \ + -e 's/\(USERFULLNAME="\).*"/\1'"${USERFULLNAME}"'"/g' \ + -e 's/\(HOST="\).*"/\1'"${HOST}"'"/g' /etc/casper.conf + fi cp -p /etc/casper.conf /root/etc/casper.conf + else cat <<EOF >/root/etc/casper.conf export USERNAME="$USERNAME" diff --git a/scripts/casper-bottom/19keyboard b/scripts/casper-bottom/19keyboard index 895a698..d738faf 100755 --- a/scripts/casper-bottom/19keyboard +++ b/scripts/casper-bottom/19keyboard @@ -21,15 +21,33 @@ esac log_begin_msg "$DESCRIPTION" kbd=us +cslayout= +csvariant= for x in $(cat /proc/cmdline); do - case $x in - kbd-chooser/method=*) - kbd=${x#kbd-chooser/method=} - ;; - esac + 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=} + ;; + esac done -chroot /root /usr/sbin/install-keymap $kbd -casper-preseed /root debian-installer/keymap "$kbd" +if [ "$cslayout" ] && [ -x /root/bin/setupcon ] && \ + [ -f /etc/default/console-setup ]; 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 + fi +else + chroot /root /usr/sbin/install-keymap $kbd + casper-preseed /root debian-installer/keymap "$kbd" +fi log_end_msg diff --git a/scripts/casper-bottom/22screensaver b/scripts/casper-bottom/22screensaver index 6719f5f..ff3ec81 100755 --- a/scripts/casper-bottom/22screensaver +++ b/scripts/casper-bottom/22screensaver @@ -20,9 +20,17 @@ esac log_begin_msg "$DESCRIPTION" + gnome_screensaver_version=$(chroot /root dpkg-query -W --showformat='${Version}' gnome-screensaver 2>/dev/null) || gnome_screensaver_version="" + +if [ "${BUILD_SYSTEM}" == "Ubuntu" ]; then + gnome_screensaver_lock="/apps/gnome-screensaver/lock" +else + gnome_screensaver_lock="/apps/gnome-screensaver/lock_enabled" +fi + if [ -n "$gnome_screensaver_version" ]; then - 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 "${gnome_screensaver_lock}" false fi log_end_msg diff --git a/scripts/casper-bottom/23networking b/scripts/casper-bottom/23networking index 10d4ab2..8f4b698 100755 --- a/scripts/casper-bottom/23networking +++ b/scripts/casper-bottom/23networking @@ -21,34 +21,48 @@ esac log_begin_msg "$DESCRIPTION" +if [ "${STATICIP}" == "frommedia" ] && [ -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 +udevtrigger if [ -z "${NETBOOT}" ] ; then - 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 dhcp + if [ ! -z "${STATICIP}" ] && [ "${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 -fi - -for i in eth0 eth1 eth2 ath0 wlan0; do - [ ! -e /sys/class/net/$i ] || continue - cat >> "$IFFILE" <<EOF + done + else + 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 dhcp EOF -done + done + fi +fi log_end_msg diff --git a/scripts/casper-bottom/25configure_init b/scripts/casper-bottom/25configure_init index 010e2eb..84fa741 100755 --- a/scripts/casper-bottom/25configure_init +++ b/scripts/casper-bottom/25configure_init @@ -23,10 +23,7 @@ log_begin_msg "$DESCRIPTION" # Arrange for shells on virtual consoles, rather than login prompts if [ -n "$USERNAME" ]; then - if [ -z "${CASPERGETTY}" ]; then - sed -i -e "s|^\([^:]*:[^:]*:[^:]*\):.*getty.*\<\(tty[0-9].*\).*$|\1:/bin/login -f $USERNAME </dev/\2 >/dev/\2 2>\&1|" /root/etc/inittab - else - sed -i -e'/^[^#]/s%respawn:/sbin/getty%respawn:/sbin/casper-getty%' /root/etc/inittab + if [ ! -z "${CASPERGETTY}" ]; then # AUTOMATIC SERIAL CONSOLE # defconsole=$(sed -e 's%.*console=%console=%' /proc/cmdline) if echo "${defconsole}" | grep -qs console=ttyS; then @@ -50,6 +47,15 @@ if [ -n "$USERNAME" ]; then >>/root/etc/inittab fi fi + else + 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|^respawn.*|respawn /bin/login -f $USERNAME </dev/$(basename $f) > /dev/$(basename $f) 2>\&1|" $f + done + fi fi fi diff --git a/scripts/casper-bottom/30accessibility b/scripts/casper-bottom/30accessibility index 8352fb6..b0c049b 100755 --- a/scripts/casper-bottom/30accessibility +++ b/scripts/casper-bottom/30accessibility @@ -20,8 +20,18 @@ esac log_begin_msg "$DESCRIPTION" +gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf-2 2>/dev/null) || gconf_version="" + gct() { - chroot /root sudo -u "$USERNAME" gconftool-2 "$@" + 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 @@ -40,6 +50,9 @@ for x in $(cat /proc/cmdline); do 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/ + fi ;; # Moderate Visual Impairment access=v2) @@ -47,6 +60,8 @@ for x in $(cat /proc/cmdline); do gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [gnopernicus] gct -s -t bool /apps/gnopernicus/srcore/mag_active true gct -s -t bool /apps/gnopernicus/srcore/sp_active false + + 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) @@ -66,6 +81,8 @@ for x in $(cat /proc/cmdline); do 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/ ;; # Motor Difficulties - pointing devices access=m2) @@ -75,6 +92,8 @@ for x in $(cat /proc/cmdline); do gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false gct -s -t bool /desktop/gnome/interface/accessibility true gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats gok + + kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/ ;; esac done |
