Adding casper 1.61+debian-1. debian/1.61+debian-1
authorDaniel Baumann <daniel@debian.org>
Sun, 23 Sep 2007 12:46:22 +0000 (14:46 +0200)
committerDaniel Baumann <daniel@debian.org>
Sun, 23 Sep 2007 12:46:22 +0000 (14:46 +0200)
26 files changed:
bin/casper-reconfigure
casper.conf
debian/casper.install [deleted file]
debian/changelog
debian/changelog.upstream
debian/control
debian/dirs [moved from debian/casper.dirs with 100% similarity]
debian/examples [new file with mode: 0644]
debian/init.d [moved from debian/casper.init with 82% similarity, mode: 0644]
debian/install [new file with mode: 0644]
debian/lintian [moved from debian/casper.lintian with 100% similarity]
debian/patches/00list [new file with mode: 0644]
debian/patches/01-conglomeration.dpatch [new file with mode: 0644]
debian/postinst [moved from debian/casper.postinst with 100% similarity]
debian/rules
debian/ubiquity-casper.install [deleted file]
hooks/casper
scripts/casper
scripts/casper-bottom/01integrity_check
scripts/casper-bottom/10adduser
scripts/casper-bottom/14locales
scripts/casper-bottom/22gnome_panel_data
scripts/casper-bottom/23networking
scripts/casper-bottom/25configure_init
scripts/casper-bottom/33disable_binary_drivers
ubiquity-hooks/30accessibility [new file with mode: 0755]

index 628bff3..51f999b 100755 (executable)
@@ -47,6 +47,6 @@ if [ -z "$version" ]; then
     exit 0
 fi
 
-runcommandinroot "$root" dpkg-reconfigure -fnoninteractive --no-reload -phigh "$package"
+runcommandinroot "$root" dpkg-reconfigure -fnoninteractive --no-reload "$package"
 
 exit 0
index c6967f9..6b16149 100644 (file)
@@ -3,7 +3,7 @@
 # Supported variables are:
 # USERNAME, USERFULLNAME, HOST
 
-export USERNAME="debian"
-export USERFULLNAME="Debian Live user"
-export HOST="debian"
+export USERNAME="ubuntu"
+export USERFULLNAME="Custom LiveCD user"
+export HOST="ubuntu"
 
diff --git a/debian/casper.install b/debian/casper.install
deleted file mode 100644 (file)
index 28a4469..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-bin/casper-reconfigure usr/share/casper
-bin/casper-preseed     usr/share/casper
-hooks                  usr/share/initramfs-tools
-scripts                        usr/share/initramfs-tools
index f2182d6..030dd54 100644 (file)
@@ -1,3 +1,16 @@
+casper (1.61+debian-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Rebuild tarball without debian directory.
+  * Using dpatch for upstream modifications.
+  * Added patch for proper GDM autologin from Arnaud Cornet
+    <arnaud.cornet@gmail.com>.
+
+  [ Marco Amadori ]
+  * New upstream release (Resynced with 1.61, bzr 258).
+  * Usb discover patch from Malcom Gilles <live@ouabain.org>.
+ -- Marco Amadori <marco.amadori@gmail.com>  Tue, 18 Jul 2006 23:34:59 +0200
+
 casper (1.59+debian-1) unstable; urgency=low
 
   [ Daniel Baumann ]
index c27fcbe..f979257 100644 (file)
@@ -1,10 +1,19 @@
-casper (1.59) UNRELEASED; urgency=low
+casper (1.61) edgy; urgency=low
+
+  * Move PATH setting to top of casper script to avoid silliness where
+    PATH isn't correctly set.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 17 Jul 2006 12:53:59 +0200
+
+casper (1.60) edgy; urgency=low
 
   * Change start symlinks to kill symlinks for anacron, to avoid it being
     started by invoke-rc.d and similar.
   * Rearrange source package.
   * Redo how the init script works and require it to be installed in the
     live fs.
+  * Bump version number to be higher than Debian's so we don't
+    automatically sync.
 
  -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 31 May 2006 00:01:40 +0200
 
@@ -1077,3 +1086,4 @@ casper (0.1) hoary; urgency=low
   * Initial Release. 
   
  -- Matt Zimmerman <mdz@canonical.com>  Wed,  5 Jan 2005 14:30:28 -0800
+
index 95a9674..0012c86 100644 (file)
@@ -3,14 +3,14 @@ Section: admin
 Priority: optional
 Maintainer: Marco Amadori <marco.amadori@gmail.com>
 Uploaders: Daniel Baumann <daniel@debian.org>
-Build-Depends: debhelper (>= 4)
+Build-Depends: debhelper (>= 4), dpatch
 Standards-Version: 3.7.2
 
 Package: casper
-Section: admin
 Architecture: any
 Depends: initramfs-tools (>= 0.40), user-setup
 Conflicts: usplash (<< 0.1-30)
+Recommends: live-package
 Suggests: dmsetup
 Description: Debian Live initramfs generator
  Casper provides an initramfs generator suited for booting a Debian Live systems
similarity index 100%
rename from debian/casper.dirs
rename to debian/dirs
diff --git a/debian/examples b/debian/examples
new file mode 100644 (file)
index 0000000..195687c
--- /dev/null
@@ -0,0 +1 @@
+casper.conf
old mode 100755 (executable)
new mode 100644 (file)
similarity index 82%
rename from debian/casper.init
rename to debian/init.d
index 797d230..6d2d6d3
@@ -2,7 +2,7 @@
 
 grep -qs boot=casper /proc/cmdline || exit 0
 
-# Try to cache everything we're likely to need after ejecting. This
+# Try to cache everything we're likely to need after ejecting.  This
 # is fragile and simple-minded, but our options are limited.
 cache_path() {
     path="$1"
@@ -25,10 +25,10 @@ for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default; do
     cache_path "$path"
 done
 
-eject -p -m /live_media >/dev/null 2>&1
+eject -p -m /cdrom >/dev/null 2>&1
 
 # XXX - i18n
-echo -n "Please remove the disc (if any), close the tray (if any) and press ENTER: "
+echo -n "Please remove the disc, close the tray (if any) and press ENTER: "
 if [ -x /sbin/usplash_write ]; then
     /sbin/usplash_write "TIMEOUT 0"
     /sbin/usplash_write "TEXT Please remove the disc, close the tray (if any)"
diff --git a/debian/install b/debian/install
new file mode 100644 (file)
index 0000000..3253fd7
--- /dev/null
@@ -0,0 +1,5 @@
+bin/casper-preseed             /usr/share/casper
+bin/casper-reconfigure         /usr/share/casper
+casper-md5check/casper-md5check        /usr/lib/casper
+hooks                          /usr/share/initramfs-tools
+scripts                                /usr/share/initramfs-tools
similarity index 100%
rename from debian/casper.lintian
rename to debian/lintian
diff --git a/debian/patches/00list b/debian/patches/00list
new file mode 100644 (file)
index 0000000..4997088
--- /dev/null
@@ -0,0 +1 @@
+01-conglomeration
diff --git a/debian/patches/01-conglomeration.dpatch b/debian/patches/01-conglomeration.dpatch
new file mode 100644 (file)
index 0000000..f9d868e
--- /dev/null
@@ -0,0 +1,586 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 01-conglomeration.dpatch
+##
+## DP: Needs to be broken out.
+
+@DPATCH@
+
+diff -Naur casper-1.61+debian.orig/bin/casper-reconfigure casper-1.61+debian/bin/casper-reconfigure
+--- casper-1.61+debian.orig/bin/casper-reconfigure     2006-05-11 19:03:29.000000000 +0000
++++ casper-1.61+debian/bin/casper-reconfigure  2006-07-19 17:38:18.000000000 +0000
+@@ -47,6 +47,6 @@
+     exit 0
+ fi
+-runcommandinroot "$root" dpkg-reconfigure -fnoninteractive --no-reload "$package"
++runcommandinroot "$root" dpkg-reconfigure -fnoninteractive --no-reload -phigh "$package"
+ exit 0
+diff -Naur casper-1.61+debian.orig/casper.conf casper-1.61+debian/casper.conf
+--- casper-1.61+debian.orig/casper.conf        2006-05-02 12:16:55.000000000 +0000
++++ casper-1.61+debian/casper.conf     2006-07-19 17:38:18.000000000 +0000
+@@ -3,7 +3,7 @@
+ # Supported variables are:
+ # USERNAME, USERFULLNAME, HOST
+-export USERNAME="ubuntu"
+-export USERFULLNAME="Custom LiveCD user"
+-export HOST="ubuntu"
++export USERNAME="debian"
++export USERFULLNAME="Debian Live user"
++export HOST="debian"
+diff -Naur casper-1.61+debian.orig/hooks/casper casper-1.61+debian/hooks/casper
+--- casper-1.61+debian.orig/hooks/casper       2006-06-15 09:04:08.000000000 +0000
++++ casper-1.61+debian/hooks/casper    2006-07-19 17:38:18.000000000 +0000
+@@ -18,10 +18,17 @@
+ . /usr/share/initramfs-tools/hook-functions
+-# cloop is needed
+-manual_add_modules cloop
++
+ manual_add_modules unionfs
++# Needed for devmapper
++if [ -e /sbin/dmsetup ]; then
++      manual_add_modules cloop
++      copy_exec /sbin/blockdev /sbin
++      copy_exec /sbin/dmsetup /sbin
++      manual_add_modules dm-snapshot
++fi
++
+ # We need losetup
+ copy_exec /sbin/losetup /sbin
+@@ -30,16 +37,25 @@
+ copy_exec /usr/share/casper/casper-reconfigure /bin
+ copy_exec /usr/share/casper/casper-preseed /bin
+-mkdir -p ${DESTDIR}/lib/udev
+-copy_exec /lib/udev/cdrom_id /lib/udev
+-copy_exec /lib/udev/vol_id /lib/udev
+-copy_exec /lib/udev/path_id /lib/udev
++# Ubuntu or Debian test
++if [ -x /sbin/udevplug ]; then
++      mkdir -p ${DESTDIR}/lib/udev
++      copy_exec /lib/udev/cdrom_id /lib/udev
++      copy_exec /lib/udev/vol_id /lib/udev
++      copy_exec /lib/udev/path_id /lib/udev
++else
++      copy_exec /sbin/udevtrigger /sbin
++fi
++
+ copy_exec /usr/bin/udevinfo /bin
+-# Needed for devmapper
+-copy_exec /sbin/blockdev /sbin
+-copy_exec /sbin/dmsetup /sbin
+-manual_add_modules dm-snapshot
++# cifs boot 
++if [ -x /sbin/mount.cifs ]; then
++      copy_exec /sbin/mount.cifs /sbin
++      for x in cifs; do
++              manual_add_modules ${x}
++      done
++fi
+ # squashfs
+ manual_add_modules squashfs
+diff -Naur casper-1.61+debian.orig/scripts/casper casper-1.61+debian/scripts/casper
+--- casper-1.61+debian.orig/scripts/casper     2006-07-17 10:53:28.000000000 +0000
++++ casper-1.61+debian/scripts/casper  2006-07-19 17:38:18.000000000 +0000
+@@ -4,7 +4,9 @@
+ export PATH=/root/usr/bin:/root/usr/sbin:/root/bin:/root/sbin:/usr/bin:/usr/sbin:/bin:/sbin
+-mountpoint=/cdrom
++mountpoint=/live_media
++root_persistence="casper-rw"
++home_persistence="home-rw"
+ mkdir -p $mountpoint
+@@ -13,15 +15,15 @@
+     overlay_method=devmapper
+ fi
+-USERNAME=ubuntu
+-USERFULLNAME="Ubuntu LiveCD user"
+-HOST=ubuntu
++USERNAME=debian
++USERFULLNAME="Debian Live user"
++HOST=debian
+ [ -f /etc/casper.conf ] && . /etc/casper.conf
+ export USERNAME USERFULLNAME HOST
+-casper_path() {
++casper_path() { # Fixme: uglyness
+     path=$1
+     if [ -e "$path/casper/filesystem.cloop" ]; then
+         echo "$path/casper/filesystem.cloop"
+@@ -29,6 +31,12 @@
+     elif [ -e "$path/casper/filesystem.squashfs" ]; then
+         echo "$path/casper/filesystem.squashfs"
+         return 0
++    elif [ -e "$path/casper/filesystem.ext2" ]; then
++        echo "$path/casper/filesystem.ext2"
++        return 0
++    elif [ -e "$path/casper/filesystem.xfs" ]; then
++        echo "$path/casper/filesystem.xfs"
++        return 0
+     fi
+     return 1
+ }
+@@ -49,7 +57,7 @@
+             *.cloop)
+                 echo $(setup_loop "$1" "cloop" "/sys/block/cloop*")
+                       ;;
+-            *.squashfs)
++            *.squashfs|*.ext2|*.xfs)
+                 echo $(setup_loop "$1" "loop" "/sys/block/loop*")
+                 ;;
+             *)
+@@ -78,8 +86,12 @@
+     local module=$2
+     local pattern=$3
+-    modprobe -Qb "$module"
+-    udevplug -W
++    modprobe -qb "$module"
++    if [ -x /sbin/udevplug ]; then
++        udevplug -W
++    else
++        udevtrigger
++    fi
+  
+     for loopdev in $pattern; do
+         if [ "$(cat $loopdev/size)" -eq 0 ]; then
+@@ -107,7 +119,7 @@
+     backdev="$1"
+     rootmnt="$2"
+-    modprobe -Qb dm-mod
++    modprobe -qb dm-mod
+     COW_DEVICE=/dev/ram1
+     COW_NAME="casper-cow"
+@@ -143,82 +155,137 @@
+     return 1
+ }
+-find_cow_device() {
+-    for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop); do
+-        for dev in $(subdevices "${sysblock}"); do
+-            devname=$(sys2dev "${dev}")
+-            if [ "$(/lib/udev/vol_id -l $devname 2>/dev/null)" = "casper-rw" ]; then
+-                echo "$devname"
+-                return
+-            elif [ "$(get_fstype ${devname})" = "vfat" ]; then
+-                mkdir -p /cow-backing
+-                if where_is_mounted ${devname} > /dev/null; then
+-                    mount -o remount,rw ${devname} $(where_is_mounted ${devname}) || panic "Remounting failed"
+-                    mount -o bind $(where_is_mounted ${devname}) /cow-backing || panic "Cannot bind-mount"
+-                else
+-                    mount -t $(get_fstype "${devname}") -o rw "${devname}" /cow-backing || panic "Cannot mount $devname on /cow-backing"
+-                fi
++copy_to_ram() {
++      copyto="${mountpoint}_swap"
+-                if [ -e "/cow-backing/casper-rw" ]; then
+-                    echo $(setup_loop "/cow-backing/casper-rw" "loop" "/sys/block/loop*")
+-                    return 0
+-                else
+-                    umount /cow-backing
+-                fi
+-            fi
+-            
+-        done
+-    done
+-    return 1    
++      size=$(du -ks ${mountpoint} | cut -f1)
++      size=$(expr ${size} + ${size}/20 ) # Fixme: 5% more to be sure
++      needed_space=$(expr ${size} * 1024)
++      freespace=$( expr $(awk '/MemFree/{print $2}' /proc/meminfo) + $( cat /proc/meminfo | grep Cached | head -n 1 | awk '/Cached/{print $2}' - ))
++      
++      if [ ! ${freespace} -lt ${needed_space}  ] ; then
++              [ "$quiet" != "y" ] && log_begin_msg "Not enough free memory to copy to ram"
++              [ "$quiet" != "y" ] && log_end_msg
++              return
++      else
++              [ "$quiet" != "y" ] && log_begin_msg "Copying live media to ram..."
++              mkdir "${copyto}"
++              mount -t tmpfs -o size=${size}k /dev/shm ${copyto}
++              cp -a ${mountpoint}/* ${copyto}
++              umount ${mountpoint}
++              mount -r -o move ${copyto} ${mountpoint}
++              rmdir ${copyto}
++              [ "$quiet" != "y" ] && log_end_msg
++      fi
++}
++
++find_cow_device() {
++      pers_label="${1}"
++      cow_backing="/${pers_label}-backing"
++      for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop); do
++              for dev in $(subdevices "${sysblock}"); do
++                      devname=$(sys2dev "${dev}")
++                      if [ "$(/lib/udev/vol_id -l $devname 2>/dev/null)" = "${pers_label}" ]; then
++                              echo "$devname"
++                              return
++                      elif [ "$(get_fstype ${devname})" = "vfat" ]; then
++                              mkdir -p "${cow_backing}"
++                              if where_is_mounted ${devname} > /dev/null; then
++                                      mount -o remount,rw ${devname} $(where_is_mounted ${devname}) || panic "Remounting failed"
++                                      mount -o bind $(where_is_mounted ${devname}) ${cow_backing} || panic "Cannot bind-mount"
++                              else
++                                      mount -t $(get_fstype "${devname}") -o rw "${devname}" ${cow_backing} || panic "Cannot mount $devname on /cow-backing"
++                              fi
++
++                              if [ -e "${cow_backing}/${pers_label}" ]; then
++                                      echo $(setup_loop "${cow_backing}/${pers_label}" "loop" "/sys/block/loop*")
++                                      return 0
++                              else
++                                      umount ${cow_backing}
++                              fi
++                      fi
++              done
++      done
++}
++
++do_netmount() {
++      rofsmnt="$1"
++      # adapted from NFS filesystem mounting
++
++      modprobe -q cifs
++      # For DHCP
++      modprobe -q af_packet
++
++      ipconfig ${DEVICE} /tmp/net-${DEVICE}.conf
++      if [ "x${NFSROOT}" = "xauto" ]; then
++              NFSROOT=${ROOTSERVER}:${ROOTPATH}
++      fi
++
++      NFSOPTS="-ouser=root,password="
++
++      [ "$quiet" != "y" ] && log_begin_msg "Mounting using mount.cifs with ${NFSROOT} ${rofsmnt} ${NFSOPTS}"
++      mount.cifs "${NFSROOT}" "${rofsmnt}" "${NFSOPTS}" 
++      [ "$quiet" != "y" ] && log_end_msg
+ }
+ setup_unionfs() {
+       backdev="$1"
+       rootmnt="$2"
+-        modprobe -Qb unionfs
+-        mkdir -p /cow
++      modprobe -qb unionfs
++      mkdir -p /cow
++      cowdevice="tmpfs"
++      cow_fstype="tmpfs"
++      # Looking for "${root_persistence}" device or file
++      if grep -q persistent /proc/cmdline; then
++              cowprobe=$(find_cow_device "${root_persistence}")
++              if [ -b "${cowprobe}" ]; then
++                      cowdevice=${cowprobe}
++                      cow_fstype=$(get_fstype "${cowprobe}")
++              else
++                      [ "$quiet" != "y" ] &&  log_begin_msg "Unable to find the persistent medium"
++              fi
++      fi
+-        if grep -q persistent /proc/cmdline; then
+-            i=0
+-            # We love udev and the kernel!
+-            while [ "$i" -lt 300 ]; do
+-                cowdevice=$(find_cow_device) 
+-                if [ -b "$cowdevice" ]; then
+-                    mount -t $(get_fstype "$cowdevice") -o rw "$cowdevice" /cow || panic "Can not mount $cowdevice on /cow"
+-                    break
+-                fi
+-                sleep 5
+-#                sleep 0.1
+-                i=$(( $i + 1 ))
+-            done
+-        else
+-            mount -t tmpfs tmpfs /cow
+-        fi
++      mount ${cowdevice} -t ${cow_fstype} -o rw /cow || panic "Can not mount $cowdevice on /cow"
+       mkdir -p /rofs
+-    if [ "$(get_fstype $backdev)" = "unknown" ]; then
+-        panic "Unknown file system type on $backdev"
+-    fi
+-      mount -t $(get_fstype "$backdev") -o ro "$backdev" /rofs || panic "Can not mount $backdev on /rofs"
+-
++      if grep -q netboot /proc/cmdline; then
++              do_netmount /rofs || panic "Can not mount netroot on /rofs"
++      else
++              if [ "$(get_fstype $backdev)" = "unknown" ]; then
++                      panic "Unknown file system type on $backdev"
++              fi
++              mount -t $(get_fstype "$backdev") -o ro "$backdev" /rofs || panic "Can not mount $backdev on /rofs"
++      fi
++      
+       mount -t unionfs -o dirs=/cow=rw:/rofs=ro unionfs "$rootmnt"
+-        if grep -q show-cow /proc/cmdline; then
+-            mkdir -p "$rootmnt/cow"
+-            mount -o bind /cow "$rootmnt/cow"
+-        fi
+-        mkdir -p "$rootmnt/rofs"
+-        mount -o bind /rofs "$rootmnt/rofs"
++      if grep -q show-cow /proc/cmdline; then
++              mkdir -p "$rootmnt/cow"
++              mount -o bind /cow "$rootmnt/cow"
++      fi
++      mkdir -p "$rootmnt/rofs"
++      mount -o bind /rofs "$rootmnt/rofs"
++
++      # Adding home persitence
++      if grep -q homepersistence /proc/cmdline; then
++              homecow=$(find_cow_device "${home_persistence}" )
++              if [ -b "${homecow}" ]; then
++                      mount ${homecow} -t $(get_fstype "${homecow}") -o rw "${rootmnt}/home"
++              else 
++                      [ "$quiet" != "y" ] &&  log_begin_msg "Unable to find the persistent home medium"
++              fi
++      fi
+ }
+ is_usb_device() {
+     sysfs_path="${1#/sys}"
+-    if /lib/udev/path_id "${sysfs_path}" | grep -q "ID_PATH=usb"; then
++    if /lib/udev/path_id "${sysfs_path}" | grep -q "ID_PATH=(usb|pci-[^-]*-usb)"; then
+         return 0
+     fi
+     return 1
+ }
+-find_cd() {
++find_live() {
+       mounted=
+         for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram); do
+             devname=$(sys2dev "${sysblock}")
+@@ -283,18 +350,26 @@
+     set_usplash_timeout
+     for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13; do
+-        live_image=$(find_cd)
++        live_image=$(find_live)
+         if [ "${live_image}" ]; then
+             break
+         fi
+         sleep 1
+     done
+     if [ "$?" -gt 0 ]; then
+-        panic "Unable to find a CD-ROM containing a live file system"
++        panic "Unable to find a medium containing a live file system"
+     fi
+     
++      if grep -q toram /proc/cmdline; then
++              copy_to_ram
++      fi
++
+     setup_cow "$overlay_method" "$(get_backing_device $live_image)" "$rootmnt"
++      # show it on new rootfs
++      mkdir ${rootmnt}/${mountpoint}
++      mount -o bind ${mountpoint} ${rootmnt}/${mountpoint}
++
+     log_end_msg
+     maybe_break casper-bottom
+diff -Naur casper-1.61+debian.orig/scripts/casper-bottom/01integrity_check casper-1.61+debian/scripts/casper-bottom/01integrity_check
+--- casper-1.61+debian.orig/scripts/casper-bottom/01integrity_check    2006-04-21 14:08:09.000000000 +0000
++++ casper-1.61+debian/scripts/casper-bottom/01integrity_check 2006-07-19 17:38:18.000000000 +0000
+@@ -15,4 +15,4 @@
+        ;;
+ esac
+-grep integrity-check /proc/cmdline && casper-md5check /cdrom /cdrom/md5sum.txt < /dev/tty8
++grep integrity-check /proc/cmdline && casper-md5check /live_media /live_media/md5sum.txt < /dev/tty8
+diff -Naur casper-1.61+debian.orig/scripts/casper-bottom/10adduser casper-1.61+debian/scripts/casper-bottom/10adduser
+--- casper-1.61+debian.orig/scripts/casper-bottom/10adduser    2006-05-11 11:35:21.000000000 +0000
++++ casper-1.61+debian/scripts/casper-bottom/10adduser 2006-07-19 17:38:18.000000000 +0000
+@@ -28,7 +28,9 @@
+ set passwd/user-uid 999
+ EOF
+-chroot /root /usr/lib/user-setup/user-setup-apply > /dev/null
++chroot /root /usr/bin/env -i HOME="/root" \
++       TERM="${TERM}" PATH="/usr/sbin:/usr/bin:/sbin:/bin" \
++       /usr/lib/user-setup/user-setup-apply > /dev/null
+ # Clear out debconf database again to avoid confusing ubiquity later.
+ chroot /root debconf-communicate -fnoninteractive casper > /dev/null <<EOF
+@@ -40,18 +42,21 @@
+ EOF
+ if [ -f /root/etc/sudoers ]; 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
+-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
++      if [ -x /sbin/udevplug ]; then 
++              # FIXME: ugly hack, admin is not present in debian so we do here ubuntu stuff
++              # XXX - awful hack to stop xscreensaver locking the screen (#7150)
++              echo 'RUNNING_UNDER_GDM="yes"' >> /root/etc/environment
++        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
++              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
++    else # We are in debian :-)
++        echo "${USERNAME}  ALL=(ALL) NOPASSWD: ALL" >> /root/etc/sudoers          
+     fi
+-done
++fi
+ if [ -L /root/home/$USERNAME/Examples ]; then
+     chroot /root install -o $USERNAME -g $USERNAME -d /home/$USERNAME/Desktop/
+diff -Naur casper-1.61+debian.orig/scripts/casper-bottom/14locales casper-1.61+debian/scripts/casper-bottom/14locales
+--- casper-1.61+debian.orig/scripts/casper-bottom/14locales    2006-05-16 10:45:27.000000000 +0000
++++ casper-1.61+debian/scripts/casper-bottom/14locales 2006-07-19 17:38:18.000000000 +0000
+@@ -20,18 +20,33 @@
+ log_begin_msg "$DESCRIPTION"
+-locale=en_US.UTF-8
++if [ -e /root/etc/default/locale ]; then
++      grep_file=/root/etc/default/locale
++      locale=$(grep 'LANG=' ${grep_file} | sed s/'LANG='// | tr -d '"' ) 
++elif [ -e /root/etc/environment ]; then # Old locales policy
++      grep_file=/root/etc/environment
++fi
++
++# commandline
+ for x in $(cat /proc/cmdline); do
+-                case $x in
+-                        debian-installer/locale=*)
+-                                locale=${x#debian-installer/locale=}
+-                                ;;
+-                esac
++      case $x in
++              debian-installer/locale=*)
++                      locale=${x#debian-installer/locale=}
++                      set_locale="true"
++                      ;;
++      esac
+ done
+-LANG=$(grep "^${locale}" /root/usr/share/i18n/SUPPORTED | grep UTF-8 |sed -e 's, .*,,' -e q)
++if [ -z "${locale}" ]; then
++      # Set a default one
++      locale=en_US.UTF-8
++      set_locale="true"
++fi
+-printf 'LANG="%s"\n' "${LANG}" >> /root/etc/environment
+-chroot /root /usr/sbin/locale-gen "${LANG}"
++if [ ! -z "${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}" 
++      chroot /root /usr/sbin/locale-gen "${LANG}"
++fi
+ log_end_msg
+diff -Naur casper-1.61+debian.orig/scripts/casper-bottom/15autologin casper-1.61+debian/scripts/casper-bottom/15autologin
+--- casper-1.61+debian.orig/scripts/casper-bottom/15autologin  2006-05-11 10:06:07.000000000 +0000
++++ casper-1.61+debian/scripts/casper-bottom/15autologin       2006-07-19 17:48:50.000000000 +0000
+@@ -27,6 +27,8 @@
+ fi
+ if chroot /root [ -f ${GDMCONF} ]; then
++    # true hack ! -- nohar
++    chroot /root cp /usr/share/gdm/defaults.conf /etc/gdm/gdm.conf
+     # Configure GDM autologin
+     chroot /root sed -i \
+         -e "s/^AutomaticLoginEnable=.*\$/AutomaticLoginEnable=true/" \
+diff -Naur casper-1.61+debian.orig/scripts/casper-bottom/22gnome_panel_data casper-1.61+debian/scripts/casper-bottom/22gnome_panel_data
+--- casper-1.61+debian.orig/scripts/casper-bottom/22gnome_panel_data   2006-05-11 10:05:55.000000000 +0000
++++ casper-1.61+debian/scripts/casper-bottom/22gnome_panel_data        2006-07-19 17:38:18.000000000 +0000
+@@ -20,8 +20,10 @@
+ log_begin_msg "$DESCRIPTION"
+-if chroot /root /bin/sh -c laptop-detect; then
+-    casper-reconfigure /root gnome-panel-data
++if [ -x /root/usr/sbin/laptop-detect ]; then
++      if chroot /root /bin/sh -c /usr/sbin/laptop-detect; then
++          casper-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=""
+diff -Naur casper-1.61+debian.orig/scripts/casper-bottom/23networking casper-1.61+debian/scripts/casper-bottom/23networking
+--- casper-1.61+debian.orig/scripts/casper-bottom/23networking 2006-05-11 10:05:11.000000000 +0000
++++ casper-1.61+debian/scripts/casper-bottom/23networking      2006-07-19 17:38:18.000000000 +0000
+@@ -27,7 +27,11 @@
+ EOF
+-udevplug -Bpci -Iclass="0x02*"
++if [ -x /sbin/udevplug ]; then
++      udevplug -Bpci -Iclass="0x02*"
++else
++      udevtrigger
++fi
+ for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*; do
+     [ -e $interface ] || continue
+diff -Naur casper-1.61+debian.orig/scripts/casper-bottom/25configure_init casper-1.61+debian/scripts/casper-bottom/25configure_init
+--- casper-1.61+debian.orig/scripts/casper-bottom/25configure_init     2006-06-15 09:08:14.000000000 +0000
++++ casper-1.61+debian/scripts/casper-bottom/25configure_init  2006-07-19 17:38:18.000000000 +0000
+@@ -28,9 +28,11 @@
+ # This has the nice side effect of the cron.{daily,weekly,monthly} jobs in
+ # /etc/crontab remaining disabled, yet also not run by anacron
+-for f in /root/etc/rc?.d/S??anacron; do
+-    mv ${f} ${f%/*}/K00anacron
+-done
++if [ -x /root/etc/init.d/anacron ]; then
++      for f in /root/etc/rc?.d/S??anacron; do
++      mv ${f} $(dirname ${f})/K00anacron
++      done
++fi
+ # No point, really
+ rm -f /root/etc/rc?.d/[SK]??postfix
+@@ -40,15 +42,8 @@
+ # Disable readahead since it doesn't play well with squashfs + unionfs
+ # use chmod instead of mv to not trigger unionfs bugs.
+-chmod -x /root/sbin/readahead-list
+-
+-# Install shutdown script
+-cp -a /lib/casper/shutdown /root/etc/init.d/casper-shutdown
+-if [ -f /root/etc/rc0.d/S90halt ]; then
+-    ln -s ../init.d/casper-shutdown /root/etc/rc0.d/S89casper
+-fi
+-if [ -f /root/etc/rc6.d/S90reboot ]; then
+-    ln -s ../init.d/casper-shutdown /root/etc/rc6.d/S89casper
++if [ -e /root/sbin/readahead-list ]; then
++      chmod -x /root/sbin/readahead-list
+ fi
+ log_end_msg
+diff -Naur casper-1.61+debian.orig/scripts/casper-bottom/33disable_binary_drivers casper-1.61+debian/scripts/casper-bottom/33disable_binary_drivers
+--- casper-1.61+debian.orig/scripts/casper-bottom/33disable_binary_drivers     2006-05-13 08:13:22.000000000 +0000
++++ casper-1.61+debian/scripts/casper-bottom/33disable_binary_drivers  2006-07-19 17:38:18.000000000 +0000
+@@ -20,4 +20,6 @@
+ log_begin_msg "$DESCRIPTION"
+-echo 'DISABLED_MODULES="fglrx nv"' >> /root/etc/default/linux-restricted-modules-common
++if [ -e /root/etc/default/linux-restricted-modules-common ]; then
++      echo 'DISABLED_MODULES="fglrx nv"' >> /root/etc/default/linux-restricted-modules-common
++fi
similarity index 100%
rename from debian/casper.postinst
rename to debian/postinst
index 1b140bb..53b9e33 100755 (executable)
@@ -3,38 +3,37 @@
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
-VERSION:=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p')
-DEB_BUILD_PROG:=dpkg-buildpackage -us -uc -rfakeroot
+include /usr/share/dpatch/dpatch.make
 
-upstream:
-       cd .. && bzr branch http://mammadori.homeip.net/bzr/casper-debian || exit 0
-       rm .bzr -rf
-       find . -type d -name .svn -exec rm -rf {} \; || exit 0
-
-build: build-stamp
+build: patch-stamp build-stamp
 build-stamp:
        dh_testdir
 
+       # Building package
        $(MAKE) -C casper-md5check
 
        touch build-stamp
 
-clean:
+clean: unpatch
        dh_testdir
-       rm -f build-stamp
+       rm -f patch-stamp build-stamp
 
+       # Cleaning package
        -$(MAKE) -C casper-md5check clean
 
        dh_clean
 
 install: build
        dh_testdir
+       dh_testroot
        dh_clean -k
        dh_installdirs
        dh_install
 
-       install -m755 casper-md5check/casper-md5check debian/casper/usr/lib/casper
-       install -D -m 644 debian/casper.lintian debian/casper/usr/share/lintian/overrides/casper
+       # Installing lintian override
+       install -D -m 0644 debian/lintian debian/casper/usr/share/lintian/overrides/casper
+
+       # Fixing permission
        chmod 0755 debian/casper/usr/share/initramfs-tools/scripts/casper
 
 binary-indep: build install
@@ -42,9 +41,10 @@ binary-indep: build install
 binary-arch: build install
        dh_testdir
        dh_testroot
+       dh_installchangelogs debian/changelog.upstream
        dh_installdocs
+       dh_installexamples
        dh_installinit -r --no-start -- start 89 0 6 .
-       dh_installchangelogs debian/changelog.upstream
        dh_link
        dh_strip
        dh_compress
diff --git a/debian/ubiquity-casper.install b/debian/ubiquity-casper.install
deleted file mode 100644 (file)
index 866ebdd..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-bin/casper-reconfigure usr/bin
-ubiquity-hooks/* usr/lib/ubiquity/target-config
index 7229612..8779944 100755 (executable)
@@ -18,17 +18,10 @@ esac
 
 . /usr/share/initramfs-tools/hook-functions
 
-
+# cloop is needed
+manual_add_modules cloop
 manual_add_modules unionfs
 
-# Needed for devmapper
-if [ -e /sbin/dmsetup ]; then
-       manual_add_modules cloop
-       copy_exec /sbin/blockdev /sbin
-       copy_exec /sbin/dmsetup /sbin
-       manual_add_modules dm-snapshot
-fi
-
 # We need losetup
 copy_exec /sbin/losetup /sbin
 
@@ -37,25 +30,16 @@ mkdir -p ${DESTDIR}/lib/casper
 copy_exec /usr/share/casper/casper-reconfigure /bin
 copy_exec /usr/share/casper/casper-preseed /bin
 
-# Ubuntu or Debian test
-if [ -x /sbin/udevplug ]; then
-       mkdir -p ${DESTDIR}/lib/udev
-       copy_exec /lib/udev/cdrom_id /lib/udev
-       copy_exec /lib/udev/vol_id /lib/udev
-       copy_exec /lib/udev/path_id /lib/udev
-else
-       copy_exec /sbin/udevtrigger /sbin
-fi
-
+mkdir -p ${DESTDIR}/lib/udev
+copy_exec /lib/udev/cdrom_id /lib/udev
+copy_exec /lib/udev/vol_id /lib/udev
+copy_exec /lib/udev/path_id /lib/udev
 copy_exec /usr/bin/udevinfo /bin
 
-# cifs boot 
-if [ -x /sbin/mount.cifs ]; then
-       copy_exec /sbin/mount.cifs /sbin
-       for x in cifs; do
-               manual_add_modules ${x}
-       done
-fi
+# Needed for devmapper
+copy_exec /sbin/blockdev /sbin
+copy_exec /sbin/dmsetup /sbin
+manual_add_modules dm-snapshot
 
 # squashfs
 manual_add_modules squashfs
index 2557595..3d8c453 100644 (file)
@@ -2,9 +2,9 @@
 
 # set -e
 
-mountpoint=/live_media
-root_persistence="casper-rw"
-home_persistence="home-rw"
+export PATH=/root/usr/bin:/root/usr/sbin:/root/bin:/root/sbin:/usr/bin:/usr/sbin:/bin:/sbin
+
+mountpoint=/cdrom
 
 mkdir -p $mountpoint
 
@@ -13,15 +13,15 @@ if [ "${DPKG_ARCH}" = "ia64" ] || [ "${DPKG_ARCH}" = "hppa" ] || [ "${DPKG_ARCH}
     overlay_method=devmapper
 fi
 
-USERNAME=debian
-USERFULLNAME="Debian Live user"
-HOST=debian
+USERNAME=ubuntu
+USERFULLNAME="Ubuntu LiveCD user"
+HOST=ubuntu
 
 [ -f /etc/casper.conf ] && . /etc/casper.conf
 
 export USERNAME USERFULLNAME HOST
 
-casper_path() { # Fixme: uglyness
+casper_path() {
     path=$1
     if [ -e "$path/casper/filesystem.cloop" ]; then
         echo "$path/casper/filesystem.cloop"
@@ -29,12 +29,6 @@ casper_path() { # Fixme: uglyness
     elif [ -e "$path/casper/filesystem.squashfs" ]; then
         echo "$path/casper/filesystem.squashfs"
         return 0
-    elif [ -e "$path/casper/filesystem.ext2" ]; then
-        echo "$path/casper/filesystem.ext2"
-        return 0
-    elif [ -e "$path/casper/filesystem.xfs" ]; then
-        echo "$path/casper/filesystem.xfs"
-        return 0
     fi
     return 1
 }
@@ -55,7 +49,7 @@ get_backing_device() {
             *.cloop)
                 echo $(setup_loop "$1" "cloop" "/sys/block/cloop*")
                        ;;
-            *.squashfs|*.ext2|*.xfs)
+            *.squashfs)
                 echo $(setup_loop "$1" "loop" "/sys/block/loop*")
                 ;;
             *)
@@ -84,12 +78,8 @@ setup_loop() {
     local module=$2
     local pattern=$3
 
-    modprobe -qb "$module"
-    if [ -x /sbin/udevplug ]; then
-        udevplug -W
-    else
-        udevtrigger
-    fi
+    modprobe -Qb "$module"
+    udevplug -W
  
     for loopdev in $pattern; do
         if [ "$(cat $loopdev/size)" -eq 0 ]; then
@@ -117,7 +107,7 @@ setup_devmapper() {
     backdev="$1"
     rootmnt="$2"
 
-    modprobe -qb dm-mod
+    modprobe -Qb dm-mod
     COW_DEVICE=/dev/ram1
     COW_NAME="casper-cow"
 
@@ -153,126 +143,71 @@ where_is_mounted() {
     return 1
 }
 
-copy_to_ram() {
-       copyto="${mountpoint}_swap"
-
-       size=$(du -ks ${mountpoint} | cut -f1)
-       size=$(expr ${size} + ${size}/20 ) # Fixme: 5% more to be sure
-       needed_space=$(expr ${size} * 1024)
-       freespace=$( expr $(awk '/MemFree/{print $2}' /proc/meminfo) + $( cat /proc/meminfo | grep Cached | head -n 1 | awk '/Cached/{print $2}' - ))
-       
-       if [ ! ${freespace} -lt ${needed_space}  ] ; then
-               [ "$quiet" != "y" ] && log_begin_msg "Not enough free memory to copy to ram"
-               [ "$quiet" != "y" ] && log_end_msg
-               return
-       else
-               [ "$quiet" != "y" ] && log_begin_msg "Copying live media to ram..."
-               mkdir "${copyto}"
-               mount -t tmpfs -o size=${size}k /dev/shm ${copyto}
-               cp -a ${mountpoint}/* ${copyto}
-               umount ${mountpoint}
-               mount -r -o move ${copyto} ${mountpoint}
-               rmdir ${copyto}
-               [ "$quiet" != "y" ] && log_end_msg
-       fi
-}
-
 find_cow_device() {
-       pers_label="${1}"
-       cow_backing="/${pers_label}-backing"
-       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop); do
-               for dev in $(subdevices "${sysblock}"); do
-                       devname=$(sys2dev "${dev}")
-                       if [ "$(/lib/udev/vol_id -l $devname 2>/dev/null)" = "${pers_label}" ]; then
-                               echo "$devname"
-                               return
-                       elif [ "$(get_fstype ${devname})" = "vfat" ]; then
-                               mkdir -p "${cow_backing}"
-                               if where_is_mounted ${devname} > /dev/null; then
-                                       mount -o remount,rw ${devname} $(where_is_mounted ${devname}) || panic "Remounting failed"
-                                       mount -o bind $(where_is_mounted ${devname}) ${cow_backing} || panic "Cannot bind-mount"
-                               else
-                                       mount -t $(get_fstype "${devname}") -o rw "${devname}" ${cow_backing} || panic "Cannot mount $devname on /cow-backing"
-                               fi
-
-                               if [ -e "${cow_backing}/${pers_label}" ]; then
-                                       echo $(setup_loop "${cow_backing}/${pers_label}" "loop" "/sys/block/loop*")
-                                       return 0
-                               else
-                                       umount ${cow_backing}
-                               fi
-                       fi
-               done
-       done
-}
-
-do_netmount() {
-       rofsmnt="$1"
-       # adapted from NFS filesystem mounting
-
-       modprobe -q cifs
-       # For DHCP
-       modprobe -q af_packet
-
-       ipconfig ${DEVICE} /tmp/net-${DEVICE}.conf
-       if [ "x${NFSROOT}" = "xauto" ]; then
-               NFSROOT=${ROOTSERVER}:${ROOTPATH}
-       fi
-
-       NFSOPTS="-ouser=root,password="
+    for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop); do
+        for dev in $(subdevices "${sysblock}"); do
+            devname=$(sys2dev "${dev}")
+            if [ "$(/lib/udev/vol_id -l $devname 2>/dev/null)" = "casper-rw" ]; then
+                echo "$devname"
+                return
+            elif [ "$(get_fstype ${devname})" = "vfat" ]; then
+                mkdir -p /cow-backing
+                if where_is_mounted ${devname} > /dev/null; then
+                    mount -o remount,rw ${devname} $(where_is_mounted ${devname}) || panic "Remounting failed"
+                    mount -o bind $(where_is_mounted ${devname}) /cow-backing || panic "Cannot bind-mount"
+                else
+                    mount -t $(get_fstype "${devname}") -o rw "${devname}" /cow-backing || panic "Cannot mount $devname on /cow-backing"
+                fi
 
-       [ "$quiet" != "y" ] && log_begin_msg "Mounting using mount.cifs with ${NFSROOT} ${rofsmnt} ${NFSOPTS}"
-       mount.cifs "${NFSROOT}" "${rofsmnt}" "${NFSOPTS}" 
-       [ "$quiet" != "y" ] && log_end_msg
+                if [ -e "/cow-backing/casper-rw" ]; then
+                    echo $(setup_loop "/cow-backing/casper-rw" "loop" "/sys/block/loop*")
+                    return 0
+                else
+                    umount /cow-backing
+                fi
+            fi
+            
+        done
+    done
+    return 1    
 }
 
 setup_unionfs() {
        backdev="$1"
        rootmnt="$2"
-       modprobe -qb unionfs
-       mkdir -p /cow
-       cowdevice="tmpfs"
-       cow_fstype="tmpfs"
-       # Looking for "${root_persistence}" device or file
-       if grep -q persistent /proc/cmdline; then
-               cowprobe=$(find_cow_device "${root_persistence}")
-               if [ -b "${cowprobe}" ]; then
-                       cowdevice=${cowprobe}
-                       cow_fstype=$(get_fstype "${cowprobe}")
-               else
-                       [ "$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"
+        modprobe -Qb unionfs
+        mkdir -p /cow
+
+        if grep -q persistent /proc/cmdline; then
+            i=0
+            # We love udev and the kernel!
+            while [ "$i" -lt 300 ]; do
+                cowdevice=$(find_cow_device) 
+                if [ -b "$cowdevice" ]; then
+                    mount -t $(get_fstype "$cowdevice") -o rw "$cowdevice" /cow || panic "Can not mount $cowdevice on /cow"
+                    break
+                fi
+                sleep 5
+#                sleep 0.1
+                i=$(( $i + 1 ))
+            done
+        else
+            mount -t tmpfs tmpfs /cow
+        fi
 
        mkdir -p /rofs
-       if grep -q netboot /proc/cmdline; then
-               do_netmount /rofs || panic "Can not mount netroot on /rofs"
-       else
-               if [ "$(get_fstype $backdev)" = "unknown" ]; then
-                       panic "Unknown file system type on $backdev"
-               fi
-               mount -t $(get_fstype "$backdev") -o ro "$backdev" /rofs || panic "Can not mount $backdev on /rofs"
-       fi
-       
+    if [ "$(get_fstype $backdev)" = "unknown" ]; then
+        panic "Unknown file system type on $backdev"
+    fi
+       mount -t $(get_fstype "$backdev") -o ro "$backdev" /rofs || panic "Can not mount $backdev on /rofs"
+
        mount -t unionfs -o dirs=/cow=rw:/rofs=ro unionfs "$rootmnt"
-       if grep -q show-cow /proc/cmdline; then
-               mkdir -p "$rootmnt/cow"
-               mount -o bind /cow "$rootmnt/cow"
-       fi
-       mkdir -p "$rootmnt/rofs"
-       mount -o bind /rofs "$rootmnt/rofs"
-
-       # Adding home persitence
-       if grep -q homepersistence /proc/cmdline; then
-               homecow=$(find_cow_device "${home_persistence}" )
-               if [ -b "${homecow}" ]; then
-                       mount ${homecow} -t $(get_fstype "${homecow}") -o rw "${rootmnt}/home"
-               else 
-                       [ "$quiet" != "y" ] &&  log_begin_msg "Unable to find the persistent home medium"
-               fi
-       fi
+        if grep -q show-cow /proc/cmdline; then
+            mkdir -p "$rootmnt/cow"
+            mount -o bind /cow "$rootmnt/cow"
+        fi
+        mkdir -p "$rootmnt/rofs"
+        mount -o bind /rofs "$rootmnt/rofs"
 }
 
 is_usb_device() {
@@ -283,7 +218,7 @@ is_usb_device() {
     return 1
 }
 
-find_live() {
+find_cd() {
        mounted=
         for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram); do
             devname=$(sys2dev "${sysblock}")
@@ -348,32 +283,24 @@ mountroot() {
     set_usplash_timeout
 
     for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13; do
-        live_image=$(find_live)
+        live_image=$(find_cd)
         if [ "${live_image}" ]; then
             break
         fi
         sleep 1
     done
     if [ "$?" -gt 0 ]; then
-        panic "Unable to find a medium containing a live file system"
+        panic "Unable to find a CD-ROM containing a live file system"
     fi
     
-       if grep -q toram /proc/cmdline; then
-               copy_to_ram
-       fi
-
     setup_cow "$overlay_method" "$(get_backing_device $live_image)" "$rootmnt"
 
-       # show it on new rootfs
-       mkdir ${rootmnt}/${mountpoint}
-       mount -o bind ${mountpoint} ${rootmnt}/${mountpoint}
-
     log_end_msg
 
     maybe_break casper-bottom
     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/casper-bottom"
 
-    PATH=/root/usr/bin:/root/usr/sbin:/root/bin:/root/sbin:$PATH run_scripts /scripts/casper-bottom
+    run_scripts /scripts/casper-bottom
     [ "$quiet" != "y" ] && log_end_msg
 
     exec 1>&6 6>&-
index 8c8e153..637a1ff 100755 (executable)
@@ -15,4 +15,4 @@ prereqs)
        ;;
 esac
 
-grep integrity-check /proc/cmdline && casper-md5check /live_media /live_media/md5sum.txt < /dev/tty8
+grep integrity-check /proc/cmdline && casper-md5check /cdrom /cdrom/md5sum.txt < /dev/tty8
index dc8aaa8..a37d831 100755 (executable)
@@ -28,9 +28,7 @@ set passwd/username $USERNAME
 set passwd/user-uid 999
 EOF
 
-chroot /root /usr/bin/env -i HOME="/root" \
-       TERM="${TERM}" PATH="/usr/sbin:/usr/bin:/sbin:/bin" \
-       /usr/lib/user-setup/user-setup-apply > /dev/null
+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 casper > /dev/null <<EOF
@@ -42,22 +40,19 @@ set passwd/user-uid
 EOF
 
 if [ -f /root/etc/sudoers ]; then
-       if [ -x /sbin/udevplug ]; then 
-               # FIXME: ugly hack, admin is not present in debian so we do here ubuntu stuff
-               # XXX - awful hack to stop xscreensaver locking the screen (#7150)
-               echo 'RUNNING_UNDER_GDM="yes"' >> /root/etc/environment
-        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
-               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
-    else # We are in debian :-)
-        echo "${USERNAME}  ALL=(ALL) NOPASSWD: ALL" >> /root/etc/sudoers           
-    fi
+    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
 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/
index 6d5b73c..d9343cd 100755 (executable)
@@ -20,33 +20,18 @@ esac
 
 log_begin_msg "$DESCRIPTION"
 
-if [ -e /root/etc/default/locale ]; then
-       grep_file=/root/etc/default/locale
-       locale=$(grep 'LANG=' ${grep_file} | sed s/'LANG='// | tr -d '"' ) 
-elif [ -e /root/etc/environment ]; then # Old locales policy
-       grep_file=/root/etc/environment
-fi
-
-# commandline
+locale=en_US.UTF-8
 for x in $(cat /proc/cmdline); do
-       case $x in
-               debian-installer/locale=*)
-                       locale=${x#debian-installer/locale=}
-                       set_locale="true"
-                       ;;
-       esac
+                case $x in
+                        debian-installer/locale=*)
+                                locale=${x#debian-installer/locale=}
+                                ;;
+                esac
 done
 
-if [ -z "${locale}" ]; then
-       # Set a default one
-       locale=en_US.UTF-8
-       set_locale="true"
-fi
-
-if [ ! -z "${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}" 
-       chroot /root /usr/sbin/locale-gen "${LANG}"
-fi
+LANG=$(grep "^${locale}" /root/usr/share/i18n/SUPPORTED | grep UTF-8 |sed -e 's, .*,,' -e q)
+
+printf 'LANG="%s"\n' "${LANG}" >> /root/etc/environment
+chroot /root /usr/sbin/locale-gen "${LANG}"
 
 log_end_msg
index 7bedd7a..b232c27 100755 (executable)
@@ -20,10 +20,8 @@ esac
 
 log_begin_msg "$DESCRIPTION"
 
-if [ -x /root/usr/sbin/laptop-detect ]; then
-       if chroot /root /bin/sh -c /usr/sbin/laptop-detect; then
-           casper-reconfigure /root gnome-panel-data
-       fi
+if chroot /root /bin/sh -c laptop-detect; then
+    casper-reconfigure /root gnome-panel-data
 fi
 
 panel_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-panel-data 2>/dev/null) || panel_version=""
index 7238773..021aca9 100755 (executable)
@@ -27,11 +27,7 @@ iface lo inet loopback
 
 EOF
 
-if [ -x /sbin/udevplug ]; then
-       udevplug -Bpci -Iclass="0x02*"
-else
-       udevtrigger
-fi
+udevplug -Bpci -Iclass="0x02*"
 
 for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*; do
     [ -e $interface ] || continue
index 0c5c43e..12e6315 100755 (executable)
@@ -28,11 +28,9 @@ 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} $(dirname ${f})/K00anacron
-       done
-fi
+for f in /root/etc/rc?.d/S??anacron; do
+    mv ${f} ${f%/*}/K00anacron
+done
 
 # No point, really
 rm -f /root/etc/rc?.d/[SK]??postfix
@@ -42,8 +40,15 @@ 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
+chmod -x /root/sbin/readahead-list
+
+# Install shutdown script
+cp -a /lib/casper/shutdown /root/etc/init.d/casper-shutdown
+if [ -f /root/etc/rc0.d/S90halt ]; then
+    ln -s ../init.d/casper-shutdown /root/etc/rc0.d/S89casper
+fi
+if [ -f /root/etc/rc6.d/S90reboot ]; then
+    ln -s ../init.d/casper-shutdown /root/etc/rc6.d/S89casper
 fi
 
 log_end_msg
index 4e4fec3..52bcbf4 100755 (executable)
@@ -20,6 +20,4 @@ esac
 
 log_begin_msg "$DESCRIPTION"
 
-if [ -e /root/etc/default/linux-restricted-modules-common ]; then
-       echo 'DISABLED_MODULES="fglrx nv"' >> /root/etc/default/linux-restricted-modules-common
-fi
+echo 'DISABLED_MODULES="fglrx nv"' >> /root/etc/default/linux-restricted-modules-common
diff --git a/ubiquity-hooks/30accessibility b/ubiquity-hooks/30accessibility
new file mode 100755 (executable)
index 0000000..4d871fd
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+. /usr/share/debconf/confmodule
+
+PREREQ=""
+DESCRIPTION="Configuring accessibility options..."
+USERNAME=$(db_get passwd/username)
+
+gct() {
+    chroot /root su $USERNAME -- gconftool-2 "$@"
+}
+
+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
+                        ;;
+                        # 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 [gnopernicus]
+                        gct -s -t bool /apps/gnopernicus/srcore/mag_active true
+                        gct -s -t bool /apps/gnopernicus/srcore/sp_active false
+                        ;;
+                        # 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 [gnopernicus]
+                        gct -s -t bool /apps/gnopernicus/srcore/sp_active true
+                        gct -s -t bool /apps/gnopernicus/srcore/mag_active false
+                        ;;
+                        # 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
+                        ;;
+                        # Motor Difficulties - pointing devices
+                        access=m2)
+                        gct -s -t bool /desktop/gnome/accessibility/keyboard/enable 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 bool /desktop/gnome/interface/accessibility true
+                        gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats gok
+                        ;;
+               esac
+done
+log_end_msg