| @ -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 | |||