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