forked from srbala/fedora-kickstarts
c488a9529c
I checked with docs and that file isn't packaged any more, because it was felt to be something that you wouldn't need once you made the live image. That stance is negotiable if someone thinks it is worth including.
387 lines
12 KiB
Plaintext
387 lines
12 KiB
Plaintext
# fedora-live-base.ks
|
|
#
|
|
# Defines the basics for all kickstarts in the fedora-live branch
|
|
# Does not include package selection (other then mandatory)
|
|
# Does not include localization packages or configuration
|
|
#
|
|
# Does includes "default" language configuration (kickstarts including
|
|
# this template can override these settings)
|
|
|
|
lang en_US.UTF-8
|
|
keyboard us
|
|
timezone US/Eastern
|
|
auth --useshadow --enablemd5
|
|
selinux --enforcing
|
|
firewall --enabled --service=mdns
|
|
xconfig --startxonboot
|
|
part / --size 3072 --fstype ext4
|
|
services --enabled=NetworkManager --disabled=network,sshd
|
|
|
|
# To compose against the current release tree, use the following "repo" (enabled by default)
|
|
#repo --name=released --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-13&arch=$basearch
|
|
# To include updates, use the following "repo" (enabled by default)
|
|
#repo --name=updates --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f13&arch=$basearch
|
|
|
|
# To compose against rawhide, use the following "repo" (disabled by default)
|
|
repo --name=rawhide --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch
|
|
|
|
# To compose against local trees, (edit and) use:
|
|
#repo --name=f11 --baseurl=http://localrepo/fedora/releases/11/Everything/$basearch/os/
|
|
|
|
%packages
|
|
@base-x
|
|
@base
|
|
@core
|
|
@fonts
|
|
@input-methods
|
|
# use a small pinyin db for live
|
|
-ibus-pinyin-db-open-phrase
|
|
ibus-pinyin-db-android
|
|
@admin-tools
|
|
@dial-up
|
|
@hardware-support
|
|
@printing
|
|
|
|
# Explicitly specified here:
|
|
# <notting> walters: because otherwise dependency loops cause yum issues.
|
|
kernel
|
|
|
|
# This was added a while ago, I think it falls into the category of
|
|
# "Diagnosis/recovery tool useful from a Live OS image". Leaving this untouched
|
|
# for now.
|
|
memtest86+
|
|
|
|
# The point of a live image is to install
|
|
anaconda
|
|
isomd5sum
|
|
|
|
%end
|
|
|
|
%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.
|
|
|
|
. /etc/init.d/functions
|
|
|
|
if ! strstr "\`cat /proc/cmdline\`" liveimg || [ "\$1" != "start" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
if [ -e /.liveimg-configured ] ; then
|
|
configdone=1
|
|
fi
|
|
|
|
exists() {
|
|
which \$1 >/dev/null 2>&1 || return
|
|
\$*
|
|
}
|
|
|
|
touch /.liveimg-configured
|
|
|
|
# mount live image
|
|
if [ -b \`readlink -f /dev/live\` ]; then
|
|
mkdir -p /mnt/live
|
|
mount -o ro /dev/live /mnt/live 2>/dev/null || mount /dev/live /mnt/live
|
|
fi
|
|
|
|
livedir="LiveOS"
|
|
for arg in \`cat /proc/cmdline\` ; do
|
|
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 /mnt/live/\${livedir}/swap.img ] ; then
|
|
action "Enabling swap file" swapon /mnt/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##/mnt/live}" != "\${homedev}" ]; then
|
|
action "Remounting live store r/w" mount -o remount,rw /mnt/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 /mnt/live/\${livedir}/home.img ]; then
|
|
homedev=/mnt/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 tmp /tmp
|
|
mount -t tmpfs vartmp /var/tmp
|
|
[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /tmp /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
|
|
|
|
# turn off firstboot for livecd boots
|
|
chkconfig --level 345 firstboot off 2>/dev/null
|
|
|
|
# don't start yum-updatesd for livecd boots
|
|
chkconfig --level 345 yum-updatesd off 2>/dev/null
|
|
|
|
# turn off mdmonitor by default
|
|
chkconfig --level 345 mdmonitor off 2>/dev/null
|
|
|
|
# turn off setroubleshoot on the live image to preserve resources
|
|
chkconfig --level 345 setroubleshoot off 2>/dev/null
|
|
|
|
# don't do packagekit checking by default
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_updates never >/dev/null
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_upgrades never >/dev/null
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_refresh_cache never >/dev/null
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_available false >/dev/null
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_distro_upgrades false >/dev/null
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_firmware false >/dev/null
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_hardware false >/dev/null
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_codec_helper false >/dev/null
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_font_helper false >/dev/null
|
|
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_mime_type_helper false >/dev/null
|
|
|
|
|
|
# don't start cron/at as they tend to spawn things which are
|
|
# disk intensive that are painful on a live image
|
|
chkconfig --level 345 crond off 2>/dev/null
|
|
chkconfig --level 345 atd off 2>/dev/null
|
|
chkconfig --level 345 anacron off 2>/dev/null
|
|
chkconfig --level 345 readahead_early off 2>/dev/null
|
|
chkconfig --level 345 readahead_later off 2>/dev/null
|
|
|
|
# Stopgap fix for RH #217966; should be fixed in HAL instead
|
|
touch /media/.hal-mtab
|
|
|
|
# workaround clock syncing on shutdown that we don't want (#297421)
|
|
sed -i -e 's/hwclock/no-such-hwclock/g' /etc/rc.d/init.d/halt
|
|
|
|
# and hack so that we eject the cd on shutdown if we're using a CD...
|
|
if strstr "\`cat /proc/cmdline\`" CDLABEL= ; then
|
|
cat >> /sbin/halt.local << FOE
|
|
#!/bin/bash
|
|
# XXX: This often gets stuck during shutdown because /etc/init.d/halt
|
|
# (or something else still running) wants to read files from the block\
|
|
# device that was ejected. Disable for now. Bug #531924
|
|
# we want to eject the cd on halt, but let's also try to avoid
|
|
# io errors due to not being able to get files...
|
|
#cat /sbin/halt > /dev/null
|
|
#cat /sbin/reboot > /dev/null
|
|
#/usr/sbin/eject -p -m \$(readlink -f /dev/live) >/dev/null 2>&1
|
|
#echo "Please remove the CD from your drive and press Enter to finish restarting"
|
|
#read -t 30 < /dev/console
|
|
FOE
|
|
chmod +x /sbin/halt.local
|
|
fi
|
|
|
|
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\`" liveimg || [ "\$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="--set-driver=\${o#xdriver=}"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# this is a bad hack to work around #460581 for the geode
|
|
# purely to help move testing along for now
|
|
if [ \`grep -c Geode /proc/cpuinfo\` -ne 0 ]; then
|
|
cat > /etc/X11/xorg.conf <<FOE
|
|
Section "ServerLayout"
|
|
Identifier "Default Layout"
|
|
Screen 0 "Screen0" 0 0
|
|
InputDevice "Keyboard0" "CoreKeyboard"
|
|
EndSection
|
|
|
|
Section "InputDevice"
|
|
# keyboard added by rhpxl
|
|
Identifier "Keyboard0"
|
|
Driver "kbd"
|
|
Option "XkbModel" "pc105"
|
|
Option "XkbLayout" "us"
|
|
EndSection
|
|
|
|
Section "Monitor"
|
|
Identifier "Monitor0"
|
|
HorizSync 30-67
|
|
VertRefresh 48-52
|
|
DisplaySize 152 114
|
|
Mode "1200x900"
|
|
DotClock 57.275
|
|
HTimings 1200 1208 1216 1240
|
|
VTimings 900 905 908 912
|
|
Flags "-HSync" "-VSync"
|
|
EndMode
|
|
EndSection
|
|
|
|
Section "Device"
|
|
Identifier "Videocard0"
|
|
Driver "amd"
|
|
VendorName "Advanced Micro Devices, Inc."
|
|
BoardName "AMD Geode GX/LX"
|
|
|
|
Option "AccelMethod" "EXA"
|
|
Option "NoCompression" "true"
|
|
Option "MigrationHeuristic" "greedy"
|
|
Option "PanelGeometry" "1200x900"
|
|
EndSection
|
|
|
|
Section "Screen"
|
|
Identifier "Screen0"
|
|
Device "Videocard0"
|
|
Monitor "Monitor0"
|
|
DefaultDepth 16
|
|
SubSection "Display"
|
|
Depth 16
|
|
Modes "1200x900"
|
|
EndSubSection
|
|
EndSection
|
|
FOE
|
|
fi
|
|
|
|
# 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
|
|
exists system-config-display --noui --reconfig --set-depth=24 \$xdriver
|
|
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
|
|
|
|
# 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
|
|
|
|
# go ahead and pre-make the man -k cache (#455968)
|
|
/usr/sbin/makewhatis -w
|
|
|
|
# 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
|
|
rm -f /.readahead_collect
|
|
touch /var/lib/readahead/early.sorted
|
|
|
|
%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
|