@ -0,0 +1,31 @@ | |||||
#!/bin/bash | |||||
set -eu | |||||
##################################################################### | |||||
# TigerOS Build Script for running on the build box with Jenkins CI # | |||||
# @author: Aidan Kahrs # | |||||
# # | |||||
# Usage: sudo bash ci-build-mock.sh # | |||||
# # | |||||
##################################################################### | |||||
# Check that the current user is root | |||||
if [ $EUID != 0 ] | |||||
then | |||||
echo "Please run this script as root (sudo $@$0)." | |||||
exit | |||||
fi | |||||
wget -O tigeros.ks https://raw.githubusercontent.com/RITlug/TigerOS/master/tigeros.ks | |||||
mock -r fedora-26-x86_64 --init | |||||
mock -r fedora-26-x86_64 --copyin tigeros.ks ./tigeros.ks | |||||
mock -r fedora-26-x86_64 --install lorax-lmc-novirt git vim-minimal pykickstart | |||||
mock -r fedora-26-x86_64 --chroot "livemedia-creator --ks tigeros.ks --no-virt --resultdir /var/lmc --project TigerOS-Live --make-iso --volid TigerOS --iso-only --iso-name TigerOS.iso --releasever 26 --title TigerOS-live --macboot" | |||||
rm -rf /srv/isos/TigerOS-$(date +%Y%m%d).iso | |||||
mock -r fedora-26-x86_64 --copyout /var/lmc/TigerOS.iso /srv/isos/TigerOS-$(date +%Y%m%d).iso | |||||
rm -rf /var/lib/mock/ | |||||
cd /srv/isos | |||||
rm -rf CHECKSUM512-$(date +%Y%m%d) | |||||
sha512sum TigerOS-$(date +%Y%m%d).iso > CHECKSUM512-$(date +%Y%m%d) | |||||
chown -R nginx:nginx /srv | |||||
chmod 755 /srv/isos/*.iso | |||||
echo "Build finished" | |||||
@ -0,0 +1,31 @@ | |||||
#!/bin/bash | |||||
set -eu | |||||
################################################################################# | |||||
# TigerOS Build Script(source iso) for running on the build box with Jenkins CI # | |||||
# @author: Aidan Kahrs # | |||||
# # | |||||
# Usage: sudo bash ci-build-mock.sh # | |||||
# # | |||||
################################################################################# | |||||
# Check that the current user is root | |||||
if [ $EUID != 0 ] | |||||
then | |||||
echo "Please run this script as root (sudo $@$0)." | |||||
exit | |||||
fi | |||||
wget -O tigeros-source.ks https://raw.githubusercontent.com/RITlug/TigerOS/master/tigeros-source.ks | |||||
mock -r fedora-26-x86_64 --init | |||||
mock -r fedora-26-x86_64 --copyin tigeros-source.ks ./tigeros-source.ks | |||||
mock -r fedora-26-x86_64 --install pungi | |||||
mock -r fedora-26-x86_64 --chroot "pungi -G -c tigeros-source.ks --name=TigerOS --ver 26 --force && pungi -C -c tigeros-source.ks --name=TigerOS --ver=26 --force && pungi -I -c tigeros-source.ks --name=TigerOS --ver=26 --sourceisos --force" | |||||
rm -rf /srv/isos/TigerOS-source-$(date +%Y%m%d).iso | |||||
mock -r fedora-26-x86_64 --copyout /26/source/iso/TigerOS-DVD-source-26.iso /srv/isos/TigerOS-source-$(date +%Y%m%d).iso | |||||
rm -rf /var/lib/mock/ | |||||
cd /srv/isos | |||||
rm -rf CHECKSUM512-source-$(date +%Y%m%d) | |||||
sha512sum TigerOS-source-$(date +%Y%m%d).iso > CHECKSUM512-source-$(date +%Y%m%d) | |||||
chown -R nginx:nginx /srv | |||||
chmod 755 /srv/isos/*.iso | |||||
echo "Pungi finished" | |||||
@ -0,0 +1,59 @@ | |||||
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="tigeros" --baseurl=https://tigeros.ritlug.com/packages/$basearch/ | |||||
repo --name="Copr repo for gscreenshot owned by thenaterhood" --baseurl=https://copr-be.cloud.fedoraproject.org/results/thenaterhood/gscreenshot/fedora-$releasever-$basearch/ | |||||
anaconda-installclass-tigeros | |||||
chromium | |||||
generic-release-notes | |||||
gimp | |||||
glibc-all-langpacks | |||||
gscreenshot | |||||
hexchat | |||||
htop | |||||
inkscape | |||||
lynx | |||||
memtest86+ | |||||
parole | |||||
pidgin | |||||
rhythmbox | |||||
rpmfusion-free-release | |||||
scrot | |||||
tigeros-backgrounds | |||||
tigeros-ff-profile | |||||
tigeros-logos | |||||
tigeros-release | |||||
tigeros-repos | |||||
tigeros-scripts | |||||
transmission | |||||
vim | |||||
wget | |||||
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 | |||||
-gnome-screenshot | |||||
-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 |
@ -0,0 +1,451 @@ | |||||
#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 | |||||
repo --name="rpmfusion-free-updates" --mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-updates-released-$releasever&arch=$basearch | |||||
repo --name="google-chrome" --baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64 | |||||
repo --name="tigeros" --baseurl=https://tigeros.ritlug.com/packages/$basearch/ | |||||
# Source repos | |||||
repo --name="source" --baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/source/tree/ | |||||
repo --name="updates-source" --baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/SRPMS/ | |||||
repo --name="tigeros-source" --baseurl=https://tigeros.ritlug.com/packages/source/ | |||||
repo --name="rpmfusion-free-source" --baseurl=http://download1.rpmfusion.org/free/fedora/releases/$releasever/Everything/source/SRPMS/ | |||||
repo --name="rpmfusion-free-updates-source" --baseurl=http://download1.rpmfusion.org/free/fedora/updates/$releasever/SRPMS/ | |||||
repo --name="Copr repo for gscreenshot owned by thenaterhood" --baseurl=https://copr-be.cloud.fedoraproject.org/results/thenaterhood/gscreenshot/fedora-$releasever-$basearch/ | |||||
# 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 | |||||
# 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 | |||||
# TigerOS specific setup | |||||
chmod +x /usr/local/bin/\* | |||||
#gsettings set org.cinnamon.desktop.background picture-uri "file:///usr/share/backgrounds/tigeros/wallpaper2-1920x1080.jpg" | |||||
rm -rf /home/liveuser/.config/autostart/tigeros-postinstall.desktop | |||||
restorecon -R /usr/local/bin | |||||
chown -R liveuser:liveuser /home/liveuser | |||||
restorecon -R /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 | |||||
anaconda-installclass-tigeros | |||||
desktop-backgrounds-basic | |||||
dracut-live | |||||
f24-backgrounds-extras-gnome | |||||
generic-release-notes | |||||
gimp | |||||
glibc-all-langpacks | |||||
#remove chrome until we verify licensing | |||||
#google-chrome-stable | |||||
grub2-efi | |||||
gscreenshot | |||||
hexchat | |||||
htop | |||||
inkscape | |||||
kernel | |||||
kernel-modules | |||||
kernel-modules-extra | |||||
lynx | |||||
memtest86+ | |||||
parole | |||||
pidgin | |||||
rhythmbox | |||||
rpmfusion-free-release | |||||
scrot | |||||
syslinux | |||||
tigeros-backgrounds | |||||
tigeros-ff-profile | |||||
tigeros-logos | |||||
tigeros-release | |||||
tigeros-repos | |||||
tigeros-scripts | |||||
transmission | |||||
vim | |||||
wget | |||||
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 | |||||
-gnome-screenshot | |||||
-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 |
@ -0,0 +1,448 @@ | |||||
#version=DEVEL | |||||
# X Window System configuration information | |||||
xconfig --startxonboot | |||||
# Keyboard layouts | |||||
keyboard 'us' | |||||
# Root password | |||||
rootpw --iscrypted --lock locked | |||||
# Use network installation | |||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?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 | |||||
repo --name="rpmfusion-free-updates" --mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-updates-released-$releasever&arch=$basearch | |||||
repo --name="google-chrome" --baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64 | |||||
repo --name="tigeros" --baseurl=https://tigeros.ritlug.com/packages/$basearch/ | |||||
repo --name="Copr repo for gscreenshot owned by thenaterhood" --baseurl=https://copr-be.cloud.fedoraproject.org/results/thenaterhood/gscreenshot/fedora-$releasever-$basearch/ | |||||
# 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 | |||||
# 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 | |||||
# TigerOS specific setup | |||||
chmod +x /usr/local/bin/\* | |||||
#gsettings set org.cinnamon.desktop.background picture-uri "file:///usr/share/backgrounds/tigeros/wallpaper2-1920x1080.jpg" | |||||
rm -rf /home/liveuser/.config/autostart/tigeros-postinstall.desktop | |||||
restorecon -R /usr/local/bin | |||||
chown -R liveuser:liveuser /home/liveuser | |||||
restorecon -R /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 | |||||
anaconda-installclass-tigeros | |||||
desktop-backgrounds-basic | |||||
dracut-live | |||||
f26-backgrounds-extras-gnome | |||||
generic-release-notes | |||||
gimp | |||||
glibc-all-langpacks | |||||
#remove chrome until we verify licensing | |||||
#google-chrome-stable | |||||
grub2-efi | |||||
gscreenshot | |||||
hexchat | |||||
htop | |||||
inkscape | |||||
kernel | |||||
kernel-modules | |||||
kernel-modules-extra | |||||
lynx | |||||
memtest86+ | |||||
parole | |||||
pidgin | |||||
rhythmbox | |||||
rpmfusion-free-release | |||||
scrot | |||||
syslinux | |||||
tigeros-backgrounds | |||||
tigeros-ff-profile | |||||
tigeros-logos | |||||
tigeros-release | |||||
tigeros-repos | |||||
tigeros-scripts | |||||
transmission | |||||
vim | |||||
wget | |||||
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 | |||||
-gnome-screenshot | |||||
-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 |