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