Merge lp:~ivoks/casper/casper-virtio into lp:casper

Proposed by Ante Karamatić on 2011-10-06
Status: Superseded
Proposed branch: lp:~ivoks/casper/casper-virtio
Merge into: lp:casper
Diff against target: 4049 lines (+2343/-759) (has conflicts)
52 files modified
.bzr-builddeb/default.conf (+2/-0)
bin/casper-a11y-enable (+668/-0)
bin/casper-preseed (+13/-6)
bin/casper-set-selections (+92/-0)
bin/casper-snapshot (+1/-1)
bin/casper-update-initramfs (+25/-0)
casper-md5check/Makefile (+2/-1)
casper-md5check/casper-md5check.c (+115/-97)
conf.d/compcache (+1/-1)
debian/casper.init (+17/-11)
debian/casper.install (+3/-0)
debian/casper.postinst (+10/-0)
debian/changelog (+769/-1)
debian/control (+6/-6)
debian/copyright (+11/-1)
debian/manpage/casper.7 (+12/-0)
debian/source/format (+1/-0)
hooks/casper (+5/-1)
scripts/casper (+107/-26)
scripts/casper-bottom/05mountpoints (+4/-0)
scripts/casper-bottom/07remove_oem_config (+32/-0)
scripts/casper-bottom/10adduser (+16/-26)
scripts/casper-bottom/15autologin (+53/-9)
scripts/casper-bottom/19keyboard (+39/-11)
scripts/casper-bottom/22gnome_panel_data (+0/-6)
scripts/casper-bottom/22screensaver (+1/-3)
scripts/casper-bottom/22sslcert (+1/-0)
scripts/casper-bottom/23networking (+20/-15)
scripts/casper-bottom/24preseed (+40/-15)
scripts/casper-bottom/25configure_init (+2/-2)
scripts/casper-bottom/26disable_user_menu (+28/-0)
scripts/casper-bottom/30accessibility (+31/-151)
scripts/casper-bottom/31disable_update_notifier (+8/-0)
scripts/casper-bottom/32disable_hibernation (+6/-10)
scripts/casper-bottom/34disable_kde_services.OTHER (+36/-0)
scripts/casper-bottom/37kubuntu_netbook_installer_link (+0/-28)
scripts/casper-bottom/40install_driver_updates (+7/-1)
scripts/casper-bottom/41apt_cdrom (+9/-1)
scripts/casper-bottom/42disable_apparmor (+0/-26)
scripts/casper-bottom/43disable_updateinitramfs (+2/-7)
scripts/casper-bottom/44pk_allow_ubuntu (+2/-23)
scripts/casper-bottom/45disable_guest_account (+0/-25)
scripts/casper-bottom/47unr_ubiquity (+0/-39)
scripts/casper-bottom/48enable_kubuntu_netbook (+0/-27)
scripts/casper-bottom/48kubuntu_disable_restart_notifications (+5/-0)
scripts/casper-bottom/49kubuntu_mobile_session (+5/-0)
scripts/casper-functions (+15/-1)
scripts/casper-helpers (+34/-10)
scripts/casper-premount/10driver_updates (+1/-1)
ubiquity-hooks/30accessibility (+75/-162)
ubiquity-hooks/48enable_kubuntu_netbook (+0/-8)
ubiquity-hooks/49kubuntu_gnome_icon_cache (+11/-0)
Contents conflict in scripts/casper-bottom/34disable_kde_services
To merge this branch: bzr merge lp:~ivoks/casper/casper-virtio
Reviewer Review Type Date Requested Status
Ubuntu Core Development Team 2011-10-06 Pending
Review via email: mp+78378@code.launchpad.net

This proposal has been superseded by a proposal from 2011-10-06.

Description of the change

At the moment, casper doesn't work with live system located on virtio device. This simple change makes that possible.

To post a comment you must log in.
Colin Watson (cjwatson) wrote :

Could you please re-propose this for merging into lp:ubuntu/casper
rather than lp:casper, so that we get a useful merge diff? Thanks.

Ante Karamatić (ivoks) wrote :

Ups. Sorry about that.

Unmerged revisions

961. By Ante Karamatić on 2011-10-06

* scripts/casper:
  - enable use of virtio devices in is_nice_device()

960. By Luke Yelavich on 2011-09-14

releasing version 1.284

959. By Luke Yelavich on 2011-09-14

Make sure profile settings are not set up twice

958. By Luke Yelavich on 2011-09-14

* Fix typo
* Write session data if a starttup script is created

957. By Luke Yelavich on 2011-09-14

* ubiquity-hooks/30accessibility:
  - Make sure that accessibility profile settings are properly applied at
    install time, even if the user decided to try Ubuntu first, and then
    run the install from the desktop
  - Copy any existing orca configuration to the target system

956. By Luke Yelavich on 2011-09-14

Reformat the changelog to be easier to comprehend

955. By Luke Yelavich on 2011-09-14

* Set correct permissions for the orca config directory once the config files
  have been created
* Make sure the startup script checks take into account the ability to be run
  from the initramfs

954. By Luke Yelavich on 2011-09-13

* Make sure that accessibility profile settings are properly applied at
  install time, even if the user decided to try Ubuntu first, and then
  run the install from the desktop
* Add some other needed settings for various profiles for use in the login
  manager

953. By Luke Yelavich on 2011-09-12

* bin/casper-a11y-enable: Set the session by calling AccountService via dbus
  instead of using lightdm commands, as we cannot run lightdm-set-defaults
  as a user
* Add some extra spaces to make sure the startup scripts used to set a11y
  settings are syntactically correct

952. By Martin Pitt on 2011-09-07

releasing version 1.283

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory '.bzr-builddeb'
2=== added file '.bzr-builddeb/default.conf'
3--- .bzr-builddeb/default.conf 1970-01-01 00:00:00 +0000
4+++ .bzr-builddeb/default.conf 2011-10-06 10:04:28 +0000
5@@ -0,0 +1,2 @@
6+[BUILDDEB]
7+native = True
8
9=== added file 'bin/casper-a11y-enable'
10--- bin/casper-a11y-enable 1970-01-01 00:00:00 +0000
11+++ bin/casper-a11y-enable 2011-10-06 10:04:28 +0000
12@@ -0,0 +1,668 @@
13+#!/bin/sh
14+#
15+# casper-a11y-enable - Sets accessibility profile settings for the live session
16+# or installed system.
17+#
18+# This script is called by several other scripts, as well as ubiquity itself to
19+# set up accessibility profile settings for use in the live environment and on
20+# an installed system.
21+#
22+# Copyright (C) 2011, Canonical Ltd.
23+#
24+# Author:
25+# - Luke Yelavich <luke.yelavich@canonical.com>
26+#
27+# This script is free software; you can redistribute it and/or modify it under
28+# the terms of the GNU General Public License as published by the Free
29+# Software Foundation; either version 2 of the License, or at your option)
30+# any later version.
31+#
32+# This program is distributed in the hope that it will be useful,
33+# but WITHOUT ANY WARRANTY; without even the implied warranty of
34+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35+# GNU General Public License for more details.
36+#
37+# You should have received a copy of the GNU General Public License along
38+# with this application; if not, write to the Free Software Foundation, Inc., 51
39+# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
40+##################################################################################
41+
42+set -e
43+
44+### PROFILE SETTINGS METHODS BEGIN HERE ###
45+# The methods that are used to set profile data have been placed as close to the
46+# top of this file as possible, so they are easy to locate, and will hopefully
47+# save time when making smaller changes.
48+
49+# Common settings for low vision profiles. Any change you make here will affect
50+# all low vision profiles, for both the user session and login manager.
51+set_common_lowvis()
52+{
53+ gset set org.gnome.desktop.interface toolkit-accessibility true
54+ gct -s -t bool /desktop/gnome/interface/accessibility true
55+ gct -s -t bool /apps/gksu/disable-grab true
56+ gset set org.gnome.yelp show-cursor true
57+ add_sudoers_file
58+}
59+
60+# Common settings for motor profiles. Any change you make here will affect
61+# all motor profiles, for both the user session and login manager.
62+set_common_motor()
63+{
64+ gset set org.gnome.desktop.a11y.keyboard enable true
65+ gct -s -t bool /apps/gksu/disable-grab true
66+ gset set org.gnome.desktop.a11y.keyboard stickykeys-enable true
67+ gset set org.gnome.desktop.a11y.keyboard stickykeys-two-key-off false
68+}
69+
70+# Settings for the high-contrast profile.
71+set_high_contrast()
72+{
73+ gset set org.gnome.desktop.interface icon-theme HighContrast
74+ gset set org.gnome.desktop.interface monospace-font-name "monospace 18"
75+ gset set org.gnome.desktop.interface font-name "sans 18"
76+ gset set org.gnome.desktop.background picture-uri ""
77+ gset set org.gnome.desktop.background picture-options none
78+ gset set org.gnome.desktop.background primary-color \#666666
79+ gset set org.gnome.desktop.background secondary-color \#7F7F7F
80+ gset set org.gnome.desktop.background color-shading-type solid
81+ gset set org.gnome.desktop.interface cursor-size 48
82+ gset set org.gnome.desktop.interface cursor-theme whiteglass
83+ kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/
84+ if [ -d $CHROOT_DIR/usr/share/xubuntu-default-settings/accessibility ]; then
85+ cp -a $CHROOT_DIR/usr/share/xubuntu-default-settings/accessibility/* $CHROOT_DIR/etc/xdg/
86+ fi
87+}
88+
89+set_magnifier()
90+{
91+ # Ubuntu
92+ gset set org.gnome.desktop.a11y.applications screen-magnifier-enabled true
93+ set_orca_config magnifier
94+
95+ # Kubuntu
96+ kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/,/usr/share/kubuntu-default-settings/kde-profile/moderate-visual-impairment/
97+}
98+
99+set_blindness()
100+{
101+ gset set org.gnome.desktop.a11y.applications screen-reader-enabled true
102+ gset set org.gnome.Empathy.conversation theme classic
103+ set_orca_config speech
104+ set_session ubuntu-2d
105+
106+ if [ -n "$SET_LOGIN" ]; then
107+ gset_lightdm set org.gnome.desktop.interface toolkit-accessibility true
108+ gset_lightdm set org.gnome.desktop.a11y.applications screen-reader-enabled true
109+ fi
110+}
111+
112+set_braille()
113+{
114+ gset set org.gnome.desktop.a11y.applications screen-reader-enabled true
115+ gset set org.gnome.Empathy.conversation theme classic
116+ set_orca_config braille
117+ set_session ubuntu-2d
118+
119+ if [ -n "$SET_LOGIN" ]; then
120+ gset_lightdm set org.gnome.desktop.interface toolkit-accessibility true
121+ gset_lightdm set org.gnome.desktop.a11y.applications screen-reader-enabled true
122+ fi
123+}
124+
125+set_keyboard_modifiers()
126+{
127+ gset set org.gnome.desktop.a11y.keyboard mousekeys-enable true
128+ gset set org.gnome.desktop.a11y.keyboard stickykeys-modifier-beep true
129+ gset set org.gnome.settings-daemon.peripherals.keyboard repeat true
130+ gset set org.gnome.settings-daemon.peripherals.keyboard delay 700
131+ gset set org.gnome.settings-daemon.peripherals.keyboard repeat-interval 10
132+ kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/
133+ if [ -e $CHROOT_DIR/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
134+ sed -i 's/0/1/' $CHROOT_DIR/etc/xdg/xfce4/mcs_settings/keyboard.xml
135+ fi
136+}
137+
138+set_onscreen_keyboard()
139+{
140+ gset set org.gnome.desktop.interface toolkit-accessibility true
141+ gset set org.gnome.desktop.a11y.keyboard stickykeys-modifier-beep false
142+ gset set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
143+
144+ if [ -n "$SET_LOGIN" ]; then
145+ gset_lightdm set org.gnome.desktop.interface toolkit-accessibility true
146+ gset_lightdm set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
147+ fi
148+
149+ kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/
150+ if [ -e $CHROOT_DIR/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
151+ sed -i '/Sticky/ s/0/1/' $CHROOT_DIR/etc/xdg/xfce4/mcs_settings/keyboard.xml
152+ fi
153+}
154+### PROFILE SETTINGS METHODS END HERE ###
155+
156+help()
157+{
158+ cat <<EOF
159+Usage: $0 [-chroot=<root>] [-user=<username>] [-l|-login]
160+ [-i|-initramfs] [-d|-debug] <profilename>
161+
162+-h, -help Display this help.
163+-chroot=<root> Chroot into <root> to apply profile settings, requires a
164+ username to be specified, see below.
165+-user=<username> The user where a profile is to be applied, requires the
166+ script to be run as root. If no username is given, it
167+ is assumed that you wish to apply profile settings for
168+ the current user.
169+-l, -login Apply some of the selected profile settings to the
170+ login manager. Currently this is hard-coded to lightdm.
171+ This requires root privileges.
172+-i, -initramfs Indicate that the script is being called from the
173+ initramfs. Allows the script to assume some values
174+ that can not otherwise be easily determined in an
175+ initramfs environment. Requires that a chroot dir and
176+ user name are specified. See above.
177+-script Create a script to be run at system boot that will
178+ apply all settings for the specified user and for
179+ login. This script will then remove itself. This is
180+ needed to work around gsettings not working in a chroot
181+ environment with no dconf service running.
182+-d|-debug Enable debugging output.
183+<profilename> The name of the profile you wish to apply, see below.
184+
185+The profiles currently available are as follows:
186+high-contrast For users with lesser visual impairments who only need a high
187+ contrast theme, mouse cursor and icons.
188+magnifier For users with moderate visual impairments who require a screen
189+ magnifier.
190+blindness Users who are partially or completely blind who require a screen
191+ reader.
192+braille Users who are partially or completely blind who require a screen
193+ reader and wish to use a Braille display.
194+keyboard-modifiers
195+ Users who have minor motor impairments who require slight
196+ changes to the way their keyboard behaves.
197+onscreen-keyboard
198+ Users with motor impairments who require the use of an
199+ on-screen keyboard.
200+EOF
201+}
202+
203+gset()
204+{
205+ if [ -n "$GLIBBIN_VERSION" ]; then
206+ if [ -n "$STARTUP_SCRIPT" ]; then
207+ echo "gsettings " "$@" >> $CHROOT_DIR/usr/bin/a11y-profile-settings
208+ else
209+ $DO_CHROOT $DO_SUDO gsettings "$@"
210+ fi
211+ fi
212+}
213+
214+gset_lightdm()
215+{
216+ if [ -n "$GLIBBIN_VERSION" ]; then
217+ if [ -n "$STARTUP_SCRIPT" ]; then
218+ echo "gsettings " "$@" >> $CHROOT_DIR/usr/bin/a11y-profile-settings-lightdm
219+ else
220+ $DO_CHROOT sudo -u lightdm gsettings "$@"
221+ fi
222+ fi
223+}
224+
225+# Soon to be deprecated
226+gct()
227+{
228+ if [ -n "$GCONF_VERSION" ]; then
229+ if [ -n "$STARTUP_SCRIPT" ]; then
230+ echo "gconftool-2 " "$@" >> $CHROOT_DIR/usr/bin/a11y-profile-settings
231+ else
232+ $DO_CHROOT $DO_SUDO gconftool-2 "$@"
233+ fi
234+ fi
235+}
236+
237+gct_lightdm()
238+{
239+ if [ -n "$GCONF_VERSION" ]; then
240+ if [ -n "$STARTUP_SCRIPT" ]; then
241+ echo "gconftool-2 " "$@" >> $CHROOT_DIR/usr/bin/a11y-profile-settings-lightdm
242+ else
243+ $DO_CHROOT sudo -u lightdm gconftool-2 "$@"
244+ fi
245+ fi
246+}
247+
248+kderc_addtoprefixes()
249+{
250+ if [ -e $CHROOT_DIR/etc/kde4rc ]; then
251+ sed -i "s|\\(prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/\\)|\\1,$1|" $CHROOT_DIR/etc/kde4rc
252+ fi
253+}
254+
255+add_sudoers_file()
256+{
257+ if [ "$HOME" = "/root" ] || [ -n "$IN_INITRAMFS" ]; then
258+ cat <<EOF > $CHROOT_DIR/etc/sudoers.d/a11y-sudo
259+# To allow accessibility in GTK to work with sudo.
260+Defaults env_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"
261+EOF
262+ chmod 0440 $CHROOT_DIR/etc/sudoers.d/a11y-sudo
263+ else
264+ echo "Warning: Could not create sudoers file due to no root privileges."
265+ fi
266+}
267+
268+# Unfortunately this bloats this script somewhat, but orca doesn't seem to want
269+# to deal with individual settings/a small config fragment.
270+# Arguments: $1 = speech/magnifier/braille (which
271+# accessibility feature to turn on)
272+set_orca_config()
273+{
274+ # Yes, we could use $HOME, but enquiring about $HOME is not easy when
275+ # Outside the target environment, particularly when running from the
276+ # initramfs, and this script is not everything for everybody anyway.
277+ if [ -n "$ORCA_VERSION" ] && ! [ -f "$CHROOT_DIR/home/$USER_NAME/.local/share/orca/user-settings.conf" ]; then
278+ mkdir -p "$CHROOT_DIR/home/$USER_NAME/.local/share/orca"
279+
280+ cat <<EOF > "$CHROOT_DIR/home/$USER_NAME/.local/share/orca/user-settings.conf"
281+{
282+ "pronunciations": {},
283+ "keybindings": {},
284+ "profiles": {
285+ "default": {
286+ "profile": [
287+ "Default",
288+ "default"
289+ ],
290+ "pronunciations": {},
291+ "keybindings": {}
292+ }
293+ },
294+ "general": {
295+ "speakCellHeaders": true,
296+ "magEdgeMargin": 0,
297+ "brailleContractionTable": "",
298+ "magPointerFollowsFocus": false,
299+ "magTextTrackingMode": 2,
300+ "magZoomerBorderSize": 1,
301+ "brailleAlignmentStyle": 0,
302+ "enableEchoByWord": false,
303+ "enableMagZoomerColorInversion": false,
304+ "magCursorSize": 32,
305+ "magSmoothingMode": 0,
306+ "magZoomerLeft": 840,
307+ "showMainWindow": true,
308+ "sayAllStyle": 1,
309+ "brailleSelectorIndicator": 192,
310+ "presentDateFormat": "%x",
311+ "magContrastLevel": 0,
312+ "magMouseTrackingMode": 0,
313+ "speakCellSpan": true,
314+ "progressBarUpdateInterval": 10,
315+ "speakCellCoordinates": true,
316+ "enablePauseBreaks": true,
317+ "brailleEOLIndicator": " $l",
318+ "verbalizePunctuationStyle": 1,
319+ "progressBarVerbosity": 1,
320+ "enableSpeech": false,
321+ "enableBraille": false,
322+ "chatAnnounceBuddyTyping": false,
323+ "speakMultiCaseStringsAsWords": false,
324+ "enableBrailleGrouping": false,
325+ "readTableCellRow": true,
326+ "speechServerFactory": "speechdispatcherfactory",
327+ "textAttributesBrailleIndicator": 0,
328+ "enableMagCursorExplicitSize": false,
329+ "messageVerbosityLevel": 1,
330+ "enableMagLiveUpdating": true,
331+ "enableSpeechIndentation": false,
332+ "enableKeyEcho": true,
333+ "magHideCursor": false,
334+ "magZoomerBorderColor": "#000000",
335+ "magPointerFollowsZoomer": true,
336+ "mouseDwellDelay": 0,
337+ "magBrightnessLevelRed": 0,
338+ "enableMagnifier": false,
339+ "magZoomFactor": 4.0,
340+ "activeProfile": [
341+ "Default",
342+ "default"
343+ ],
344+ "enableMagZoomerBorder": false,
345+ "flashVerbosityLevel": 1,
346+ "enableFlashMessages": true,
347+ "speechServerInfo": null,
348+ "presentToolTips": false,
349+ "flashIsPersistent": false,
350+ "skipBlankCells": false,
351+ "firstStart": false,
352+ "largeObjectTextLength": 75,
353+ "enableEchoBySentence": false,
354+ "magContrastLevelBlue": 0,
355+ "magContrastLevelRed": 0,
356+ "enableContractedBraille": false,
357+ "orcaModifierKeys": [
358+ "Insert",
359+ "KP_Insert"
360+ ],
361+ "enableMagCursor": true,
362+ "speechRequiredStateString": "required",
363+ "quitOrcaNoConfirmation": false,
364+ "brailleRequiredStateString": "required",
365+ "magCursorColor": "#000000",
366+ "enablePositionSpeaking": false,
367+ "magZoomerType": 0,
368+ "onlySpeakDisplayedText": false,
369+ "enableProgressBarUpdates": true,
370+ "wrappedStructuralNavigation": true,
371+ "chatRoomHistories": false,
372+ "brailleVerbosityLevel": 1,
373+ "enableFunctionKeys": true,
374+ "enableModifierKeys": true,
375+ "magCrossHairColor": "#000000",
376+ "enableTutorialMessages": false,
377+ "enableActionKeys": true,
378+ "speakBlankLines": true,
379+ "magColorFilteringMode": 0,
380+ "magZoomerRight": 1680,
381+ "keyboardLayout": 1,
382+ "magTargetDisplay": "",
383+ "disableBrailleEOL": false,
384+ "magZoomerTop": 0,
385+ "magSourceDisplay": "",
386+ "enableDiacriticalKeys": false,
387+ "enableMnemonicSpeaking": false,
388+ "enabledBrailledTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; strikethrough:false; justification:left; style:normal; text-spelling:none;",
389+ "speechVerbosityLevel": 1,
390+ "enableMagCrossHair": true,
391+ "enableBrailleMonitor": false,
392+ "voices": {
393+ "default": {
394+ "established": false
395+ },
396+ "uppercase": {
397+ "average-pitch": 5.6
398+ },
399+ "system": {
400+ "established": false
401+ },
402+ "hyperlink": {
403+ "established": false
404+ }
405+ },
406+ "magContrastLevelGreen": 0,
407+ "brailleFlashTime": 5000,
408+ "magCrossHairSize": 16,
409+ "enableMouseReview": false,
410+ "enableNavigationKeys": false,
411+ "magBrightnessLevelGreen": 0,
412+ "chatSpeakRoomName": false,
413+ "startingProfile": [
414+ "Default",
415+ "default"
416+ ],
417+ "enableLockingKeys": true,
418+ "profile": [
419+ "Default",
420+ "default"
421+ ],
422+ "brailleRolenameStyle": 1,
423+ "brailleLinkIndicator": 192,
424+ "enableEchoByCharacter": false,
425+ "magBrightnessLevelBlue": 0,
426+ "enableBrailleContext": true,
427+ "magControlTrackingMode": 2,
428+ "magZoomerBottom": 1050,
429+ "enablePrintableKeys": true,
430+ "enabledSpokenTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; strikethrough:false; justification:left; style:normal; paragraph-style:; text-spelling:none;",
431+ "chatMessageVerbosity": 0,
432+ "presentTimeFormat": "%X",
433+ "magBrightnessLevel": 0,
434+ "presentRequiredState": false,
435+ "enableMagCrossHairClip": false
436+ }
437+}
438+EOF
439+
440+ case "$1" in
441+ magnifier)
442+ sed -i -e 's/\"enableMagnifier\": false/\"enableMagnifier\": true/' "$CHROOT_DIR/home/$USER_NAME/.local/share/orca/user-settings.conf"
443+ ;;
444+ speech)
445+ sed -i -e 's/\"enableSpeech\": false/\"enableSpeech\": true/' "$CHROOT_DIR/home/$USER_NAME/.local/share/orca/user-settings.conf"
446+ ;;
447+ braille)
448+ sed -i -e 's/\"enableBraille\": false/\"enableBraille\": true/' "$CHROOT_DIR/home/$USER_NAME/.local/share/orca/user-settings.conf"
449+ ;;
450+ *)
451+ ;;
452+ esac
453+
454+ if [ "$HOME" = "/root" ] || [ -n "$IN_INITRAMFS" ]; then
455+ chmod 755 "$CHROOT_DIR/home/$USER_NAME/.local/share/orca"
456+ $DO_CHROOT chown $USER_NAME.$USER_NAME -R "/home/$USER_NAME/.local"
457+ fi
458+ fi
459+}
460+
461+set_session()
462+{
463+ local uid=$($DO_CHROOT getent passwd $USER_NAME | awk -F: '{print $3}')
464+
465+ # We need to start the accounts daemon somehow and wait for a half second
466+ # for it to get ready. Calling on AccountsService to set the X session with
467+ # only one call seems to error out, so querying the user by name seems to get
468+ # the daemon going.
469+ if [ -n "$STARTUP_SCRIPT" ]; then
470+ # I don't like having to write the file manually, but during testing I was
471+ # unable to get calls via dbus-send to work.
472+ cat <<EOF > $CHROOT_DIR/var/lib/AccountsService/users/$USER_NAME
473+
474+[User]
475+XSession=ubuntu-2d
476+EOF
477+ else
478+ dbus-send --type=method_call --system --dest=org.freedesktop.Accounts /org/freedesktop/Accounts org.freedesktop.Accounts.FindUserByName string:$USER_NAME
479+ sleep 1
480+ dbus-send --type=method_call --system --reply-timeout=1000 --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User$uid org.freedesktop.Accounts.User.SetXSession string:$1
481+ fi
482+}
483+
484+create_conf()
485+{
486+ cat <<EOF > /tmp/casper-a11y.conf
487+UBIQUITY_A11Y_PROFILE=$1
488+EOF
489+}
490+
491+if [ "$#" = "0" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
492+ help
493+ exit 1
494+fi
495+
496+while [ "$#" -gt 0 ];
497+do
498+ case "$1" in
499+ -chroot=*)
500+ CHROOT_DIR="${1#-chroot=}"
501+ DO_CHROOT="chroot $CHROOT_DIR"
502+ shift
503+ continue
504+ ;;
505+ -user=*)
506+ USER_NAME="${1#-user=}"
507+ DO_SUDO="sudo -u $USER_NAME"
508+ shift
509+ continue
510+ ;;
511+ -l|-login)
512+ SET_LOGIN=1
513+ shift
514+ continue
515+ ;;
516+ -i|-initramfs)
517+ IN_INITRAMFS=1
518+ shift
519+ continue
520+ ;;
521+ -d|-debug)
522+ set -x
523+ shift
524+ continue
525+ ;;
526+ -script)
527+ STARTUP_SCRIPT=1
528+ shift
529+ continue
530+ ;;
531+ *)
532+ PROFILE_NAME="$1"
533+ shift
534+ continue
535+ ;;
536+ esac
537+done
538+
539+if [ -n "$IN_INITRAMFS" ] && [ -z "$CHROOT_DIR" ]; then
540+ echo "Error: In initramfs, but no chroot directory specified."
541+ help
542+ exit 1
543+elif [ -n "$IN_INITRAMFS" ] && [ -z "$USER_NAME" ]; then
544+ echo "Error: In initramfs, but no username specified."
545+ help
546+ exit 1
547+fi
548+
549+if [ -n "$SET_LOGIN" ] && [ "$HOME" != "/root" ] && [ -z "$IN_INITRAMFS" ]; then
550+ echo "Error: Setting up accessibility for login requires root privileges."
551+ help
552+ exit 1
553+fi
554+
555+
556+if [ -n "$CHROOT_DIR" ] || [ -n "$USER_NAME" ]; then
557+ if [ "$HOME" != "/root" ] && [ -z "$IN_INITRAMFS" ]; then
558+ echo "Error: You are not running as root."
559+ help
560+ exit 1
561+ fi
562+fi
563+
564+if [ -n "$CHROOT_DIR" ]; then
565+ if [ ! -d "$CHROOT_DIR" ]; then
566+ echo "Error: Target chroot directory does not exist, or you do not have permission to access it."
567+ exit 1
568+ fi
569+ if [ -z "$IN_INITRAMFS" ] && ! type chroot >/dev/null 2>&1 ; then
570+ echo "Error: Chroot command not available in running environment."
571+ exit 1
572+ fi
573+fi
574+
575+if [ -n "$STARTUP_SCRIPT" ]; then
576+ if [ -z "$USER_NAME" ]; then
577+ echo "Error: You have requested to create a startup script, but no user was specified."
578+ exit 1
579+ fi
580+ if [ "$HOME" != "/root" ] && [ -z "$IN_INITRAMFS" ]; then
581+ echo "Error: You have requested to create a startup script, but you do not have root"
582+ echo "privileges."
583+ exit 1
584+ fi
585+ if [ -z "$CHROOT_DIR" ]; then
586+ echo "Error: You have requested to create a startup script, but you did not specify"
587+ echo "a target directory to chroot to."
588+ exit 1
589+ fi
590+fi
591+
592+# If no username was entered on the command line, grab the name of the current
593+# user, so we can write files to their home directory.
594+if [ -z "$USER_NAME" ]; then
595+ if [ -z "$USER" ]; then
596+ USER_NAME="${HOME#/home/}"
597+ else
598+ USER_NAME="$USER"
599+ fi
600+fi
601+
602+# Check to see if a few necessary packages are present in the target
603+# environment.
604+GCONF_VERSION=$($DO_CHROOT /usr/bin/dpkg-query -W --showformat='${Version}' gconf2 2>/dev/null) || GCONF_VERSION=""
605+GLIBBIN_VERSION=$($DO_CHROOT /usr/bin/dpkg-query -W --showformat='${Version}' libglib2.0-bin 2>/dev/null) || GLIBBIN_VERSION=""
606+ORCA_VERSION=$($DO_CHROOT /usr/bin/dpkg-query -W --showformat='${Version}' gnome-orca 2>/dev/null) || ORCA_VERSION=""
607+
608+if [ -n "$STARTUP_SCRIPT" ]; then
609+ cat <<EOF > $CHROOT_DIR/etc/init/a11y-profile-settings.conf
610+# a11y-profile-settings - A job to set up accessibility settings
611+
612+description "Accessib ility profile settings"
613+
614+start on runlevel [2345]
615+
616+umask 022
617+
618+script
619+ sudo -u $USER_NAME /usr/bin/dbus-launch --exit-with-session /usr/bin/a11y-profile-settings
620+ sudo -u lightdm /usr/bin/dbus-launch --exit-with-session /usr/bin/a11y-profile-settings-lightdm
621+ rm /usr/bin/a11y-profile-settings /usr/bin/a11y-profile-settings-lightdm
622+ rm /etc/init/a11y-profile-settings.conf
623+end script
624+EOF
625+ cat <<EOF > $CHROOT_DIR/usr/bin/a11y-profile-settings
626+#!/bin/sh
627+
628+# Created by the casper accessibility profile settings script on
629+# $(date).
630+
631+# This script deletes itself once run.
632+
633+EOF
634+ cat <<EOF > $CHROOT_DIR/usr/bin/a11y-profile-settings-lightdm
635+#!/bin/sh
636+
637+# Created by the casper accessibility profile settings script on
638+# $(date).
639+
640+# This script deletes itself once run.
641+
642+EOF
643+fi
644+
645+case $PROFILE_NAME in
646+ high-contrast)
647+ set_common_lowvis
648+ set_high_contrast
649+ create_conf $PROFILE_NAME
650+ ;;
651+ magnifier)
652+ set_common_lowvis
653+ set_magnifier
654+ create_conf $PROFILE_NAME
655+ ;;
656+ blindness)
657+ set_common_lowvis
658+ set_blindness
659+ create_conf screen-reader
660+ ;;
661+ braille)
662+ set_common_lowvis
663+ set_braille
664+ create_conf $PROFILE_NAME
665+ ;;
666+ keyboard-modifiers)
667+ set_common_motor
668+ set_keyboard_modifiers
669+ create_conf $PROFILE_NAME
670+ ;;
671+ onscreen-keyboard)
672+ set_common_motor
673+ set_onscreen_keyboard
674+ create_conf $PROFILE_NAME
675+ ;;
676+esac
677+
678+if [ -n "$STARTUP_SCRIPT" ]; then
679+ chmod 755 $CHROOT_DIR/usr/bin/a11y-profile-settings*
680+fi
681
682=== modified file 'bin/casper-preseed'
683--- bin/casper-preseed 2006-10-16 15:05:58 +0000
684+++ bin/casper-preseed 2011-10-06 10:04:28 +0000
685@@ -2,18 +2,25 @@
686 set -e
687 PATH=/usr/sbin:/usr/bin:/sbin:/bin
688
689+# Only do this once.
690+if [ -z "$DEBCONF_REDIR" ]; then
691+ exec <&4
692+ export DEBIAN_HAS_FRONTEND=1
693+ export DEBCONF_REDIR=1
694+fi
695+
696 root="$1"
697+. "$root/usr/share/debconf/confmodule"
698+
699 question="$2"
700 value="$3"
701 seen="$4"
702 [ "$seen" ] || seen=true
703
704-if ! (echo "SET $question $value"; echo "FSET $question seen $seen") | chroot "$1" debconf-communicate -fnoninteractive casper >/dev/null; then
705- chroot "$1" debconf-communicate -fnoninteractive casper >/dev/null <<EOF
706-REGISTER debian-installer/dummy $question
707-SET $question $value
708-FSET $question seen $seen
709-EOF
710+if ! db_set "$question" "$value"; then
711+ db_register debian-installer/dummy "$question"
712+ db_set "$question" "$value"
713 fi
714+db_fset "$question" seen "$seen"
715
716 exit 0
717
718=== added file 'bin/casper-set-selections'
719--- bin/casper-set-selections 1970-01-01 00:00:00 +0000
720+++ bin/casper-set-selections 2011-10-06 10:04:28 +0000
721@@ -0,0 +1,92 @@
722+#!/bin/sh
723+# Cloned-and-hacked from preseed/debconf-set-selections for casper.
724+set -e
725+
726+OLDIFS="$IFS"
727+CR=$(echo -en "\r")
728+NL="
729+"
730+
731+. /scripts/casper-functions
732+load_confmodule
733+
734+# Returns the first field in the current line
735+first_field() {
736+ echo "$line" | grep -q "[[:space:]]" || return 1
737+ echo "$line" | sed -r 's/^([^[:space:]]*).*/\1/'
738+}
739+
740+# Returns any fields after the first field in the current line
741+rest_line() {
742+ if echo "$line" | grep -q "[[:space:]]"; then
743+ echo "$line" | sed 's/^[^[:space:]]*[[:space:]]*//'
744+ fi
745+}
746+
747+SEEN=1
748+if [ "$1" = --unseen ]; then
749+ SEEN=
750+ shift
751+fi
752+
753+file="$1"
754+
755+parse_error() {
756+ echo "Error parsing preconfiguration file: $*" >&2
757+ exit 1
758+}
759+
760+IFS="$NL"
761+multiline=""
762+# TODO: this squashes \r elsewhere in the line too
763+for line in $(grep -v '^#\|^[[:space:]]*$' "$file" | sed "s/$CR//g"); do
764+ IFS="$OLDIFS"
765+
766+ line="$(echo "$line" | sed 's/^[[:space:]]*//')"
767+ if echo "$line" | grep -q '\\$'; then
768+ multiline="${multiline:+$multiline }$(echo "$line" | \
769+ sed 's/[[:space:]]*\\$//')"
770+ continue
771+ elif [ -n "$multiline" ]; then
772+ line="$multiline $line"
773+ multiline=""
774+ fi
775+
776+ package=""
777+ var=""
778+ type=""
779+ val=""
780+ if ! package="$(first_field)"; then
781+ parse_error "Syntax error: unable to determine template owner"
782+ fi
783+ line="$(rest_line)"
784+ if ! var="$(first_field)"; then
785+ parse_error "Syntax error: unable to determine template name"
786+ fi
787+ line="$(rest_line)"
788+ if ! type="$(first_field)"; then
789+ # Allow for lines without separator before an empty value
790+ if [ "$line" ]; then
791+ type="$line"
792+ else
793+ parse_error "Syntax error: unable to determine template type"
794+ fi
795+ fi
796+ line="$(rest_line)"
797+ val="$line"
798+
799+ if [ "$type" = seen ]; then
800+ # Set seen flag.
801+ db_fset "$var" "$type" "$val" || true # how to handle this error?
802+ else
803+ if ! db_set "$var" "$val"; then
804+ # Question does not exist yet.
805+ db_register debian-installer/dummy "$var"
806+ db_set "$var" "$val"
807+ db_subst "$var" ID "$var"
808+ fi
809+ if [ "$SEEN" ]; then
810+ db_fset "$var" seen true
811+ fi
812+ fi
813+done
814
815=== modified file 'bin/casper-snapshot'
816--- bin/casper-snapshot 2009-06-12 11:46:49 +0000
817+++ bin/casper-snapshot 2011-10-06 10:04:28 +0000
818@@ -215,7 +215,7 @@
819 fi
820 else
821 if [ -b "${dev}" ] ; then
822- try_mount "${dev}" "${MOUNTP}" rw
823+ try_mount "${dev}" "${MOUNTP}" rw || panic "failed to mount ${dev}"
824 fi
825 fi
826 }
827
828=== added file 'bin/casper-update-initramfs'
829--- bin/casper-update-initramfs 1970-01-01 00:00:00 +0000
830+++ bin/casper-update-initramfs 2011-10-06 10:04:28 +0000
831@@ -0,0 +1,25 @@
832+#! /bin/sh
833+set -e
834+update-initramfs.distrib "$@"
835+if [ -e /initrd.img ]; then
836+ bootdir=
837+else
838+ bootdir=/boot
839+fi
840+# initrd.img may exist when vmlinuz doesn't; for example, if
841+# update-initramfs is run on a fresh live USB stick without upgrading the
842+# kernel.
843+if [ -e "$bootdir/initrd.img" ]; then
844+ if [ -e /cdrom/casper/initrd.lz ]; then
845+ zcat "$bootdir/initrd.img" | lzma -9c >/cdrom/casper/initrd.lz.new
846+ mv /cdrom/casper/initrd.lz.new /cdrom/casper/initrd.lz
847+ else
848+ cp "$bootdir/initrd.img" /cdrom/casper/initrd.gz.new
849+ mv /cdrom/casper/initrd.gz.new /cdrom/casper/initrd.gz
850+ fi
851+fi
852+if [ -e "$bootdir/vmlinuz" ]; then
853+ cp "$bootdir/vmlinuz" /cdrom/casper/vmlinuz.new
854+ mv /cdrom/casper/vmlinuz.new /cdrom/casper/vmlinuz
855+fi
856+exit 0
857
858=== modified file 'casper-md5check/Makefile'
859--- casper-md5check/Makefile 2009-01-30 11:27:37 +0000
860+++ casper-md5check/Makefile 2011-10-06 10:04:28 +0000
861@@ -1,6 +1,7 @@
862
863 CC=gcc
864-CFLAGS=$(getconf LFS_CFLAGS) -Wall -O2
865+CFLAGS := $(shell getconf LFS_CFLAGS) -Wall -O2 -g $(shell pkg-config --cflags ply-boot-client)
866+LDLIBS=$(shell pkg-config --libs ply-boot-client)
867
868 casper-md5check: casper-md5check.c md5.c
869
870
871=== modified file 'casper-md5check/casper-md5check.c'
872--- casper-md5check/casper-md5check.c 2009-01-30 11:27:37 +0000
873+++ casper-md5check/casper-md5check.c 2011-10-06 10:04:28 +0000
874@@ -1,6 +1,7 @@
875-/* casper-md5check - a tool to check md5sums and talk to usplash
876- (C) Canonical Ltd 2006
877+/* casper-md5check - a tool to check md5sums and talk to plymouth
878+ (C) Canonical Ltd 2006, 2010
879 Written by Tollef Fog Heen <tfheen@ubuntu.com>
880+ Ported to plymouth by Steve Langasek <steve.langasek@ubuntu.com>
881
882 This program is free software; you can redistribute it and/or
883 modify it under the terms of the GNU General Public License as
884@@ -32,13 +33,17 @@
885 #include <math.h>
886 #include <termios.h>
887
888-#define USPLASH_FIFO "/dev/.initramfs/usplash_fifo"
889-#define MAXTRIES 5
890+#include <ply-boot-client.h>
891+#include <ply-event-loop.h>
892+
893 #include "md5.h"
894 #define DEBUG
895
896 static int verbose = 1;
897-static int got_usplash = 0;
898+static int got_plymouth = 0;
899+static ply_event_loop_t *ply_event_loop = NULL;
900+
901+int set_nocanonical_tty(int fd);
902
903 void parse_cmdline(void) {
904 FILE *cmdline = fopen("/proc/cmdline", "r");
905@@ -60,73 +65,54 @@
906 fclose(cmdline);
907 }
908
909-int write_and_retry(int fd, char *s) {
910- int try = 0, ret = 0;
911- char *end;
912-
913-#ifdef DEBUG
914- fprintf(stderr, "-> %s\n", s);
915-#endif
916-
917- end = s + strlen(s)+1;
918-
919- ret = write(fd, s, end - s);
920- while (s + ret < end && try < MAXTRIES) {
921- sleep(1);
922- s += ret;
923- ret = write(fd, s, strlen(s)+1);
924- try++;
925- }
926- return (s+ret == end ? 0 : 1);
927-}
928-
929-void usplash_timeout(int fd, int timeout) {
930+void plymouth_disconnected(void *user_data, ply_boot_client_t *client) {
931+ printf("Disconnected from Plymouth\n");
932+ got_plymouth = 0;
933+ ply_event_loop_exit(ply_event_loop, 0);
934+}
935+
936+void plymouth_answer(void *user_data, const char *keys,
937+ ply_boot_client_t *client)
938+{
939+ ply_event_loop_exit(ply_event_loop, 0);
940+}
941+
942+void plymouth_response(void *user_data, ply_boot_client_t *client) {
943+ /* No response */
944+}
945+
946+void plymouth_failure(ply_boot_client_t *client, char *format, ...) {
947 char *s;
948-
949- if (!got_usplash)
950- return;
951-
952- asprintf(&s, "TIMEOUT %d", timeout);
953-
954- write_and_retry(fd, s);
955-
956- free(s);
957-}
958-
959-void usplash_failure(int fd, char *format, ...) {
960- char *s, *s1;
961 va_list argp;
962
963 va_start(argp, format);
964 vasprintf(&s, format, argp);
965 va_end(argp);
966
967- if (got_usplash) {
968- asprintf(&s1, "FAILURE %s", s);
969-
970- write_and_retry(fd, s1);
971-
972- free(s1);
973+ if (got_plymouth) {
974+ ply_boot_client_tell_daemon_to_display_message(client, s,
975+ plymouth_response,
976+ plymouth_response, NULL);
977+ ply_event_loop_process_pending_events(ply_event_loop);
978 } else if (verbose)
979 printf("%s\n", s);
980
981 free(s);
982 }
983
984-void usplash_text(int fd, char *format, ...) {
985- char *s, *s1;
986+void plymouth_text(ply_boot_client_t *client, char *format, ...) {
987+ char *s;
988 va_list argp;
989
990 va_start(argp, format);
991 vasprintf(&s, format, argp);
992 va_end(argp);
993
994- if (got_usplash) {
995- asprintf(&s1, "TEXT %s", s);
996-
997- write_and_retry(fd, s1);
998-
999- free(s1);
1000+ if (got_plymouth) {
1001+ ply_boot_client_tell_daemon_to_display_message(client, s,
1002+ plymouth_response,
1003+ plymouth_response, NULL);
1004+ ply_event_loop_process_pending_events(ply_event_loop);
1005 } else if (verbose) {
1006 printf("%s...", s);
1007 fflush(stdout);
1008@@ -135,7 +121,7 @@
1009 free(s);
1010 }
1011
1012-void usplash_urgent(int fd, char *format, ...) {
1013+void plymouth_prompt(ply_boot_client_t *client, char *format, ...) {
1014 char *s, *s1;
1015 va_list argp;
1016
1017@@ -143,12 +129,41 @@
1018 vasprintf(&s, format, argp);
1019 va_end(argp);
1020
1021- if (got_usplash) {
1022- asprintf(&s1, "TEXT-URGENT %s", s);
1023-
1024- write_and_retry(fd, s1);
1025-
1026- free(s1);
1027+ if (got_plymouth) {
1028+ asprintf(&s1, "keys:%s", s);
1029+ ply_boot_client_tell_daemon_to_display_message(client, s1,
1030+ plymouth_response,
1031+ plymouth_response, NULL);
1032+
1033+ ply_boot_client_ask_daemon_to_watch_for_keystroke(client, NULL,
1034+ plymouth_answer,
1035+ (ply_boot_client_response_handler_t)plymouth_answer, NULL);
1036+ ply_event_loop_run(ply_event_loop);
1037+ ply_boot_client_attach_to_event_loop(client, ply_event_loop);
1038+ ply_boot_client_tell_daemon_to_quit(client, 1, plymouth_response,
1039+ plymouth_response, NULL);
1040+ ply_event_loop_run(ply_event_loop);
1041+ } else {
1042+ printf("%s\n", s);
1043+ set_nocanonical_tty(0);
1044+ getchar();
1045+ }
1046+ free(s);
1047+}
1048+
1049+void plymouth_urgent(ply_boot_client_t *client, char *format, ...) {
1050+ char *s;
1051+ va_list argp;
1052+
1053+ va_start(argp, format);
1054+ vasprintf(&s, format, argp);
1055+ va_end(argp);
1056+
1057+ if (got_plymouth) {
1058+ ply_boot_client_tell_daemon_to_display_message(client, s,
1059+ plymouth_response,
1060+ plymouth_response, NULL);
1061+ ply_event_loop_process_pending_events(ply_event_loop);
1062 } else
1063 printf("%s\n", s);
1064
1065@@ -156,27 +171,26 @@
1066 }
1067
1068
1069-void usplash_success(int fd, char *format, ...) {
1070- char *s, *s1;
1071+void plymouth_success(ply_boot_client_t *client, char *format, ...) {
1072+ char *s;
1073 va_list argp;
1074
1075 va_start(argp, format);
1076 vasprintf(&s, format, argp);
1077 va_end(argp);
1078
1079- if (got_usplash) {
1080- asprintf(&s1, "SUCCESS %s", s);
1081-
1082- write_and_retry(fd, s1);
1083-
1084- free(s1);
1085+ if (got_plymouth) {
1086+ ply_boot_client_tell_daemon_to_display_message(client, s,
1087+ plymouth_response,
1088+ plymouth_response, NULL);
1089+ ply_event_loop_process_pending_events(ply_event_loop);
1090 } else if (verbose)
1091 printf("%s\n", s);
1092
1093 free(s);
1094 }
1095
1096-void usplash_progress(int fd, int progress) {
1097+void plymouth_progress(ply_boot_client_t *client, int progress) {
1098 static int prevprogress = -1;
1099 char *s;
1100
1101@@ -184,11 +198,11 @@
1102 return;
1103 prevprogress = progress;
1104
1105- if (got_usplash) {
1106- asprintf(&s, "PROGRESS %d", progress);
1107-
1108- write_and_retry(fd, s);
1109-
1110+ if (got_plymouth) {
1111+ asprintf(&s, "md5check:verifying:%d", progress);
1112+ ply_boot_client_update_daemon(client, s, plymouth_response,
1113+ plymouth_response, NULL);
1114+ ply_event_loop_process_pending_events(ply_event_loop);
1115 free(s);
1116 } else {
1117 printf("%d%%...", progress);
1118@@ -210,7 +224,7 @@
1119
1120 int main(int argc, char **argv) {
1121
1122- int pipe_fd, check_fd;
1123+ int check_fd;
1124 int failed = 0;
1125
1126 FILE *md5_file;
1127@@ -219,6 +233,7 @@
1128 char hex_output[16*2 + 1];
1129 char *checksum, *checkfile;
1130 ssize_t tsize, csize;
1131+ ply_boot_client_t *client = NULL;
1132
1133 tsize = 0;
1134 csize = 0;
1135@@ -236,18 +251,23 @@
1136
1137 parse_cmdline();
1138
1139- pipe_fd = open(USPLASH_FIFO, O_WRONLY|O_NONBLOCK);
1140-
1141- if (pipe_fd == -1) {
1142+ client = ply_boot_client_new();
1143+ if (client)
1144+ ply_event_loop = ply_event_loop_new();
1145+ if (ply_event_loop)
1146+ ply_boot_client_attach_to_event_loop(client, ply_event_loop);
1147+
1148+ if (!client || !ply_event_loop || !ply_boot_client_connect(client, plymouth_disconnected, NULL))
1149+ {
1150 /* Fall back to text output */
1151- perror("Opening pipe");
1152- got_usplash = 0;
1153+ perror("Connecting to plymouth");
1154+ got_plymouth = 0;
1155 } else
1156- got_usplash = 1;
1157-
1158-
1159- usplash_progress(pipe_fd, 0);
1160- usplash_urgent(pipe_fd, "Checking integrity, this may take some time");
1161+ got_plymouth = 1;
1162+
1163+
1164+ plymouth_progress(client, 0);
1165+ plymouth_urgent(client, "Checking integrity, this may take some time");
1166 md5_file = fopen(argv[2], "r");
1167 if (!md5_file) {
1168 perror("fopen md5_file");
1169@@ -272,12 +292,11 @@
1170
1171 md5_init(&state);
1172
1173- usplash_text(pipe_fd, "Checking %s", checkfile);
1174+ plymouth_text(client, "Checking %s", checkfile);
1175
1176 check_fd = open(checkfile, O_RDONLY);
1177 if (check_fd < 0) {
1178- usplash_timeout(pipe_fd, 300);
1179- usplash_failure(pipe_fd, "%s", strerror(errno));
1180+ plymouth_failure(client, "%s: %s", checkfile, strerror(errno));
1181 sleep(10);
1182 }
1183
1184@@ -285,7 +304,7 @@
1185
1186 while (rsize > 0) {
1187 csize += rsize;
1188- usplash_progress(pipe_fd, 100*((long double)csize)/tsize);
1189+ plymouth_progress(client, 100*((long double)csize)/tsize);
1190
1191 md5_append(&state, (const md5_byte_t *)buf, rsize);
1192 rsize = read(check_fd, buf, sizeof(buf));
1193@@ -298,9 +317,9 @@
1194 sprintf(hex_output + i * 2, "%02x", digest[i]);
1195
1196 if (strncmp(hex_output, checksum, strlen(hex_output)) == 0) {
1197- usplash_success(pipe_fd, "OK");
1198+ plymouth_success(client, "%s: OK", checkfile);
1199 } else {
1200- usplash_failure(pipe_fd, "mismatch");
1201+ plymouth_failure(client, "%s: mismatch", checkfile);
1202 failed++;
1203 }
1204 free(checksum);
1205@@ -308,14 +327,13 @@
1206 }
1207 fclose(md5_file);
1208 if (failed) {
1209- usplash_urgent(pipe_fd, "Check finished: errors found in %d files!", failed);
1210+ plymouth_urgent(client, "Check finished: errors found in %d files!", failed);
1211 } else {
1212- usplash_urgent(pipe_fd, "Check finished: no errors found");
1213+ plymouth_urgent(client, "Check finished: no errors found");
1214 }
1215- usplash_urgent(pipe_fd, "Press any key to reboot your system");
1216- usplash_timeout(pipe_fd, 86400);
1217- set_nocanonical_tty(0);
1218- getchar();
1219+
1220+ plymouth_prompt(client, "Press any key to reboot your system");
1221+
1222 reboot(LINUX_REBOOT_CMD_RESTART);
1223 return 0;
1224
1225
1226=== modified file 'conf.d/compcache'
1227--- conf.d/compcache 2008-09-12 08:13:38 +0000
1228+++ conf.d/compcache 2011-10-06 10:04:28 +0000
1229@@ -1,1 +1,1 @@
1230-COMPCACHE_SIZE="25%"
1231+COMPCACHE_SIZE="50%"
1232
1233=== modified file 'debian/casper.init'
1234--- debian/casper.init 2009-10-09 14:59:34 +0000
1235+++ debian/casper.init 2011-10-06 10:04:28 +0000
1236@@ -46,7 +46,7 @@
1237 find "$path" -type f | xargs cat > /dev/null 2>&1
1238 elif [ -f "$path" ]; then
1239 if [ -x "$path" ]; then
1240- if file "$path" | grep -q 'dynamically linked'; then
1241+ if file -L "$path" | grep -q 'dynamically linked'; then
1242 for lib in $(ldd "$path" | awk '{ print $3 }'); do
1243 cache_path "$lib"
1244 done
1245@@ -89,7 +89,7 @@
1246 prompt=
1247 fi
1248
1249- for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty); do
1250+ for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty) /bin/plymouth /sbin/usplash_write; do
1251 cache_path "$path"
1252 done
1253
1254@@ -97,17 +97,23 @@
1255
1256 [ "$prompt" ] || return 0
1257
1258- stty sane < /dev/console
1259-
1260 # XXX - i18n
1261- echo "Please remove the disc and close the tray (if any) then press ENTER: " > /dev/console
1262- if [ -x /sbin/usplash_write ]; then
1263- /sbin/usplash_write "TIMEOUT 86400"
1264- /sbin/usplash_write "TEXT-URGENT Please remove the disc, close the tray (if any)"
1265- /sbin/usplash_write "TEXT-URGENT and press ENTER to continue"
1266+ MSG="Please remove installation media and close the tray (if any) then press ENTER: "
1267+
1268+ if [ -x /bin/plymouth ] && plymouth --ping; then
1269+ plymouth message --text="$MSG"
1270+ plymouth watch-keystroke > /dev/null
1271+ else
1272+ stty sane < /dev/console
1273+
1274+ echo $MSG > /dev/console
1275+ if [ -x /sbin/usplash_write ]; then
1276+ /sbin/usplash_write "TIMEOUT 86400"
1277+ /sbin/usplash_write "TEXT-URGENT Please remove installation media, close the tray"
1278+ /sbin/usplash_write "TEXT-URGENT (if any) and press ENTER to continue"
1279+ fi
1280+ read x < /dev/console
1281 fi
1282-
1283- read x < /dev/console
1284 }
1285
1286 case "$1" in
1287
1288=== modified file 'debian/casper.install'
1289--- debian/casper.install 2009-09-23 14:21:43 +0000
1290+++ debian/casper.install 2011-10-06 10:04:28 +0000
1291@@ -1,9 +1,12 @@
1292+bin/casper-a11y-enable usr/bin
1293 bin/casper-getty sbin
1294 bin/casper-login sbin
1295 bin/casper-new-uuid sbin
1296 bin/casper-preseed usr/share/casper
1297 bin/casper-reconfigure usr/share/casper
1298+bin/casper-set-selections usr/share/casper
1299 bin/casper-snapshot sbin
1300+bin/casper-update-initramfs usr/share/casper
1301 hooks usr/share/initramfs-tools
1302 scripts usr/share/initramfs-tools
1303 conf.d usr/share/initramfs-tools
1304
1305=== modified file 'debian/casper.postinst'
1306--- debian/casper.postinst 2006-07-21 11:19:15 +0000
1307+++ debian/casper.postinst 2011-10-06 10:04:28 +0000
1308@@ -1,5 +1,15 @@
1309 #! /bin/sh
1310
1311+# If running from writable media, make sure that update-initramfs is
1312+# properly a symlink.
1313+if [ "$1" = configure ] && dpkg --compare-versions "$2" lt-nl 1.253 && \
1314+ [ -w /cdrom ] && [ -e /usr/sbin/update-initramfs.distrib ] && \
1315+ [ ! -L /usr/sbin/update-initramfs ] && \
1316+ fgrep -qs update-initramfs.distrib /usr/sbin/update-initramfs; then
1317+ ln -nsf /usr/share/casper/casper-update-initramfs \
1318+ /usr/sbin/update-initramfs
1319+fi
1320+
1321 update-initramfs -u
1322
1323 #DEBHELPER#
1324
1325=== modified file 'debian/changelog'
1326--- debian/changelog 2010-09-28 23:07:27 +0000
1327+++ debian/changelog 2011-10-06 10:04:28 +0000
1328@@ -1,4 +1,732 @@
1329-casper (1.211) UNRELEASED; urgency=low
1330+casper (1.285) UNRELEASED; urgency=low
1331+
1332+ * scripts/casper:
1333+ - enable use of virtio devices in is_nice_device()
1334+
1335+ -- Ante Karamatic <ivoks@ubuntu.com> Thu, 06 Oct 2011 05:29:13 -0400
1336+
1337+casper (1.284) oneiric; urgency=low
1338+
1339+ * bin/casper-a11y-enable:
1340+ - Set the session by calling AccountService via dbus instead of using
1341+ lightdm commands, as we cannot run lightdm-set-defaults as a user
1342+ - Add some extra spaces to make sure the startup scripts used to set a11y
1343+ settings are syntactically correct
1344+ - Add some other needed settings for various profiles for use in the login
1345+ manager
1346+ - Set correct permissions for the orca config directory once the config
1347+ files have been created
1348+ - Make sure the startup script checks take into account the ability to be
1349+ run from the initramfs
1350+ * ubiquity-hooks/30accessibility:
1351+ - Make sure that accessibility profile settings are properly applied at
1352+ install time, even if the user decided to try Ubuntu first, and then
1353+ run the install from the desktop
1354+ - Copy any existing orca configuration to the target system
1355+ - Make sure profile settings are not set up twice
1356+
1357+ -- Luke Yelavich <themuso@ubuntu.com> Wed, 14 Sep 2011 16:19:59 +1000
1358+
1359+casper (1.283) oneiric; urgency=low
1360+
1361+ * scripts/casper-bottom/22screensaver: Set gsettings key instead of gconf.
1362+ * scripts/casper-bottom/44pk_allow_ubuntu: Drop old PolicyKit stuff, it's
1363+ gone for a long time.
1364+ * Drop scripts/casper-bottom/45disable_guest_account: We are not using gdm
1365+ any more, and lightdm implements that differently.
1366+ * Drop scripts/casper-bottom/47une_ubiquity, UNE/netbook-launcher are
1367+ history.
1368+ * Add scripts/casper-bottom/26disable_user_menu: Disable the user indicator
1369+ menu. (LP: #834137)
1370+
1371+ -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 07 Sep 2011 12:33:57 +0200
1372+
1373+casper (1.282) oneiric; urgency=low
1374+
1375+ * bin/casper-a11y-enable: Fix typo/syntax error in the set_session function
1376+
1377+ -- Luke Yelavich <themuso@ubuntu.com> Wed, 07 Sep 2011 15:20:05 +1000
1378+
1379+casper (1.281) oneiric; urgency=low
1380+
1381+ * bin/casper-a11y-enable:
1382+ - Change all remaining references of gdm to lightdm, particularly in the
1383+ usage help text, and the username of the login manager
1384+ - Set the default login session to ubuntu-2d for screen reader and braille
1385+ profiles
1386+
1387+ -- Luke Yelavich <themuso@ubuntu.com> Mon, 05 Sep 2011 15:02:31 +1000
1388+
1389+casper (1.280) oneiric; urgency=low
1390+
1391+ * Don't fail to set up autologin on a commented out autologin-user line
1392+ in lightdm custom conf. (LP: #836727)
1393+
1394+ -- Mario Limonciello <Mario_Limonciello@Dell.com> Mon, 29 Aug 2011 09:16:00 -0500
1395+
1396+casper (1.279) oneiric; urgency=low
1397+
1398+ * hooks/casper: pull in overlayfs kernel module to allow use of overlayfs
1399+ as the union mount during install.
1400+
1401+ -- Andy Whitcroft <apw@canonical.com> Fri, 19 Aug 2011 13:03:27 +0100
1402+
1403+casper (1.278) oneiric; urgency=low
1404+
1405+ * scripts/casper-bottom/15autologin:
1406+ - handling lightdm.conf in the case we already have a configuration file (to
1407+ avoid overwriting it on the cd if we don't have the default gtk greeter
1408+ installed if greeter not specified). Flavors should now use
1409+ set-lightdm-defaults to set the default session and greeter, even if
1410+ this still works with current alternatives method.
1411+
1412+ -- Didier Roche <didrocks@ubuntu.com> Thu, 11 Aug 2011 09:05:43 +0200
1413+
1414+casper (1.277) oneiric; urgency=low
1415+
1416+ * Add an extra command-line argument to casper-a11y-helper which will
1417+ create a startup script that will be executed either on first boot after
1418+ install, or once we switch out of the initramfs to boot the live
1419+ session. This is needed to work around gsettings not working when
1420+ chrooting to the target environment with no dbus running.
1421+ * Add extra checks to the ubiquity accessibility target-config hook to
1422+ determine whether accessibility was enabled during the running of
1423+ ubiquity, and act accordingly.
1424+ * Call the casper a11y helper script with the newly added -script argument
1425+ as per above.
1426+ * Determine whether we are root by checking the $HOME variable.
1427+ * Do not call the a11y profile script in debug mode
1428+
1429+ -- Luke Yelavich <themuso@ubuntu.com> Fri, 05 Aug 2011 15:22:27 +1000
1430+
1431+casper (1.276) oneiric; urgency=low
1432+
1433+ * If lightdm.conf exists, remove it first to avoid issues with symlinks.
1434+
1435+ -- Stéphane Graber <stgraber@ubuntu.com> Thu, 04 Aug 2011 12:26:08 -0400
1436+
1437+casper (1.275) oneiric; urgency=low
1438+
1439+ * Update 15autologin to overwrite any existing lightdm configuration.
1440+ This should fix lightdm autologin for everyone.
1441+ Any custom lightdm configuration won't apply to the live environment.
1442+
1443+ -- Stéphane Graber <stgraber@ubuntu.com> Wed, 03 Aug 2011 10:10:48 -0400
1444+
1445+casper (1.274) oneiric; urgency=low
1446+
1447+ * Remove log_end_message call (LP: #820284).
1448+
1449+ -- Evan Dandrea <ev@ubuntu.com> Wed, 03 Aug 2011 12:01:57 +0100
1450+
1451+casper (1.273) oneiric; urgency=low
1452+
1453+ [ Mario Limonciello ]
1454+ * scripts/casper: Add support for SAS controllers now that 575297 is fixed.
1455+ (LP: #819564)
1456+
1457+ [ Stéphane Graber ]
1458+ * lightdm no longer ships with /etc/lightdm/lightdm.conf in its package.
1459+ Updating 15autologin casper hook to create one when missing. (LP: #819609)
1460+
1461+ -- Stéphane Graber <stgraber@ubuntu.com> Tue, 02 Aug 2011 17:47:10 -0400
1462+
1463+casper (1.272) oneiric; urgency=low
1464+
1465+ [ Andy Whitcroft ]
1466+ * scripts/casper: add support for overlayfs for union mounts of the liveCD
1467+
1468+ [ Luke Yelavich ]
1469+ * Port the rest of the accessibility profile settings to gsettings, except
1470+ where gconf settings are required, eg firefox and gksu
1471+ * bin/casper-a11y-enable: Extract the username from the $HOME environment
1472+ variable, as $USER is not set when ubiquity calls the script, even with
1473+ all privileges dropped
1474+
1475+ -- Luke Yelavich <themuso@ubuntu.com> Wed, 27 Jul 2011 15:20:11 +1000
1476+
1477+casper (1.271) oneiric; urgency=low
1478+
1479+ * bin/casper-a11y-enable:
1480+ - Use -x when enabling debug mode
1481+ - Adjust some variable quoting when checking for package versions
1482+ - Do not break out of the command-line checking loop at all, let it run its
1483+ course until there are no command-line values left to parse
1484+
1485+ -- Luke Yelavich <themuso@ubuntu.com> Fri, 01 Jul 2011 11:47:31 +0100
1486+
1487+casper (1.270) oneiric; urgency=low
1488+
1489+ * Depend on lzma for our diverted update-initramfs (LP: #790794).
1490+
1491+ -- Colin Watson <cjwatson@ubuntu.com> Thu, 30 Jun 2011 10:30:49 +0100
1492+
1493+casper (1.269) oneiric; urgency=low
1494+
1495+ [ Luke Yelavich ]
1496+ * bin/casper-a11y-helper:
1497+ - Migrate blindness and braille accessibility profiles to gsettings for
1498+ all except gksu, which still uses gconf to store settings.
1499+
1500+ [ Colin Watson ]
1501+ * Add LightDM autologin support (LP: #797669).
1502+
1503+ -- Colin Watson <cjwatson@ubuntu.com> Fri, 17 Jun 2011 12:52:44 +0100
1504+
1505+casper (1.268) oneiric; urgency=low
1506+
1507+ The big accessibility profile code refactor:
1508+ * debian/copyright: Update Canonical copyright years to include 2011
1509+ * bin/casper-a11y-helper: Create a new script that will be callable from
1510+ casper/the initramfs, ubiquity at the maybe-ubiquity screen, and ubiquity
1511+ when running through ubiquity-hooks during the installation process.
1512+ - Copy accessibility profile settings from both
1513+ scripts/casper-bottom/30accessibility and ubiquity-hooks/30accessibility
1514+ - Refactor profile settings into groups of common settings for low vision
1515+ and motor profiles, with the rest of the settings broken up into
1516+ individual methods for each profile
1517+ - Add options to allow for calling the script from within the initramfs
1518+ - Do a few more package checks to make sure the target environment has the
1519+ commands we need to set things up
1520+ * scripts/casper-bottom/30accessibility && ubiquity-hooks/30accessibility:
1521+ - Remove old profile settings and support code, and make use of the new
1522+ a11y helper script
1523+ - Call the helper with debugging enabled for now, to help with testing
1524+ to make sure the new helper is executing properly
1525+ * debian/casper.install: Add casper-a11y-helper
1526+
1527+ -- Luke Yelavich <themuso@ubuntu.com> Wed, 08 Jun 2011 15:35:39 +1000
1528+
1529+casper (1.267) oneiric; urgency=low
1530+
1531+ * scripts/casper-bottom/32disable_hibernation: Drop obsolete
1532+ gnome-power-manager and kde-profile configuration, and just globally
1533+ disable hibernation via policykit. (LP: #610351)
1534+
1535+ -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 08 Jun 2011 07:25:43 +0200
1536+
1537+casper (1.266) oneiric; urgency=low
1538+
1539+ * Disable release-upgrade prompts in the live session (LP: #777759).
1540+
1541+ -- Colin Watson <cjwatson@ubuntu.com> Thu, 05 May 2011 12:28:33 +0100
1542+
1543+casper (1.265) natty; urgency=low
1544+
1545+ * scripts/casper-bottom/30accessibility && ubiquity-hooks/30accessibility:
1546+ - Use gsettings to adjust yelp caret navigation, as properly fixed in
1547+ yelp 3.0.1
1548+ * ubiquity-hooks/30accessibility: Fix the gset function to set settings for
1549+ the target username, and not the username of the live user
1550+
1551+ -- Luke Yelavich <themuso@ubuntu.com> Mon, 11 Apr 2011 16:47:46 +1000
1552+
1553+casper (1.264) natty; urgency=low
1554+
1555+ * scripts/casper-bottom/30accessibility && ubiquity-hooks/30accessibility:
1556+ - Enable yelp carrot navigation by default in the moderate visual
1557+ impairment, blindness, and Braille profiles, thanks to Attila Hammer
1558+ for the patch (LP: #752503)
1559+
1560+ -- Luke Yelavich <themuso@ubuntu.com> Thu, 07 Apr 2011 10:17:52 +1000
1561+
1562+casper (1.263) natty; urgency=low
1563+
1564+ [ Evan Dandrea ]
1565+ * Suppress Log Out item in the live session (LP: #750140).
1566+
1567+ [ Martin Pitt ]
1568+ * scripts/casper-helpers, find_cow_device(): Do not ever probe floppy
1569+ devices. There are lots of computers which still have a floppy controller
1570+ (and thus a /dev/fd0), but no actual floppy. Trying to send anything to
1571+ /dev/fd0 will result in very long timeouts. Here this causes booting the
1572+ live CD to take more than 30 minutes. (See also LP #539515 for the
1573+ corresponding bug in udev/udisks). (LP: #739774)
1574+
1575+ -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 04 Apr 2011 16:12:34 +0200
1576+
1577+casper (1.262) natty; urgency=low
1578+
1579+ * scripts/casper-bottom/30accessibility:
1580+ - Don't blindly assume that there are no orca config files/directories in
1581+ the created user's home directory. A derivative may have placed something
1582+ in /etc/skel as part of the live filesystem, and we shouldn't be
1583+ clobbering it, thanks to Attila Hammer for the pointer (LP: #744227)
1584+
1585+ -- Luke Yelavich <themuso@ubuntu.com> Mon, 04 Apr 2011 17:32:40 +1000
1586+
1587+casper (1.261) natty; urgency=low
1588+
1589+ * scripts/casper-bottom/30accessibility && ubiquity-hooks/30accessibility:
1590+ - Also use classic GNOME for the "motor difficulties, pointing devices"
1591+ profile, due to issues with on-screen keyboards and unity search
1592+
1593+ -- Luke Yelavich <themuso@ubuntu.com> Mon, 04 Apr 2011 16:15:59 +1000
1594+
1595+casper (1.260) natty; urgency=low
1596+
1597+ [ Colin Watson ]
1598+ * Force apt-cdrom's mount point to /cdrom (LP: #723357). I've left the
1599+ /media/cdrom symlink introduced in 1.259 in place anyway, as it's
1600+ harmless on the live CD and may save some effort elsewhere.
1601+
1602+ [ Luke Yelavich ]
1603+ * scripts/casper-bottom/30accessibility && ubiquity-hooks/30accessibility:
1604+ - Set the default session to classic GNOME for moderate visual
1605+ impairement, blindness, and braille accessibility profiles (LP: #734659)
1606+ - Fix a few dangling references to user-settings.py (LP: #744214)
1607+ - Don't set /desktop/gnome/accessibility/keyboard/enable for vision
1608+ related profiles (LP: #711131)
1609+
1610+ -- Luke Yelavich <themuso@ubuntu.com> Fri, 01 Apr 2011 16:13:07 +1100
1611+
1612+casper (1.259) natty; urgency=low
1613+
1614+ * scripts/casper-bottom/05mountpoints: Create a /media/cdrom -> /cdrom
1615+ symlink, to work around apt's changed default mount point for Alpha-3.
1616+ (LP: #727783)
1617+
1618+ -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 03 Mar 2011 11:52:38 +0100
1619+
1620+casper (1.258) natty; urgency=low
1621+
1622+ * scripts/casper-bottom/30accessibility && ubiquity-hooks/30accessibility:
1623+ - Remove code that removes applets from the panel. Indicators are the
1624+ way forward, and we have unity, which works differently.
1625+ - Write orca configuration in json format
1626+ - Set some settings in gsettings parallel to gconf, next cycle there
1627+ will be a full migration to gsettings.
1628+ - Do not change the default window manager setting, this will be done
1629+ according to what is detected with unity/compiz et al.
1630+
1631+ -- Luke Yelavich <themuso@ubuntu.com> Wed, 23 Feb 2011 15:18:23 +1100
1632+
1633+casper (1.257) natty; urgency=low
1634+
1635+ * Handle $cow_backing already being mounted elsewhere (LP: #683260).
1636+
1637+ -- Evan Dandrea <ev@ubuntu.com> Fri, 11 Feb 2011 16:41:11 +0000
1638+
1639+casper (1.256) natty; urgency=low
1640+
1641+ * Add scripts/casper-bottom/49kubuntu_mobile_session to run Kubuntu
1642+ mobile session
1643+
1644+ -- Jonathan Riddell <jriddell@ubuntu.com> Thu, 10 Feb 2011 17:42:34 +0000
1645+
1646+casper (1.255) natty; urgency=low
1647+
1648+ [ Evan Dandrea ]
1649+ * Don't disable the free space notifier if using persistent storage.
1650+
1651+ [ Daniel Manrique ]
1652+ * scripts/casper-bottom/23networking: Strip quotes from DNSDOMAIN as
1653+ returned by ipconfig, and sanitize the domain entry to ensure the
1654+ generated /etc/resolv.conf is formatted correctly (LP: #709364).
1655+
1656+ -- Colin Watson <cjwatson@ubuntu.com> Tue, 01 Feb 2011 11:05:13 +0000
1657+
1658+casper (1.254) natty; urgency=low
1659+
1660+ * More fixes to the USB update-initramfs shim (LP: #591207):
1661+ - Make the shim a proper executable in
1662+ /usr/share/casper/casper-update-initramfs and symlink to it if
1663+ necessary at boot time, so that new versions of this shim are
1664+ automatically installed when casper is upgraded.
1665+ - $bootdir/initrd.img may exist when $bootdir/vmlinuz doesn't; for
1666+ example, if we're running off a fresh live USB stick and the kernel
1667+ hasn't yet been upgraded.
1668+
1669+ -- Colin Watson <cjwatson@ubuntu.com> Thu, 20 Jan 2011 14:18:59 +0000
1670+
1671+casper (1.253) natty; urgency=low
1672+
1673+ * Don't try to process the initramfs and kernel if the real update-
1674+ initramfs hasn't generated anything (LP: #557023).
1675+
1676+ -- Evan Dandrea <ev@ubuntu.com> Wed, 05 Jan 2011 12:07:47 +0000
1677+
1678+casper (1.252) natty; urgency=low
1679+
1680+ * Cope with forthcoming console-setup changes: handle
1681+ /etc/default/keyboard if present, and in that case preseed
1682+ keyboard-configuration/* templates.
1683+
1684+ -- Colin Watson <cjwatson@ubuntu.com> Tue, 21 Dec 2010 16:44:54 +0000
1685+
1686+casper (1.251) natty; urgency=low
1687+
1688+ * scripts/casper-bottom/44pk_allow_ubuntu: Tweak the default PolicyKit
1689+ policy to avoid dropping wireless connections when a user switches to
1690+ another VT (LP: #656757)
1691+
1692+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Sat, 04 Dec 2010 13:11:23 +0000
1693+
1694+casper (1.250) natty; urgency=low
1695+
1696+ * Use LDLIBS rather than LDFLAGS for 'pkg-config --libs ply-boot-client',
1697+ fixing link line ordering.
1698+
1699+ -- Colin Watson <cjwatson@ubuntu.com> Mon, 29 Nov 2010 13:28:17 +0000
1700+
1701+casper (1.249) natty; urgency=low
1702+
1703+ [ arky ]
1704+ * Add universal access preferences taskbar icon in all accessibility
1705+ profiles (LP: #621561).
1706+
1707+ [ Serge Hallyn ]
1708+ * change scripts/casper-helpers:try_mount() to not panic when regular
1709+ mounts fail. Instead, return an error code so the caller can decide.
1710+ (LP: #624632)
1711+
1712+ [ Evan Broder ]
1713+ * scripts/casper: Check for uuid= command line parameter in addition to
1714+ /conf/uuid.conf file in initrd. (LP: #671786)
1715+
1716+ [ Colin Watson ]
1717+ * Document new uuid= option in casper(7).
1718+
1719+ -- Colin Watson <cjwatson@ubuntu.com> Mon, 29 Nov 2010 12:49:36 +0000
1720+
1721+casper (1.248) maverick; urgency=low
1722+
1723+ * ubiquity-hooks/30accessibility: Create .local/share subdirectory structure
1724+ before copying files. Also copy orca files to ~/.local/share, instead
1725+ ~/. Thanks to Attila Hammer for the patch. (LP: #650846)
1726+
1727+ -- Luke Yelavich <themuso@ubuntu.com> Tue, 05 Oct 2010 15:35:35 +1100
1728+
1729+casper (1.247) maverick; urgency=low
1730+
1731+ * Check for the existance of a kubuntu-default-settings directory before
1732+ running scripts/casper-bottom/48kubuntu_disable_restart_notifications
1733+
1734+ -- Jonathan Thomas <echidnaman@kubuntu.org> Mon, 04 Oct 2010 17:43:21 -0400
1735+
1736+casper (1.246) maverick; urgency=low
1737+
1738+ * Added scripts/casper-bottom/07remove_oem_config
1739+ - Added new script to remove oem-config if installed on the image on ARM,
1740+ as it should never be installed on a non-preinstalled image. This is
1741+ necessary because we can't exclude oem-config on the seed on a
1742+ per-subarchitecture basis
1743+ * scripts/casper/47une_ubiquity
1744+ - Cause gconf changes to be made to both the 2D & 3D UNE launchers so
1745+ ubiquity properly shows up in favorites regardless of which launcher is
1746+ used (LP: #643791)
1747+
1748+ -- Michael Casadevall <mcasadevall@ubuntu.com> Mon, 27 Sep 2010 17:52:50 -0400
1749+
1750+casper (1.245) maverick; urgency=low
1751+
1752+ * Add scripts/casper-bottom/49disable_kubuntu_restart_notify for a more
1753+ surgical solution at disabling restart notifications on the Live CD
1754+ * Don't remove the notificationhelper.desktop file in 34disable_kde_services
1755+
1756+ -- Jonathan Thomas <echidnaman@kubuntu.org> Tue, 28 Sep 2010 19:20:26 -0400
1757+
1758+casper (1.244) maverick; urgency=low
1759+
1760+ * scripts/casper-bottom/30accessibility && ubiquity-hooks/30accessibility:
1761+ - Use orca's new settings location in ~/.local/share, as orca is now
1762+ more XDG compliant
1763+
1764+ -- Luke Yelavich <themuso@ubuntu.com> Thu, 16 Sep 2010 09:38:21 +1000
1765+
1766+casper (1.243) maverick; urgency=low
1767+
1768+ * Backport from live-initramfs 1.154.6-1:
1769+ - Adding patch from Thierry Walrant <debian.tgc@walrant.net> to allow
1770+ setting a path for the persistence files through persistent-path boot
1771+ parameter (Closes: #512661).
1772+ * Follow symlinks when checking for dynamically linked files at reboot.
1773+
1774+ -- Colin Watson <cjwatson@ubuntu.com> Tue, 07 Sep 2010 10:53:32 +0100
1775+
1776+casper (1.242) maverick; urgency=low
1777+
1778+ * Update scripts/casper-bottom/34disable_kde_services to stop some new
1779+ akonadi services
1780+
1781+ -- Jonathan Riddell <jriddell@ubuntu.com> Mon, 06 Sep 2010 14:20:54 +0100
1782+
1783+casper (1.241) maverick; urgency=low
1784+
1785+ [ Mathieu Trudel-Lapierre ]
1786+ * Use configure_networking at do_netmount; it's at least more resilient
1787+ than a simple ipconfig call since it retries, and it properly parses
1788+ BOOTIF to know which devices to configure. (LP: #602273)
1789+
1790+ [ Colin Watson ]
1791+ * Parse the machine-readable file written out by ipconfig rather than
1792+ trying to parse its human-readable output.
1793+
1794+ -- Colin Watson <cjwatson@ubuntu.com> Fri, 20 Aug 2010 13:37:56 +0100
1795+
1796+casper (1.240) maverick; urgency=high
1797+
1798+ * scripts/casper
1799+ - Added platform-sata_mv to is_nice_device() to allow Marvell
1800+ Dove A0 and AVD1 to properly boot live media (LP: #618489)
1801+
1802+ -- Michael Casadevall <mcasadevall@ubuntu.com> Mon, 16 Aug 2010 19:36:56 +0800
1803+
1804+casper (1.239) maverick; urgency=low
1805+
1806+ * scripts/casper-bottom/30accessibility && ubiquity-hooks/30accessibility:
1807+ - Instead of mangling the main sudoers file, create a new file in
1808+ /etc/sudoers.d and set permissions appropriately
1809+
1810+ -- Luke Yelavich <themuso@ubuntu.com> Wed, 11 Aug 2010 13:46:03 +1000
1811+
1812+casper (1.238) maverick; urgency=low
1813+
1814+ [ Alex Chiang ]
1815+ * Disable ureadahead-other job as well as ureadahead (LP: #605695).
1816+
1817+ -- Colin Watson <cjwatson@ubuntu.com> Thu, 15 Jul 2010 11:49:36 +0100
1818+
1819+casper (1.237) maverick; urgency=low
1820+
1821+ [ Colin Watson ]
1822+ * Add btrfs support.
1823+ * Make ip=* command-line parsing more precise (thanks, Bill Nickless;
1824+ LP: #586553).
1825+ * Make the USB update-initramfs shim cope with vmlinuz and initrd.img
1826+ being in /boot rather than / (LP: #591207).
1827+ * Depend on file for /etc/init.d/casper (thanks, Alon Swartz;
1828+ LP: #591213).
1829+ * Conflict with live-initramfs, as they overlap and people can pick one or
1830+ the other (LP: #453476).
1831+
1832+ [ Martin Pitt ]
1833+ * debian/casper.init: Change shutdown splash message to refer to
1834+ "installation media" instead of "disc"; a lot of installs happen
1835+ from USB sticks these days. Thanks to Debbie Beliveau for the idea.
1836+
1837+ -- Colin Watson <cjwatson@ubuntu.com> Mon, 28 Jun 2010 16:53:17 +0100
1838+
1839+casper (1.236) lucid; urgency=low
1840+
1841+ * Check for LTS in the release name (LP: #558488).
1842+
1843+ -- Evan Dandrea <evand@ubuntu.com> Wed, 21 Apr 2010 11:12:32 +0100
1844+
1845+casper (1.235) lucid; urgency=low
1846+
1847+ * Unbreak early command from previous commit.
1848+
1849+ -- Mario Limonciello <Mario_Limonciello@Dell.com> Thu, 15 Apr 2010 02:54:15 -0500
1850+
1851+casper (1.234) lucid; urgency=low
1852+
1853+ * Only bring the network up while running preseed/early_command if
1854+ preseed/allow-network=true.
1855+
1856+ -- Colin Watson <cjwatson@ubuntu.com> Wed, 14 Apr 2010 15:56:40 +0100
1857+
1858+casper (1.233) lucid; urgency=low
1859+
1860+ * Bring the network up while running preseed/early_command.
1861+ * Fix use of debconf passthrough frontend; DEBCONF_READFD and
1862+ DEBCONF_WRITEFD were backwards, and DEBIAN_HAS_FRONTEND and
1863+ DEBCONF_REDIR needed to be unset or else confmodule scripts would end up
1864+ trying to talk to closed file descriptors.
1865+ * Run debconf-communicate with a read-only template database and separate
1866+ config databases, and copy any changed values back to the master
1867+ databases at the end. This allows us to use the noninteractive frontend
1868+ rather than passthrough when running apt-get in preseed/early_command or
1869+ dpkg to install driver updates, thereby ensuring that the template
1870+ database is properly initialised (LP: #557011).
1871+
1872+ -- Colin Watson <cjwatson@ubuntu.com> Mon, 12 Apr 2010 23:41:09 +0100
1873+
1874+casper (1.232) lucid; urgency=low
1875+
1876+ * bump compcache size to 50% on live images for machines with less than
1877+ 512MiB. This makes sure we don't hit OOM errors on systems with only
1878+ 256MiB of RAM.
1879+
1880+ -- Oliver Grawert <ogra@ubuntu.com> Mon, 12 Apr 2010 08:10:06 +0200
1881+
1882+casper (1.231) lucid; urgency=low
1883+
1884+ [ Jonathan Riddell ]
1885+ * Remove 37kubuntu_netbook_installer_link, now done with a patch in
1886+ kdebase-workspace
1887+
1888+ [ Colin Watson ]
1889+ * If copying live media to RAM or disk, explicitly copy .disk, since *
1890+ won't expand to include it (LP: #526305).
1891+ * Cache /bin/plymouth and /sbin/usplash_write before ejecting the CD, in
1892+ the hope that that helps with I/O errors on reboot (see LP #539027).
1893+
1894+ [ Luke Yelavich ]
1895+ * ubiquity-hooks/30accessibility: Copy the orca settings directory to the
1896+ gdm home directory, to allow for preferred orca settings to be used in
1897+ gdm (LP: #551515).
1898+
1899+ -- Luke Yelavich <themuso@ubuntu.com> Fri, 09 Apr 2010 14:00:51 +1000
1900+
1901+casper (1.230) lucid; urgency=low
1902+
1903+ * Don't save the hardware clock on live CD reboot; we used to do this in
1904+ the sysvinit world, but it regressed when we switched to Upstart
1905+ (thanks, Norm Pierce; LP: #436535).
1906+ * When running update-initramfs on writable media, update initrd.lz rather
1907+ than initrd.gz if it's present, and make the update process a bit safer
1908+ while we're there (LP: #489736).
1909+ * Handle toram and todisk=DEVICE options on command line (LP: #526305).
1910+ * Policy version 3.8.4: no changes required.
1911+ * Convert to source format 3.0 (native).
1912+
1913+ -- Colin Watson <cjwatson@ubuntu.com> Tue, 30 Mar 2010 11:41:24 +0100
1914+
1915+casper (1.229) lucid; urgency=low
1916+
1917+ [ Jonathan Riddell ]
1918+ * Update scripts/casper-bottom/34disable_kde_services for lucid
1919+
1920+ [ Evan Dandrea ]
1921+ * Don't let apt try to auto-detect the CD-ROM device using udev. We
1922+ already know what it is, and using udev to find it again wont work
1923+ for USB disks.
1924+
1925+ -- Evan Dandrea <evand@ubuntu.com> Tue, 23 Mar 2010 11:42:00 +0000
1926+
1927+casper (1.228) lucid; urgency=low
1928+
1929+ * Update for the new libplymouth2.
1930+
1931+ -- Steve Langasek <steve.langasek@ubuntu.com> Fri, 12 Mar 2010 18:37:02 -0800
1932+
1933+casper (1.227) lucid; urgency=low
1934+
1935+ * casper-md5check: port from usplash to plymouth. LP: #500198
1936+ * fix up our reliance on usplash, /dev/console elsewhere. LP: #506418.
1937+
1938+ -- Steve Langasek <steve.langasek@ubuntu.com> Fri, 12 Mar 2010 01:12:28 -0800
1939+
1940+casper (1.226) lucid; urgency=low
1941+
1942+ [ Colin Watson ]
1943+ * Stop using removed nfsro option for NFS/unionfs (thanks, Bernhard
1944+ Seibold; LP: #460781).
1945+
1946+ [ Jonathan Riddell ]
1947+ * Remove scripts/casper-bottom/48enable_kubuntu_netbook and ubiquity-
1948+ hooks/48enable_kubuntu_netbook now enabled in kubuntu-netbook-
1949+ default-settings
1950+
1951+ -- Jonathan Riddell <jriddell@ubuntu.com> Wed, 10 Mar 2010 22:23:04 +0000
1952+
1953+casper (1.225) lucid; urgency=low
1954+
1955+ * Add ubiquity-hooks/49kubuntu_gnome_icon_cache to recreate the Gnome
1956+ icon cache on Kubuntu CDs, removed by livecd-rootfs
1957+
1958+ -- Jonathan Riddell <jriddell@ubuntu.com> Mon, 08 Mar 2010 11:47:01 +0000
1959+
1960+casper (1.224) lucid; urgency=low
1961+
1962+ * Remove ubiquity-hooks/35copy_wallpaper_cache as now implement it in
1963+ ubiquity itself (LP: #530024)
1964+
1965+ -- Didier Roche <didrocks@ubuntu.com> Mon, 01 Mar 2010 19:41:45 +0100
1966+
1967+casper (1.223) lucid; urgency=low
1968+
1969+ * Bind-mount /dev, /proc, and /sys into /root while running apt-cdrom.
1970+ * Copy /lib/udev/rules.d/60-cdrom_id.rules into the initramfs to go with
1971+ /lib/udev/cdrom_id, so that apt-cdrom will be able to find ID_CDROM=1
1972+ entries when we run it. This should stop update-notifier from
1973+ repeatedly popping up during the live session.
1974+
1975+ -- Colin Watson <cjwatson@ubuntu.com> Tue, 23 Feb 2010 01:35:30 +0000
1976+
1977+casper (1.222) lucid; urgency=low
1978+
1979+ * scripts/casper-bottom/47une_ubiquity:
1980+ - get back ubiquity favorite icon in UNE live (LP: #524381)
1981+ - rename the script from 47unr_ubiquity to 47une_ubiquity as well
1982+ as "UNR" mention
1983+
1984+ -- Didier Roche <didrocks@ubuntu.com> Mon, 22 Feb 2010 14:01:25 +0100
1985+
1986+casper (1.221) lucid; urgency=low
1987+
1988+ * Remove the rest of the mythbuntu delta from 10adduser. It will be
1989+ maintained in the mythbuntu-live-autostart package instead so that
1990+ users from ~mythbuntu-dev can administer it.
1991+
1992+ -- Mario Limonciello <superm1@ubuntu.com> Sun, 21 Feb 2010 20:22:00 -0600
1993+
1994+casper (1.220) lucid; urgency=low
1995+
1996+ * scripts/casper: calculate memory without "head" utility, thanks to
1997+ Petar Bogdanovic (LP: #25496).
1998+
1999+ -- Kees Cook <kees@ubuntu.com> Fri, 19 Feb 2010 14:04:18 -0800
2000+
2001+casper (1.219) lucid; urgency=low
2002+
2003+ [ Mario Limonciello ]
2004+ * Disable casper-reconfigure from 22gnome_panel_data. It doesn't (appear) to
2005+ serve a functional purpose as the postinst does nothing different for laptops.
2006+
2007+ [ Didier Roche ]
2008+ * add 35copy_wallpaper_cache to copy the wallpaper cache created at boot time
2009+ to the main user's directory. First boot will take it into account in
2010+ ureadahead profiling
2011+
2012+ -- Didier Roche <didrocks@ubuntu.com> Wed, 17 Feb 2010 19:14:53 +0100
2013+
2014+casper (1.218) lucid; urgency=low
2015+
2016+ * Allow dpkg and apt-get to be installed from within commands that operate
2017+ in the chroot via early_command or driver updates. (LP: #521218)
2018+
2019+ -- Mario Limonciello <Mario_Limonciello@Dell.com> Tue, 16 Feb 2010 13:38:48 -0600
2020+
2021+casper (1.217) lucid; urgency=low
2022+
2023+ [ Luke Yelavich ]
2024+ * ubiquity-hooks/30accessibility: Enable accessible login for the blindness
2025+ and braile accessibility profiles.
2026+
2027+ [ Colin Watson ]
2028+ * Use egrep rather than 'grep -E' (LP: #512386).
2029+
2030+ [ Julien Lavergne ]
2031+ * 15autologin: Add support for LXDM autologin (LP: #511976).
2032+
2033+ [ Evan Dandrea ]
2034+ * Properly shut down debconf-communicate so that its database gets
2035+ written (LP: #518272).
2036+
2037+ -- Evan Dandrea <evand@ubuntu.com> Thu, 11 Feb 2010 08:25:53 +0000
2038+
2039+casper (1.216) lucid; urgency=low
2040+
2041+ [ Luke Yelavich ]
2042+ * scripts/casper-bottom/30accessibility && ubiquity-hooks/30accessibility:
2043+ - Remove code to disable pulseaudio, as it is no longer needed, and
2044+ the supporting code in the pulseaudio package was removed a long time
2045+ ago.
2046+ - Set the default empathy theme to classic for blindness and braille
2047+ accessibility profiles.
2048+
2049+ [ Jamie Bennett ]
2050+ * Speed up work around debconf-communicate. Replace several calls to
2051+ debconf-communicate with one persistent invocation followed by
2052+ confmodule calls.
2053+ * Disable guest account by rm'ing rather than waiting for dpkg to
2054+ remove it.
2055+
2056+ -- Colin Watson <cjwatson@ubuntu.com> Wed, 03 Feb 2010 16:41:57 -0800
2057+
2058+casper (1.215) lucid; urgency=low
2059
2060 [ Mario Limonciello ]
2061 * Support multiple preseed file/urlarguments on the kernel commandline
2062@@ -18,6 +746,46 @@
2063
2064 -- Jonathan Riddell <jriddell@ubuntu.com> Wed, 27 Jan 2010 13:55:42 +0000
2065
2066+casper (1.214) lucid; urgency=low
2067+
2068+ * 15autologin: simplify the code with escape character evaluation
2069+ (LP: #505140)
2070+
2071+ -- Didier Roche <didrocks@ubuntu.com> Tue, 12 Jan 2010 08:57:05 +0100
2072+
2073+casper (1.213) lucid; urgency=low
2074+
2075+ * printf does not evaluate escape characters in the argument string.
2076+
2077+ -- Evan Dandrea <evand@ubuntu.com> Mon, 11 Jan 2010 11:02:12 +0000
2078+
2079+casper (1.212) lucid; urgency=low
2080+
2081+ [ Martin Pitt ]
2082+ * debian/control: Add ${misc:Depends}.
2083+ * debian/control: Bump Standards-Version to 3.8.3 (no changes necessary).
2084+
2085+ [ Colin Watson ]
2086+ * 15autologin: Use printf rather than echo -e, since its behaviour is
2087+ portable across shells.
2088+
2089+ [ Evan Dandrea ]
2090+ * Remove scripts/casper-bottom/42disable_apparmor. Apparmor
2091+ 2.3.1+bzr1312-0ubuntu3 and ifupdown 0.6.8ubuntu26 now no-op when
2092+ they detect the live CD environment.
2093+
2094+ -- Evan Dandrea <evand@ubuntu.com> Fri, 08 Jan 2010 20:31:26 +0000
2095+
2096+casper (1.211) lucid; urgency=low
2097+
2098+ * Readd scripts/casper-bottom/15autologin changes: derivatives have
2099+ now a custom.conf file and still need autologin in live version.
2100+ Merge with my previous fix proposed for sponsoring one week ago:
2101+ use echo -e to enable \n interpretation (/bin/sh is busybox ash
2102+ which behavior differs from vanilla ash interpretor) (LP: #500786)
2103+
2104+ -- Didier Roche <didrocks@ubuntu.com> Tue, 05 Jan 2010 20:05:26 +0100
2105+
2106 casper (1.210) lucid; urgency=low
2107
2108 [ Scott James Remnant ]
2109
2110=== modified file 'debian/control'
2111--- debian/control 2010-01-20 23:35:11 +0000
2112+++ debian/control 2011-10-06 10:04:28 +0000
2113@@ -2,23 +2,23 @@
2114 Section: misc
2115 Priority: optional
2116 Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
2117-Build-Depends: debhelper (>= 7.0.50~), lsb-release
2118-Standards-Version: 3.6.1
2119-Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-core-dev/casper/trunk/
2120+Build-Depends: debhelper (>= 7.0.50~), lsb-release, libplymouth-dev (>= 0.8.0~-13), pkg-config
2121+Standards-Version: 3.8.4
2122+Vcs-Bzr: lp:ubuntu/casper
2123
2124 Package: casper
2125 Architecture: any
2126 Section: misc
2127 Priority: extra
2128-Depends: ${shlibs:Depends}, initramfs-tools (>= 0.92bubuntu55), busybox-initramfs (>= 1:1.1.3-4ubuntu3), dmsetup, user-setup, sudo, eject, uuid-runtime, localechooser-data (>= 2.03ubuntu1), util-linux (>= 2.15-1)
2129-Conflicts: usplash (<< 0.4-43)
2130+Depends: ${shlibs:Depends}, ${misc:Depends}, initramfs-tools (>= 0.92bubuntu55), busybox-initramfs (>= 1:1.1.3-4ubuntu3), dmsetup, user-setup, sudo, eject, uuid-runtime, localechooser-data (>= 2.03ubuntu1), util-linux (>= 2.15-1), file, lzma
2131+Conflicts: usplash (<< 0.4-43), live-initramfs
2132 Breaks: genext2fs (<< 1.4.1)
2133 Tag: admin::boot, admin::filesystem, implemented-in::shell, protocol::smb, role::plugin, scope::utility, special::completely-tagged, works-with-format::iso9660
2134 Description: Run a "live" preinstalled system from read-only media
2135
2136 Package: ubiquity-casper
2137 Architecture: all
2138-Depends: laptop-detect, sudo
2139+Depends: laptop-detect, sudo, ${misc:Depends}
2140 Conflicts: espresso-casper
2141 Replaces: espresso-casper
2142 Enhances: ubiquity
2143
2144=== modified file 'debian/copyright'
2145--- debian/copyright 2009-01-13 18:56:31 +0000
2146+++ debian/copyright 2011-10-06 10:04:28 +0000
2147@@ -28,10 +28,20 @@
2148 3. This notice may not be removed or altered from any source
2149 distribution.
2150
2151+License (bin/casper-set-selections):
2152+
2153+ The Debian installer preseeder is copyright 2004 by Joey Hess
2154+ <joeyh@debian.org> and others.
2155+
2156+ This program is free software; you can redistribute it and/or modify
2157+ it under the terms of the GNU General Public License as published by
2158+ the Free Software Foundation; either version 2 of the License, or
2159+ (at your option) any later version.
2160+
2161 License (everything else):
2162
2163 Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com>
2164- Copyright (C) 2005-2008 Canonical Ltd. <http://www.canonical.com/>
2165+ Copyright (C) 2005-2011 Canonical Ltd. <http://www.canonical.com/>
2166 Copyright (C) 2008 Dell Inc.
2167
2168 This program is free software; you can redistribute it and/or modify
2169
2170=== modified file 'debian/manpage/casper.7'
2171--- debian/manpage/casper.7 2009-06-02 13:57:02 +0000
2172+++ debian/manpage/casper.7 2011-10-06 10:04:28 +0000
2173@@ -51,6 +51,9 @@
2174 .B nopersistent
2175 disables the above mentioned "persistent" feature, useful if the bootloader (like syslinux) has been installed with persistent enabled.
2176 .TP
2177+.BI "persistent-path=" PATH
2178+Casper will look for persistency files in the root directory of a partition. With this parameter, the path can be configured so that you can have multiple directories on the same partition to store persistency files.
2179+.TP
2180 .B "showmounts"
2181 This parameter will make casper to show on "/" the ro filesystems (mostly compressed) on /casper. This is not enabled by default because could lead to problems by applications like "mono" which store binary paths on installation.
2182 .TP
2183@@ -66,9 +69,18 @@
2184 .BI "{preseed/file|file}=" FILE
2185 A path to a file present on the rootfs could be used to preseed debconf database.
2186 .TP
2187+.B preseed/allow-network=true
2188+Bring up the network while running
2189+.BR preseed/early_command .
2190+.TP
2191 .BI "package/question=" VALUE
2192 All debian installed packages could be preseeded from command-line that way, beware of blanks spaces, they will interfere with parsing, use a preseed file in this case.
2193 .TP
2194+.BI "uuid=" UUID
2195+Check that the discovered medium matches
2196+.I UUID
2197+rather than the default UUID embedded in the initramfs.
2198+.TP
2199 .BI ignore_uuid
2200 Do not check that any UUID embedded in the initramfs matches the discovered medium.
2201 .B casper
2202
2203=== added directory 'debian/source'
2204=== added file 'debian/source/format'
2205--- debian/source/format 1970-01-01 00:00:00 +0000
2206+++ debian/source/format 2011-10-06 10:04:28 +0000
2207@@ -0,0 +1,1 @@
2208+3.0 (native)
2209
2210=== modified file 'hooks/casper'
2211--- hooks/casper 2009-05-23 22:30:56 +0000
2212+++ hooks/casper 2011-10-06 10:04:28 +0000
2213@@ -20,6 +20,7 @@
2214
2215 manual_add_modules unionfs
2216 manual_add_modules aufs
2217+manual_add_modules overlayfs
2218
2219 # unionfs-fuse, if available
2220 if [ -x /usr/bin/unionfs-fuse ]; then
2221@@ -33,8 +34,10 @@
2222 mkdir -p ${DESTDIR}/lib/casper
2223 copy_exec /usr/share/casper/casper-reconfigure /bin
2224 copy_exec /usr/share/casper/casper-preseed /bin
2225+copy_exec /usr/share/casper/casper-set-selections /bin
2226
2227-mkdir -p ${DESTDIR}/lib/udev
2228+mkdir -p ${DESTDIR}/lib/udev/rules.d
2229+cp -p /lib/udev/rules.d/60-cdrom_id.rules ${DESTDIR}/lib/udev/rules.d/
2230 copy_exec /lib/udev/cdrom_id /lib/udev
2231 copy_exec /lib/udev/path_id /lib/udev
2232 copy_exec /usr/bin/eject /bin
2233@@ -55,6 +58,7 @@
2234 manual_add_modules vfat
2235 manual_add_modules ext3
2236 manual_add_modules ext4
2237+manual_add_modules btrfs
2238 # needed for vfat. :-/
2239 manual_add_modules nls_cp437
2240 manual_add_modules nls_utf8
2241
2242=== modified file 'scripts/casper'
2243--- scripts/casper 2009-10-06 12:07:52 +0000
2244+++ scripts/casper 2011-10-06 10:04:28 +0000
2245@@ -6,6 +6,7 @@
2246
2247 mountpoint=/cdrom
2248 LIVE_MEDIA_PATH=casper
2249+[ -f /conf/uuid.conf ] && UUID="$(cat /conf/uuid.conf)"
2250
2251 root_persistence="casper-rw"
2252 home_persistence="home-rw"
2253@@ -38,24 +39,32 @@
2254 export PERSISTENT="Yes" ;;
2255 nopersistent)
2256 export PERSISTENT="" ;;
2257+ persistent-path=*)
2258+ export PERSISTENT_PATH="${x#persistent-path=}" ;;
2259 union=*)
2260 export UNIONFS="${x#union=}";;
2261- ip*)
2262+ ip=*)
2263 STATICIP=${x#ip=}
2264 if [ "${STATICIP}" = "" ]; then
2265 STATICIP="frommedia"
2266 fi
2267 export STATICIP ;;
2268+ uuid=*)
2269+ UUID=${x#uuid=} ;;
2270 ignore_uuid)
2271- IGNORE_UUID="Yes" ;;
2272+ UUID="" ;;
2273 live-media-path=*)
2274 LIVE_MEDIA_PATH="${x#live-media-path=}"
2275 export LIVE_MEDIA_PATH
2276 echo "export LIVE_MEDIA_PATH=\"$LIVE_MEDIA_PATH\"" >> /etc/casper.conf ;;
2277+ toram)
2278+ export TORAM="Yes" ;;
2279+ todisk=*)
2280+ export TODISK="${x#todisk=}" ;;
2281 esac
2282 done
2283 if [ "${UNIONFS}" = "" ]; then
2284- export UNIONFS="aufs"
2285+ export UNIONFS="DEFAULT"
2286 fi
2287 }
2288
2289@@ -72,15 +81,14 @@
2290 }
2291
2292 matches_uuid() {
2293- if [ "$IGNORE_UUID" ] || [ ! -e /conf/uuid.conf ]; then
2294+ if [ -z "$UUID" ]; then
2295 return 0
2296 fi
2297 path="$1"
2298- uuid="$(cat /conf/uuid.conf)"
2299 for try_uuid_file in "$path/.disk/casper-uuid"*; do
2300 [ -e "$try_uuid_file" ] || continue
2301 try_uuid="$(cat "$try_uuid_file")"
2302- if [ "$uuid" = "$try_uuid" ]; then
2303+ if [ "$UUID" = "$try_uuid" ]; then
2304 return 0
2305 fi
2306 done
2307@@ -125,7 +133,7 @@
2308
2309 is_nice_device() {
2310 sysfs_path="${1#/sys}"
2311- if /lib/udev/path_id "${sysfs_path}" | grep -E -q "ID_PATH=(usb|pci-[^-]*-(ide|scsi|usb)|platform-orion-ehci|platform-mmc|platform-mxsdhci)"; then
2312+ if /lib/udev/path_id "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-[^-]*-(ide|sas|scsi|usb|virtio)|platform-sata_mv|platform-orion-ehci|platform-mmc|platform-mxsdhci)"; then
2313 return 0
2314 fi
2315 if echo ${sysfs_path} | grep -q "^/block/dm-"; then
2316@@ -143,7 +151,7 @@
2317
2318 if [ "${copytodev}" = "ram" ]; then
2319 # copying to ram:
2320- freespace=$( expr $(awk '/MemFree/{print $2}' /proc/meminfo) + $( cat /proc/meminfo | grep Cached | head -n 1 | awk '/Cached/{print $2}' - ) )
2321+ freespace=$(awk '/^MemFree:/{f=$2} /^Cached:/{c=$2} END{print f+c}' /proc/meminfo)
2322 mount_options="-o size=${size}k"
2323 free_string="memory"
2324 fstype="tmpfs"
2325@@ -169,7 +177,10 @@
2326 mkdir "${copyto}"
2327 echo "mount -t ${fstype} ${mount_options} ${dev} ${copyto}"
2328 mount -t "${fstype}" ${mount_options} "${dev}" "${copyto}"
2329- cp -a ${copyfrom}/* ${copyto} # "cp -a" from busybox also copies hidden files
2330+ cp -a ${copyfrom}/* ${copyto}
2331+ if [ -e ${copyfrom}/.disk ]; then
2332+ cp -a ${copyfrom}/.disk ${copyto}
2333+ fi
2334 umount ${copyfrom}
2335 mount -r -o move ${copyto} ${copyfrom}
2336 rmdir ${copyto}
2337@@ -184,7 +195,8 @@
2338 /sbin/udevadm trigger
2339 /sbin/udevadm settle
2340
2341- ipconfig ${DEVICE} /tmp/net-${DEVICE}.conf | tee /netboot.config
2342+ configure_networking
2343+ export DEVICE
2344
2345 if [ "${NFSROOT}" = "auto" ]; then
2346 NFSROOT=${ROOTSERVER}:${ROOTPATH}
2347@@ -255,7 +267,7 @@
2348 todev=$(cat /proc/mounts | grep -s " $(base_path ${todir}) " | awk '{print $1}' )
2349 freespace=$(df -k | grep -s ${todev} | awk '{print $4}')
2350 else
2351- freespace=$( expr $(awk '/MemFree/{print $2}' /proc/meminfo) + $( cat /proc/meminfo | grep Cached | head -n 1 | awk '/Cached/{print $2}' - ))
2352+ freespace=$(awk '/^MemFree:/{f=$2} /^Cached:/{c=$2} END{print f+c}' /proc/meminfo)
2353 fi
2354
2355 tomount="/mnt/tmpsnap"
2356@@ -355,15 +367,23 @@
2357 image_directory="$1"
2358 rootmnt="$2"
2359
2360- case ${UNIONFS} in
2361- aufs|unionfs)
2362- modprobe "${MP_QUIET}" -b ${UNIONFS} || true
2363- if ! cut -f2 /proc/filesystems | grep -q "^${UNIONFS}\$" && \
2364- [ -x /bin/unionfs-fuse ]; then
2365- UNIONFS="unionfs-fuse"
2366- fi
2367- ;;
2368- esac
2369+ if [ "${UNIONFS}" = 'DEFAULT' ]; then
2370+ for union in 'overlayfs' 'aufs' 'unionfs'
2371+ do
2372+ modprobe "${MP_QUIET}" -b ${union} || true
2373+ if cut -f2 /proc/filesystems | grep -q "^${union}\$"; then
2374+ UNIONFS="${union}"
2375+ break
2376+ fi
2377+ done
2378+ fi
2379+ if [ "${UNIONFS}" = 'DEFAULT' -a -x /bin/unionfs-fuse ]; then
2380+ UNIONFS="unionfs-fuse"
2381+ fi
2382+ # If all else fails fall back to aufs.
2383+ if [ "${UNIONFS}" = 'DEFAULT' ]; then
2384+ UNIONFS='aufs'
2385+ fi
2386
2387 # run-init can't deal with images in a subdir, but we're going to
2388 # move all of these away before it runs anyway. No, we're not,
2389@@ -375,9 +395,7 @@
2390 # Let's just mount the read-only file systems first
2391 rofsstring=""
2392 rofslist=""
2393- if [ "${NETBOOT}" = "nfs" ] ; then
2394- roopt="nfsro" # work around a bug in nfs-unionfs locking
2395- elif [ "${UNIONFS}" = "aufs" ]; then
2396+ if [ "${UNIONFS}" = "aufs" ]; then
2397 roopt="rr"
2398 elif [ "${UNIONFS}" = "unionfs-fuse" ]; then
2399 roopt="RO"
2400@@ -431,9 +449,29 @@
2401 mkdir -p /dev/.initramfs/varrun
2402 pidof unionfs-fuse >> /dev/.initramfs/varrun/sendsigs.omit || true
2403 ;;
2404- *)
2405+ aufs|unionfs)
2406 mount -t ${UNIONFS} -o noatime,dirs=/cow=rw:$rofsstring ${UNIONFS} "$rootmnt" || panic "${UNIONFS} mount failed"
2407 ;;
2408+ overlayfs)
2409+ # Mount the layers pairwise from the bottom onto rootmnt,
2410+ # for the second and later layers rootmnt forms the lower layer.
2411+ mounts=""
2412+ for mount in /cow $rofslist
2413+ do
2414+ mounts="$mount $mounts"
2415+ done
2416+ lower=""
2417+ for mount in $mounts
2418+ do
2419+ if [ "$lower" = "" ]; then
2420+ lower="$mount"
2421+ continue
2422+ fi
2423+ mount -t overlayfs -o "upperdir=$mount,lowerdir=$lower" \
2424+ "$mount" "$rootmnt"
2425+ lower="$rootmnt"
2426+ done
2427+ ;;
2428 esac
2429
2430 # Adding other custom mounts
2431@@ -545,7 +583,7 @@
2432 fi
2433 fi
2434 # or do the scan of block devices
2435- for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "/(loop|ram|fd)"); do
2436+ for sysblock in $(echo /sys/block/* | tr ' ' '\n' | egrep -v "/(loop|ram|fd)"); do
2437 devname=$(sys2dev "${sysblock}")
2438 [ -e "$devname" ] || continue
2439 fstype=$(get_fstype "${devname}")
2440@@ -562,7 +600,8 @@
2441 elif [ "${fstype}" = "squashfs" -o \
2442 "${fstype}" = "ext4" -o \
2443 "${fstype}" = "ext3" -o \
2444- "${fstype}" = "ext2" ]; then
2445+ "${fstype}" = "ext2" -o \
2446+ "${fstype}" = "btrfs" ]; then
2447 # This is an ugly hack situation, the block device has
2448 # an image directly on it. It's hopefully
2449 # casper, so take it and run with it.
2450@@ -651,6 +690,34 @@
2451 mount -n -o bind /dev "${rootmnt}/dev"
2452 fi
2453
2454+ # Open up two fifo's fd's for debconf-communicate to use. Speeds up
2455+ # the Casper process considerably.
2456+ log_begin_msg "Creating debconf-communicate fifo mechanism"
2457+ mkfifo /tmp/debconf-in.fifo
2458+ mkfifo /tmp/debconf-out.fifo
2459+
2460+ # Make the template database read-only, so that passthrough debconf
2461+ # instances can write to it directly; otherwise templates are only
2462+ # passed through when necessary. Use temporary config databases as
2463+ # well; we'll copy their contents back at the end.
2464+ DEBCONF_TMPDIR="$(chroot /root mktemp -dt debconf.XXXXXX)"
2465+ cp -a /root/var/cache/debconf/config.dat "/root$DEBCONF_TMPDIR/"
2466+ cp -a /root/var/cache/debconf/passwords.dat "/root$DEBCONF_TMPDIR/"
2467+ sed "s,^Filename: /var/cache/debconf/\(config\|passwords\).dat$,Filename: $DEBCONF_TMPDIR/\1.dat,; /^Name: templatedb/a\
2468+Readonly: true" /root/etc/debconf.conf >"/root$DEBCONF_TMPDIR/debconf.conf"
2469+
2470+ DEBCONF_SYSTEMRC="$DEBCONF_TMPDIR/debconf.conf" chroot /root debconf-communicate -fnoninteractive casper > /tmp/debconf-out.fifo < /tmp/debconf-in.fifo &
2471+
2472+ if [ ! -p /tmp/debconf-in.fifo ] || [ ! -p /tmp/debconf-out.fifo ]; then
2473+ log_warning_msg "failed to setup debconf-communicate channel"
2474+ fi
2475+ log_end_msg
2476+
2477+ # Order matters!
2478+ # These file descriptors must stay open until we're finished with
2479+ # debconf-communicate.
2480+ exec 4</tmp/debconf-out.fifo 3>/tmp/debconf-in.fifo
2481+
2482 maybe_break casper-bottom
2483 [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/casper-bottom"
2484
2485@@ -661,6 +728,20 @@
2486 umount "${rootmnt}/dev"
2487 fi
2488
2489+ # Close the fd's associated with debconf-communicate.
2490+ exec 3>&- 4<&-
2491+ rm -f /tmp/debconf-in.fifo
2492+ rm -f /tmp/debconf-out.fifo
2493+
2494+ # Copy config database changes back to the master files.
2495+ chroot /root debconf-copydb tmpdb config \
2496+ --config=Name:tmpdb --config=Driver:File \
2497+ --config="Filename:$DEBCONF_TMPDIR/config.dat"
2498+ chroot /root debconf-copydb tmpdb passwords \
2499+ --config=Name:tmpdb --config=Driver:File \
2500+ --config="Filename:$DEBCONF_TMPDIR/passwords.dat"
2501+ rm -rf "$DEBCONF_TMPDIR"
2502+
2503 exec 1>&6 6>&-
2504 exec 2>&7 7>&-
2505 kill "$tailpid"
2506
2507=== modified file 'scripts/casper-bottom/05mountpoints'
2508--- scripts/casper-bottom/05mountpoints 2010-01-05 16:54:40 +0000
2509+++ scripts/casper-bottom/05mountpoints 2011-10-06 10:04:28 +0000
2510@@ -24,4 +24,8 @@
2511 mkdir -p /root/cdrom
2512 mount -n -o move /cdrom /root/cdrom
2513
2514+# temporary hack for LP#727783
2515+mkdir -p /root/media
2516+ln -s /cdrom /root/media/cdrom
2517+
2518 log_end_msg
2519
2520=== added file 'scripts/casper-bottom/07remove_oem_config'
2521--- scripts/casper-bottom/07remove_oem_config 1970-01-01 00:00:00 +0000
2522+++ scripts/casper-bottom/07remove_oem_config 2011-10-06 10:04:28 +0000
2523@@ -0,0 +1,32 @@
2524+#!/bin/sh
2525+
2526+PREREQ=""
2527+DESCRIPTION="Removing oem-config if installed..."
2528+
2529+prereqs()
2530+{
2531+ echo "$PREREQ"
2532+}
2533+
2534+case $1 in
2535+# get pre-requisites
2536+prereqs)
2537+ prereqs
2538+ exit 0
2539+ ;;
2540+esac
2541+
2542+. /scripts/casper-functions
2543+
2544+# Only do this on ARM
2545+if ! uname -m | grep -q arm; then exit 0; fi
2546+
2547+log_begin_msg "$DESCRIPTION"
2548+
2549+# if oem-config is installed, we need to remove it to remove the desktop
2550+# file diversion, and to remove the OEM icons from showing up before we
2551+# install the image.
2552+
2553+chroot /root apt-get -y --purge remove oem-config </dev/null || true
2554+
2555+log_end_msg
2556
2557=== modified file 'scripts/casper-bottom/10adduser'
2558--- scripts/casper-bottom/10adduser 2010-01-05 16:54:40 +0000
2559+++ scripts/casper-bottom/10adduser 2011-10-06 10:04:28 +0000
2560@@ -17,28 +17,25 @@
2561 esac
2562
2563 . /scripts/casper-functions
2564+load_confmodule
2565
2566 log_begin_msg "$DESCRIPTION"
2567
2568 # U6aMy0wojraho is just a blank password
2569-chroot /root debconf-communicate -fnoninteractive casper > /dev/null <<EOF
2570-set passwd/root-password-crypted *
2571-set passwd/user-password-crypted U6aMy0wojraho
2572-set passwd/user-fullname $USERFULLNAME
2573-set passwd/username $USERNAME
2574-set passwd/user-uid 999
2575-EOF
2576+db_set passwd/root-password-crypted '*'
2577+db_set passwd/user-password-crypted U6aMy0wojraho
2578+db_set passwd/user-fullname "$USERFULLNAME"
2579+db_set passwd/username "$USERNAME"
2580+db_set passwd/user-uid 999
2581
2582 chroot /root /usr/lib/user-setup/user-setup-apply > /dev/null
2583
2584 # Clear out debconf database again to avoid confusing ubiquity later.
2585-chroot /root debconf-communicate -fnoninteractive casper > /dev/null <<EOF
2586-set passwd/root-password-crypted
2587-set passwd/user-password-crypted
2588-set passwd/user-fullname
2589-set passwd/username
2590-set passwd/user-uid
2591-EOF
2592+db_set passwd/root-password-crypted
2593+db_set passwd/user-password-crypted
2594+db_set passwd/user-fullname
2595+db_set passwd/username
2596+db_set passwd/user-uid
2597
2598 if [ -f /root/etc/sudoers ]; then
2599 if [ "${BUILD_SYSTEM}" = "Ubuntu" ]; then
2600@@ -55,7 +52,11 @@
2601 # XXX - awful hack to stop xscreensaver locking the screen (#7150)
2602 echo 'RUNNING_UNDER_GDM="yes"' >> /root/etc/environment
2603
2604-RELEASE="$(cut -d' ' -f1-2 /root/cdrom/.disk/info 2>/dev/null)" || RELEASE=""
2605+LTS="$(cut -d' ' -f3 /root/cdrom/.disk/info 2>/dev/null)" || LTS=
2606+RELEASE="$(cut -d' ' -f1-2 /root/cdrom/.disk/info 2>/dev/null)" || RELEASE=
2607+if [ "$LTS" = "LTS" ] && [ -n "$RELEASE" ]; then
2608+ RELEASE="$RELEASE LTS"
2609+fi
2610 for file in /usr/share/applications/ubiquity-gtkui.desktop /usr/share/applications/kde4/ubiquity-kdeui.desktop; do
2611 if [ -f "/root/$file" ]; then
2612 sed -i "s/RELEASE/$RELEASE/" "/root$file"
2613@@ -97,15 +98,4 @@
2614 fi
2615 fi
2616
2617-#Mythbuntu
2618-if [ -d "/root/usr/share/mythbuntu" ]; then
2619- if [ -f "/root/usr/share/applications/mythbuntu-live-frontend.desktop" ]; then
2620- chroot /root install -d -o $USERNAME -g $USERNAME /home/$USERNAME/Desktop
2621- chroot /root install -D -o $USERNAME -g $USERNAME /usr/share/applications/mythbuntu-live-frontend.desktop /home/$USERNAME/Desktop/mythbuntu-live-frontend.desktop
2622- fi
2623- if [ -f "/root/etc/xdg/mythbuntu/xfce4/mcs_settings/desktop.xml" ]; then
2624- sed -i "s/<\/mcs/\t<option\ name=\"showremovable\"\ type=\"int\"\ value=\"0\"\/>\n<\/mcs/" /root/etc/xdg/mythbuntu/xfce4/mcs_settings/desktop.xml
2625- fi
2626-fi
2627-
2628 log_end_msg
2629
2630=== modified file 'scripts/casper-bottom/15autologin'
2631--- scripts/casper-bottom/15autologin 2010-01-05 16:54:40 +0000
2632+++ scripts/casper-bottom/15autologin 2011-10-06 10:04:28 +0000
2633@@ -20,16 +20,24 @@
2634
2635 log_begin_msg "$DESCRIPTION"
2636
2637-if [ -d /root/etc/gdm ] && [ ! -e /root/etc/gdm/custom.conf ]; then
2638+if [ -d /root/etc/gdm ]; then
2639 # Configure GDM autologin
2640- cat > /root/etc/gdm/custom.conf <<EOF
2641-[daemon]
2642-AutomaticLoginEnable=true
2643-AutomaticLogin=$USERNAME
2644-TimedLoginEnable=true
2645-TimedLogin=$USERNAME
2646-TimedLoginDelay=10
2647-EOF
2648+ GDMCustomFile=/root/etc/gdm/custom.conf
2649+ AutologinParameters="AutomaticLoginEnable=true\n\
2650+AutomaticLogin=$USERNAME\n\
2651+TimedLoginEnable=true\n\
2652+TimedLogin=$USERNAME\n\
2653+TimedLoginDelay=10"
2654+
2655+ # Prevent from updating if parameters already present (persistent usb key)
2656+ if ! `grep -qs 'AutomaticLoginEnable' $GDMCustomFile` ; then
2657+ if ! `grep -qs '\[daemon\]' $GDMCustomFile` ; then
2658+ echo '[daemon]' >> $GDMCustomFile
2659+ fi
2660+ sed -i "s/\[daemon\]/\[daemon\]\n$AutologinParameters/" $GDMCustomFile
2661+ chroot /root sudo -u "$USERNAME" gconftool-2 -s -t bool \
2662+ /apps/indicator-session/suppress_logout_menuitem true
2663+ fi
2664 fi
2665
2666 if [ -f /root/etc/kde4/kdm/kdmrc ]; then
2667@@ -41,4 +49,40 @@
2668 /root/etc/kde4/kdm/kdmrc
2669 fi
2670
2671+if [ -f /root/etc/lxdm/lxdm.conf ]; then
2672+ # Configure LXDM autologin with LXDE session
2673+ sed -i -r \
2674+ -e "s/^# autologin=dgod/autologin=$USERNAME/" \
2675+ -e "s/^# session/session/" \
2676+ -e "s/startlxde/startlubuntu/" \
2677+ /root/etc/lxdm/lxdm.conf
2678+fi
2679+
2680+if [ -f /root/etc/xdg/lubuntu/lxdm/lxdm.conf ]; then
2681+ # Configure LXDM autologin with Lubuntu session
2682+ sed -i -r \
2683+ -e "s/^# autologin=dgod/autologin=$USERNAME/" \
2684+ -e "s/^# session/session/" \
2685+ -e "s/startlxde/startlubuntu/" \
2686+ /root/etc/xdg/lubuntu/lxdm/lxdm.conf
2687+fi
2688+
2689+if [ -d /root/etc/lightdm ]; then
2690+ # Configure LightDM autologin
2691+ LightDMCustomFile=/root/etc/lightdm/lightdm.conf
2692+ AutologinParameters="allow-guest=false\n\
2693+autologin-guest=false\n\
2694+autologin-user=$USERNAME\n\
2695+autologin-user-timeout=0\n\
2696+autologin-session=lightdm-autologin"
2697+
2698+ # Prevent from updating if parameters already present (persistent usb key)
2699+ if ! `grep -qs '^autologin-user' $LightDMCustomFile` ; then
2700+ if ! `grep -qs '\[SeatDefaults\]' $LightDMCustomFile` ; then
2701+ echo '[SeatDefaults]' >> $LightDMCustomFile
2702+ fi
2703+ sed -i "s/\[SeatDefaults\]/\[SeatDefaults\]\n$AutologinParameters/" $LightDMCustomFile
2704+ fi
2705+fi
2706+
2707 log_end_msg
2708
2709=== modified file 'scripts/casper-bottom/19keyboard'
2710--- scripts/casper-bottom/19keyboard 2010-01-05 16:54:40 +0000
2711+++ scripts/casper-bottom/19keyboard 2011-10-06 10:04:28 +0000
2712@@ -48,6 +48,24 @@
2713 console-setup/modelcode\?=*)
2714 csmodel=${x#console-setup/modelcode\?=}
2715 ;;
2716+ keyboard-configuration/layoutcode=*)
2717+ cslayout=${x#keyboard-configuration/layoutcode=}
2718+ ;;
2719+ keyboard-configuration/layoutcode\?=*)
2720+ cslayout=${x#keyboard-configuration/layoutcode\?=}
2721+ ;;
2722+ keyboard-configuration/variantcode=*)
2723+ csvariant=${x#keyboard-configuration/variantcode=}
2724+ ;;
2725+ keyboard-configuration/variantcode\?=*)
2726+ csvariant=${x#keyboard-configuration/variantcode\?=}
2727+ ;;
2728+ keyboard-configuration/modelcode=*)
2729+ csmodel=${x#keyboard-configuration/modelcode=}
2730+ ;;
2731+ keyboard-configuration/modelcode\?=*)
2732+ csmodel=${x#keyboard-configuration/modelcode\?=}
2733+ ;;
2734 esac
2735 done
2736
2737@@ -151,35 +169,45 @@
2738 fi
2739 }
2740
2741-if [ -x /root/bin/setupcon ] && [ -f /root/etc/default/console-setup ]; then
2742+PREFIX=
2743+CONFIGFILE=
2744+if [ -f /root/etc/default/keyboard ]; then
2745+ PREFIX=keyboard-configuration
2746+ CONFIGFILE=/etc/default/keyboard
2747+elif [ -f /root/etc/default/console-setup ]; then
2748+ PREFIX=console-setup
2749+ CONFIGFILE=/etc/default/console-setup
2750+fi
2751+if [ -x /root/bin/setupcon ] && [ "$PREFIX" ] && [ "$CONFIGFILE" ]; then
2752 if [ "$cslayout" ]; then
2753 csoptions=
2754 adjust_console_setup
2755
2756 chroot /root sed -i "s/^XKBLAYOUT=.*/XKBLAYOUT=\"$cslayout\"/" \
2757- /etc/default/console-setup
2758+ "$CONFIGFILE"
2759 if [ "$csvariant" ]; then
2760 chroot /root sed -i "s/^XKBVARIANT=.*/XKBVARIANT=\"$csvariant\"/" \
2761- /etc/default/console-setup
2762+ "$CONFIGFILE"
2763 else
2764- casper-preseed /root console-setup/variantcode '' false
2765+ casper-preseed /root "$PREFIX/variantcode" '' false
2766 fi
2767 if [ "$csmodel" ]; then
2768 chroot /root sed -i "s/^XKBMODEL=.*/XKBMODEL=\"$csmodel\"/" \
2769- /etc/default/console-setup
2770+ "$CONFIGFILE"
2771 else
2772- casper-preseed /root console-setup/modelcode '' false
2773+ casper-preseed /root "$PREFIX/modelcode" '' false
2774 fi
2775 if [ "$csoptions" ]; then
2776 chroot /root sed -i "s/^XKBOPTIONS=.*/XKBOPTIONS=\"$csoptions\"/" \
2777- /etc/default/console-setup
2778+ "$CONFIGFILE"
2779 fi
2780 else
2781- casper-preseed /root console-setup/layoutcode '' false
2782- casper-preseed /root console-setup/variantcode '' false
2783- casper-preseed /root console-setup/modelcode '' false
2784+ casper-preseed /root "$PREFIX/layoutcode" '' false
2785+ casper-preseed /root "$PREFIX/variantcode" '' false
2786+ casper-preseed /root "$PREFIX/modelcode" '' false
2787 fi
2788- casper-preseed /root console-setup/optionscode '' false
2789+ casper-preseed /root "$PREFIX/optionscode" '' false
2790+ # prefix remains console-setup even with keyboard-configuration
2791 casper-preseed /root console-setup/codesetcode '' false
2792
2793 if [ -f /root/etc/init.d/usplash ]; then
2794
2795=== modified file 'scripts/casper-bottom/22gnome_panel_data'
2796--- scripts/casper-bottom/22gnome_panel_data 2010-01-05 16:54:40 +0000
2797+++ scripts/casper-bottom/22gnome_panel_data 2011-10-06 10:04:28 +0000
2798@@ -20,12 +20,6 @@
2799
2800 log_begin_msg "$DESCRIPTION"
2801
2802-if [ -x /root/usr/sbin/laptop-detect ]; then
2803- if chroot /root laptop-detect; then
2804- casper-reconfigure /root gnome-panel-data
2805- fi
2806-fi
2807-
2808 panel_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-panel-data 2>/dev/null) || panel_version=""
2809 if [ -n "$panel_version" ]; then
2810 chroot /root sudo -u "$USERNAME" gconftool-2 -s -t bool /apps/panel/global/disable_lock_screen true
2811
2812=== modified file 'scripts/casper-bottom/22screensaver'
2813--- scripts/casper-bottom/22screensaver 2010-01-05 16:54:40 +0000
2814+++ scripts/casper-bottom/22screensaver 2011-10-06 10:04:28 +0000
2815@@ -22,9 +22,7 @@
2816
2817 gnome_screensaver_version=$(chroot /root dpkg-query -W --showformat='${Version}' gnome-screensaver 2>/dev/null) || gnome_screensaver_version=""
2818 if [ -n "$gnome_screensaver_version" ]; then
2819- # Support legacy gconf value
2820- chroot /root sudo -u "$USERNAME" gconftool-2 -t bool -s /apps/gnome-screensaver/lock false
2821- chroot /root sudo -u "$USERNAME" gconftool-2 -t bool -s /apps/gnome-screensaver/lock_enabled false
2822+ chroot /root sudo -u "$USERNAME" gsettings set org.gnome.desktop.screensaver lock-enabled false
2823 fi
2824
2825 if [ -d /root/usr/share/kubuntu-default-settings/kde-profile/default/share/config ]; then
2826
2827=== modified file 'scripts/casper-bottom/22sslcert'
2828--- scripts/casper-bottom/22sslcert 2010-01-05 16:54:40 +0000
2829+++ scripts/casper-bottom/22sslcert 2011-10-06 10:04:28 +0000
2830@@ -17,6 +17,7 @@
2831 esac
2832
2833 . /scripts/casper-functions
2834+load_confmodule
2835
2836 log_begin_msg "$DESCRIPTION"
2837
2838
2839=== modified file 'scripts/casper-bottom/23networking'
2840--- scripts/casper-bottom/23networking 2010-01-05 16:54:40 +0000
2841+++ scripts/casper-bottom/23networking 2011-10-06 10:04:28 +0000
2842@@ -73,27 +73,32 @@
2843 EOF
2844 done
2845 fi
2846- if [ ! -f /root/etc/resolv.conf -a -f /netboot.config ] ; then
2847- # create a resolv.conf if it is not present
2848- cp /netboot.config /root/var/log/netboot.config
2849- rc_search=$(cat netboot.config | awk '/domain/{print $3}')
2850- rc_server0=$(cat netboot.config | awk '/dns0/{print $5}')
2851- rc_server1=$(cat netboot.config | awk '/dns0/{print $8}')
2852- rc_server0="nameserver ${rc_server0}"
2853- if [ "${rc_server1}" = "0.0.0.0" ]; then
2854- rc_server1=""
2855- else
2856- rc_server1="nameserver ${rc_server1}"
2857- fi
2858- cat > /root/etc/resolv.conf <<EOF
2859+ if [ ! -f /root/etc/resolv.conf ] || [ -z "$(cat /root/etc/resolv.conf)" ]; then
2860+ if [ -n "${DEVICE}" ] && [ -e /tmp/net-"${DEVICE}".conf ]; then
2861+ # create a resolv.conf if it is not present
2862+ cp /tmp/net-"${DEVICE}".conf /root/var/log/netboot.config
2863+ #ipconfig quotes DNSDOMAIN, quotes need to be removed for a correct resolv.conf
2864+ rc_search="$(sed -n 's/"//g;s/^DNSDOMAIN=//p' /tmp/net-"${DEVICE}".conf)"
2865+ #search might contain multiple entries but domain should only have one.
2866+ rc_domain="$(sed -n -e 's/"//g;s/^DNSDOMAIN=\([^ ]\+\) *.*/\1/p' /tmp/net-"${DEVICE}".conf)"
2867+ rc_server0="$(sed -n 's/^IPV4DNS0=//p' /tmp/net-"${DEVICE}".conf)"
2868+ rc_server1="$(sed -n 's/^IPV4DNS1=//p' /tmp/net-"${DEVICE}".conf)"
2869+ rc_server0="nameserver ${rc_server0}"
2870+ if [ "${rc_server1}" = "0.0.0.0" ]; then
2871+ rc_server1=""
2872+ else
2873+ rc_server1="nameserver ${rc_server1}"
2874+ fi
2875+ cat > /root/etc/resolv.conf <<EOF
2876 # /etc/resolv.conf
2877 # Autogenerated by casper
2878 search ${rc_search}
2879-domain ${rc_search}
2880+domain ${rc_domain}
2881 ${rc_server0}
2882 ${rc_server1}
2883 EOF
2884- cat /root/etc/resolv.conf >> /root/var/log/netboot.config
2885+ cat /root/etc/resolv.conf >> /root/var/log/netboot.config
2886+ fi
2887 fi
2888 fi
2889
2890
2891=== modified file 'scripts/casper-bottom/24preseed'
2892--- scripts/casper-bottom/24preseed 2010-01-20 23:33:29 +0000
2893+++ scripts/casper-bottom/24preseed 2011-10-06 10:04:28 +0000
2894@@ -17,13 +17,40 @@
2895 esac
2896
2897 . /scripts/casper-functions
2898+load_confmodule
2899
2900 log_begin_msg "$DESCRIPTION"
2901
2902 if [ -e /preseed.cfg ]; then
2903- chroot /root debconf-set-selections < /preseed.cfg
2904+ casper-set-selections /preseed.cfg
2905 fi
2906
2907+network_started=
2908+
2909+start_network () {
2910+ [ -z "$network_started" ] || return
2911+ [ -z "$NETBOOT" ] || return
2912+
2913+ mount -n -o bind /sys /root/sys
2914+ mount -n -o bind /proc /root/proc
2915+ mount -n -o bind /dev /root/dev
2916+ mkdir -p /root/var/run/network
2917+ # Close inherited fd's to prevent debconf-communicate from
2918+ # continuing to run post-casper.
2919+ chroot /root dhclient eth0 3>&- 4<&-
2920+
2921+ network_started=1
2922+}
2923+
2924+stop_network () {
2925+ [ "$network_started" ] || return
2926+
2927+ chroot /root ifconfig eth0 down
2928+ umount /root/sys
2929+ umount /root/proc
2930+ umount /root/dev
2931+}
2932+
2933 locations=
2934 for x in $(cat /proc/cmdline); do
2935 case $x in
2936@@ -35,16 +62,8 @@
2937 ;;
2938 url=*)
2939 url_location="${x#url=}"
2940- mount -n -o bind /sys /root/sys
2941- mount -n -o bind /proc /root/proc
2942- mount -n -o bind /dev /root/dev
2943- mkdir -p /root/var/run/network
2944- [ "$NETBOOT" ] || chroot /root dhclient eth0
2945+ start_network
2946 chroot /root wget -P /tmp "$url_location"
2947- [ "$NETBOOT" ] || chroot /root ifconfig eth0 down
2948- umount /root/sys
2949- umount /root/proc
2950- umount /root/dev
2951 locations="/tmp/$(basename "$url_location") $locations"
2952 ;;
2953 */*\?=*)
2954@@ -66,16 +85,22 @@
2955
2956 if [ "$locations" ]; then
2957 for item in $locations; do
2958- chroot /root debconf-set-selections < "/root$item"
2959+ casper-set-selections "/root$item"
2960 done
2961 fi
2962
2963-reply="$(echo "GET preseed/early_command" | chroot /root debconf-communicate -fnoninteractive casper)"
2964-if [ "${reply#0 }" != "$reply" ]; then
2965- reply="${reply#0 }"
2966- sh -c "$reply"
2967+if db_get preseed/early_command && [ "$RET" ]; then
2968+ EARLY="$RET"
2969+ if db_get preseed/allow-network && [ "$RET" = true ]; then
2970+ start_network
2971+ fi
2972+ DEBIAN_HAS_FRONTEND= DEBCONF_REDIR= \
2973+ DEBIAN_FRONTEND=noninteractive \
2974+ sh -c "$EARLY"
2975 fi
2976
2977+stop_network
2978+
2979 # Clear out debconf database backup files to save memory.
2980 rm -f /root/var/cache/debconf/*.dat-old
2981
2982
2983=== modified file 'scripts/casper-bottom/25configure_init'
2984--- scripts/casper-bottom/25configure_init 2010-01-05 16:54:40 +0000
2985+++ scripts/casper-bottom/25configure_init 2011-10-06 10:04:28 +0000
2986@@ -54,7 +54,7 @@
2987 rm -f /root/etc/rc?.d/[SK]??postfix
2988
2989 # Avoid clobbering the user's clock
2990-rm -f /root/etc/rc?.d/K??hwclock.sh
2991+rm -f /root/etc/rc?.d/K??hwclock.sh /root/etc/init/hwclock-save.conf
2992
2993 # Disable readahead since it doesn't play well with squashfs + unionfs
2994 # use chmod instead of mv to not trigger unionfs bugs.
2995@@ -65,7 +65,7 @@
2996 # Disable ureadahead too since we don't ship a pack file for it anyway, so
2997 # all we'll end up doing is profiling the live CD boot. ureadahead also
2998 # breaks partman occasionally by reading from its synchronisation FIFOs.
2999-rm -f /root/etc/init/ureadahead.conf
3000+rm -f /root/etc/init/ureadahead*.conf
3001
3002 log_end_msg
3003
3004
3005=== added file 'scripts/casper-bottom/26disable_user_menu'
3006--- scripts/casper-bottom/26disable_user_menu 1970-01-01 00:00:00 +0000
3007+++ scripts/casper-bottom/26disable_user_menu 2011-10-06 10:04:28 +0000
3008@@ -0,0 +1,28 @@
3009+#!/bin/sh
3010+
3011+PREREQ=""
3012+DESCRIPTION="Disabling user menu..."
3013+
3014+prereqs()
3015+{
3016+ echo "$PREREQ"
3017+}
3018+
3019+case $1 in
3020+# get pre-requisites
3021+prereqs)
3022+ prereqs
3023+ exit 0
3024+ ;;
3025+esac
3026+
3027+. /scripts/casper-functions
3028+
3029+log_begin_msg "$DESCRIPTION"
3030+
3031+indicator_session_version=$(chroot /root dpkg-query -W --showformat='${Version}' indicator-session 2>/dev/null) || indicator_session_version=""
3032+if [ -n "$indicator_session_version=" ]; then
3033+ chroot /root sudo -u "$USERNAME" gsettings set com.canonical.indicator.session user-show-menu false
3034+fi
3035+
3036+log_end_msg
3037
3038=== modified file 'scripts/casper-bottom/30accessibility'
3039--- scripts/casper-bottom/30accessibility 2010-01-05 16:54:40 +0000
3040+++ scripts/casper-bottom/30accessibility 2011-10-06 10:04:28 +0000
3041@@ -1,172 +1,52 @@
3042 #!/bin/sh
3043-# If you change this, please also change the copy in ubiquity-hooks/30accessibility.
3044+# If you are looking to change accessibility profile settings, plesae look in
3045+# bin/casper-a11y-enable.
3046
3047 PREREQ=""
3048 DESCRIPTION="Configuring accessibility options..."
3049
3050 prereqs()
3051 {
3052- echo "$PREREQ"
3053+ echo "$PREREQ"
3054 }
3055
3056 case $1 in
3057 # get pre-requisites
3058-prereqs)
3059- prereqs
3060- exit 0
3061- ;;
3062+ prereqs)
3063+ prereqs
3064+ exit 0
3065+ ;;
3066 esac
3067
3068 . /scripts/casper-functions
3069
3070 log_begin_msg "$DESCRIPTION"
3071
3072-gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf2 2>/dev/null) || gconf_version=""
3073-
3074-gct() {
3075- if [ "$gconf_version" ]; then
3076- chroot /root sudo -u "$USERNAME" gconftool-2 "$@"
3077- fi
3078-}
3079-
3080-kderc_addtoprefixes() {
3081- if [ -e "/root/etc/kde4rc" ]; then
3082- sed -i "s|\\(prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/\\)|\\1,$1|" /root/etc/kde4rc
3083- fi
3084-}
3085-
3086-# Code to remove an applet from the default panel setup
3087-# This is rather hacky, but I can't think of a one or two line regular
3088-# expression to do this any more efficiently. Patches welcome.
3089-# In addition, setting these via gconf also doesn't work for some reason.
3090-remove_applet()
3091-{
3092- local line_no prior_line next_line
3093-
3094- line_no=$(grep -n "<string>$1</string>" /root/usr/share/gconf/defaults/05_panel-default-setup.entries | cut -f 1 -d :)
3095- [ "$line_no" ] || return
3096- prior_line=$((line_no-1))
3097- next_line=$((line_no+1))
3098- sed -i -n "${prior_line},${next_line}!p" /root/usr/share/gconf/defaults/05_panel-default-setup.entries
3099- chroot /root update-gconf-defaults
3100-}
3101-
3102 for x in $(cat /proc/cmdline); do
3103- case $x in
3104- # Lesser Visual Impairment
3105- access=v1)
3106- gct -s -t string /desktop/gnome/interface/gtk_theme HighContrastLargePrint
3107- gct -s -t string /desktop/gnome/interface/icon_theme HighContrast
3108- gct -s -t string /desktop/gnome/interface/monospace_font_name "monospace 18"
3109- gct -s -t string /desktop/gnome/interface/font_name "sans 18"
3110- gct -s -t string /apps/metacity/general/theme Atlanta
3111- gct -s -t string /desktop/gnome/background/picture_filename ""
3112- gct -s -t string /desktop/gnome/background/picture_options none
3113- gct -s -t string /desktop/gnome/background/primary_color \#666666
3114- gct -s -t string /desktop/gnome/background/secondary_color \#7F7F7F
3115- gct -s -t string /desktop/gnome/background/color_shading_type solid
3116- gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
3117- gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
3118-
3119- kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/
3120- if [ -d /root/usr/share/xubuntu-default-settings/accessibility ]; then
3121- cp -a /root/usr/share/xubuntu-default-settings/accessibility/* /root/etc/xdg/
3122- fi
3123- ;;
3124- # Moderate Visual Impairment
3125- access=v2)
3126- gct -s -t bool /desktop/gnome/interface/accessibility true
3127- gct -s -t bool /desktop/gnome/applications/at/visual/startup true
3128- gct -s -t string /desktop/gnome/applications/at/visual/exec orca
3129- if [ -x /root/usr/bin/orca ]; then
3130- mkdir -p /root/home/$USERNAME/.orca
3131- echo "import orca.settings" >> /root/home/$USERNAME/.orca/user-settings.py
3132- echo "orca.settings.enableSpeech = False" >> /root/home/$USERNAME/.orca/user-settings.py
3133- echo "orca.settings.enableMagnifier = True" >> /root/home/$USERNAME/.orca/user-settings.py
3134- chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
3135- fi
3136- gct -s -t bool /apps/gksu/disable-grab true
3137- gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
3138- sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
3139- kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/,/usr/share/kubuntu-default-settings/kde-profile/moderate-visual-impairment/
3140- ;;
3141- # Blindness
3142- access=v3)
3143- gct -s -t bool /desktop/gnome/interface/accessibility true
3144- gct -s -t bool /apps/gksu/disable-grab true
3145- gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
3146- gct -s -t bool /desktop/gnome/applications/at/visual/startup true
3147- gct -s -t string /desktop/gnome/applications/at/visual/exec orca
3148- remove_applet fast_user_switch
3149- if [ -x /root/usr/bin/pulse-session ]; then
3150- mkdir -p /root/var/lib/pulseaudio
3151- touch /root/var/lib/pulseaudio/pulse_a11y_nostart
3152- chroot /root chown root.root /var/lib/pulseaudio/pulse_a11y_nostart
3153- mkdir -p /root/home/$USERNAME/.pulse
3154- echo "autospawn = no" > /root/home/$USERNAME/.pulse/client.conf
3155- chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.pulse
3156- fi
3157- sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
3158- if [ -x /root/usr/bin/orca ]; then
3159- mkdir -p /root/home/$USERNAME/.orca
3160- chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
3161- fi
3162- ;;
3163- # Braille
3164- braille=ask)
3165- gct -s -t bool /desktop/gnome/interface/accessibility true
3166- gct -s -t bool /desktop/gnome/applications/at/visual/startup true
3167- gct -s -t string /desktop/gnome/applications/at/visual/exec orca
3168- if [ -x /root/usr/bin/orca ]; then
3169- mkdir -p /root/home/$USERNAME/.orca
3170- echo "import orca.settings" >> /root/home/$USERNAME/.orca/user-settings.py
3171- echo "orca.settings.enableSpeech = False" >> /root/home/$USERNAME/.orca/user-settings.py
3172- echo "orca.settings.enableBraille = True" >> /root/home/$USERNAME/.orca/user-settings.py
3173- chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
3174- fi
3175- gct -s -t bool /apps/gksu/disable-grab true
3176- gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
3177- remove_applet fast_user_switch
3178- sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
3179- if [ -x /root/usr/bin/pulse-session ]; then
3180- mkdir -p /root/var/lib/pulseaudio
3181- touch /root/var/lib/pulseaudio/pulse_a11y_nostart
3182- chroot /root chown root.root /var/lib/pulseaudio/pulse_a11y_nostart
3183- mkdir -p /root/home/$USERNAME/.pulse
3184- echo "autospawn = no" > /root/home/$USERNAME/.pulse/client.conf
3185- chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.pulse
3186- fi
3187- ;;
3188- # Minor Motor Difficulties
3189- access=m1)
3190- gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
3191- gct -s -t bool /desktop/gnome/accessibility/keyboard/mousekeys_enable true
3192- gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
3193- gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep true
3194- gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
3195- gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
3196- gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
3197- gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
3198- gct -s -t bool /apps/gksu/disable-grab true
3199- kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/
3200- if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
3201- sed -i 's/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
3202- fi
3203- ;;
3204- # Motor Difficulties - pointing devices
3205- access=m2)
3206- gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
3207- gct -s -t bool /desktop/gnome/interface/accessibility true
3208- gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
3209- gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep false
3210- gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
3211- gct -s -t bool /desktop/gnome/applications/at/mobility/startup true
3212- gct -s -t string /desktop/gnome/applications/at/mobility/exec onboard
3213-
3214- kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/
3215- if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
3216- sed -i '/Sticky/ s/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
3217- fi
3218+ case $x in
3219+ # Lesser Visual Impairment
3220+ access=v1)
3221+ /root/usr/bin/casper-a11y-enable -initramfs -user="$USERNAME" -chroot=/root -script high-contrast
3222+ ;;
3223+ # Moderate Visual Impairment
3224+ access=v2)
3225+ /root/usr/bin/casper-a11y-enable -initramfs -user="$USERNAME" -chroot=/root -script magnifier
3226+ ;;
3227+ # Blindness
3228+ access=v3)
3229+ /root/usr/bin/casper-a11y-enable -initramfs -user="$USERNAME" -chroot=/root -script blindness
3230+ ;;
3231+ # Braille
3232+ braille=ask)
3233+ /root/usr/bin/casper-a11y-enable -initramfs -user="$USERNAME" -chroot=/root -script braille
3234+ ;;
3235+ # Minor Motor Difficulties
3236+ access=m1)
3237+ /root/usr/bin/casper-a11y-enable -initramfs -user="$USERNAME" -chroot=/root -script keyboard-modifiers
3238+ ;;
3239+ # Motor Difficulties - pointing devices
3240+ access=m2)
3241+ /root/usr/bin/casper-a11y-enable -initramfs -user="$USERNAME" -chroot=/root -script onscreen-keyboard
3242 ;;
3243 esac
3244 done
3245
3246=== modified file 'scripts/casper-bottom/31disable_update_notifier'
3247--- scripts/casper-bottom/31disable_update_notifier 2010-01-05 16:54:40 +0000
3248+++ scripts/casper-bottom/31disable_update_notifier 2011-10-06 10:04:28 +0000
3249@@ -31,4 +31,12 @@
3250 # 'apt-get update' equivalent, so we disable it entirely.
3251 rm -f /root/usr/share/autostart/adept_notifier_auto.desktop
3252
3253+# Upgrading the live CD to new releases is probably not a great plan.
3254+chroot /root dpkg-divert --add --rename --quiet \
3255+ /usr/lib/update-manager/check-new-release
3256+ln -sf /bin/true /root/usr/lib/update-manager/check-new-release
3257+chroot /root dpkg-divert --add --rename --quiet \
3258+ /usr/lib/update-manager/check-new-release-gtk
3259+ln -sf /bin/true /root/usr/lib/update-manager/check-new-release-gtk
3260+
3261 log_end_msg
3262
3263=== modified file 'scripts/casper-bottom/32disable_hibernation'
3264--- scripts/casper-bottom/32disable_hibernation 2010-01-05 16:54:40 +0000
3265+++ scripts/casper-bottom/32disable_hibernation 2011-10-06 10:04:28 +0000
3266@@ -20,15 +20,11 @@
3267
3268 log_begin_msg "$DESCRIPTION"
3269
3270-
3271-gpm_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-power-manager 2>/dev/null) || panel_version=""
3272-if [ -n "$gpm_version" ]; then
3273-# casper-reconfigure /root gnome-power-manager
3274- chroot /root sudo -u "$USERNAME" gconftool-2 -s -t bool /apps/gnome-power-manager/general/can_hibernate false
3275-fi
3276-
3277-if [ -d /root/usr/share/kubuntu-default-settings/kde-profile/default/share/config ]; then
3278- echo "disableHibernate=1" >> /root/usr/share/kubuntu-default-settings/kde-profile/default/share/config/guidance-power-managerrc
3279-fi
3280+cat <<EOF > /root/var/lib/polkit-1/localauthority/50-local.d/disable-hibernate.pkla
3281+[Disable hibernate in live system]
3282+Identity=unix-user:*
3283+Action=org.freedesktop.upower.hibernate
3284+ResultActive=no
3285+EOF
3286
3287 log_end_msg
3288
3289=== added file 'scripts/casper-bottom/34disable_kde_services.OTHER'
3290--- scripts/casper-bottom/34disable_kde_services.OTHER 1970-01-01 00:00:00 +0000
3291+++ scripts/casper-bottom/34disable_kde_services.OTHER 2011-10-06 10:04:28 +0000
3292@@ -0,0 +1,36 @@
3293+#! /bin/sh
3294+
3295+PREREQ=""
3296+DESCRIPTION="Disabling unnecessary KDE services..."
3297+
3298+prereqs()
3299+{
3300+ echo "$PREREQ"
3301+}
3302+
3303+case $1 in
3304+# get pre-requisites
3305+prereqs)
3306+ prereqs
3307+ exit 0
3308+ ;;
3309+esac
3310+
3311+. /scripts/casper-functions
3312+
3313+log_begin_msg "$DESCRIPTION"
3314+
3315+rm -f /root/usr/share/autostart/kab2kabc.desktop
3316+rm -f /root/usr/share/autostart/kaddressbookmigrator.desktop
3317+rm -f /root/usr/share/autostart/korgac.desktop
3318+rm -f /root/usr/share/autostart/printer-applet.desktop
3319+rm -f /root/usr/share/autostart/nepomukserver.desktop
3320+rm -f /root/usr/share/kde4/services/kwalletd.desktop
3321+rm -f /root/usr/share/kde4/services/kded/kpackagekitd.desktop
3322+if [ -z "${PERSISTENT}" ]; then
3323+ rm -f /root/usr/share/kde4/services/kded/freespacenotifier.desktop
3324+fi
3325+rm -f /root/usr/share/kde4/services/plasma-runner-contacts.desktop # starts akonadi
3326+rm -f /root/usr/share/kde4/services/plasma-dataengine-calendar.desktop # starts akonadi
3327+
3328+log_end_msg
3329
3330=== removed file 'scripts/casper-bottom/37kubuntu_netbook_installer_link'
3331--- scripts/casper-bottom/37kubuntu_netbook_installer_link 2010-01-05 16:54:40 +0000
3332+++ scripts/casper-bottom/37kubuntu_netbook_installer_link 1970-01-01 00:00:00 +0000
3333@@ -1,28 +0,0 @@
3334-#! /bin/sh
3335-
3336-PREREQ=""
3337-DESCRIPTION="Adding installer to Kubuntu Netbook favourites..."
3338-
3339-prereqs()
3340-{
3341- echo "$PREREQ"
3342-}
3343-
3344-case $1 in
3345-# get pre-requisites
3346-prereqs)
3347- prereqs
3348- exit 0
3349- ;;
3350-esac
3351-
3352-. /scripts/casper-functions
3353-
3354-log_begin_msg "$DESCRIPTION"
3355-
3356-if [ -e "/root/usr/share/kubuntu-netbook-default-settings/share/config/moved_plasma-netbook-appletsrc" ]; then
3357- mv /root/usr/share/kubuntu-netbook-default-settings/share/config/moved_plasma-netbook-appletsrc \
3358- /root/usr/share/kubuntu-netbook-default-settings/share/config/plasma-netbook-appletsrc
3359-fi
3360-
3361-log_end_msg
3362
3363=== modified file 'scripts/casper-bottom/40install_driver_updates'
3364--- scripts/casper-bottom/40install_driver_updates 2010-01-05 16:54:40 +0000
3365+++ scripts/casper-bottom/40install_driver_updates 2011-10-06 10:04:28 +0000
3366@@ -34,7 +34,13 @@
3367 for deb in "/root$install_dir"/*; do
3368 [ -f "$deb" ] || continue
3369 debbase="${deb##*/}"
3370- if ! chroot /root dpkg -i "$install_dir/$debbase"; then
3371+ DEBIAN_HAS_FRONTEND= DEBCONF_REDIR= \
3372+ DEBIAN_FRONTEND=noninteractive \
3373+ chroot /root dpkg -i "$install_dir/$debbase"
3374+ ret=$?
3375+ if [ $ret != 0 ]; then
3376+ DEBIAN_HAS_FRONTEND= DEBCONF_REDIR= \
3377+ DEBIAN_FRONTEND=noninteractive \
3378 chroot /root dpkg -P "${debbase%%_*}"
3379 fi
3380 done
3381
3382=== modified file 'scripts/casper-bottom/41apt_cdrom'
3383--- scripts/casper-bottom/41apt_cdrom 2010-01-05 16:54:40 +0000
3384+++ scripts/casper-bottom/41apt_cdrom 2011-10-06 10:04:28 +0000
3385@@ -18,4 +18,12 @@
3386
3387 . /scripts/casper-functions
3388
3389-chroot /root apt-cdrom -m add
3390+mount -n -o bind /sys /root/sys
3391+mount -n -o bind /proc /root/proc
3392+mount -n -o bind /dev /root/dev
3393+chroot /root apt-cdrom -o Acquire::cdrom::mount=/cdrom \
3394+ -o Dir::Media::MountPath=/cdrom \
3395+ -o Acquire::cdrom::AutoDetect=false -m add
3396+umount /root/dev
3397+umount /root/proc
3398+umount /root/sys
3399
3400=== removed file 'scripts/casper-bottom/42disable_apparmor'
3401--- scripts/casper-bottom/42disable_apparmor 2010-01-05 16:54:40 +0000
3402+++ scripts/casper-bottom/42disable_apparmor 1970-01-01 00:00:00 +0000
3403@@ -1,26 +0,0 @@
3404-#!/bin/sh
3405-# workaround for AppArmor bug #131976
3406-
3407-PREREQ=""
3408-DESCRIPTION="Disabling AppArmor (does not work with stacked file systems)..."
3409-
3410-prereqs()
3411-{
3412- echo "$PREREQ"
3413-}
3414-
3415-case $1 in
3416-# get pre-requisites
3417-prereqs)
3418- prereqs
3419- exit 0
3420- ;;
3421-esac
3422-
3423-. /scripts/casper-functions
3424-
3425-log_begin_msg "$DESCRIPTION"
3426-
3427-chroot /root update-rc.d -f apparmor remove
3428-
3429-log_end_msg
3430
3431=== modified file 'scripts/casper-bottom/43disable_updateinitramfs'
3432--- scripts/casper-bottom/43disable_updateinitramfs 2010-01-05 16:54:40 +0000
3433+++ scripts/casper-bottom/43disable_updateinitramfs 2011-10-06 10:04:28 +0000
3434@@ -27,13 +27,8 @@
3435 if [ -w /root/cdrom ] && \
3436 # rw is guaranteed to be first.
3437 grep -q ' /root/cdrom rw[, ]' /proc/self/mountinfo; then
3438- cat > /root/usr/sbin/update-initramfs <<'EOF'
3439-#! /bin/sh
3440-update-initramfs.distrib "$@"
3441-cp /initrd.img /cdrom/casper/initrd.gz
3442-cp /vmlinuz /cdrom/casper/vmlinuz
3443-exit 0
3444-EOF
3445+ ln -s /usr/share/casper/casper-update-initramfs \
3446+ /root/usr/sbin/update-initramfs
3447 else
3448 cat > /root/usr/sbin/update-initramfs <<EOF
3449 #! /bin/sh
3450
3451=== modified file 'scripts/casper-bottom/44pk_allow_ubuntu'
3452--- scripts/casper-bottom/44pk_allow_ubuntu 2010-01-05 16:54:40 +0000
3453+++ scripts/casper-bottom/44pk_allow_ubuntu 2011-10-06 10:04:28 +0000
3454@@ -1,7 +1,7 @@
3455 #!/bin/sh
3456
3457 PREREQ=""
3458-DESCRIPTION="Grant administrative PolicyKit pivilieges to default user..."
3459+DESCRIPTION="Grant administrative PolicyKit privileges to default user..."
3460
3461 prereqs()
3462 {
3463@@ -21,27 +21,6 @@
3464 log_begin_msg "$DESCRIPTION"
3465
3466 # configure PolicyKit in live session
3467-mkdir -p /root/etc/PolicyKit
3468-cat << EOF > /root/etc/PolicyKit/PolicyKit.conf
3469-<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->
3470-
3471-<!DOCTYPE pkconfig PUBLIC "-//freedesktop//DTD PolicyKit Configuration 1.0//EN"
3472-"http://hal.freedesktop.org/releases/PolicyKit/1.0/config.dtd">
3473-
3474-<!-- See the manual page PolicyKit.conf(5) for file format -->
3475-
3476-<config version="0.1">
3477- <match user="root">
3478- <return result="yes"/>
3479- </match>
3480- <!-- don't ask password for user in live session -->
3481- <match user="$USERNAME">
3482- <return result="yes"/>
3483- </match>
3484- <define_admin_auth group="admin"/>
3485-</config>
3486-EOF
3487-
3488 mkdir -p /root/var/lib/polkit-1/localauthority/10-vendor.d
3489 cat << EOF > /root/var/lib/polkit-1/localauthority/10-vendor.d/10-live-cd.pkla
3490 # Policy to allow the livecd user to bypass policykit
3491@@ -49,7 +28,7 @@
3492 Identity=unix-user:$USERNAME
3493 Action=*
3494 ResultAny=no
3495-ResultInactive=no
3496+ResultInactive=yes
3497 ResultActive=yes
3498 EOF
3499
3500
3501=== removed file 'scripts/casper-bottom/45disable_guest_account'
3502--- scripts/casper-bottom/45disable_guest_account 2010-01-05 16:54:40 +0000
3503+++ scripts/casper-bottom/45disable_guest_account 1970-01-01 00:00:00 +0000
3504@@ -1,25 +0,0 @@
3505-#!/bin/sh
3506-
3507-PREREQ=""
3508-DESCRIPTION="Disabling gdm guest session functionality..."
3509-
3510-prereqs()
3511-{
3512- echo "$PREREQ"
3513-}
3514-
3515-case $1 in
3516-# get pre-requisites
3517-prereqs)
3518- prereqs
3519- exit 0
3520- ;;
3521-esac
3522-
3523-. /scripts/casper-functions
3524-
3525-log_begin_msg "$DESCRIPTION"
3526-
3527-chroot /root dpkg -P gdm-guest-session || true
3528-
3529-log_end_msg
3530
3531=== removed file 'scripts/casper-bottom/47unr_ubiquity'
3532--- scripts/casper-bottom/47unr_ubiquity 2010-01-05 16:54:40 +0000
3533+++ scripts/casper-bottom/47unr_ubiquity 1970-01-01 00:00:00 +0000
3534@@ -1,39 +0,0 @@
3535-#!/bin/sh
3536-
3537-PREREQ=""
3538-DESCRIPTION="Set ubiquity favourite for UNR..."
3539-
3540-prereqs()
3541-{
3542- echo "$PREREQ"
3543-}
3544-
3545-case $1 in
3546-# get pre-requisites
3547-prereqs)
3548- prereqs
3549- exit 0
3550- ;;
3551-esac
3552-
3553-. /scripts/casper-functions
3554-
3555-log_begin_msg "$DESCRIPTION"
3556-
3557-gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf2 2>/dev/null) || gconf_version=""
3558-
3559-gct() {
3560- if [ "$gconf_version" ]; then
3561- chroot /root sudo -u "$USERNAME" gconftool-2 "$@"
3562- fi
3563-}
3564-
3565-if ! gct -g /apps/netbook-launcher/favorites/favorites_list | grep -q ubiquity; then
3566- gct -s -t string /apps/netbook-launcher/favorites/ubiquity/type application
3567- gct -s -t string /apps/netbook-launcher/favorites/ubiquity/desktop_file /usr/share/applications/ubiquity-gtkui.desktop
3568- favs=$(gct -g /apps/netbook-launcher/favorites/favorites_list)
3569- gct -s -t list --list-type=string /apps/netbook-launcher/favorites/favorites_list $(echo "$favs" | sed -e 's/]$/,ubiquity]/')
3570-fi
3571-
3572-log_end_msg
3573-
3574
3575=== removed file 'scripts/casper-bottom/48enable_kubuntu_netbook'
3576--- scripts/casper-bottom/48enable_kubuntu_netbook 2010-01-27 13:56:03 +0000
3577+++ scripts/casper-bottom/48enable_kubuntu_netbook 1970-01-01 00:00:00 +0000
3578@@ -1,27 +0,0 @@
3579-#! /bin/sh
3580-
3581-PREREQ=""
3582-DESCRIPTION="Enabling Plasma Netbook workspace if appropriate..."
3583-
3584-prereqs()
3585-{
3586- echo "$PREREQ"
3587-}
3588-
3589-case $1 in
3590-# get pre-requisites
3591-prereqs)
3592- prereqs
3593- exit 0
3594- ;;
3595-esac
3596-
3597-. /scripts/casper-functions
3598-
3599-log_begin_msg "$DESCRIPTION"
3600-
3601-if [ -e "/root/usr/share/autostart/plasma-netbook.desktop" ]; then
3602- sed -i "s,Hidden=true,," /root/usr/share/autostart/plasma-netbook.desktop
3603-fi
3604-
3605-log_end_msg
3606
3607=== added file 'scripts/casper-bottom/48kubuntu_disable_restart_notifications'
3608--- scripts/casper-bottom/48kubuntu_disable_restart_notifications 1970-01-01 00:00:00 +0000
3609+++ scripts/casper-bottom/48kubuntu_disable_restart_notifications 2011-10-06 10:04:28 +0000
3610@@ -0,0 +1,5 @@
3611+#! /bin/sh
3612+
3613+if [ -d /root/usr/share/kubuntu-default-settings/ ]; then
3614+ echo "[Event]\nhideRestartNotifier=true" >> /root/usr/share/kubuntu-default-settings/kde-profile/default/share/config/notificationhelper
3615+fi
3616
3617=== added file 'scripts/casper-bottom/49kubuntu_mobile_session'
3618--- scripts/casper-bottom/49kubuntu_mobile_session 1970-01-01 00:00:00 +0000
3619+++ scripts/casper-bottom/49kubuntu_mobile_session 2011-10-06 10:04:28 +0000
3620@@ -0,0 +1,5 @@
3621+#! /bin/sh
3622+
3623+if [ -d /root/usr/share/kubuntu-mobile-default-settings/ ]; then
3624+ cp /root/usr/share/kubuntu-mobile-default-settings/share/nodm /root/etc/default/nodm
3625+fi
3626
3627=== modified file 'scripts/casper-functions'
3628--- scripts/casper-functions 2008-09-18 23:39:20 +0000
3629+++ scripts/casper-functions 2011-10-06 10:04:28 +0000
3630@@ -4,7 +4,10 @@
3631 # Print a message and wait for enter
3632 log_wait_msg()
3633 {
3634- if [ -x /sbin/usplash_write ]; then
3635+ if [ -x /bin/plymouth ] && plymouth --ping; then
3636+ plymouth message --text="$@"
3637+ plymouth watch-keystroke | read nunya
3638+ elif [ -x /sbin/usplash_write ]; then
3639 /sbin/usplash_write "INPUTENTER $@"
3640 read nunya < /dev/.initramfs/usplash_outfifo
3641 fi
3642@@ -39,3 +42,14 @@
3643 echo "C"
3644 fi
3645 }
3646+
3647+load_confmodule() {
3648+ # Only do this once.
3649+ if [ -z "$DEBCONF_REDIR" ]; then
3650+ exec <&4
3651+ export DEBIAN_HAS_FRONTEND=1
3652+ export DEBCONF_REDIR=1
3653+ fi
3654+
3655+ . /root/usr/share/debconf/confmodule
3656+}
3657
3658=== modified file 'scripts/casper-helpers'
3659--- scripts/casper-helpers 2009-05-12 12:30:01 +0000
3660+++ scripts/casper-helpers 2011-10-06 10:04:28 +0000
3661@@ -31,7 +31,7 @@
3662 # FIXME: do something better like the scan of supported filesystems
3663 fstype="${1}"
3664 case ${fstype} in
3665- vfat|iso9660|udf|ext2|ext3|ext4|ntfs)
3666+ vfat|iso9660|udf|ext2|ext3|ext4|btrfs|ntfs)
3667 return 0
3668 ;;
3669 esac
3670@@ -164,6 +164,9 @@
3671 fi
3672 }
3673
3674+# Returns 0 on success
3675+# panics if remount- or bind-mount fails
3676+# returns 1 on failure otherwise
3677 try_mount ()
3678 {
3679 dev="${1}"
3680@@ -171,19 +174,39 @@
3681 opts="${3}"
3682
3683 if where_is_mounted ${dev} > /dev/null; then
3684- if [ "${opts}" != "ro" ]; then
3685- mount -o remount,"${opts}" ${dev} $(where_is_mounted ${dev}) || panic "Remounting failed"
3686- fi
3687+ if [ "${opts}" != "ro" ]; then
3688+ mount -o remount,"${opts}" ${dev} $(where_is_mounted ${dev}) || panic "Remounting failed"
3689+ return 0
3690+ fi
3691 mount -o bind $(where_is_mounted ${dev}) ${mountp} || panic "Cannot bind-mount"
3692+ return 0
3693 else
3694- mount -t $(get_fstype "${dev}") -o "${opts}" "${dev}" "${mountp}" || panic "Cannot mount ${dev} on ${mountp}"
3695+ mount -t $(get_fstype "${dev}") -o "${opts}" "${dev}" "${mountp}"
3696+ ret=$?
3697+ if [ $ret -ne 0 ]; then
3698+ log_warning_msg "Cannot mount ${dev} on ${mountp}"
3699+ return 1
3700+ fi
3701+ return 0
3702 fi
3703 }
3704
3705 find_cow_device() {
3706 pers_label="${1}"
3707 cow_backing="/${pers_label}-backing"
3708+
3709+ if [ -z "${PERSISTENT_PATH}" ]; then
3710+ pers_fpath=${pers_label}
3711+ else
3712+ pers_fpath=${PERSISTENT_PATH}/${pers_label}
3713+ fi
3714+
3715 for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop); do
3716+ # do not ever probe floppies, probing nonexistant ones delays the boot to half an hour and longer
3717+ n=${sysblock##*/}
3718+ if [ "${n#fd}" != "$n" ]; then
3719+ continue
3720+ fi
3721 for dev in $(subdevices "${sysblock}"); do
3722 devname=$(sys2dev "${dev}")
3723 if [ "$(/sbin/blkid -s LABEL -o value $devname 2>/dev/null)" = "${pers_label}" ]; then
3724@@ -195,12 +218,13 @@
3725 # where filesystems are in use by hibernated operating systems.
3726 elif [ "$(get_fstype ${devname})" = "vfat" ]; then
3727 mkdir -p "${cow_backing}"
3728- try_mount "${devname}" "${cow_backing}" "rw"
3729- if [ -e "${cow_backing}/${pers_label}" ]; then
3730- echo $(setup_loop "${cow_backing}/${pers_label}" "loop" "/sys/block/loop*")
3731+ try_mount "${devname}" "${cow_backing}" "rw" || continue
3732+ cow_backing_mp=$(where_is_mounted "${devname}")
3733+ if [ -e "${cow_backing_mp}/${pers_fpath}" ]; then
3734+ echo $(setup_loop "${cow_backing_mp}/${pers_fpath}" "loop" "/sys/block/loop*")
3735 return 0
3736 else
3737- umount ${cow_backing}
3738+ umount ${cow_backing_mp}
3739 fi
3740 fi
3741 done
3742@@ -219,7 +243,7 @@
3743 devfstype="$(get_fstype ${devname})"
3744 if [ "${devfstype}" = "vfat" ] || [ "${devfstype}" = "ext2" ] ; then # FIXME: all supported block devices should be scanned
3745 mkdir -p "${snap_backing}"
3746- try_mount "${devname}" "${snap_backing}" "ro"
3747+ try_mount "${devname}" "${snap_backing}" "ro" || continue
3748 for filename in ${filenames}; do
3749 if [ -e "${snap_backing}/${filename}" ]; then
3750 echo "${devname} ${snap_backing} ${filename}"
3751
3752=== modified file 'scripts/casper-premount/10driver_updates'
3753--- scripts/casper-premount/10driver_updates 2010-01-05 16:54:40 +0000
3754+++ scripts/casper-premount/10driver_updates 2011-10-06 10:04:28 +0000
3755@@ -42,7 +42,7 @@
3756
3757 is_nice_device() {
3758 sysfs_path="${1#/sys}"
3759- if /lib/udev/path_id "${sysfs_path}" | grep -E -q "ID_PATH=(usb|pci-[^-]*-(ide|scsi|usb))"; then
3760+ if /lib/udev/path_id "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-[^-]*-(ide|scsi|usb))"; then
3761 return 0
3762 fi
3763 return 1
3764
3765=== modified file 'ubiquity-hooks/30accessibility'
3766--- ubiquity-hooks/30accessibility 2009-10-13 21:25:53 +0000
3767+++ ubiquity-hooks/30accessibility 2011-10-06 10:04:28 +0000
3768@@ -1,5 +1,6 @@
3769 #!/bin/sh
3770-# If you change this, please also change the copy in scripts/casper-bottom/30accessibility.
3771+# If you are looking to change accessibility profile settings, plesae look in
3772+# bin/casper-a11y-enable.
3773
3774 . /usr/share/debconf/confmodule
3775 . /etc/casper.conf
3776@@ -9,171 +10,83 @@
3777 db_get passwd/username
3778 TARGET_USERNAME="$RET"
3779
3780-gct() {
3781- chroot /target sudo -u "$TARGET_USERNAME" gconftool-2 "$@"
3782-}
3783-
3784-kderc_addtoprefixes() {
3785- if [ -e "/target/etc/kde4rc" ]; then
3786- sed -i "s|\\(prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/\\)|\\1,$1|" /target/etc/kde4rc
3787- fi
3788-}
3789-
3790-# Code to remove an applet from the default panel setup
3791-# This is rather hacky, but I can't think of a one or two line regular
3792-# expression to do this any more efficiently. Patches welcome.
3793-# In addition, setting these via gconf also doesn't work for some reason.
3794-remove_applet()
3795+copy_orca_config()
3796 {
3797- local line_no prior_line next_line
3798-
3799- line_no=$(grep -n "<string>$1</string>" /target/usr/share/gconf/defaults/05_panel-default-setup.entries | cut -f 1 -d :)
3800- [ "$line_no" ] || return
3801- prior_line=$((line_no-1))
3802- next_line=$((line_no+1))
3803- sed -i -n "${prior_line},${next_line}!p" /target/usr/share/gconf/defaults/05_panel-default-setup.entries
3804- chroot /target update-gconf-defaults
3805+ if [ -f /home/$USERNAME/.local/share/orca/user-settings.conf ]; then
3806+ mkdir -p /target/home/$TARGET_USERNAME/.local/share
3807+ cp -r /home/$USERNAME/.local/share/orca /target/home/$TARGET_USERNAME/.local/share
3808+ chroot /target chown -R $TARGET_USERNAME.$TARGET_USERNAME /home/$TARGET_USERNAME/.local
3809+ chmod 755 /target/home/$TARGET_USERNAME/.local/share/orca
3810+ fi
3811 }
3812
3813 for x in $(cat /proc/cmdline); do
3814- case $x in
3815- # Lesser Visual Impairment
3816- access=v1)
3817- gct -s -t string /desktop/gnome/interface/gtk_theme HighContrastLargePrint
3818- gct -s -t string /desktop/gnome/interface/icon_theme HighContrast
3819- gct -s -t string /desktop/gnome/interface/monospace_font_name "monospace 18"
3820- gct -s -t string /desktop/gnome/interface/font_name "sans 18"
3821- gct -s -t string /apps/metacity/general/theme Atlanta
3822- gct -s -t string /desktop/gnome/background/picture_filename ""
3823- gct -s -t string /desktop/gnome/background/picture_options none
3824- gct -s -t string /desktop/gnome/background/primary_color \#666666
3825- gct -s -t string /desktop/gnome/background/secondary_color \#7F7F7F
3826- gct -s -t string /desktop/gnome/background/color_shading_type solid
3827- gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
3828- gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
3829- kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/
3830- if [ -d /target/usr/share/xubuntu-default-settings/accessibility ]; then
3831- cp -a /target/usr/share/xubuntu-default-settings/accessibility/* /target/etc/xdg/
3832- fi
3833- ;;
3834- # Moderate Visual Impairment
3835- access=v2)
3836- gct -s -t bool /desktop/gnome/interface/accessibility true
3837- gct -s -t bool /apps/gksu/disable-grab true
3838- gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
3839- gct -s -t bool /desktop/gnome/applications/at/visual/startup true
3840- gct -s -t string /desktop/gnome/applications/at/visual/exec orca
3841-
3842- if [ -d /usr/share/xubuntu-default-settings ]; then
3843- apt-install gnome-orca gnome-mag
3844- fi
3845-
3846- if [ -x /target/usr/bin/orca ]; then
3847- if [ -f /home/$USERNAME/.orca/user-settings.py ]; then
3848- cp -r /home/$USERNAME/.orca /target/home/$TARGET_USERNAME/
3849- chroot /target chown -R $TARGET_USERNAME.$TARGET_USERNAME /home/$TARGET_USERNAME/.orca
3850- else
3851- mkdir -p /target/home/$TARGET_USERNAME/.orca
3852- echo "import orca.settings" >> /target/home/$TARGET_USERNAME/.orca/user-settings.py
3853- echo "orca.settings.enableSpeech = True" >> /target/home/$TARGET_USERNAME/.orca/user-settings.py
3854- echo "orca.settings.enableMagnifier = True" >> /target/home/$TARGET_USERNAME/.orca/user-settings.py
3855- chroot /target chown -R $TARGET_USERNAME.$TARGET_USERNAME /home/$TARGET_USERNAME/.orca
3856- fi
3857- fi
3858- sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /target/etc/sudoers
3859-
3860- kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/,/usr/share/kubuntu-default-settings/kde-profile/moderate-visual-impairment/
3861- ;;
3862- # Blindness
3863- access=v3)
3864- gct -s -t bool /desktop/gnome/interface/accessibility true
3865- gct -s -t bool /apps/gksu/disable-grab true
3866- gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
3867- gct -s -t bool /desktop/gnome/applications/at/visual/startup true
3868- gct -s -t string /desktop/gnome/applications/at/visual/exec orca
3869- remove_applet fast_user_switch
3870- if [ -x /target/usr/bin/pulse-session ]; then
3871- mkdir -p /target/var/lib/pulseaudio
3872- touch /target/var/lib/pulseaudio/pulse_a11y_nostart
3873- chroot /target chown root.root /var/lib/pulseaudio/pulse_a11y_nostart
3874- mkdir -p /target/home/$TARGET_USERNAME/.pulse
3875- echo "autospawn = no" > /target/home/$TARGET_USERNAME/.pulse/client.conf
3876- chroot /target chown -R $TARGET_USERNAME.$TARGET_USERNAME /home/$TARGET_USERNAME/.pulse
3877- fi
3878- sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /target/etc/sudoers
3879- if [ -x /target/usr/bin/orca ]; then
3880- if [ -f /home/$USERNAME/.orca/user-settings.py ]; then
3881- cp -r /home/$USERNAME/.orca /target/home/$TARGET_USERNAME/
3882- chroot /target chown -R $TARGET_USERNAME.$TARGET_USERNAME /home/$TARGET_USERNAME/.orca
3883- else
3884- mkdir -p /target/home/$TARGET_USERNAME/.orca
3885- chroot /target chown -R $TARGET_USERNAME.$TARGET_USERNAME /home/$TARGET_USERNAME/.orca
3886- fi
3887- fi
3888-
3889- if [ -d /usr/share/xubuntu-default-settings ]; then
3890- apt-install gnome-orca
3891- fi
3892- ;;
3893- # Braille
3894- braille=ask)
3895- gct -s -t bool /desktop/gnome/interface/accessibility true
3896- gct -s -t bool /desktop/gnome/applications/at/visual/startup true
3897- gct -s -t string /desktop/gnome/applications/at/visual/exec orca
3898- if [ -x /target/usr/bin/orca ]; then
3899- if [ -f /home/$USERNAME/.orca/user-settings.py ]; then
3900- cp -r /home/$USERNAME/.orca /target/home/$TARGET_USERNAME/
3901- chroot /target chown -R $TARGET_USERNAME.$TARGET_USERNAME /home/$TARGET_USERNAME/.orca
3902- else
3903- mkdir -p /target/home/$TARGET_USERNAME/.orca
3904- echo "import orca.settings" >> /target/home/$TARGET_USERNAME/.orca/user-settings.py
3905- echo "orca.settings.enableSpeech = False" >> /target/home/$TARGET_USERNAME/.orca/user-settings.py
3906- echo "orca.settings.enableBraille = True" >> /target/home/$TARGET_USERNAME/.orca/user-settings.py
3907- chroot /target chown -R $TARGET_USERNAME.$TARGET_USERNAME /home/$TARGET_USERNAME/.orca
3908- fi
3909- fi
3910- gct -s -t bool /apps/gksu/disable-grab true
3911- gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
3912- remove_applet fast_user_switch
3913- sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /target/etc/sudoers
3914- if [ -x /target/usr/bin/pulse-session ]; then
3915- mkdir -p /target/var/lib/pulseaudio
3916- touch /target/var/lib/pulseaudio/pulse_a11y_nostart
3917- chroot /target chown root.root /var/lib/pulseaudio/pulse_a11y_nostart
3918- mkdir -p /target/home/$TARGET_USERNAME/.pulse
3919- echo "autospawn = no" > /target/home/$TARGET_USERNAME/.pulse/client.conf
3920- chroot /target chown -R $TARGET_USERNAME.$TARGET_USERNAME /home/$TARGET_USERNAME/.pulse
3921- fi
3922- ;;
3923- # Minor Motor Difficulties
3924- access=m1)
3925- gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
3926- gct -s -t bool /desktop/gnome/accessibility/keyboard/mousekeys_enable true
3927- gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
3928- gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep true
3929- gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
3930- gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
3931- gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
3932- gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
3933- gct -s -t bool /apps/gksu/disable-grab true
3934- kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/
3935- if [ -e /target/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
3936- sed -i 's/0/1/' /target/etc/xdg/xfce4/mcs_settings/keyboard.xml
3937- fi
3938- ;;
3939- # Motor Difficulties - pointing devices
3940- access=m2)
3941- gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
3942- gct -s -t bool /desktop/gnome/interface/accessibility true
3943- gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
3944- gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep false
3945- gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
3946- gct -s -t bool /desktop/gnome/applications/at/mobility/startup true
3947- gct -s -t string /desktop/gnome/applications/at/mobility/exec onboard
3948- kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/
3949- if [ -e /target/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
3950- sed -i '/Sticky/ s/0/1/' /target/etc/xdg/xfce4/mcs_settings/keyboard.xml
3951- fi
3952+ case $x in
3953+ # Lesser Visual Impairment
3954+ access=v1)
3955+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script high-contrast
3956+ exit
3957+ ;;
3958+ # Moderate Visual Impairment
3959+ access=v2)
3960+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script magnifier
3961+ exit
3962+ ;;
3963+ # Blindness
3964+ access=v3)
3965+ copy_orca_config
3966+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script blindness
3967+ exit
3968+ ;;
3969+ # Braille
3970+ braille=ask)
3971+ copy_orca_config
3972+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script braille
3973+ exit
3974+ ;;
3975+ # Minor Motor Difficulties
3976+ access=m1)
3977+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script keyboard-modifiers
3978+ exit
3979+ ;;
3980+ # Motor Difficulties - pointing devices
3981+ access=m2)
3982+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script onscreen-keyboard
3983+ exit
3984 ;;
3985 esac
3986 done
3987+
3988+if [ -z "$UBIQUITY_A11Y_PROFILE" ] && [ -f /tmp/casper-a11y.conf ]; then
3989+ . /tmp/casper-a11y.conf
3990+fi
3991+
3992+case "$UBIQUITY_A11Y_PROFILE" in
3993+ # Lesser Visual Impairment
3994+ high-contrast)
3995+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script high-contrast
3996+ ;;
3997+ # Moderate Visual Impairment
3998+ magnifier)
3999+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script magnifier
4000+ ;;
4001+ # Blindness
4002+ screen-reader)
4003+ copy_orca_config
4004+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script blindness
4005+ ;;
4006+ # Braille
4007+ braille)
4008+ copy_orca_config
4009+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script braille
4010+ ;;
4011+ # Minor Motor Difficulties
4012+ keyboard-modifiers)
4013+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script keyboard-modifiers
4014+ ;;
4015+ # Motor Difficulties - pointing devices
4016+ onscreen-keyboard)
4017+ /usr/bin/casper-a11y-enable -login -user="$TARGET_USERNAME" -chroot=/target -script onscreen-keyboard
4018+ ;;
4019+esac
4020+
4021
4022=== removed file 'ubiquity-hooks/48enable_kubuntu_netbook'
4023--- ubiquity-hooks/48enable_kubuntu_netbook 2010-01-27 14:01:22 +0000
4024+++ ubiquity-hooks/48enable_kubuntu_netbook 1970-01-01 00:00:00 +0000
4025@@ -1,8 +0,0 @@
4026-#! /bin/sh
4027-set -e
4028-
4029-if [ -e "/target/usr/share/autostart/plasma-netbook.desktop" ]; then
4030- sed -i "s,Hidden=true,," /target/usr/share/autostart/plasma-netbook.desktop
4031-fi
4032-
4033-exit 0
4034
4035=== added file 'ubiquity-hooks/49kubuntu_gnome_icon_cache'
4036--- ubiquity-hooks/49kubuntu_gnome_icon_cache 1970-01-01 00:00:00 +0000
4037+++ ubiquity-hooks/49kubuntu_gnome_icon_cache 2011-10-06 10:04:28 +0000
4038@@ -0,0 +1,11 @@
4039+#! /bin/sh
4040+set -e
4041+
4042+# livecd-rootfs deletes the Gnome icon cache for Kubuntu CDs to save space, recreate it here
4043+
4044+if [ -e "/target/usr/share/kubuntu-default-settings/" ] && [ -e "/target/usr/bin/gtk-update-icon-cache" ]; then
4045+ chroot /target gtk-update-icon-cache /usr/share/icons/hicolor
4046+ chroot /target gtk-update-icon-cache /usr/share/icons/oxygen
4047+fi
4048+
4049+exit 0

Subscribers

People subscribed via source and target branches