# __ ____ ____ _____ # ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ # / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ # / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # /_/ /____/ # What ? This kickstart file bootstraps a live desktop machine. # 'l' for live, 'd' for desktop # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : # ksflatten -c ld.cfg -o ../flat/flat-ld.cfg # IMPORTANT : Weak dependencies to be destroyed in the resulting ks # Instructions for livecd-creator (about to be deprecated) # An ISO file can be created using the following command as *root*: # livecd-creator -c ../flat/flat-ld.cfg --fslabel=ld # livecd-creator is part of the livecd-tools package # Instructions for livemedia-creator # An ISO file can be created using the following command as *root*: # livemedia-creator --make-iso --ks flat-ld.cfg --no-virt --iso-only --iso-name phyllome-live-d-x86_64.iso --releasever 35 # The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*: # UEFI test: # qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-live-d-x86_64.iso # BIOS test: # qemu-kvm -m 2048 -vga qxl phyllome-live-d-x86_64.iso %include bl.cfg # A base for a minimal live machine %include bd.cfg # A base for a desktop environment %post --log=/root/ld.log # Beginning of %post section. The following commands are executed inside a chroot environment. Add logging cat >> /etc/rc.d/init.d/livesys << EOF # disable gnome-software automatically downloading updates cat >> /usr/share/glib-2.0/schemas/org.gnome.software.gschema.override << FOE [org.gnome.software] download-updates=false FOE # don't autostart gnome-software session service rm -f /etc/xdg/autostart/gnome-software-service.desktop # disable the gnome-software shell search provider cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE DefaultDisabled=true FOE # don't run gnome-initial-setup mkdir ~liveuser/.config touch ~liveuser/.config/gnome-initial-setup-done # suppress anaconda spokes redundant with gnome-initial-setup cat >> /etc/sysconfig/anaconda << FOE [NetworkSpoke] visited=1 [PasswordSpoke] visited=1 [UserSpoke] visited=1 FOE # 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 mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE [org.gnome.shell] favorite-apps=['firefox.desktop', 'org.gnome.Calendar.desktop', 'rhythmbox.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop'] FOE # Make the welcome screen show up if [ -f /usr/share/anaconda/gnome/fedora-welcome.desktop ]; then mkdir -p ~liveuser/.config/autostart cp /usr/share/anaconda/gnome/fedora-welcome.desktop /usr/share/applications/ cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~liveuser/.config/autostart/ fi # Disable GNOME welcome tour so it doesn't overlap with Fedora welcome screen cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE welcome-dialog-last-shown-version='4294967295' FOE # Copy Anaconda branding in place if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then cp -a /usr/share/lorax/product/* / fi fi # rebuild schema cache with any overrides we installed glib-compile-schemas /usr/share/glib-2.0/schemas # 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/ EOF %end