|
|
- #version=DEVEL
- # X Window System configuration information
- xconfig --startxonboot
- # Keyboard layouts
- keyboard 'us'
- # Use network installation
- url --mirrorlist="https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch"
- # System language
- lang en_US.UTF-8
- # Firewall configuration
- firewall --enabled --service=mdns
- repo --name="fedora" --mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
- repo --name="updates" --mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
- repo --name="rpmfusion-free" --mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-$releasever&arch=$basearch --includepkgs=rpmfusion-free-release
- repo --name="rpmfusion-free-updates" --mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-updates-released-$releasever&arch=$basearch --includepkgs=rpmfusion-free-release
- # Shutdown after installation
- shutdown
- # Network information
- network --bootproto=dhcp --device=link --activate
- # System timezone
- timezone US/Eastern
- # System authorization information
- auth --useshadow --passalgo=sha512
- # SELinux configuration
- selinux --enforcing
-
- # System services
- services --disabled="sshd" --enabled="NetworkManager,ModemManager"
- # System bootloader configuration
- bootloader --location=none
- # Clear the Master Boot Record
- zerombr
- # Partition clearing information
- clearpart --all
- # Disk partitioning information
- part / --fstype="ext4" --size=5120
- part / --size=6144
-
- %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 chronyd
- ### 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
- \$*
- }
-
- 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
-
- 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.software download-updates '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 || :
-
- # Don't sync the system clock when running live (RHBZ #1018162)
- sed -i 's/rtcsync//' /etc/chrony.conf
-
- # Mark things as configured
- touch /.liveimg-configured
-
- # add static hostname to work around xauth bug
- # https://bugzilla.redhat.com/show_bug.cgi?id=679486
- # the hostname must be something else than 'localhost'
- # https://bugzilla.redhat.com/show_bug.cgi?id=1370222
- echo "localhost-live" > /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
-
- # make it so that we don't do writing to the overlay for things which
- # are just tmpdirs/caches
- # note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
- cat >> /etc/fstab << EOF
- vartmp /var/tmp tmpfs defaults 0 0
- EOF
-
- # 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
-
- # make sure there aren't core files lying around
- rm -f /core*
-
- # remove random seed, the newly installed instance should make it's own
- rm -f /var/lib/systemd/random-seed
-
- # convince readahead not to collect
- # FIXME: for systemd
-
- echo 'File created by kickstart. See systemd-update-done.service(8).' \
- | tee /etc/.updated >/var/.updated
-
- # Drop the rescue kernel and initramfs, we don't need them on the live media itself.
- # See bug 1317709
- rm -f /boot/\*-rescue*
-
- # Disable network service here, as doing it in the services line
- # fails due to RHBZ #1369794
- /sbin/chkconfig network off
-
- # Remove machine-id on pre generated images
- rm -f /etc/machine-id
- touch /etc/machine-id
-
- %end
-
- %post --nochroot
- cp $INSTALL_ROOT/usr/share/licenses/\*-release/\* $LIVE_ROOT/
-
- # 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
- # THIS IS ALL RUN IN THE LIVE ROOT
- # cinnamon configuration
-
- # create /etc/sysconfig/desktop (needed for installation)
-
- cat > /etc/sysconfig/desktop <<EOF
- PREFERRED=/usr/bin/cinnamon-session
- DISPLAYMANAGER=/usr/sbin/lightdm
- EOF
-
- 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 Cinnamon as default session, otherwise login will fail
- sed -i 's/^#user-session=.*/user-session=cinnamon/' /etc/lightdm/lightdm.conf
-
- # Show harddisk install on the desktop
- sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop
- mkdir /home/liveuser/Desktop
- cp /usr/share/applications/liveinst.desktop /home/liveuser/Desktop
-
- # and mark it as executable
- chmod +x /home/liveuser/Desktop/liveinst.desktop
-
- # this goes at the end after all other changes.
- chown -R liveuser:liveuser /home/liveuser
- restorecon -R /home/liveuser
-
- EOF
- %end
- %post
- # go to the backgrounds folder for custom images
- cd /usr/share/backgrounds/images
-
- # fetch custom RIT backgrounds
- #FIXME
-
- # Fetch rpm fusion scripts
- mkdir -p $INSTALL_ROOT/usr/share/autostart
- mkdir -p $INSTALLROOT/usr/local/tigeros
- cp -r /scripts/ $INSTALL_ROOT/usr/local/tigeros/
-
- ln -s $INSTALL_ROOT/home/liveuser/enablerpmfusion.sh $INSTALL_ROOT/usr/share/autostart/enablerpmfusion.sh
- ln -s $INSTALL_ROOT/usr/local/tigeros/FusionEnableLauncher.py $INSTALL_ROOT/usr/share/autostart/FusionEnableLauncher.py
- ln -s $INSTALL_ROOT/usr/local/tigeros/postinstall $INSTALL_ROOT/usr/share/autostart/postinstall
-
- chmod -R 755 $INSTALL_ROOT/usr/local/tigeros/
-
- # Download and install google chrome
- dnf --installroot=$INSTALL_ROOT install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
- restorecon -R $INSTALL_ROOT/home/liveuser
- %end
-
- %packages
- @anaconda-tools
- @base-x
- @cinnamon-desktop
- @core
- @dial-up
- @fonts
- @guest-desktop-agents
- @hardware-support
- @input-methods
- @libreoffice
- @multimedia
- @networkmanager-submodules
- @printing
- @standard
- aajohan-comfortaa-fonts
- anaconda
- desktop-backgrounds-basic
- dracut-live
- f24-backgrounds-extras-gnome
- generic-logos
- generic-release
- generic-release-notes
- gimp
- glibc-all-langpacks
- grub2-efi
- hexchat
- htop
- inkscape
- kernel
- kernel-modules
- kernel-modules-extra
- lynx
- memtest86+
- parole
- pidgin
- rhythmbox
- syslinux
- transmission
- yumex-dnf
- zsh
- #exclude things (packagekit breaks things, fedora-* packages are replaced by ones we customized.)
- -PackageKit*
- -autofs
- -coolkey
- -fedora-bookmarks
- -fedora-icon-theme
- -fedora-logos
- -fedora-release
- -fedora-release-notes
- -hplip
- -isdn4k-utils
- -mpage
- -numactl
- -policycoreutils-gui
- -sane-backends
- -sox
- -system-config-boot
- -system-config-language
- -system-config-network
- -system-config-rootpassword
- -system-config-services
- -xsane
- -xsane-gimp
-
- %end
|