Fedora/Sugar test cases

From Sugar Labs
Jump to navigation Jump to search

Custom_Kickstart_file

modified from: http://kojipkgs.fedoraproject.org//work/tasks/5707/5925707/fedora-livecd-soas-f110c70.ks

  • Modified file:
  1. version=DEVEL
  2. Firewall configuration

firewall --enabled --service=mdns,presence

  1. 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

  1. Keyboard layouts

keyboard 'us'

  1. System timezone

timezone US/Eastern

  1. System language

lang en_US.UTF-8

  1. System authorization information

auth --useshadow --enablemd5

  1. SELinux configuration

selinux --enforcing

  1. System services

services --disabled="network,sshd" --enabled="NetworkManager"

  1. Disk partitioning information

part / --fstype="ext4" --size=3072

%post

  1. FIXME: it'd be better to get this installed from a package

cat > /etc/rc.d/init.d/livesys << EOF

  1. !/bin/bash
  2. live: Init script for live image
  3. chkconfig: 345 00 99
  4. description: Init script for live image.
      1. BEGIN INIT INFO
  5. X-Start-Before: display-manager
      1. 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
   \$*

}

  1. 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

  1. 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

  1. 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

  1. make it so that we don't do writing to the overlay for things which
  2. 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

  1. 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

  1. Remove root password lock

passwd -d root > /dev/null

  1. 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 || :

  1. don't use prelink on a running live image

sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || :

  1. 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 || :

  1. don't enable the gnome-settings-daemon packagekit plugin

gsettings set org.gnome.settings-daemon.plugins.updates active 'false' || :

  1. don't start cron/at as they tend to spawn things which are
  2. 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 || :

  1. Mark things as configured

touch /.liveimg-configured

  1. add static hostname to work around xauth bug
  2. https://bugzilla.redhat.com/show_bug.cgi?id=679486

echo "localhost" > /etc/hostname

EOF

  1. bah, hal starts way too late

cat > /etc/rc.d/init.d/livesys-late << EOF

  1. !/bin/bash
  2. live: Late init script for live image
  3. chkconfig: 345 99 01
  4. 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

  1. 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

  1. 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

  1. 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

  1. enable tmpfs for /tmp

systemctl enable tmp.mount

  1. 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

  1. Note that running rpm recreates the rpm db files which aren't needed or wanted

rm -f /var/lib/rpm/__db*

  1. go ahead and pre-make the man -k cache (#455968)

/usr/bin/mandb

  1. save a little bit of space at least...

rm -f /boot/initramfs*

  1. make sure there aren't core files lying around

rm -f /core*

  1. convince readahead not to collect
  2. FIXME: for systemd

%end

%post --nochroot cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL

  1. 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

  1. 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

  1. Note that running rpm recreates the rpm db files which aren't needed or wanted

rm -f /var/lib/rpm/__db*

  1. Get proper release naming in the control panel
  2. modified from koji ,ks by tg

cat >> /boot/olpc_build << EOF Sugar on a Stick 10 (Remix) Fedora release 20 EOF

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. sed -i 's/^#show-language-selector=.*/show-language-selector=true/' /etc/lightdm/lightdm-gtk-greeter.conf
  1. 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

  1. 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

  1. 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

  1. 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

  1. 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