Jump to content

Fedora/Sugar test cases: Difference between revisions

From Sugar Labs
Satellit (talk | contribs)
m yum -> dnf
 
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Custom_Kickstart_file==
<noinclude>[[Category:Testing]]</noinclude>
modified from:
*<big>'''Look at: [[Tutorials/Introduction to the Sugar Interface]]'''</big>.
http://kojipkgs.fedoraproject.org//work/tasks/5707/5925707/fedora-livecd-soas-f110c70.ks
:For annotated screenshots of Sugar Features mentioned here


*Modified file:
{{Note/note|NOTE:|This page is linked to the  [[fedora:QA:Desktop_validation_results_template#Sugar_.28non-blocking.2C_all_arches.29|Fedora Project wiki QA test template]].}}
#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
==[[Sugar_on_a_Stick/10|'''Sugar on a Stick (SoaS-spin)''']]==
services --disabled="network,sshd" --enabled="NetworkManager"
===1 - SoaS boots to the (name) selection screen.===
# Disk partitioning information
:Live version should boot directly to this screen with no login to liveuser first.
part / --fstype="ext4" --size=3072
::Some versions will boot to the (Click to change color) screen first and require using the (<=) arrow to get to the name screen.
*f21 Soas will add 2 fields: '''Select gender'''; '''Select age''' then proceed to the F3 Screen.
:Some School deployments can inquire the gender and age response information.
::It is unnecessary to enter information here.


%post
===2 - SoaS installed to hard disk with {{Code|liveinst}} from root terminal,===
# FIXME: it'd be better to get this installed from a package
: boots to (lightdm or gdm) using the name and password for the user as setup in anaconda.
cat > /etc/rc.d/init.d/livesys << EOF
===3 - Jabber.sugarlabs.org should connect and display XO "Buddies" ===
#!/bin/bash
: ''Network Neighborhood'' screen (F1).
#
: If connected to a wireless network:
# live: Init script for live image
: Wireless access points will be shown as colored circles on the ''Network Neighborhood'' screen (F1).
#
: Collaboration:While connected to an access point, it should be able to connect to another XO via a shared activity (Icons for activity on f1 if present). Click on the icon and drop down menu will show '''Join''' Activity should start showing what the other XO User is sharing.
# 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
===4 - When a USB storage device is inserted, it should show up in the Frame.===
: One can successfully [[Tutorials/Copy_with_drag_%26_drop|'''drag-drop''']] items in the Journal to a mounted USB .
: One can successfully install an [http://activities.sugarlabs.org/en-US/sugar/ '''Activity bundle''' ]  (xxx.xo file) when dragged from a mounted USB to the Journal.
: One can successfully unmount the USB device with a right click on the USB device icon in the Frame.


if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ]; then
===5 -Functions in My Settings (Sugar control panel).===
    exit 0
:: All functions should work correctly
fi
::except for Web Sevices which does not work as installed
===6 -  Applications in the ''Home Screen''===
:  (F3) circular favourites screen
:: All applications should start, work, and stop


if [ -e /.liveimg-configured ] ; then
==Sugar-desktop==
    configdone=1
===7 -Sugar-desktop installed in another Desktop===
fi
:With '''{{Code|dnf install @sugar-desktop sugar-runner }}''' in root terminal
 
:Start from menu item in DE - Education - sugar
exists() {
:log out/log in to (lightdm or gdm) session "Sugar" should run sugar-desktop full screen.
    which \$1 >/dev/null 2>&1 || return
::(You may have to shutdown/reboot to see sugar listed in gdm or lightdm)
    \$*
:sugar-desktop installed from netinstall or DVD should work.
}
::Note the sugar entity in Education/Sugar (sugar-runner) is different than found when you logout/login to sugar in gdm (different name; color and ssh key for jabber)
 
{{Note/note|NOTE:|Tests 3 thru 6 should be run on this test case.}}
# 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

Latest revision as of 13:12, 24 October 2018

For annotated screenshots of Sugar Features mentioned here
NOTE:
This page is linked to the Fedora Project wiki QA test template.

Sugar on a Stick (SoaS-spin)

1 - SoaS boots to the (name) selection screen.

Live version should boot directly to this screen with no login to liveuser first.
Some versions will boot to the (Click to change color) screen first and require using the (<=) arrow to get to the name screen.
  • f21 Soas will add 2 fields: Select gender; Select age then proceed to the F3 Screen.
Some School deployments can inquire the gender and age response information.
It is unnecessary to enter information here.

2 - SoaS installed to hard disk with liveinst from root terminal,

boots to (lightdm or gdm) using the name and password for the user as setup in anaconda.

3 - Jabber.sugarlabs.org should connect and display XO "Buddies"

Network Neighborhood screen (F1).
If connected to a wireless network:
Wireless access points will be shown as colored circles on the Network Neighborhood screen (F1).
Collaboration:While connected to an access point, it should be able to connect to another XO via a shared activity (Icons for activity on f1 if present). Click on the icon and drop down menu will show Join Activity should start showing what the other XO User is sharing.

4 - When a USB storage device is inserted, it should show up in the Frame.

One can successfully drag-drop items in the Journal to a mounted USB .
One can successfully install an Activity bundle (xxx.xo file) when dragged from a mounted USB to the Journal.
One can successfully unmount the USB device with a right click on the USB device icon in the Frame.

5 -Functions in My Settings (Sugar control panel).

All functions should work correctly
except for Web Sevices which does not work as installed

6 - Applications in the Home Screen

(F3) circular favourites screen
All applications should start, work, and stop

Sugar-desktop

7 -Sugar-desktop installed in another Desktop

With dnf install @sugar-desktop sugar-runner in root terminal
Start from menu item in DE - Education - sugar
log out/log in to (lightdm or gdm) session "Sugar" should run sugar-desktop full screen.
(You may have to shutdown/reboot to see sugar listed in gdm or lightdm)
sugar-desktop installed from netinstall or DVD should work.
Note the sugar entity in Education/Sugar (sugar-runner) is different than found when you logout/login to sugar in gdm (different name; color and ssh key for jabber)
NOTE:
Tests 3 thru 6 should be run on this test case.