Difference between revisions of "Fedora/Sugar test cases"

From Sugar Labs
Jump to navigation Jump to search
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
 

Revision as of 20:11, 15 September 2013