figless / centos / livemedia

Forked from centos/livemedia 5 years ago
Clone
Blob Blame History Raw

lang en_GB.UTF-8
keyboard us
timezone Europe/Brussels --isUtc
auth --useshadow --enablemd5
selinux --enforcing
firewall --enabled --service=mdns
xconfig --startxonboot
part / --size 8192 --fstype ext4
services --enabled=NetworkManager --disabled=network,sshd


# Root password
rootpw --iscrypted $6$K2nKf02kVKG68960$OywvoaViphSITuro/liKvCj7Pm/CH/xqzz/lsoXyaKSR1lYf0vHAqSUc483a9MCCBkIwfr/hNMfqwxqVO0OEg1

# Workaround for the grubby issue on live media (see https://bugzilla.redhat.com/show_bug.cgi?id=1153410)
repo --name=base --baseurl=http://mirror.centos.org/centos/7.1.1503/os/x86_64/ --excludepkgs=grubby
repo --name=grubby --baseurl=http://vault.centos.org/7.0.1406/os/x86_64/ --includepkgs=grubby

%packages
abattis-cantarell-fonts
accountsservice
accountsservice-libs
acl
adwaita-cursor-theme
adwaita-gtk2-theme
adwaita-gtk3-theme
aic94xx-firmware
alsa-firmware
alsa-lib
alsa-tools-firmware
anaconda
anaconda-widgets
at
atk
atkmm
at-spi2-atk
at-spi2-core
attr
audit
audit-libs
audit-libs-python
augeas-libs
authconfig
avahi
avahi-autoipd
avahi-glib
avahi-gobject
avahi-libs
avahi-ui-gtk3
baobab
basesystem
bash
bash-completion
bc
bind-libs
bind-libs-lite
bind-license
bind-utils
binutils
biosdevname
blktrace
bluez
bluez-libs
bridge-utils
btrfs-progs
bzip2
bzip2-libs
ca-certificates
cairo
cairo-gobject
cairomm
caribou
caribou-gtk2-module
caribou-gtk3-module
cdparanoia-libs
celt051
checkpolicy
cheese
cheese-libs
chkconfig
chrony
clutter
clutter-gst2
clutter-gtk
cogl
colord
colord-gtk
colord-libs
color-filesystem
comps-extras
control-center
control-center-filesystem
coreutils
cpio
cracklib
cracklib-dicts
crda
createrepo
cronie
cronie-anacron
crontabs
cryptsetup
cryptsetup-libs
cryptsetup-python
cups-libs
cups-pk-helper
curl
cyrus-sasl-lib
cyrus-sasl-plain
dbus
dbus-glib
dbus-libs
dbus-python
dbus-x11
dconf
dejavu-fonts-common
dejavu-sans-fonts
dejavu-sans-mono-fonts
dejavu-serif-fonts
deltarpm
desktop-file-utils
device-mapper
device-mapper-event
device-mapper-event-libs
device-mapper-libs
device-mapper-multipath
device-mapper-multipath-libs
device-mapper-persistent-data
dhclient
dhcp-common
dhcp-libs
diffutils
dmidecode
dmraid
dmraid-events
dnsmasq
dosfstools
dracut
dracut-config-rescue
dracut-network
dyninst
e2fsprogs
e2fsprogs-libs
ebtables
ed
elfutils-libelf
elfutils-libs
emacs-filesystem
enchant
eog
ethtool
evolution-data-server
exempi
exiv2-libs
expat
fcoe-utils
file
file-libs
file-roller
file-roller-nautilus
filesystem
findutils
fipscheck
fipscheck-lib
firefox
firewall-config
firewalld
firstboot
flac-libs
folks
fontconfig
fontpackages-filesystem
fprintd
fprintd-pam
freerdp
freerdp-libs
freerdp-plugins
freetype
frei0r-plugins
fros
fuse
fuse-libs
fxload
gamin
gavl
gawk
GConf2
gcr
gd
gdbm
gdisk
gdk-pixbuf2
gdm
gdm-libs
gedit
geoclue
gettext
gettext-libs
ghostscript
ghostscript-fonts
giflib
gjs
glade-libs
glib2
glibc
glibc-common
glibmm24
glib-networking
glusterfs-api
glusterfs-libs
glx-utils
gmp
gnome-bluetooth
gnome-bluetooth-libs
gnome-calculator
gnome-classic-session
gnome-clocks
gnome-color-manager
gnome-contacts
gnome-desktop3
gnome-dictionary
gnome-disk-utility
gnome-documents
gnome-font-viewer
gnome-icon-theme
gnome-icon-theme-extras
gnome-icon-theme-legacy
gnome-icon-theme-symbolic
gnome-keyring
gnome-keyring-pam
gnome-menus
gnome-online-accounts
gnome-packagekit
gnome-python2
gnome-python2-bonobo
gnome-python2-canvas
gnome-python2-gnome
gnome-python2-gnomevfs
gnome-screenshot
gnome-session
gnome-session-xsession
gnome-settings-daemon
gnome-settings-daemon-updates
gnome-shell
gnome-shell-extension-alternate-tab
gnome-shell-extension-apps-menu
gnome-shell-extension-common
gnome-shell-extension-launch-new-instance
gnome-shell-extension-places-menu
gnome-shell-extension-window-list
gnome-system-log
gnome-system-monitor
gnome-terminal
gnome-themes-standard
gnome-tweak-tool
gnome-user-docs
gnome-vfs2
gnome-video-effects
gnu-free-fonts-common
gnu-free-mono-fonts
gnu-free-sans-fonts
gnu-free-serif-fonts
gnupg2
gnutls
gobject-introspection
google-crosextra-caladea-fonts
google-crosextra-carlito-fonts
gpgme
gpm-libs
graphite2
grep
grilo
grilo-plugins
groff-base
grub2
grub2-tools
grubby
gsettings-desktop-schemas
gsm
gssdp
gstreamer1
gstreamer1-plugins-bad-free
gstreamer1-plugins-base
gstreamer1-plugins-good
gtk2
gtk2-immodule-xim
gtk3
gtk3-immodule-xim
gtkmm30
gtksourceview3
gtk-vnc2
gucharmap
gupnp
gupnp-av
gvfs
gvfs-afc
gvfs-afp
gvfs-archive
gvfs-fuse
gvfs-goa
gvfs-gphoto2
gvfs-mtp
gvfs-smb
gvnc
gzip
hardlink
harfbuzz
harfbuzz-icu
hicolor-icon-theme
hostname
hplip-common
hunspell
hunspell-en
hunspell-en-GB
hunspell-en-US
hwdata
ibus
ibus-chewing
ibus-gtk2
ibus-gtk3
ibus-hangul
ibus-libs
ibus-m17n
ibus-rawcode
ibus-sayura
ibus-setup
ibus-table
ibus-table-chinese
imsettings
imsettings-gsettings
imsettings-libs
info
initial-setup
initscripts
iproute
iprutils
iptables
iputils
irqbalance
iscsi-initiator-utils
iscsi-initiator-utils-iscsiuio
iso-codes
isomd5sum
ivtv-firmware
iw
iwl1000-firmware
iwl100-firmware
iwl105-firmware
iwl135-firmware
iwl2000-firmware
iwl2030-firmware
iwl3160-firmware
iwl3945-firmware
iwl4965-firmware
iwl5000-firmware
iwl5150-firmware
iwl6000-firmware
iwl6000g2a-firmware
iwl6000g2b-firmware
iwl6050-firmware
iwl7260-firmware
jansson
jasper-libs
jbigkit-libs
jomolhari-fonts
js
json-c
json-glib
kbd
kbd-misc
kernel
kernel-tools
kernel-tools-libs
kexec-tools
keybinder3
keyutils-libs
khmeros-base-fonts
khmeros-fonts-common
kmod
kmod-libs
kpartx
kpatch
krb5-libs
langtable
langtable-data
langtable-python
lcms2
ldns
ledmon
less
libacl
libaio
libarchive
libart_lgpl
libassuan
libasyncns
libatasmart
libattr
libavc1394
libblkid
libbluray
libbonobo
libbonoboui
libcacard
libcanberra
libcanberra-gtk2
libcanberra-gtk3
libcap
libcap-ng
libcdio
libcdio-paranoia
libcgroup
libchewing
libcom_err
libconfig
libcroco
libcurl
libdaemon
libdb
libdb-utils
libdmapsharing
libdmx
libdrm
libdv
libdvdnav
libdvdread
libdwarf
libedit
liberation-fonts-common
liberation-mono-fonts
liberation-sans-fonts
liberation-serif-fonts
libestr
libevent
libexif
libffi
libfontenc
libfprint
libgcc
libgcrypt
libgdata
libgdither
libgee
libgee06
libglade2
libgnome
libgnomecanvas
libgnomekbd
libgnome-keyring
libgnomeui
libgomp
libgpg-error
libgphoto2
libgsf
libgtop2
libgudev1
libgusb
libgweather
libgxps
libhangul
libhbaapi
libhbalinux
libical
libICE
libicu
libIDL
libidn
libiec61883
libieee1284
libimobiledevice
libiptcdata
libiscsi
libjpeg-turbo
libldb
libmnl
libmodman
libmount
libmtp
libmusicbrainz5
libndp
libnetfilter_conntrack
libnfnetlink
libnl
libnl3
libnl3-cli
libnm-gtk
libnotify
liboauth
libogg
libosinfo
libpcap
libpciaccess
libpeas
libpipeline
libplist
libpng
libproxy
libproxy-mozjs
libpwquality
libquvi
libquvi-scripts
libraw1394
libreport
libreport-anaconda
libreport-cli
libreport-filesystem
libreport-gtk
libreport-plugin-bugzilla
libreport-plugin-mailx
libreport-plugin-reportuploader
libreport-plugin-rhtsupport
libreport-python
libreport-rhel-anaconda-bugzilla
libreport-web
libreswan
librsvg2
libsamplerate
libsecret
libselinux
libselinux-python
libselinux-utils
libsemanage
libsemanage-python
libsepol
libshout
libsigc++20
libSM
libsmbclient
libsndfile
libsoup
libspectre
libss
libssh2
libstdc++
libstoragemgmt
libstoragemgmt-python
libsysfs
libtalloc
libtar
libtasn1
libtdb
libteam
libtevent
libthai
libtheora
libtiff
libtool-ltdl
libudisks2
libunistring
libusb
libusbx
libuser
libuser-python
libutempter
libuuid
libv4l
libverto
libvisual
libvorbis
libvpx
libwacom
libwacom-data
libwbclient
libwebp
libwnck3
libX11
libX11-common
libXau
libxcb
libXcomposite
libXcursor
libXdamage
libXdmcp
libXevie
libXext
libXfixes
libXfont
libXft
libXi
libXinerama
libxkbfile
libxklavier
libxml2
libxml2-python
libXmu
libXpm
libXrandr
libXrender
libXres
libxslt
libXt
libXtst
libXv
libXvMC
libXxf86dga
libXxf86misc
libXxf86vm
libzapojit
linuxconsoletools
linux-firmware
lklug-fonts
lldpad
lm_sensors-libs
lockdev
logrotate
lohit-assamese-fonts
lohit-bengali-fonts
lohit-devanagari-fonts
lohit-gujarati-fonts
lohit-kannada-fonts
lohit-malayalam-fonts
lohit-marathi-fonts
lohit-nepali-fonts
lohit-oriya-fonts
lohit-punjabi-fonts
lohit-tamil-fonts
lohit-telugu-fonts
lsof
lua
lvm2
lvm2-libs
lzo
m17n-contrib
m17n-db
m17n-lib
m2crypto
madan-fonts
mailx
make
man-db
man-pages
man-pages-overrides
mariadb-libs
marisa
mdadm
mesa-dri-drivers
mesa-filesystem
mesa-libEGL
mesa-libgbm
mesa-libGL
mesa-libglapi
mesa-libxatracker
mesa-private-llvm
metacity
microcode_ctl
mlocate
mobile-broadband-provider-info
ModemManager-glib
mousetweaks
mozilla-filesystem
mozjs17
mtdev
mtools
mtr
mutter
nano
nautilus
nautilus-extensions
nautilus-open-terminal
nautilus-sendto
ncurses
ncurses-base
ncurses-libs
neon
net-snmp-libs
nettle
net-tools
NetworkManager
#NetworkManager-config-server
NetworkManager-glib
NetworkManager-libreswan
NetworkManager-tui
newt
newt-python
nm-connection-editor
nspr
nss
nss-softokn
nss-softokn-freebl
nss-sysinit
nss-tools
nss-util
ntpdate
ntsysv
numactl-libs
obexd
oddjob
oddjob-mkhomedir
openjpeg-libs
openldap
openssh
openssh-clients
openssh-server
openssl
openssl-libs
opus
ORBit2
orc
os-prober
overpass-fonts
p11-kit
p11-kit-trust
PackageKit
PackageKit-command-not-found
PackageKit-device-rebind
PackageKit-glib
PackageKit-gtk3-module
PackageKit-yum
pakchois
paktype-naskh-basic-fonts
pam
pango
pangomm
paratype-pt-sans-fonts
parted
passwd
patch
pciutils
pciutils-libs
pcre
pcsc-lite-libs
perl
perl-Carp
perl-constant
perl-Encode
perl-Exporter
perl-File-Path
perl-File-Temp
perl-Filter
perl-Getopt-Long
perl-HTTP-Tiny
perl-libs
perl-macros
perl-parent
perl-PathTools
perl-Pod-Escapes
perl-podlators
perl-Pod-Perldoc
perl-Pod-Simple
perl-Pod-Usage
perl-Scalar-List-Utils
perl-Socket
perl-Storable
perl-Text-ParseWords
perl-threads
perl-threads-shared
perl-Time-Local
pinentry
pinentry-gtk
pinfo
pixman
pkgconfig
plymouth
plymouth-core-libs
plymouth-graphics-libs
plymouth-plugin-label
plymouth-plugin-two-step
plymouth-scripts
plymouth-system-theme
plymouth-theme-charge
pm-utils
policycoreutils
policycoreutils-python
polkit
polkit-pkla-compat
poppler
poppler-data
poppler-glib
popt
#postfix
ppp
procps-ng
psacct
psmisc
pth
pulseaudio
pulseaudio-gdm-hooks
pulseaudio-libs
pulseaudio-libs-glib2
pulseaudio-module-bluetooth
pyatspi
pycairo
pygobject2
pygobject3
pygobject3-base
pygpgme
pygtk2
pygtk2-libglade
pykickstart
pyliblzma
pyOpenSSL
pyorbit
pyparted
pytalloc
python
python-backports
python-backports-ssl_match_hostname
python-blivet
python-caribou
python-chardet
python-configobj
python-coverage
python-dateutil
python-decorator
python-deltarpm
python-di
python-dmidecode
python-ethtool
python-gudev
python-hwdata
python-iniparse
python-IPy
python-kitchen
python-libs
python-lxml
python-meh
python-nss
python-pwquality
python-pyblock
python-pycurl
python-pyudev
python-setuptools
python-slip
python-slip-dbus
python-urlgrabber
pytz
pyxattr
qrencode-libs
quota
quota-nls
rdate
readline
realmd
centos-bookmarks
centos-indexhtml
centos-logos
redhat-menus
rest
rfkill
rng-tools
rootfiles
rpm
rpm-build-libs
rpm-libs
rpm-python
rsync
rsyslog
rsyslog-mmjsonparse
rtkit
samba-common
samba-libs
satyr
sbc
scl-utils
SDL
seahorse
sed
selinux-policy
selinux-policy-targeted
setools-libs
setroubleshoot
setroubleshoot-plugins
setroubleshoot-server
setserial
setup
setuptool
sg3_utils-libs
sgpio
shadow-utils
shared-mime-info
sil-abyssinica-fonts
sil-nuosu-fonts
sil-padauk-fonts
slang
smartmontools
smc-fonts-common
smc-meera-fonts
snappy
sos
sound-theme-freedesktop
soundtouch
speex
spice-glib
spice-gtk3
spice-vdagent
sqlite
sssd-client
startup-notification
stix-fonts
strace
sudo
sushi
syslinux
sysstat
system-config-keyboard
system-config-keyboard-base
systemd
systemd-libs
systemd-python
systemd-sysv
systemtap-runtime
sysvinit-tools
taglib
tar
tcpdump
tcp_wrappers
tcp_wrappers-libs
tcsh
teamd
telepathy-filesystem
telepathy-glib
telepathy-logger
thai-scalable-fonts-common
thai-scalable-waree-fonts
tigervnc-license
tigervnc-server-minimal
time
totem
totem-nautilus
totem-pl-parser
traceroute
tracker
tuned
tzdata
ucs-miscfixed-fonts
udisks2
unbound-libs
unzip
upower
urw-fonts
usb_modeswitch
usb_modeswitch-data
usbmuxd
usbredir
usbutils
usermode
usermode-gtk
ustr
util-linux
vim-common
vim-enhanced
vim-filesystem
vim-minimal
vinagre
vino
virt-what
vlgothic-fonts
vte3
wavpack
webkitgtk3
webrtc-audio-processing
wget
which
words
wpa_supplicant
wqy-microhei-fonts
xcb-util
xdg-user-dirs
xdg-user-dirs-gtk
xdg-utils
xfsdump
xfsprogs
xkeyboard-config
xml-common
xmlrpc-c
xmlrpc-c-client
xorg-x11-drivers
xorg-x11-drv-ati
xorg-x11-drv-dummy
xorg-x11-drv-evdev
xorg-x11-drv-fbdev
xorg-x11-drv-intel
xorg-x11-drv-modesetting
xorg-x11-drv-nouveau
xorg-x11-drv-qxl
xorg-x11-drv-synaptics
xorg-x11-drv-v4l
xorg-x11-drv-vesa
xorg-x11-drv-vmmouse
xorg-x11-drv-vmware
xorg-x11-drv-void
xorg-x11-drv-wacom
xorg-x11-font-utils
xorg-x11-glamor
xorg-x11-server-common
xorg-x11-server-utils
xorg-x11-server-Xorg
xorg-x11-utils
xorg-x11-xauth
xorg-x11-xinit
xorg-x11-xkb-utils
xvattr
xz
xz-libs
yajl
yelp
yelp-libs
yelp-xsl
yum
yum-langpacks
yum-metadata-parser
yum-utils
zenity
zip
zlib

# For UEFI/Secureboot support
grub2
grub2-efi
efibootmgr
shim



%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.
### 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

# Fixing the lang install issue when other lang than English is selected . See http://bugs.centos.org/view.php?id=7217
/usr/bin/cp /usr/lib/python2.7/site-packages/blivet/size.py /usr/lib/python2.7/site-packages/blivet/size.py.orig
/usr/bin/sed -i "s#return self.humanReadable()#return self.humanReadable().encode('utf-8')#g" /usr/lib/python2.7/site-packages/blivet/size.py

EOF

# Patching livepayload too https://bugzilla.redhat.com/show_bug.cgi?id=1100504
cat > /tmp/livepayload.patch <<EOF
--- /usr/lib64/python2.7/site-packages/pyanaconda/packaging/livepayload.py.orig	
+++ /usr/lib64/python2.7/site-packages/pyanaconda/packaging/livepayload.py
@@ -152,6 +152,13 @@
             self.pct = 100
         threadMgr.wait(THREAD_LIVE_PROGRESS)
 
+        # Live needs to create the rescue image before bootloader is written
+        for kernel in self.kernelVersionList:
+            log.info("Generating rescue image for %s", kernel)
+            iutil.execInSysroot("new-kernel-pkg",
+                                ["--rpmposttrans", kernel])
+
+
     def postInstall(self):
         """ Perform post-installation tasks. """
         progressQ.send_message(_("Performing post-installation setup tasks"))
@@ -159,12 +166,6 @@
 
         super(LiveImagePayload, self).postInstall()
 
-        # Live needs to create the rescue image before bootloader is written
-        for kernel in self.kernelVersionList:
-            log.info("Generating rescue image for %s", kernel)
-            iutil.execInSysroot("new-kernel-pkg",
-                                ["--rpmposttrans", kernel])
-
         # Make sure the new system has a machine-id, it won't boot without it
         if not os.path.exists(iutil.getSysroot()+"/etc/machine-id"):
             iutil.execInSysroot("systemd-machine-id-setup", [])

EOF

patch -p0 /usr/lib64/python2.7/site-packages/pyanaconda/packaging/livepayload.py /tmp/livepayload.patch 

# 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*
releasever=$(rpm -q --qf '%{version}\n' --whatprovides system-release)
basearch=$(uname -i)
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
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

cat >> /etc/rc.d/init.d/livesys << EOF


# disable updates plugin
cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE
[org.gnome.settings-daemon.plugins.updates]
active=false
FOE

# Show the system-config-keyboard tool on the desktop
mkdir /home/liveuser/Desktop -p >/dev/null
cat /usr/share/applications/system-config-keyboard.desktop | sed '/NotShowIn/d' |sed 's/Terminal=false/Terminal=true/' > /home/liveuser/Desktop/system-config-keyboard.desktop
cat /usr/share/applications/liveinst.desktop | sed '/NoDisplay/d' > /home/liveuser/Desktop/liveinst.desktop 
chmod +x /home/liveuser/Desktop/*.desktop
chown -R liveuser:liveuser /home/liveuser

# Liveuser face
if [ -e /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png ] ; then
    cp /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png /home/liveuser/.face
    chown liveuser:liveuser /home/liveuser/.face
fi

# make the installer show up
if [ -f /usr/share/applications/liveinst.desktop ]; then
  # Show harddisk install in shell dash
  sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop 
  # need to move it to anaconda.desktop to make shell happy
  #cp /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop
fi
  cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
[org.gnome.shell]
favorite-apps=['liveinst.desktop','firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop', 'anaconda.desktop']
FOE


# set up auto-login
cat > /etc/gdm/custom.conf << FOE
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=liveuser
FOE

# Turn off PackageKit-command-not-found while uninstalled
if [ -f /etc/PackageKit/CommandNotFound.conf ]; then
  sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf
fi

# make sure to set the right permissions and selinux contexts
chown -R liveuser:liveuser /home/liveuser/
restorecon -R /home/liveuser/

# Fixing default locale to us
localectl set-keymap us
localectl set-x11-keymap us
EOF

# rebuild schema cache with any overrides we installed
glib-compile-schemas /usr/share/glib-2.0/schemas


%end