Changes

12,484 bytes added ,  19:04, 15 September 2013
m
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
12,355

edits