From efc291ccd1c5c76c011864e4bce0ca1161dea8d5 Mon Sep 17 00:00:00 2001 From: Fabian Arrotin Date: Oct 23 2015 15:02:03 +0000 Subject: Kickstart files for c7 i386 live media --- diff --git a/kickstarts/centos-7-live-gnome-i386.cfg b/kickstarts/centos-7-live-gnome-i386.cfg new file mode 100644 index 0000000..513d2db --- /dev/null +++ b/kickstarts/centos-7-live-gnome-i386.cfg @@ -0,0 +1,421 @@ + +lang en_GB.UTF-8 +keyboard us +timezone Europe/Brussels --isUtc +auth --useshadow --enablemd5 +selinux --enforcing +firewall --enabled --service=mdns +xconfig --startxonboot +part / --size 8192 --fstype ext4 +services --enabled=NetworkManager --disabled=network,sshd + + +# Root password +rootpw --iscrypted $6$K2nKf02kVKG68960$OywvoaViphSITuro/liKvCj7Pm/CH/xqzz/lsoXyaKSR1lYf0vHAqSUc483a9MCCBkIwfr/hNMfqwxqVO0OEg1 + +# Workaround for the grubby issue on live media (see https://bugzilla.redhat.com/show_bug.cgi?id=1153410) +repo --name=base --baseurl=http://mirror.centos.org/altarch/7/os/i386/ --excludepkgs=grubby +repo --name=grubby --baseurl=http://dev.centos.org/c7.00.02/ +repo --name=updates --baseurl=http://mirror.centos.org/altarch/7/updates/i386/ + +%packages +@base +@core +@dial-up +@directory-client +@fonts +@gnome-desktop +@guest-agents +@guest-desktop-agents +@input-methods +@internet-browser +@java-platform +@multimedia +@network-file-system-client +@print-client +@x11 +@internet-applications +@office-suite +@remote-desktop-clients +@gnome-apps + + +#Live install tools +anaconda +system-config-keyboard +firefox +patch + +# For UEFI/Secureboot support +#grub2 +#grub2-efi +#efibootmgr +#shim + +%end + +%post +# FIXME: it'd be better to get this installed from a package +cat > /etc/rc.d/init.d/livesys << EOF +#!/bin/bash +# +# live: Init script for live image +# +# chkconfig: 345 00 99 +# description: Init script for live image. +### BEGIN INIT INFO +# X-Start-Before: display-manager +### END INIT INFO + +. /etc/init.d/functions + +if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ]; then + exit 0 +fi + +if [ -e /.liveimg-configured ] ; then + configdone=1 +fi + +exists() { + which \$1 >/dev/null 2>&1 || return + \$* +} + +# Make sure we don't mangle the hardware clock on shutdown +ln -sf /dev/null /etc/systemd/system/hwclock-save.service + +livedir="LiveOS" +for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then + livedir=\${arg##rd.live.dir=} + return + fi + if [ "\${arg##live_dir=}" != "\${arg}" ]; then + livedir=\${arg##live_dir=} + return + fi +done + +# enable swaps unless requested otherwise +swaps=\`blkid -t TYPE=swap -o device\` +if ! strstr "\`cat /proc/cmdline\`" noswap && [ -n "\$swaps" ] ; then + for s in \$swaps ; do + action "Enabling swap partition \$s" swapon \$s + done +fi +if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /run/initramfs/live/\${livedir}/swap.img ] ; then + action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img +fi + +mountPersistentHome() { + # support label/uuid + if [ "\${homedev##LABEL=}" != "\${homedev}" -o "\${homedev##UUID=}" != "\${homedev}" ]; then + homedev=\`/sbin/blkid -o device -t "\$homedev"\` + fi + + # if we're given a file rather than a blockdev, loopback it + if [ "\${homedev##mtd}" != "\${homedev}" ]; then + # mtd devs don't have a block device but get magic-mounted with -t jffs2 + mountopts="-t jffs2" + elif [ ! -b "\$homedev" ]; then + loopdev=\`losetup -f\` + if [ "\${homedev##/run/initramfs/live}" != "\${homedev}" ]; then + action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live + fi + losetup \$loopdev \$homedev + homedev=\$loopdev + fi + + # if it's encrypted, we need to unlock it + if [ "\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" = "crypto_LUKS" ]; then + echo + echo "Setting up encrypted /home device" + plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome" + homedev=/dev/mapper/EncHome + fi + + # and finally do the mount + mount \$mountopts \$homedev /home + # if we have /home under what's passed for persistent home, then + # we should make that the real /home. useful for mtd device on olpc + if [ -d /home/home ]; then mount --bind /home/home /home ; fi + [ -x /sbin/restorecon ] && /sbin/restorecon /home + if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi +} + +findPersistentHome() { + for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##persistenthome=}" != "\${arg}" ]; then + homedev=\${arg##persistenthome=} + return + fi + done +} + +if strstr "\`cat /proc/cmdline\`" persistenthome= ; then + findPersistentHome +elif [ -e /run/initramfs/live/\${livedir}/home.img ]; then + homedev=/run/initramfs/live/\${livedir}/home.img +fi + +# if we have a persistent /home, then we want to go ahead and mount it +if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then + action "Mounting persistent /home" mountPersistentHome +fi + +# make it so that we don't do writing to the overlay for things which +# are just tmpdirs/caches +mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum +mount -t tmpfs vartmp /var/tmp +[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /var/tmp >/dev/null 2>&1 + +if [ -n "\$configdone" ]; then + exit 0 +fi + +# add fedora user with no passwd +action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser +passwd -d liveuser > /dev/null +usermod -aG wheel liveuser > /dev/null + +# Remove root password lock +passwd -d root > /dev/null + +# turn off firstboot for livecd boots +systemctl --no-reload disable firstboot-text.service 2> /dev/null || : +systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || : +systemctl stop firstboot-text.service 2> /dev/null || : +systemctl stop firstboot-graphical.service 2> /dev/null || : + +# don't use prelink on a running live image +sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || : + +# turn off mdmonitor by default +systemctl --no-reload disable mdmonitor.service 2> /dev/null || : +systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || : +systemctl stop mdmonitor.service 2> /dev/null || : +systemctl stop mdmonitor-takeover.service 2> /dev/null || : + +# don't enable the gnome-settings-daemon packagekit plugin +gsettings set org.gnome.settings-daemon.plugins.updates active 'false' || : + +# don't start cron/at as they tend to spawn things which are +# disk intensive that are painful on a live image +systemctl --no-reload disable crond.service 2> /dev/null || : +systemctl --no-reload disable atd.service 2> /dev/null || : +systemctl stop crond.service 2> /dev/null || : +systemctl stop atd.service 2> /dev/null || : + +# Mark things as configured +touch /.liveimg-configured + +# add static hostname to work around xauth bug +# https://bugzilla.redhat.com/show_bug.cgi?id=679486 +echo "localhost" > /etc/hostname + +# Fixing the lang install issue when other lang than English is selected . See http://bugs.centos.org/view.php?id=7217 +/usr/bin/cp /usr/lib/python2.7/site-packages/blivet/size.py /usr/lib/python2.7/site-packages/blivet/size.py.orig +/usr/bin/sed -i "s#return self.humanReadable()#return self.humanReadable().encode('utf-8')#g" /usr/lib/python2.7/site-packages/blivet/size.py + +EOF + +# Fixing the logout-prompt issue - https://bugs.centos.org/view.php?id=8834 +cat > /etc/xdg/autostart/gsettings-logout-prompt.desktop << EOF +[Desktop Entry] +Version=1.0 +Name=GSettings Logout Prompt workaround +Comment=Workaround to not display the logout-prompt - https://bugs.centos.org/view.php?id=8834 +Exec=gsettings set org.gnome.SessionManager logout-prompt false +Terminal=false +Type=Application +OnlyShowIn=GNOME;Unity; +X-GNOME-Autostart-Phase=Initialization + +EOF + +# Patching livepayload too https://bugzilla.redhat.com/show_bug.cgi?id=1100504 +cat > /tmp/livepayload.patch < /etc/rc.d/init.d/livesys-late << EOF +#!/bin/bash +# +# live: Late init script for live image +# +# chkconfig: 345 99 01 +# description: Late init script for live image. + +. /etc/init.d/functions + +if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ] || [ -e /.liveimg-late-configured ] ; then + exit 0 +fi + +exists() { + which \$1 >/dev/null 2>&1 || return + \$* +} + +touch /.liveimg-late-configured + +# read some variables out of /proc/cmdline +for o in \`cat /proc/cmdline\` ; do + case \$o in + ks=*) + ks="--kickstart=\${o#ks=}" + ;; + xdriver=*) + xdriver="\${o#xdriver=}" + ;; + esac +done + +# if liveinst or textinst is given, start anaconda +if strstr "\`cat /proc/cmdline\`" liveinst ; then + plymouth --quit + /usr/sbin/liveinst \$ks +fi +if strstr "\`cat /proc/cmdline\`" textinst ; then + plymouth --quit + /usr/sbin/liveinst --text \$ks +fi + +# configure X, allowing user to override xdriver +if [ -n "\$xdriver" ]; then + cat > /etc/X11/xorg.conf.d/00-xdriver.conf <> /etc/rc.d/init.d/livesys << EOF + + +# disable updates plugin +cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE +[org.gnome.settings-daemon.plugins.updates] +active=false +FOE + +# Show the system-config-keyboard tool on the desktop +mkdir /home/liveuser/Desktop -p >/dev/null +cat /usr/share/applications/system-config-keyboard.desktop | sed '/NotShowIn/d' |sed 's/Terminal=false/Terminal=true/' > /home/liveuser/Desktop/system-config-keyboard.desktop +cat /usr/share/applications/liveinst.desktop | sed '/NoDisplay/d' > /home/liveuser/Desktop/liveinst.desktop +chmod +x /home/liveuser/Desktop/*.desktop +chown -R liveuser:liveuser /home/liveuser + +# Liveuser face +if [ -e /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png ] ; then + cp /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png /home/liveuser/.face + chown liveuser:liveuser /home/liveuser/.face +fi + +# make the installer show up +if [ -f /usr/share/applications/liveinst.desktop ]; then + # Show harddisk install in shell dash + sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop + # need to move it to anaconda.desktop to make shell happy + #cp /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop +fi + cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE +[org.gnome.shell] +favorite-apps=['liveinst.desktop','firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop', 'anaconda.desktop'] +FOE + + +# set up auto-login +cat > /etc/gdm/custom.conf << FOE +[daemon] +AutomaticLoginEnable=True +AutomaticLogin=liveuser +FOE + +# Turn off PackageKit-command-not-found while uninstalled +if [ -f /etc/PackageKit/CommandNotFound.conf ]; then + sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf +fi + +# make sure to set the right permissions and selinux contexts +chown -R liveuser:liveuser /home/liveuser/ +restorecon -R /home/liveuser/ + +# Fixing default locale to us +localectl set-keymap us +localectl set-x11-keymap us +EOF + +# rebuild schema cache with any overrides we installed +glib-compile-schemas /usr/share/glib-2.0/schemas + + +%end diff --git a/kickstarts/centos-7-live-kde-i386.cfg b/kickstarts/centos-7-live-kde-i386.cfg new file mode 100644 index 0000000..f66ea95 --- /dev/null +++ b/kickstarts/centos-7-live-kde-i386.cfg @@ -0,0 +1,429 @@ + +lang en_GB.UTF-8 +keyboard us +timezone Europe/Brussels --isUtc +auth --useshadow --enablemd5 +selinux --enforcing +firewall --enabled --service=mdns +xconfig --startxonboot +part / --size 8192 --fstype ext4 +services --enabled=NetworkManager --disabled=network,sshd + + +# Root password +rootpw --iscrypted $6$K2nKf02kVKG68960$OywvoaViphSITuro/liKvCj7Pm/CH/xqzz/lsoXyaKSR1lYf0vHAqSUc483a9MCCBkIwfr/hNMfqwxqVO0OEg1 + +# Workaround for the grubby issue on live media (see https://bugzilla.redhat.com/show_bug.cgi?id=1153410) +repo --name=base --baseurl=http://mirror.centos.org/altarch/7/os/i386/ --excludepkgs=grubby +repo --name=grubby --baseurl=http://dev.centos.org/c7.00.02/ +repo --name=updates --baseurl=http://mirror.centos.org/altarch/7/updates/i386/ + +%packages +@base +@core +@dial-up +@directory-client +@fonts +@kde-desktop +@guest-agents +@guest-desktop-agents +@input-methods +@internet-browser +@java-platform +@multimedia +@network-file-system-client +@print-client +@x11 +@internet-applications +@office-suite +@remote-desktop-clients +@kde-apps +@kde-media + + +#Live install tools +anaconda +system-config-keyboard +firefox +patch + +# For UEFI/Secureboot support +#grub2 +#grub2-efi +#efibootmgr +#shim + +%end + +%post +# FIXME: it'd be better to get this installed from a package +cat > /etc/rc.d/init.d/livesys << EOF +#!/bin/bash +# +# live: Init script for live image +# +# chkconfig: 345 00 99 +# description: Init script for live image. +### BEGIN INIT INFO +# X-Start-Before: display-manager +### END INIT INFO + +. /etc/init.d/functions + +if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ]; then + exit 0 +fi + +if [ -e /.liveimg-configured ] ; then + configdone=1 +fi + +exists() { + which \$1 >/dev/null 2>&1 || return + \$* +} + +# Make sure we don't mangle the hardware clock on shutdown +ln -sf /dev/null /etc/systemd/system/hwclock-save.service + +livedir="LiveOS" +for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then + livedir=\${arg##rd.live.dir=} + return + fi + if [ "\${arg##live_dir=}" != "\${arg}" ]; then + livedir=\${arg##live_dir=} + return + fi +done + +# enable swaps unless requested otherwise +swaps=\`blkid -t TYPE=swap -o device\` +if ! strstr "\`cat /proc/cmdline\`" noswap && [ -n "\$swaps" ] ; then + for s in \$swaps ; do + action "Enabling swap partition \$s" swapon \$s + done +fi +if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /run/initramfs/live/\${livedir}/swap.img ] ; then + action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img +fi + +mountPersistentHome() { + # support label/uuid + if [ "\${homedev##LABEL=}" != "\${homedev}" -o "\${homedev##UUID=}" != "\${homedev}" ]; then + homedev=\`/sbin/blkid -o device -t "\$homedev"\` + fi + + # if we're given a file rather than a blockdev, loopback it + if [ "\${homedev##mtd}" != "\${homedev}" ]; then + # mtd devs don't have a block device but get magic-mounted with -t jffs2 + mountopts="-t jffs2" + elif [ ! -b "\$homedev" ]; then + loopdev=\`losetup -f\` + if [ "\${homedev##/run/initramfs/live}" != "\${homedev}" ]; then + action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live + fi + losetup \$loopdev \$homedev + homedev=\$loopdev + fi + + # if it's encrypted, we need to unlock it + if [ "\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" = "crypto_LUKS" ]; then + echo + echo "Setting up encrypted /home device" + plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome" + homedev=/dev/mapper/EncHome + fi + + # and finally do the mount + mount \$mountopts \$homedev /home + # if we have /home under what's passed for persistent home, then + # we should make that the real /home. useful for mtd device on olpc + if [ -d /home/home ]; then mount --bind /home/home /home ; fi + [ -x /sbin/restorecon ] && /sbin/restorecon /home + if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi +} + +findPersistentHome() { + for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##persistenthome=}" != "\${arg}" ]; then + homedev=\${arg##persistenthome=} + return + fi + done +} + +if strstr "\`cat /proc/cmdline\`" persistenthome= ; then + findPersistentHome +elif [ -e /run/initramfs/live/\${livedir}/home.img ]; then + homedev=/run/initramfs/live/\${livedir}/home.img +fi + +# if we have a persistent /home, then we want to go ahead and mount it +if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then + action "Mounting persistent /home" mountPersistentHome +fi + +# make it so that we don't do writing to the overlay for things which +# are just tmpdirs/caches +mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum +mount -t tmpfs vartmp /var/tmp +[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /var/tmp >/dev/null 2>&1 + +if [ -n "\$configdone" ]; then + exit 0 +fi + +# add fedora user with no passwd +action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser +passwd -d liveuser > /dev/null +usermod -aG wheel liveuser > /dev/null + +# Remove root password lock +passwd -d root > /dev/null + +# turn off firstboot for livecd boots +systemctl --no-reload disable firstboot-text.service 2> /dev/null || : +systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || : +systemctl stop firstboot-text.service 2> /dev/null || : +systemctl stop firstboot-graphical.service 2> /dev/null || : + +# don't use prelink on a running live image +sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || : + +# turn off mdmonitor by default +systemctl --no-reload disable mdmonitor.service 2> /dev/null || : +systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || : +systemctl stop mdmonitor.service 2> /dev/null || : +systemctl stop mdmonitor-takeover.service 2> /dev/null || : + +# don't enable the gnome-settings-daemon packagekit plugin +gsettings set org.gnome.settings-daemon.plugins.updates active 'false' || : + +# don't start cron/at as they tend to spawn things which are +# disk intensive that are painful on a live image +systemctl --no-reload disable crond.service 2> /dev/null || : +systemctl --no-reload disable atd.service 2> /dev/null || : +systemctl stop crond.service 2> /dev/null || : +systemctl stop atd.service 2> /dev/null || : + +# Mark things as configured +touch /.liveimg-configured + +# add static hostname to work around xauth bug +# https://bugzilla.redhat.com/show_bug.cgi?id=679486 +echo "localhost" > /etc/hostname + +# Fixing the lang install issue when other lang than English is selected . See http://bugs.centos.org/view.php?id=7217 +/usr/bin/cp /usr/lib/python2.7/site-packages/blivet/size.py /usr/lib/python2.7/site-packages/blivet/size.py.orig +/usr/bin/sed -i "s#return self.humanReadable()#return self.humanReadable().encode('utf-8')#g" /usr/lib/python2.7/site-packages/blivet/size.py + +EOF + +# Fixing the logout-prompt issue - https://bugs.centos.org/view.php?id=8834 +cat > /etc/xdg/autostart/gsettings-logout-prompt.desktop << EOF +[Desktop Entry] +Version=1.0 +Name=GSettings Logout Prompt workaround +Comment=Workaround to not display the logout-prompt - https://bugs.centos.org/view.php?id=8834 +Exec=gsettings set org.gnome.SessionManager logout-prompt false +Terminal=false +Type=Application +OnlyShowIn=GNOME;Unity; +X-GNOME-Autostart-Phase=Initialization + +EOF + + +# Patching livepayload too https://bugzilla.redhat.com/show_bug.cgi?id=1100504 +cat > /tmp/livepayload.patch < /etc/rc.d/init.d/livesys-late << EOF +#!/bin/bash +# +# live: Late init script for live image +# +# chkconfig: 345 99 01 +# description: Late init script for live image. + +. /etc/init.d/functions + +if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ] || [ -e /.liveimg-late-configured ] ; then + exit 0 +fi + +exists() { + which \$1 >/dev/null 2>&1 || return + \$* +} + +touch /.liveimg-late-configured + +# read some variables out of /proc/cmdline +for o in \`cat /proc/cmdline\` ; do + case \$o in + ks=*) + ks="--kickstart=\${o#ks=}" + ;; + xdriver=*) + xdriver="\${o#xdriver=}" + ;; + esac +done + +# if liveinst or textinst is given, start anaconda +if strstr "\`cat /proc/cmdline\`" liveinst ; then + plymouth --quit + /usr/sbin/liveinst \$ks +fi +if strstr "\`cat /proc/cmdline\`" textinst ; then + plymouth --quit + /usr/sbin/liveinst --text \$ks +fi + +# configure X, allowing user to override xdriver +if [ -n "\$xdriver" ]; then + cat > /etc/X11/xorg.conf.d/00-xdriver.conf <> /etc/rc.d/init.d/livesys << EOF + + +# disable updates plugin +cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE +[org.gnome.settings-daemon.plugins.updates] +active=false +FOE + +# Show the system-config-keyboard tool on the desktop +mkdir /home/liveuser/Desktop -p >/dev/null +cat /usr/share/applications/system-config-keyboard.desktop | sed '/NotShowIn/d' |sed 's/Terminal=false/Terminal=true/' > /home/liveuser/Desktop/system-config-keyboard.desktop +cat /usr/share/applications/liveinst.desktop | sed '/NoDisplay/d' > /home/liveuser/Desktop/liveinst.desktop +chmod +x /home/liveuser/Desktop/*.desktop +chown -R liveuser:liveuser /home/liveuser + +# Liveuser face +if [ -e /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png ] ; then + cp /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png /home/liveuser/.face + chown liveuser:liveuser /home/liveuser/.face +fi + +# make the installer show up +if [ -f /usr/share/applications/liveinst.desktop ]; then + # Show harddisk install in shell dash + sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop + # need to move it to anaconda.desktop to make shell happy + #cp /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop +fi + cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE +[org.gnome.shell] +favorite-apps=['liveinst.desktop','firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop', 'anaconda.desktop'] +FOE + +# add liveinst.desktop to favorites menu +mkdir -p /home/liveuser/.kde/share/config/ +cat > /home/liveuser/.kde/share/config/kickoffrc << MENU_EOF +[Favorites] +FavoriteURLs=/usr/share/applications/kde4/konqbrowser.desktop,/usr/share/applications/kde4/dolphin.desktop,/usr/share/applications/kde4/systemsettings.desktop,/usr/share/applications/liveinst.desktop +MENU_EOF + +# set up auto-login +cat > /etc/gdm/custom.conf << FOE +[daemon] +AutomaticLoginEnable=True +AutomaticLogin=liveuser +FOE + +# Turn off PackageKit-command-not-found while uninstalled +if [ -f /etc/PackageKit/CommandNotFound.conf ]; then + sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf +fi + +# make sure to set the right permissions and selinux contexts +chown -R liveuser:liveuser /home/liveuser/ +restorecon -R /home/liveuser/ + +# Fixing default locale to us +localectl set-keymap us +localectl set-x11-keymap us +EOF + +# rebuild schema cache with any overrides we installed +glib-compile-schemas /usr/share/glib-2.0/schemas + + +%end diff --git a/kickstarts/centos-7-livecd-i386.cfg b/kickstarts/centos-7-livecd-i386.cfg new file mode 100644 index 0000000..cacc843 --- /dev/null +++ b/kickstarts/centos-7-livecd-i386.cfg @@ -0,0 +1,1386 @@ + +lang en_GB.UTF-8 +keyboard us +timezone Europe/Brussels --isUtc +auth --useshadow --enablemd5 +selinux --enforcing +firewall --enabled --service=mdns +xconfig --startxonboot +part / --size 8192 --fstype ext4 +services --enabled=NetworkManager --disabled=network,sshd + + +# Root password +rootpw --iscrypted $6$K2nKf02kVKG68960$OywvoaViphSITuro/liKvCj7Pm/CH/xqzz/lsoXyaKSR1lYf0vHAqSUc483a9MCCBkIwfr/hNMfqwxqVO0OEg1 + +# Workaround for the grubby issue on live media (see https://bugzilla.redhat.com/show_bug.cgi?id=1153410) +repo --name=base --baseurl=http://mirror.centos.org/altarch/7/os/i386/ --excludepkgs=grubby +repo --name=grubby --baseurl=http://dev.centos.org/c7.00.02/ +repo --name=updates --baseurl=http://mirror.centos.org/altarch/7/updates/i386/ + +%packages +abattis-cantarell-fonts +accountsservice +accountsservice-libs +acl +adwaita-cursor-theme +adwaita-gtk2-theme +adwaita-gtk3-theme +aic94xx-firmware +alsa-firmware +alsa-lib +alsa-tools-firmware +anaconda +anaconda-widgets +at +atk +atkmm +at-spi2-atk +at-spi2-core +attr +audit +audit-libs +audit-libs-python +augeas-libs +authconfig +avahi +avahi-autoipd +avahi-glib +avahi-gobject +avahi-libs +avahi-ui-gtk3 +baobab +basesystem +bash +bash-completion +bc +bind-libs +bind-libs-lite +bind-license +bind-utils +binutils +biosdevname +blktrace +bluez +bluez-libs +bridge-utils +btrfs-progs +bzip2 +bzip2-libs +ca-certificates +cairo +cairo-gobject +cairomm +caribou +caribou-gtk2-module +caribou-gtk3-module +cdparanoia-libs +celt051 +checkpolicy +cheese +cheese-libs +chkconfig +chrony +clutter +clutter-gst2 +clutter-gtk +cogl +colord +colord-gtk +colord-libs +color-filesystem +comps-extras +control-center +control-center-filesystem +coreutils +cpio +cracklib +cracklib-dicts +crda +createrepo +cronie +cronie-anacron +crontabs +cryptsetup +cryptsetup-libs +cryptsetup-python +cups-libs +cups-pk-helper +curl +cyrus-sasl-lib +cyrus-sasl-plain +dbus +dbus-glib +dbus-libs +dbus-python +dbus-x11 +dconf +dejavu-fonts-common +dejavu-sans-fonts +dejavu-sans-mono-fonts +dejavu-serif-fonts +deltarpm +desktop-file-utils +device-mapper +device-mapper-event +device-mapper-event-libs +device-mapper-libs +device-mapper-multipath +device-mapper-multipath-libs +device-mapper-persistent-data +dhclient +dhcp-common +dhcp-libs +diffutils +dmidecode +dmraid +dmraid-events +dnsmasq +dosfstools +dracut +dracut-config-rescue +dracut-network +dyninst +e2fsprogs +e2fsprogs-libs +ebtables +ed +elfutils-libelf +elfutils-libs +emacs-filesystem +enchant +eog +ethtool +evolution-data-server +exempi +exiv2-libs +expat +fcoe-utils +file +file-libs +file-roller +file-roller-nautilus +filesystem +findutils +fipscheck +fipscheck-lib +firefox +firewall-config +firewalld +firstboot +flac-libs +folks +fontconfig +fontpackages-filesystem +fprintd +fprintd-pam +freerdp +freerdp-libs +freerdp-plugins +freetype +frei0r-plugins +fros +fuse +fuse-libs +fxload +gamin +gavl +gawk +GConf2 +gcr +gd +gdbm +gdisk +gdk-pixbuf2 +gdm +gdm-libs +gedit +geoclue +gettext +gettext-libs +ghostscript +ghostscript-fonts +giflib +gjs +glade-libs +glib2 +glibc +glibc-common +glibmm24 +glib-networking +#glusterfs-api +#glusterfs-libs +glx-utils +gmp +gnome-bluetooth +gnome-bluetooth-libs +gnome-calculator +gnome-classic-session +gnome-clocks +gnome-color-manager +gnome-contacts +gnome-desktop3 +gnome-dictionary +gnome-disk-utility +gnome-documents +gnome-font-viewer +gnome-icon-theme +gnome-icon-theme-extras +gnome-icon-theme-legacy +gnome-icon-theme-symbolic +gnome-keyring +gnome-keyring-pam +gnome-menus +gnome-online-accounts +gnome-packagekit +gnome-python2 +gnome-python2-bonobo +gnome-python2-canvas +gnome-python2-gnome +gnome-python2-gnomevfs +gnome-screenshot +gnome-session +gnome-session-xsession +gnome-settings-daemon +gnome-settings-daemon-updates +gnome-shell +gnome-shell-extension-alternate-tab +gnome-shell-extension-apps-menu +gnome-shell-extension-common +gnome-shell-extension-launch-new-instance +gnome-shell-extension-places-menu +gnome-shell-extension-window-list +gnome-system-log +gnome-system-monitor +gnome-terminal +gnome-themes-standard +gnome-tweak-tool +gnome-user-docs +gnome-vfs2 +gnome-video-effects +gnu-free-fonts-common +gnu-free-mono-fonts +gnu-free-sans-fonts +gnu-free-serif-fonts +gnupg2 +gnutls +gobject-introspection +google-crosextra-caladea-fonts +google-crosextra-carlito-fonts +gpgme +gpm-libs +graphite2 +grep +grilo +grilo-plugins +groff-base +grub2 +grub2-tools +grubby +gsettings-desktop-schemas +gsm +gssdp +gstreamer1 +gstreamer1-plugins-bad-free +gstreamer1-plugins-base +gstreamer1-plugins-good +gtk2 +gtk2-immodule-xim +gtk3 +gtk3-immodule-xim +gtkmm30 +gtksourceview3 +gtk-vnc2 +gucharmap +gupnp +gupnp-av +gvfs +gvfs-afc +gvfs-afp +gvfs-archive +gvfs-fuse +gvfs-goa +gvfs-gphoto2 +gvfs-mtp +gvfs-smb +gvnc +gzip +hardlink +harfbuzz +harfbuzz-icu +hicolor-icon-theme +hostname +hplip-common +hunspell +hunspell-en +hunspell-en-GB +hunspell-en-US +hwdata +ibus +ibus-chewing +ibus-gtk2 +ibus-gtk3 +ibus-hangul +ibus-libs +ibus-m17n +ibus-rawcode +ibus-sayura +ibus-setup +ibus-table +ibus-table-chinese +imsettings +imsettings-gsettings +imsettings-libs +info +initial-setup +initscripts +iproute +iprutils +iptables +iputils +irqbalance +iscsi-initiator-utils +iscsi-initiator-utils-iscsiuio +iso-codes +isomd5sum +ivtv-firmware +iw +iwl1000-firmware +iwl100-firmware +iwl105-firmware +iwl135-firmware +iwl2000-firmware +iwl2030-firmware +iwl3160-firmware +iwl3945-firmware +iwl4965-firmware +iwl5000-firmware +iwl5150-firmware +iwl6000-firmware +iwl6000g2a-firmware +iwl6000g2b-firmware +iwl6050-firmware +iwl7260-firmware +jansson +jasper-libs +jbigkit-libs +jomolhari-fonts +js +json-c +json-glib +kbd +kbd-misc +kernel +kernel-tools +kernel-tools-libs +kexec-tools +keybinder3 +keyutils-libs +khmeros-base-fonts +khmeros-fonts-common +kmod +kmod-libs +kpartx +kpatch +krb5-libs +langtable +langtable-data +langtable-python +lcms2 +ldns +ledmon +less +libacl +libaio +libarchive +libart_lgpl +libassuan +libasyncns +libatasmart +libattr +libavc1394 +libblkid +libbluray +libbonobo +libbonoboui +libcacard +libcanberra +libcanberra-gtk2 +libcanberra-gtk3 +libcap +libcap-ng +libcdio +libcdio-paranoia +libcgroup +libchewing +libcom_err +libconfig +libcroco +libcurl +libdaemon +libdb +libdb-utils +libdmapsharing +libdmx +libdrm +libdv +libdvdnav +libdvdread +libdwarf +libedit +liberation-fonts-common +liberation-mono-fonts +liberation-sans-fonts +liberation-serif-fonts +libestr +libevent +libexif +libffi +libfontenc +libfprint +libgcc +libgcrypt +libgdata +libgdither +libgee +libgee06 +libglade2 +libgnome +libgnomecanvas +libgnomekbd +libgnome-keyring +libgnomeui +libgomp +libgpg-error +libgphoto2 +libgsf +libgtop2 +libgudev1 +libgusb +libgweather +libgxps +libhangul +libhbaapi +libhbalinux +libical +libICE +libicu +libIDL +libidn +libiec61883 +libieee1284 +libimobiledevice +libiptcdata +libiscsi +libjpeg-turbo +libldb +libmnl +libmodman +libmount +libmtp +libmusicbrainz5 +libndp +libnetfilter_conntrack +libnfnetlink +libnl +libnl3 +libnl3-cli +libnm-gtk +libnotify +liboauth +libogg +libosinfo +libpcap +libpciaccess +libpeas +libpipeline +libplist +libpng +libproxy +libproxy-mozjs +libpwquality +libquvi +libquvi-scripts +libraw1394 +libreport +libreport-anaconda +libreport-cli +libreport-filesystem +libreport-gtk +libreport-plugin-bugzilla +libreport-plugin-mailx +libreport-plugin-reportuploader +libreport-plugin-rhtsupport +libreport-python +libreport-rhel-anaconda-bugzilla +libreport-web +libreswan +librsvg2 +libsamplerate +libsecret +libselinux +libselinux-python +libselinux-utils +libsemanage +libsemanage-python +libsepol +libshout +libsigc++20 +libSM +libsmbclient +libsndfile +libsoup +libspectre +libss +libssh2 +libstdc++ +libstoragemgmt +libstoragemgmt-python +libsysfs +libtalloc +libtar +libtasn1 +libtdb +libteam +libtevent +libthai +libtheora +libtiff +libtool-ltdl +libudisks2 +libunistring +libusb +libusbx +libuser +libuser-python +libutempter +libuuid +libv4l +libverto +libvisual +libvorbis +libvpx +libwacom +libwacom-data +libwbclient +libwebp +libwnck3 +libX11 +libX11-common +libXau +libxcb +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXft +libXi +libXinerama +libxkbfile +libxklavier +libxml2 +libxml2-python +libXmu +libXpm +libXrandr +libXrender +libXres +libxslt +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libzapojit +linuxconsoletools +linux-firmware +lklug-fonts +lldpad +lm_sensors-libs +lockdev +logrotate +lohit-assamese-fonts +lohit-bengali-fonts +lohit-devanagari-fonts +lohit-gujarati-fonts +lohit-kannada-fonts +lohit-malayalam-fonts +lohit-marathi-fonts +lohit-nepali-fonts +lohit-oriya-fonts +lohit-punjabi-fonts +lohit-tamil-fonts +lohit-telugu-fonts +lsof +lua +lvm2 +lvm2-libs +lzo +m17n-contrib +m17n-db +m17n-lib +m2crypto +madan-fonts +mailx +make +man-db +man-pages +man-pages-overrides +mariadb-libs +marisa +mdadm +mesa-dri-drivers +mesa-filesystem +mesa-libEGL +mesa-libgbm +mesa-libGL +mesa-libglapi +mesa-libxatracker +mesa-private-llvm +metacity +microcode_ctl +mlocate +mobile-broadband-provider-info +ModemManager-glib +mousetweaks +mozilla-filesystem +mozjs17 +mtdev +mtools +mtr +mutter +nano +nautilus +nautilus-extensions +nautilus-open-terminal +nautilus-sendto +ncurses +ncurses-base +ncurses-libs +neon +net-snmp-libs +nettle +net-tools +NetworkManager +#NetworkManager-config-server +NetworkManager-glib +NetworkManager-libreswan +NetworkManager-tui +newt +newt-python +nm-connection-editor +nspr +nss +nss-softokn +nss-softokn-freebl +nss-sysinit +nss-tools +nss-util +ntpdate +ntsysv +numactl-libs +obexd +oddjob +oddjob-mkhomedir +openjpeg-libs +openldap +openssh +openssh-clients +openssh-server +openssl +openssl-libs +opus +ORBit2 +orc +os-prober +overpass-fonts +p11-kit +p11-kit-trust +PackageKit +PackageKit-command-not-found +PackageKit-device-rebind +PackageKit-glib +PackageKit-gtk3-module +PackageKit-yum +pakchois +paktype-naskh-basic-fonts +pam +pango +pangomm +paratype-pt-sans-fonts +parted +passwd +patch +pciutils +pciutils-libs +pcre +pcsc-lite-libs +perl +perl-Carp +perl-constant +perl-Encode +perl-Exporter +perl-File-Path +perl-File-Temp +perl-Filter +perl-Getopt-Long +perl-HTTP-Tiny +perl-libs +perl-macros +perl-parent +perl-PathTools +perl-Pod-Escapes +perl-podlators +perl-Pod-Perldoc +perl-Pod-Simple +perl-Pod-Usage +perl-Scalar-List-Utils +perl-Socket +perl-Storable +perl-Text-ParseWords +perl-threads +perl-threads-shared +perl-Time-Local +pinentry +pinentry-gtk +pinfo +pixman +pkgconfig +plymouth +plymouth-core-libs +plymouth-graphics-libs +plymouth-plugin-label +plymouth-plugin-two-step +plymouth-scripts +plymouth-system-theme +plymouth-theme-charge +pm-utils +policycoreutils +policycoreutils-python +polkit +polkit-pkla-compat +poppler +poppler-data +poppler-glib +popt +#postfix +ppp +procps-ng +psacct +psmisc +pth +pulseaudio +pulseaudio-gdm-hooks +pulseaudio-libs +pulseaudio-libs-glib2 +pulseaudio-module-bluetooth +pyatspi +pycairo +pygobject2 +pygobject3 +pygobject3-base +pygpgme +pygtk2 +pygtk2-libglade +pykickstart +pyliblzma +pyOpenSSL +pyorbit +pyparted +pytalloc +python +python-backports +python-backports-ssl_match_hostname +python-blivet +python-caribou +python-chardet +python-configobj +python-coverage +python-dateutil +python-decorator +python-deltarpm +python-di +python-dmidecode +python-ethtool +python-gudev +python-hwdata +python-iniparse +python-IPy +python-kitchen +python-libs +python-lxml +python-meh +python-nss +python-pwquality +python-pyblock +python-pycurl +python-pyudev +python-setuptools +python-slip +python-slip-dbus +python-urlgrabber +pytz +pyxattr +qrencode-libs +quota +quota-nls +rdate +readline +realmd +centos-bookmarks +centos-indexhtml +centos-logos +redhat-menus +rest +rfkill +rng-tools +rootfiles +rpm +rpm-build-libs +rpm-libs +rpm-python +rsync +rsyslog +rsyslog-mmjsonparse +rtkit +samba-common +samba-libs +satyr +sbc +scl-utils +SDL +seahorse +sed +selinux-policy +selinux-policy-targeted +setools-libs +setroubleshoot +setroubleshoot-plugins +setroubleshoot-server +setserial +setup +setuptool +sg3_utils-libs +sgpio +shadow-utils +shared-mime-info +sil-abyssinica-fonts +sil-nuosu-fonts +sil-padauk-fonts +slang +smartmontools +smc-fonts-common +smc-meera-fonts +snappy +sos +sound-theme-freedesktop +soundtouch +speex +spice-glib +spice-gtk3 +spice-vdagent +sqlite +sssd-client +startup-notification +stix-fonts +strace +sudo +sushi +syslinux +sysstat +system-config-keyboard +system-config-keyboard-base +systemd +systemd-libs +systemd-python +systemd-sysv +systemtap-runtime +sysvinit-tools +taglib +tar +tcpdump +tcp_wrappers +tcp_wrappers-libs +tcsh +teamd +telepathy-filesystem +telepathy-glib +telepathy-logger +thai-scalable-fonts-common +thai-scalable-waree-fonts +tigervnc-license +tigervnc-server-minimal +time +totem +totem-nautilus +totem-pl-parser +traceroute +tracker +tuned +tzdata +ucs-miscfixed-fonts +udisks2 +unbound-libs +unzip +upower +urw-fonts +usb_modeswitch +usb_modeswitch-data +usbmuxd +usbredir +usbutils +usermode +usermode-gtk +ustr +util-linux +vim-common +vim-enhanced +vim-filesystem +vim-minimal +vinagre +vino +virt-what +vlgothic-fonts +vte3 +wavpack +webkitgtk3 +webrtc-audio-processing +wget +which +words +wpa_supplicant +wqy-microhei-fonts +xcb-util +xdg-user-dirs +xdg-user-dirs-gtk +xdg-utils +xfsdump +xfsprogs +xkeyboard-config +xml-common +xmlrpc-c +xmlrpc-c-client +xorg-x11-drivers +xorg-x11-drv-ati +xorg-x11-drv-dummy +xorg-x11-drv-evdev +xorg-x11-drv-fbdev +xorg-x11-drv-intel +xorg-x11-drv-modesetting +xorg-x11-drv-nouveau +xorg-x11-drv-qxl +xorg-x11-drv-synaptics +xorg-x11-drv-v4l +xorg-x11-drv-vesa +xorg-x11-drv-vmmouse +xorg-x11-drv-vmware +xorg-x11-drv-void +xorg-x11-drv-wacom +xorg-x11-font-utils +xorg-x11-glamor +xorg-x11-server-common +xorg-x11-server-utils +xorg-x11-server-Xorg +xorg-x11-utils +xorg-x11-xauth +xorg-x11-xinit +xorg-x11-xkb-utils +xvattr +xz +xz-libs +yajl +yelp +yelp-libs +yelp-xsl +yum +yum-langpacks +yum-metadata-parser +yum-utils +zenity +zip +zlib + +# For UEFI/Secureboot support +#grub2 +#grub2-efi +#efibootmgr +#shim + + + +%end + +%post +# FIXME: it'd be better to get this installed from a package +cat > /etc/rc.d/init.d/livesys << EOF +#!/bin/bash +# +# live: Init script for live image +# +# chkconfig: 345 00 99 +# description: Init script for live image. +### BEGIN INIT INFO +# X-Start-Before: display-manager +### END INIT INFO + +. /etc/init.d/functions + +if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ]; then + exit 0 +fi + +if [ -e /.liveimg-configured ] ; then + configdone=1 +fi + +exists() { + which \$1 >/dev/null 2>&1 || return + \$* +} + +# Make sure we don't mangle the hardware clock on shutdown +ln -sf /dev/null /etc/systemd/system/hwclock-save.service + +livedir="LiveOS" +for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then + livedir=\${arg##rd.live.dir=} + return + fi + if [ "\${arg##live_dir=}" != "\${arg}" ]; then + livedir=\${arg##live_dir=} + return + fi +done + +# enable swaps unless requested otherwise +swaps=\`blkid -t TYPE=swap -o device\` +if ! strstr "\`cat /proc/cmdline\`" noswap && [ -n "\$swaps" ] ; then + for s in \$swaps ; do + action "Enabling swap partition \$s" swapon \$s + done +fi +if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /run/initramfs/live/\${livedir}/swap.img ] ; then + action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img +fi + +mountPersistentHome() { + # support label/uuid + if [ "\${homedev##LABEL=}" != "\${homedev}" -o "\${homedev##UUID=}" != "\${homedev}" ]; then + homedev=\`/sbin/blkid -o device -t "\$homedev"\` + fi + + # if we're given a file rather than a blockdev, loopback it + if [ "\${homedev##mtd}" != "\${homedev}" ]; then + # mtd devs don't have a block device but get magic-mounted with -t jffs2 + mountopts="-t jffs2" + elif [ ! -b "\$homedev" ]; then + loopdev=\`losetup -f\` + if [ "\${homedev##/run/initramfs/live}" != "\${homedev}" ]; then + action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live + fi + losetup \$loopdev \$homedev + homedev=\$loopdev + fi + + # if it's encrypted, we need to unlock it + if [ "\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" = "crypto_LUKS" ]; then + echo + echo "Setting up encrypted /home device" + plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome" + homedev=/dev/mapper/EncHome + fi + + # and finally do the mount + mount \$mountopts \$homedev /home + # if we have /home under what's passed for persistent home, then + # we should make that the real /home. useful for mtd device on olpc + if [ -d /home/home ]; then mount --bind /home/home /home ; fi + [ -x /sbin/restorecon ] && /sbin/restorecon /home + if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi +} + +findPersistentHome() { + for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##persistenthome=}" != "\${arg}" ]; then + homedev=\${arg##persistenthome=} + return + fi + done +} + +if strstr "\`cat /proc/cmdline\`" persistenthome= ; then + findPersistentHome +elif [ -e /run/initramfs/live/\${livedir}/home.img ]; then + homedev=/run/initramfs/live/\${livedir}/home.img +fi + +# if we have a persistent /home, then we want to go ahead and mount it +if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then + action "Mounting persistent /home" mountPersistentHome +fi + +# make it so that we don't do writing to the overlay for things which +# are just tmpdirs/caches +mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum +mount -t tmpfs vartmp /var/tmp +[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /var/tmp >/dev/null 2>&1 + +if [ -n "\$configdone" ]; then + exit 0 +fi + +# add fedora user with no passwd +action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser +passwd -d liveuser > /dev/null +usermod -aG wheel liveuser > /dev/null + +# Remove root password lock +passwd -d root > /dev/null + +# turn off firstboot for livecd boots +systemctl --no-reload disable firstboot-text.service 2> /dev/null || : +systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || : +systemctl stop firstboot-text.service 2> /dev/null || : +systemctl stop firstboot-graphical.service 2> /dev/null || : + +# don't use prelink on a running live image +sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || : + +# turn off mdmonitor by default +systemctl --no-reload disable mdmonitor.service 2> /dev/null || : +systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || : +systemctl stop mdmonitor.service 2> /dev/null || : +systemctl stop mdmonitor-takeover.service 2> /dev/null || : + +# don't enable the gnome-settings-daemon packagekit plugin +gsettings set org.gnome.settings-daemon.plugins.updates active 'false' || : + +# Disable logout-prompt - https://bugs.centos.org/view.php?id=8834 +gsettings get org.gnome.SessionManager logout-prompt 'false' || : + +# don't start cron/at as they tend to spawn things which are +# disk intensive that are painful on a live image +systemctl --no-reload disable crond.service 2> /dev/null || : +systemctl --no-reload disable atd.service 2> /dev/null || : +systemctl stop crond.service 2> /dev/null || : +systemctl stop atd.service 2> /dev/null || : + +# Mark things as configured +touch /.liveimg-configured + +# add static hostname to work around xauth bug +# https://bugzilla.redhat.com/show_bug.cgi?id=679486 +echo "localhost" > /etc/hostname + +# Fixing the lang install issue when other lang than English is selected . See http://bugs.centos.org/view.php?id=7217 +/usr/bin/cp /usr/lib/python2.7/site-packages/blivet/size.py /usr/lib/python2.7/site-packages/blivet/size.py.orig +/usr/bin/sed -i "s#return self.humanReadable()#return self.humanReadable().encode('utf-8')#g" /usr/lib/python2.7/site-packages/blivet/size.py + +EOF + +# Fixing the logout-prompt issue - https://bugs.centos.org/view.php?id=8834 +cat > /etc/xdg/autostart/gsettings-logout-prompt.desktop << EOF +[Desktop Entry] +Version=1.0 +Name=GSettings Logout Prompt workaround +Comment=Workaround to not display the logout-prompt - https://bugs.centos.org/view.php?id=8834 +Exec=gsettings set org.gnome.SessionManager logout-prompt false +Terminal=false +Type=Application +OnlyShowIn=GNOME;Unity; +X-GNOME-Autostart-Phase=Initialization + +EOF + +# Patching livepayload too https://bugzilla.redhat.com/show_bug.cgi?id=1100504 +cat > /tmp/livepayload.patch < /etc/rc.d/init.d/livesys-late << EOF +#!/bin/bash +# +# live: Late init script for live image +# +# chkconfig: 345 99 01 +# description: Late init script for live image. + +. /etc/init.d/functions + +if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ] || [ -e /.liveimg-late-configured ] ; then + exit 0 +fi + +exists() { + which \$1 >/dev/null 2>&1 || return + \$* +} + +touch /.liveimg-late-configured + +# read some variables out of /proc/cmdline +for o in \`cat /proc/cmdline\` ; do + case \$o in + ks=*) + ks="--kickstart=\${o#ks=}" + ;; + xdriver=*) + xdriver="\${o#xdriver=}" + ;; + esac +done + +# if liveinst or textinst is given, start anaconda +if strstr "\`cat /proc/cmdline\`" liveinst ; then + plymouth --quit + /usr/sbin/liveinst \$ks +fi +if strstr "\`cat /proc/cmdline\`" textinst ; then + plymouth --quit + /usr/sbin/liveinst --text \$ks +fi + +# configure X, allowing user to override xdriver +if [ -n "\$xdriver" ]; then + cat > /etc/X11/xorg.conf.d/00-xdriver.conf <> /etc/rc.d/init.d/livesys << EOF + + +# disable updates plugin +cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE +[org.gnome.settings-daemon.plugins.updates] +active=false +FOE + +# Show the system-config-keyboard tool on the desktop +mkdir /home/liveuser/Desktop -p >/dev/null +cat /usr/share/applications/system-config-keyboard.desktop | sed '/NotShowIn/d' |sed 's/Terminal=false/Terminal=true/' > /home/liveuser/Desktop/system-config-keyboard.desktop +cat /usr/share/applications/liveinst.desktop | sed '/NoDisplay/d' > /home/liveuser/Desktop/liveinst.desktop +chmod +x /home/liveuser/Desktop/*.desktop +chown -R liveuser:liveuser /home/liveuser + +# Liveuser face +if [ -e /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png ] ; then + cp /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png /home/liveuser/.face + chown liveuser:liveuser /home/liveuser/.face +fi + +# make the installer show up +if [ -f /usr/share/applications/liveinst.desktop ]; then + # Show harddisk install in shell dash + sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop + # need to move it to anaconda.desktop to make shell happy + #cp /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop +fi + cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE +[org.gnome.shell] +favorite-apps=['liveinst.desktop','firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop', 'anaconda.desktop'] +FOE + + +# set up auto-login +cat > /etc/gdm/custom.conf << FOE +[daemon] +AutomaticLoginEnable=True +AutomaticLogin=liveuser +FOE + +# Turn off PackageKit-command-not-found while uninstalled +if [ -f /etc/PackageKit/CommandNotFound.conf ]; then + sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf +fi + +# make sure to set the right permissions and selinux contexts +chown -R liveuser:liveuser /home/liveuser/ +restorecon -R /home/liveuser/ + +# Fixing default locale to us +localectl set-keymap us +localectl set-x11-keymap us +EOF + +# rebuild schema cache with any overrides we installed +glib-compile-schemas /usr/share/glib-2.0/schemas + + +%end