summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2007-09-23 14:46:24 +0200
committerDaniel Baumann <daniel@debian.org>2007-09-23 14:46:24 +0200
commit8a4793dbe68ec2e28f0dbcc123f13339f57fac2b (patch)
treed563eae3de783c5622778aff2959688f546a891a /scripts
parent6c1a2cfab139bb4a61e7bcf5f4cafe3b7498f64e (diff)
downloadlive-boot-8a4793dbe68ec2e28f0dbcc123f13339f57fac2b.tar.gz
live-boot-8a4793dbe68ec2e28f0dbcc123f13339f57fac2b.zip
Adding casper 1.68+debian-1.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/casper54
-rw-r--r--scripts/casper-bottom/02etc_casper_conf7
-rwxr-xr-xscripts/casper-bottom/19keyboard32
-rwxr-xr-xscripts/casper-bottom/22screensaver10
-rwxr-xr-xscripts/casper-bottom/23networking44
-rwxr-xr-xscripts/casper-bottom/25configure_init14
-rwxr-xr-xscripts/casper-bottom/30accessibility21
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