free(s1);
}
+void usplash_urgent(int fd, char *format, ...) {
+ char *s, *s1;
+ va_list argp;
+
+ va_start(argp, format);
+ vasprintf(&s, format, argp);
+ va_end(argp);
+
+ asprintf(&s1, "TEXT-URGENT %s", s);
+
+ write_and_retry(fd, s1);
+
+ free(s);
+ free(s1);
+}
+
+
void usplash_success(int fd, char *format, ...) {
char *s, *s1;
va_list argp;
if (pipe_fd == -1) {
/* We can't really do anything useful here */
+ perror("Opening pipe");
exit(1);
}
+
usplash_progress(pipe_fd, 0);
+ usplash_urgent(pipe_fd, "Checking integrity, this may take some time");
md5_file = fopen(argv[2], "r");
if (!md5_file) {
perror("fopen md5_file");
while (rsize > 0) {
csize += rsize;
- usplash_progress(pipe_fd, floorl(100*csize/tsize));
+ usplash_progress(pipe_fd, floorl(100*((long double)csize)/tsize));
md5_append(&state, (const md5_byte_t *)buf, rsize);
rsize = read(check_fd, buf, sizeof(buf));
free(checksum);
free(checkfile);
}
- usplash_text(pipe_fd, "Check finished, %d checksums failed", failed);
- usplash_text(pipe_fd, "Press any key to reboot your system");
- usplash_timeout(pipe_fd, 0);
+ usplash_urgent(pipe_fd, "Check finished, %d checksums failed", failed);
+ usplash_urgent(pipe_fd, "Press any key to reboot your system");
+ usplash_timeout(pipe_fd, 86400);
set_nocanonical_tty(0);
getchar();
reboot(LINUX_REBOOT_CMD_RESTART);
log_begin_msg "$DESCRIPTION"
kbd=us
+cslayout=
+csvariant=
for x in $(cat /proc/cmdline); do
- case $x in
- kbd-chooser/method=*)
- kbd=${x#kbd-chooser/method=}
- ;;
- esac
+ case $x in
+ kbd-chooser/method=*)
+ kbd=${x#kbd-chooser/method=}
+ ;;
+ console-setup/layoutcode=*)
+ cslayout=${x#console-setup/layoutcode=}
+ ;;
+ console-setup/variantcode=*)
+ csvariant=${x#console-setup/variantcode=}
+ ;;
+ esac
done
-chroot /root /usr/sbin/install-keymap $kbd
-casper-preseed /root debian-installer/keymap "$kbd"
+if [ "$cslayout" ] && [ -x /root/bin/setupcon ] && \
+ [ -f /etc/default/console-setup ]; then
+ chroot /root sed -i "s/^XKBLAYOUT=.*/XKBLAYOUT=\"$cslayout\"/" \
+ /etc/default/console-setup
+ if [ "$csvariant" ]; then
+ chroot /root sed -i "s/^XKBVARIANT=.*/XKBVARIANT=\"$csvariant\"/" \
+ /etc/default/console-setup
+ fi
+else
+ chroot /root /usr/sbin/install-keymap $kbd
+ casper-preseed /root debian-installer/keymap "$kbd"
+fi
log_end_msg
# Arrange for shells on virtual consoles, rather than login prompts
if [ -n "$USERNAME" ]; then
- sed -i -e "s|^\([^:]*:[^:]*:[^:]*\):.*getty.*\<\(tty[0-9]*\).*$|\1:/bin/login -f $USERNAME </dev/\2 >/dev/\2 2>\&1|" /root/etc/inittab
+ if [ -f /root/etc/inittab ]; then
+ sed -i -e "s|^\([^:]*:[^:]*:[^:]*\):.*getty.*\<\(tty[0-9]*\).*$|\1:/bin/login -f $USERNAME </dev/\2 >/dev/\2 2>\&1|" /root/etc/inittab
+ fi
+ if [ "/root/etc/event.d/tty*" != "$(echo /root/etc/event.d/tty*)" ]; then
+ for f in /root/etc/event.d/tty*; do
+ sed -i -e "s|^respawn.*|respawn /bin/login -f $USERNAME </dev/$(basename $f) > /dev/$(basename $f) 2>\&1|" $f
+ done
+ fi
fi
# This has the nice side effect of the cron.{daily,weekly,monthly} jobs in
log_begin_msg "$DESCRIPTION"
+gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf-2 2>/dev/null) || gconf_version=""
+
gct() {
- chroot /root sudo -u "$USERNAME" gconftool-2 "$@"
+ if [ "$gconf_version" ]; then
+ chroot /root sudo -u "$USERNAME" gconftool-2 "$@"
+ fi
+}
+
+kderc_addtoprefixes() {
+ if [ -e "/root/etc/kderc" ]; then
+ sed -i "s|\\(prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/\\)|\\1,$1|" /root/etc/kderc
+ fi
}
for x in $(cat /proc/cmdline); do
gct -s -t string /desktop/gnome/background/color_shading_type solid
gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
+
+ kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/
+ fi
;;
# Moderate Visual Impairment
access=v2)
gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [gnopernicus]
gct -s -t bool /apps/gnopernicus/srcore/mag_active true
gct -s -t bool /apps/gnopernicus/srcore/sp_active false
+
+ kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/,/usr/share/kubuntu-default-settings/kde-profile/moderate-visual-impairment/
;;
# Blindness
access=v3)
gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
+
+ kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/
;;
# Motor Difficulties - pointing devices
access=m2)
gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
gct -s -t bool /desktop/gnome/interface/accessibility true
gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats gok
+
+ kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/
;;
esac
done
cp -a /etc/X11/xorg.conf /target/etc/X11/xorg.conf
# requires x11-common (>= 7.0.0-0ubuntu1)
mkdir -p /target/var/lib/x11
- chroot /target md5sum /etc/X11/xorg.conf > /var/lib/x11/xorg.conf.md5sum
+ chroot /target sh -c 'md5sum /etc/X11/xorg.conf > /var/lib/x11/xorg.conf.md5sum'
fi
exit 0
gct -s -t string /desktop/gnome/background/color_shading_type solid
gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
+ sed -i s.prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/.prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/,/usr/share/kubuntu-default-settings/kde-profile/lesser-visual-imparement/. /etc/kderc
;;
# Moderate Visual Impairment
access=v2)
gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [gnopernicus]
gct -s -t bool /apps/gnopernicus/srcore/mag_active true
gct -s -t bool /apps/gnopernicus/srcore/sp_active false
+ sed -i s.prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/.prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/,/usr/share/kubuntu-default-settings/kde-profile/lesser-visual-imparement/,/usr/share/kubuntu-default-settings/kde-profile/moderate-visual-imparement/. /etc/kderc
;;
# Blindness
access=v3)
gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
+ sed -i s.prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/.prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/,/usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/. /etc/kderc
;;
# Motor Difficulties - pointing devices
access=m2)
gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
gct -s -t bool /desktop/gnome/interface/accessibility true
gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats gok
+ sed -i s.prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/.prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/,/usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/. /etc/kderc
;;
esac
done