Created
October 28, 2016 18:55
-
-
Save alunux/d54369c8091b5cc20889d85f7bb6a96b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch --excludepkgs=kernel*,perf,perf-debuginfo,python-perf,python-perf-debuginfo | |
repo --name=updates --mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch --excludepkgs=kernel*,perf,perf-debuginfo,python-perf,python-perf-debuginfo | |
repo --install --name=alunux-kernel-lts --baseurl=https://copr-be.cloud.fedoraproject.org/results/alunux/kernel-lts/fedora-$releasever-$basearch/ | |
repo --install --name=alunux-budgie-git --baseurl=https://copr-be.cloud.fedoraproject.org/results/alunux/budgie-desktop-git/fedora-$releasever-$basearch/ | |
repo --name="RPMFusion Free" --mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-$releasever&arch=$basearch | |
repo --name="RPMFusion Free - Updates" --mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-updates-released-$releasever&arch=$basearch | |
repo --name="RPMFusion Non-Free" --mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch | |
repo --name="RPMFusion Non-Free - Updates" --mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 --passalgo=sha512 | |
selinux --enforcing | |
firewall --enabled --service=mdns | |
xconfig --startxonboot | |
zerombr | |
clearpart --all | |
part / --size 5120 --fstype ext4 | |
services --enabled=NetworkManager,ModemManager --disabled=network,sshd | |
network --bootproto=dhcp --device=link --activate | |
shutdown | |
%include fedora-repo-not-rawhide.ks | |
%packages | |
@base-x | |
@core | |
@fonts | |
@multimedia | |
@hardware-support | |
@printing | |
@networkmanager-submodules | |
# Explicitly specified here: | |
# <notting> walters: because otherwise dependency loops cause yum issues. | |
kernel | |
kernel-modules | |
kernel-modules-extra | |
# 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 | |
@anaconda-tools | |
# Need aajohan-comfortaa-fonts for the SVG rnotes images | |
aajohan-comfortaa-fonts | |
# Without this, initramfs generation during live image creation fails: #1242586 | |
dracut-live | |
grub2-efi | |
syslinux | |
# anaconda needs the locales available to run for different locales | |
glibc-all-langpacks | |
# hmmmmm | |
rpmfusion-free-release | |
rpmfusion-nonfree-release | |
# budgie desktop, etc | |
budgie-desktop | |
nautilus | |
gnome-screensaver | |
gnome-system-monitor | |
gnome-terminal | |
lightdm-gtk | |
breeze-cursor-theme | |
xdg-user-dirs | |
xdg-user-dirs-gtk | |
xorg-x11-drv-libinput | |
mozilla-fira-* | |
firefox | |
f24-backgrounds-extras-gnome | |
bash-completion | |
freetype-freeworld | |
-gfs2-utils | |
-reiserfs-utils | |
-plymouth* | |
-lvm2* | |
-abrt* | |
-selinux* | |
-libreport* | |
-xorg-x11-drv-synaptics | |
-yelp* | |
-ModemManager* | |
-cronie* | |
-avahi | |
-chrony | |
-dmraid* | |
-libblockdev-mdraid | |
%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 | |
\$* | |
} | |
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 | |
echo "localhost" > /etc/hostname | |
# 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/^#user-session=.*/user-session=budgie-desktop/' /etc/lightdm/lightdm.conf | |
# make the installer show up | |
sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop | |
chown -R liveuser:liveuser /home/liveuser | |
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 | |
/usr/sbin/liveinst \$ks | |
fi | |
if strstr "\`cat /proc/cmdline\`" textinst ; then | |
/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* | |
cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE | |
[org.gnome.desktop.interface] | |
gtk-theme='Arc-Darker' | |
icon-theme='Arc' | |
cursor-theme='Breeze_Snow' | |
monospace-font-name='Fira Mono Medium 9' | |
font-name='Fira Sans 8.7998046875' | |
document-font-name='Sans 10' | |
[org.gnome.desktop.background] | |
picture-uri='file:///usr/share/backgrounds/f24/extras/aurora-over-iceland.png' | |
[org.gnome.nautilus.icon-view] | |
default-zoom-level='small' | |
[org.gnome.nautilus.preferences] | |
sort-directories-first=true | |
[org.gnome.Terminal.Legacy.Settings] | |
theme-variant='system' | |
[org.gnome.Terminal.Legacy.Profile] | |
background-color='rgb(0,43,54)' | |
use-theme-colors=false | |
foreground-color='rgb(131,148,150)' | |
background-transparency-percent=6 | |
scrollback-unlimited=true | |
use-transparent-background=true | |
scrollbar-policy='never' | |
[org.gnome.desktop.peripherals.touchpad] | |
natural-scroll=false | |
edge-scrolling-enabled=true | |
tap-to-click=true | |
[org.gnome.desktop.wm.preferences] | |
button-layout='appmenu:minimize,maximize,close' | |
titlebar-font='Fira Sans 8' | |
[org.gnome.settings-daemon.plugins.xsettings] | |
antialiasing='rgba' | |
hinting='slight' | |
overrides=@a{sv} {"Gtk/ShellShowsAppMenu": <int32 0>} | |
[com.solus-project.icon-tasklist] | |
pinned-launchers=['firefox.desktop', 'org.gnome.Nautilus.desktop', 'gnome-control-center.desktop'] | |
FOE | |
glib-compile-schemas /usr/share/glib-2.0/schemas | |
systemctl mask ModemManager firewalld chronyd avahi-daemon lvm2-monitor dmraid-activation iscsi auditd mdmonitor dnf-makecache.timer rtkit-daemon multipathd | |
cat >> /etc/lightdm/lightdm-gtk-greeter.conf << FOE | |
[greeter] | |
background = /usr/share/backgrounds/f24/extras/aurora-over-iceland.png | |
font-name = Cantarell 9 | |
theme-nam = Arc-Darker | |
icon-theme-name = Arc | |
xft-hintstyle = hintfull | |
theme-name = Arc-Darker | |
xft-dpi = 96 | |
xft-antialias = true | |
xft-rgba = rgb | |
FOE | |
cat >> /etc/default/grub << FOE | |
GRUB_TIMEOUT=5 | |
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" | |
GRUB_DEFAULT=saved | |
GRUB_DISABLE_SUBMENU=true | |
GRUB_TERMINAL_OUTPUT="console" | |
GRUB_CMDLINE_LINUX="quiet" | |
GRUB_DISABLE_RECOVERY="true" | |
FOE | |
echo 'pref("general.skins.selectedSkin", "arc-darker-theme");' >> \ | |
/usr/lib64/firefox/browser/defaults/preferences/firefox-redhat-default-prefs.js | |
%end | |
%post --nochroot | |
cp $INSTALL_ROOT/usr/share/licenses/*-release/* $LIVE_ROOT/ | |
cp -r /usr/share/icons/Arc $INSTALL_ROOT/usr/share/icons/ | |
cp -r /usr/share/themes/Arc* $INSTALL_ROOT/usr/share/themes/ | |
cp -r /usr/share/icons/Moka/ $INSTALL_ROOT/usr/share/icons/ | |
cp /etc/dnf/dnf.conf $INSTALL_ROOT/etc/dnf/dnf.conf | |
cp /etc/yum.repos.d/_copr_alunux-budgie-desktop-git.repo $INSTALL_ROOT/etc/yum.repos.d/ | |
cp /etc/yum.repos.d/_copr_alunux-kernel-lts.repo $INSTALL_ROOT/etc/yum.repos.d/ | |
# 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment