Fedora/Sugar test cases: Difference between revisions
Created page with "==Custom_Kickstart_file== modified from: http://kojipkgs.fedoraproject.org//work/tasks/5707/5925707/fedora-livecd-soas-f110c70.ks" |
|||
| Line 2: | Line 2: | ||
modified from: | modified from: | ||
http://kojipkgs.fedoraproject.org//work/tasks/5707/5925707/fedora-livecd-soas-f110c70.ks | http://kojipkgs.fedoraproject.org//work/tasks/5707/5925707/fedora-livecd-soas-f110c70.ks | ||
*Modified file: | |||
#version=DEVEL | |||
# Firewall configuration | |||
firewall --enabled --service=mdns,presence | |||
# X Window System configuration information | |||
xconfig --startxonboot | |||
repo --name="fedora" --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch | |||
repo --name="updates" --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch | |||
# Keyboard layouts | |||
keyboard 'us' | |||
# System timezone | |||
timezone US/Eastern | |||
# System language | |||
lang en_US.UTF-8 | |||
# System authorization information | |||
auth --useshadow --enablemd5 | |||
# SELinux configuration | |||
selinux --enforcing | |||
# System services | |||
services --disabled="network,sshd" --enabled="NetworkManager" | |||
# Disk partitioning information | |||
part / --fstype="ext4" --size=3072 | |||
%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 | |||
EOF | |||
# bah, hal starts way too late | |||
cat > /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 <<FOE | |||
Section "Device" | |||
Identifier "Videocard0" | |||
Driver "\$xdriver" | |||
EndSection | |||
FOE | |||
fi | |||
EOF | |||
chmod 755 /etc/rc.d/init.d/livesys | |||
/sbin/restorecon /etc/rc.d/init.d/livesys | |||
/sbin/chkconfig --add livesys | |||
chmod 755 /etc/rc.d/init.d/livesys-late | |||
/sbin/restorecon /etc/rc.d/init.d/livesys-late | |||
/sbin/chkconfig --add livesys-late | |||
# enable tmpfs for /tmp | |||
systemctl enable tmp.mount | |||
# work around for poor key import UI in PackageKit | |||
rm -f /var/lib/rpm/__db* | |||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora | |||
echo "Packages within this LiveCD" | |||
rpm -qa | |||
# Note that running rpm recreates the rpm db files which aren't needed or wanted | |||
rm -f /var/lib/rpm/__db* | |||
# go ahead and pre-make the man -k cache (#455968) | |||
/usr/bin/mandb | |||
# save a little bit of space at least... | |||
rm -f /boot/initramfs* | |||
# make sure there aren't core files lying around | |||
rm -f /core* | |||
# convince readahead not to collect | |||
# FIXME: for systemd | |||
%end | |||
%post --nochroot | |||
cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL | |||
# only works on x86, x86_64 | |||
if [ "$(uname -i)" = "i386" -o "$(uname -i)" = "x86_64" ]; then | |||
if [ ! -d $LIVE_ROOT/LiveOS ]; then mkdir -p $LIVE_ROOT/LiveOS ; fi | |||
cp /usr/bin/livecd-iso-to-disk $LIVE_ROOT/LiveOS | |||
fi | |||
%end | |||
%post | |||
# Rebuild initrd for Sugar boot screen | |||
KERNEL_VERSION=$(rpm -q kernel --qf '%{version}-%{release}.%{arch}\n') | |||
/usr/sbin/plymouth-set-default-theme sugar | |||
/sbin/dracut -f /boot/initramfs-$KERNEL_VERSION.img $KERNEL_VERSION | |||
# Note that running rpm recreates the rpm db files which aren't needed or wanted | |||
rm -f /var/lib/rpm/__db* | |||
# Get proper release naming in the control panel | |||
#modified from koji ,ks by tg | |||
cat >> /boot/olpc_build << EOF | |||
Sugar on a Stick 10 (Remix) | |||
Fedora release 20 | |||
EOF | |||
# Add our activities to the favorites | |||
cat > /usr/share/sugar/data/activities.defaults << EOF | |||
org.laptop.WebActivity | |||
org.laptop.HelpActivity | |||
org.laptop.Chat | |||
org.laptop.sugar.ReadActivity | |||
org.laptop.sugar.GetBooksActivity | |||
org.laptop.AbiWordActivity | |||
org.laptop.TurtleArtActivity | |||
org.laptop.Calculate | |||
org.laptop.Clock | |||
org.laptop.ImageViewerActivity | |||
org.laptop.Memorize | |||
org.laptop.physics | |||
org.laptop.Pippy | |||
org.laptop.RecordActivity | |||
org.laptop.Oficina | |||
org.laptop.StopWatchActivity | |||
org.laptop.community.Finance | |||
org.laptop.community.TypingTurtle | |||
org.laptop.sugar.Jukebox | |||
org.gnome.Labyrinth | |||
com.laptop.Ruler | |||
org.sugarlabs.AbacusActivity | |||
org.sugarlabs.IRC | |||
org.sugarlabs.InfoSlicer | |||
org.sugarlabs.PortfolioActivity | |||
org.sugarlabs.VisualMatchActivity | |||
com.garycmartin.Moon | |||
mulawa.Countries | |||
tv.alterna.Clock | |||
vu.lux.olpc.Maze | |||
vu.lux.olpc.Speak | |||
EOF | |||
cat > /etc/sysconfig/desktop <<EOF | |||
PREFERRED=/usr/bin/sugar | |||
DISPLAYMANAGER=/usr/sbin/lightdm | |||
EOF | |||
# set up lightdm autologin | |||
sed -i 's/^#autologin-user=.*/autologin-user=liveuser/' /etc/lightdm/lightdm.conf | |||
sed -i 's/^#autologin-user-timeout=.*/autologin-user-timeout=0/' /etc/lightdm/lightdm.conf | |||
# Don't use the default system user (in SoaS liveuser) as nick name | |||
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /desktop/sugar/user/default_nick disabled >/dev/null | |||
# Disable the logout menu item in Sugar | |||
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /desktop/sugar/show_logout false >/dev/null | |||
# Enable Sugar power management | |||
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /desktop/sugar/power/automatic True >/dev/null | |||
cat >> /etc/rc.d/init.d/livesys << EOF | |||
# set up lightdm autologin | |||
sed -i 's/^#autologin-user=.*/autologin-user=liveuser/' /etc/lightdm/lightdm.conf | |||
sed -i 's/^#autologin-user-timeout=.*/autologin-user-timeout=0/' /etc/lightdm/lightdm.conf | |||
#sed -i 's/^#show-language-selector=.*/show-language-selector=true/' /etc/lightdm/lightdm-gtk-greeter.conf | |||
# set Sugar as default session, otherwise login will fail | |||
sed -i 's/^#user-session=.*/user-session=sugar/' /etc/lightdm/lightdm.conf | |||
EOF | |||
cat >> /etc/rc.d/init.d/livesys-late << EOF | |||
# disable screensaver locking | |||
cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.override << FOE | |||
[org.gnome.desktop.screensaver] | |||
lock-enabled=false | |||
FOE | |||
# and hide the lock screen option | |||
cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.override << FOE | |||
[org.gnome.desktop.lockdown] | |||
disable-lock-screen=true | |||
FOE | |||
# rebuild schema cache with any overrides we installed | |||
glib-compile-schemas /usr/share/glib-2.0/schemas | |||
EOF | |||
chmod 755 /etc/rc.d/init.d/livesys-late | |||
/sbin/restorecon /etc/rc.d/init.d/livesys-late | |||
/sbin/chkconfig --add livesys-late | |||
%end | |||
%packages | |||
@anaconda-tools | |||
@base-x | |||
@core | |||
@guest-desktop-agents | |||
@hardware-support | |||
@input-methods | |||
@input-methods | |||
@standard | |||
@sugar-desktop | |||
alsa-plugins-pulseaudio | |||
alsa-utils | |||
anaconda | |||
gstreamer-plugins-espeak | |||
gstreamer1-plugins-bad-free | |||
gstreamer1-plugins-base | |||
gstreamer1-plugins-good | |||
kernel | |||
livecd-tools | |||
memtest86+ | |||
pulseaudio | |||
pulseaudio-utils | |||
qemu-guest-agent | |||
rp-pppoe | |||
sugar-cp-updater | |||
sugar-logos | |||
#next 2 Added by TG | |||
lightdm | |||
-gdm | |||
-@dial-up | |||
-@fonts | |||
-@gnome-desktop | |||
-@multimedia | |||
-@printing | |||
-PackageKit | |||
-autofs | |||
-coolkey | |||
-eekboard-libs | |||
-firefox | |||
-foomatic | |||
-glx-utils | |||
-hpijs | |||
-hplip | |||
-icedtea-web | |||
-isdn4k-utils | |||
-libfprint | |||
-mpage | |||
-nmap-ncat | |||
-numactl | |||
-open-vm-tools* | |||
-openbox | |||
-plymouth-system-theme | |||
-plymouth-theme-charge | |||
-ql2100-firmware | |||
-ql2200-firmware | |||
-ql23xx-firmware | |||
-rdate | |||
-rdist | |||
-realmd | |||
-sane-backends | |||
-sane-backends-drivers-scanners | |||
-sox | |||
-sugar-ruler | |||
-wget | |||
-xsane | |||
-xsane-gimp | |||
-yp-tools | |||
-ypbind | |||
%end | |||