From cde7be8a933ea2c98f3f31f3daaab0394ec6d5ca Mon Sep 17 00:00:00 2001 From: Louis Abel Date: Tue, 5 Jul 2022 20:49:59 -0700 Subject: [PATCH] Change 9.0 to just 9 and add peridot repos To reduce commits (every 6 months), this change makes it so "9" is the absolute default location as it should be symlinked to the latest in either staging or prod. With that being said, peridot repositories are also provided for automation purposes but also at the convenience of the user if they so choose to use those repos instead. And the readme was updated a bit. --- README.md | 24 +- Rocky-9-KDE.ks | 16 +- Rocky-9-Workstation-Lite.ks | 12 +- Rocky-9-Workstation-Mainline.ks | 12 +- Rocky-9-Workstation.ks | 12 +- Rocky-9-XFCE.ks | 16 +- live/9/peridot/mainline/rocky-live-base.ks | 355 +++++++++++++++++ .../mainline/rocky-live-workstation.ks | 107 ++++++ .../9/peridot/mainline/rocky-repo-mainline.ks | 12 + .../mainline/rocky-workstation-common.ks | 32 ++ live/9/peridot/rocky-live-base-spin.ks | 358 ++++++++++++++++++ live/9/peridot/rocky-live-base.ks | 354 +++++++++++++++++ live/9/peridot/rocky-live-kde-base.ks | 110 ++++++ live/9/peridot/rocky-live-kde-common.ks | 79 ++++ live/9/peridot/rocky-live-kde-minimization.ks | 6 + live/9/peridot/rocky-live-kde.ks | 10 + live/9/peridot/rocky-live-minimization.ks | 14 + live/9/peridot/rocky-live-workstation-lite.ks | 96 +++++ live/9/peridot/rocky-live-workstation.ks | 102 +++++ live/9/peridot/rocky-live-xfce-common.ks | 78 ++++ live/9/peridot/rocky-live-xfce.ks | 94 +++++ live/9/peridot/rocky-repo-epel.ks | 12 + live/9/peridot/rocky-repo.ks | 10 + .../peridot/rocky-workstation-common-lite.ks | 30 ++ live/9/peridot/rocky-workstation-common.ks | 32 ++ live/9/prod/mainline/rocky-live-base.ks | 2 +- live/9/prod/mainline/rocky-repo-mainline.ks | 10 +- live/9/prod/rocky-live-base-spin.ks | 2 +- live/9/prod/rocky-live-base.ks | 2 +- live/9/prod/rocky-repo-epel.ks | 15 +- live/9/prod/rocky-repo.ks | 10 +- live/9/stage/mainline/rocky-live-base.ks | 2 +- live/9/stage/mainline/rocky-repo-mainline.ks | 10 +- live/9/stage/rocky-live-base-spin.ks | 2 +- live/9/stage/rocky-live-base.ks | 2 +- live/9/stage/rocky-repo-epel.ks | 15 +- live/9/stage/rocky-repo.ks | 10 +- 37 files changed, 1986 insertions(+), 79 deletions(-) create mode 100644 live/9/peridot/mainline/rocky-live-base.ks create mode 100644 live/9/peridot/mainline/rocky-live-workstation.ks create mode 100644 live/9/peridot/mainline/rocky-repo-mainline.ks create mode 100644 live/9/peridot/mainline/rocky-workstation-common.ks create mode 100644 live/9/peridot/rocky-live-base-spin.ks create mode 100644 live/9/peridot/rocky-live-base.ks create mode 100644 live/9/peridot/rocky-live-kde-base.ks create mode 100644 live/9/peridot/rocky-live-kde-common.ks create mode 100644 live/9/peridot/rocky-live-kde-minimization.ks create mode 100644 live/9/peridot/rocky-live-kde.ks create mode 100644 live/9/peridot/rocky-live-minimization.ks create mode 100644 live/9/peridot/rocky-live-workstation-lite.ks create mode 100644 live/9/peridot/rocky-live-workstation.ks create mode 100644 live/9/peridot/rocky-live-xfce-common.ks create mode 100644 live/9/peridot/rocky-live-xfce.ks create mode 100644 live/9/peridot/rocky-repo-epel.ks create mode 100644 live/9/peridot/rocky-repo.ks create mode 100644 live/9/peridot/rocky-workstation-common-lite.ks create mode 100644 live/9/peridot/rocky-workstation-common.ks diff --git a/README.md b/README.md index e7d749a..60b403a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,21 @@ # R9 specific kickstarts -This branch has Rocky Linux 8 specific kickstarts. These kickstarts vary +This branch has Rocky Linux 9 specific kickstarts. These kickstarts vary between cloud images and live images provided in our repositories and mirrors. +## Structure + +In the root of the repository are the general kickstarts in use that any +user can pick up, use, or modify to their liking to make their own Rocky +Linux live images. For those who are curious, in the `live` directory are +the split parts that make the live kickstarts what they are, which you can +use `ksflatten` on if you so choose. + +For SIG/Core's usage, we use the `live` area as a "working" directory, +where we use the split parts in our automation for the images and the +pre-flattened versions are there for the convenience of all users. + ## Building Live Images To build live images, you will need to use `livecd-creator` or @@ -12,7 +24,13 @@ many issues. The latter can be a bit more tricky to work with and typically runs the installer virtually. However, it can be used without a virtual machine like in a mock shell. -### Using livemedia-creator +Optionally, it is possible to use `empanadas` found in the SIG/Core toolkit. + +### Automatic: Using empanadas + +To be filled. + +### Manual: Using livemedia-creator To use livemedia-creator without using virt, you can use a mock shell. To setup a mock chroot for the purpose of building a live image, you would @@ -29,7 +47,7 @@ set it up like so: # As the user, setup the mock environment % mock -r rocky-9-x86_64 --init % mock -r rocky-9-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart git -# You will need to be in permissive mode temporarily +# You may need to be in permissive mode temporarily if you have issues % setenforce 0 # Enter the shell % mock -r rocky-9-x86_64 --shell --isolation=simple --enable-network diff --git a/Rocky-9-KDE.ks b/Rocky-9-KDE.ks index d5b57cf..6061bbf 100644 --- a/Rocky-9-KDE.ks +++ b/Rocky-9-KDE.ks @@ -15,13 +15,13 @@ network --bootproto=dhcp --device=link --activate # Firewall configuration firewall --enabled --service=mdns # Use network installation -url --url="http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/" -repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ --cost=200 -repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/AppStream/$basearch/os/ --cost=200 -repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/CRB/$basearch/os/ --cost=200 -repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/extras/$basearch/os --cost=200 -repo --name="epel" --baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/$basearch/ --cost=200 -repo --name="epel-modular" --baseurl=https://dl.fedoraproject.org/pub/epel/8/Modular/$basearch/ --cost=200 +url --url="http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/" +repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ --cost=200 +repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9/AppStream/$basearch/os/ --cost=200 +repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9/CRB/$basearch/os/ --cost=200 +repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9/extras/$basearch/os --cost=200 +repo --name="epel" --baseurl=https://dl.fedoraproject.org/pub/epel/9/Everything/$basearch/ --cost=200 +#repo --name="epel-modular" --baseurl=https://dl.fedoraproject.org/pub/epel/8/Modular/$basearch/ --cost=200 # System timezone timezone US/Eastern # SELinux configuration @@ -186,7 +186,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/Rocky-9-Workstation-Lite.ks b/Rocky-9-Workstation-Lite.ks index e7a817a..2888492 100644 --- a/Rocky-9-Workstation-Lite.ks +++ b/Rocky-9-Workstation-Lite.ks @@ -15,11 +15,11 @@ network --bootproto=dhcp --device=link --activate # Firewall configuration firewall --enabled --service=mdns # Use network installation -url --url="http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/" -repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ --cost=200 -repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/AppStream/$basearch/os/ --cost=200 -repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/CRB/$basearch/os/ --cost=200 -repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/extras/$basearch/os --cost=200 +url --url="http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/" +repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ --cost=200 +repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9/AppStream/$basearch/os/ --cost=200 +repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9/CRB/$basearch/os/ --cost=200 +repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9/extras/$basearch/os --cost=200 # System timezone timezone US/Eastern # SELinux configuration @@ -184,7 +184,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/Rocky-9-Workstation-Mainline.ks b/Rocky-9-Workstation-Mainline.ks index 423d673..b938790 100644 --- a/Rocky-9-Workstation-Mainline.ks +++ b/Rocky-9-Workstation-Mainline.ks @@ -21,13 +21,13 @@ selinux --enforcing # System services services --disabled="sshd" --enabled="NetworkManager,ModemManager" -repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ --cost=200 -repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/AppStream/$basearch/os/ --cost=200 -repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/CRB/$basearch/os/ --cost=200 -repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/extras/$basearch/os --cost=200 +repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ --cost=200 +repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9/AppStream/$basearch/os/ --cost=200 +repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9/CRB/$basearch/os/ --cost=200 +repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9/extras/$basearch/os --cost=200 repo --name="elrepo-kernel" --baseurl=https://elrepo.org/linux/kernel/el8/$basearch/ --cost=200 # Use network installation -url --url="http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/" +url --url="http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/" # System bootloader configuration bootloader --location=none # Clear the Master Boot Record @@ -186,7 +186,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/Rocky-9-Workstation.ks b/Rocky-9-Workstation.ks index a8d3cd8..f5ee050 100644 --- a/Rocky-9-Workstation.ks +++ b/Rocky-9-Workstation.ks @@ -15,11 +15,11 @@ network --bootproto=dhcp --device=link --activate # Firewall configuration firewall --enabled --service=mdns # Use network installation -url --url="http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/" -repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ --cost=200 -repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/AppStream/$basearch/os/ --cost=200 -repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/CRB/$basearch/os/ --cost=200 -repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/extras/$basearch/os --cost=200 +url --url="http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/" +repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ --cost=200 +repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9/AppStream/$basearch/os/ --cost=200 +repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9/CRB/$basearch/os/ --cost=200 +repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9/extras/$basearch/os --cost=200 # System timezone timezone US/Eastern # SELinux configuration @@ -184,7 +184,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/Rocky-9-XFCE.ks b/Rocky-9-XFCE.ks index 76723c2..0038511 100644 --- a/Rocky-9-XFCE.ks +++ b/Rocky-9-XFCE.ks @@ -15,13 +15,13 @@ network --bootproto=dhcp --device=link --activate # Firewall configuration firewall --enabled --service=mdns # Use network installation -url --url="http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/" -repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ --cost=200 -repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/AppStream/$basearch/os/ --cost=200 -repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/CRB/$basearch/os/ --cost=200 -repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/extras/$basearch/os --cost=200 -repo --name="epel" --baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/$basearch/ --cost=200 -repo --name="epel-modular" --baseurl=https://dl.fedoraproject.org/pub/epel/8/Modular/$basearch/ --cost=200 +url --url="http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/" +repo --name="BaseOS" --baseurl=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ --cost=200 +repo --name="AppStream" --baseurl=http://dl.rockylinux.org/pub/rocky/9/AppStream/$basearch/os/ --cost=200 +repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9/CRB/$basearch/os/ --cost=200 +repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9/extras/$basearch/os --cost=200 +repo --name="epel" --baseurl=https://dl.fedoraproject.org/pub/epel/9/Everything/$basearch/ --cost=200 +#repo --name="epel-modular" --baseurl=https://dl.fedoraproject.org/pub/epel/8/Modular/$basearch/ --cost=200 # System timezone timezone US/Eastern # SELinux configuration @@ -186,7 +186,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/live/9/peridot/mainline/rocky-live-base.ks b/live/9/peridot/mainline/rocky-live-base.ks new file mode 100644 index 0000000..b3e05cc --- /dev/null +++ b/live/9/peridot/mainline/rocky-live-base.ks @@ -0,0 +1,355 @@ +# rocky-live-base.ks +# +# Base installation information for Rocky Linux images +# + +lang en_US.UTF-8 +keyboard us +timezone US/Eastern +selinux --enforcing +firewall --enabled --service=mdns +xconfig --startxonboot +zerombr +clearpart --all +part / --size 5120 --fstype ext4 +services --enabled=NetworkManager,ModemManager --disabled=sshd +network --bootproto=dhcp --device=link --activate +rootpw --lock --iscrypted locked +shutdown + +%include rocky-repo-mainline.ks + +%packages +@base-x +@guest-desktop-agents +@standard +@core +@fonts +@input-methods +@dial-up +@multimedia +@hardware-support + +# explicit +elrepo-release +kernel-ml +kernel-ml-modules +kernel-ml-modules-extra +memtest86+ +anaconda +anaconda-install-env-deps +anaconda-live +@anaconda-tools + +# Required for SVG rnotes images +aajohan-comfortaa-fonts + +# RHBZ#1242586 - Required for initramfs creation +dracut-live +syslinux + +# Anaconda needs all the locales available, just like a DVD installer +glibc-all-langpacks + +# This isn't in @core anymore, but livesys still needs it +initscripts +chkconfig +%end + +%post +# FIXME: it'd be better to get this installed from a package +cat > /etc/rc.d/init.d/livesys << EOF +#!/bin/bash +# +# live: Init script for live image +# +# chkconfig: 345 00 99 +# description: Init script for live image. +### BEGIN INIT INFO +# X-Start-Before: display-manager 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=} + continue + fi + if [ "\${arg##live_dir=}" != "\${arg}" ]; then + livedir=\${arg##live_dir=} + fi +done + +# Enable swap 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 + +# Support for persistent homes +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 +} + +# Help locate persistent homes +findPersistentHome() { + for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##persistenthome=}" != "\${arg}" ]; then + homedev=\${arg##persistenthome=} + 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 + +# Mount the persistent home if it's available +if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then + action "Mounting persistent /home" mountPersistentHome +fi + +if [ -n "\$configdone" ]; then + exit 0 +fi + +# Create the liveuser (no password) so automatic logins and sudo works +action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser +passwd -d liveuser > /dev/null +usermod -aG wheel liveuser > /dev/null + +# Same for root +passwd -d root > /dev/null + +# Turn off firstboot (similar to a DVD/minimal install, where it asks +# for the user to accept the EULA before bringing up a TTY) +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 || : + +# Prelinking damages the images +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 || : + +# Even if there isn't gnome, this doesn't hurt. +gsettings set org.gnome.software download-updates 'false' || : + +# Disable cron +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 || : + +# Disable abrt +systemctl --no-reload disable abrtd.service 2> /dev/null || : +systemctl stop abrtd.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" > /etc/hostname + +EOF + +# HAL likes to start 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 stuff out of the kernel 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 installer +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 <> /etc/fstab << EOF +vartmp /var/tmp tmpfs defaults 0 0 +EOF + +# PackageKit likes to play games. Let's fix that. +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-rockyofficial +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 - the error is expected +/sbin/chkconfig network off + +# Remove machine-id on generated images +rm -f /etc/machine-id +touch /etc/machine-id + +%end + + +%post --nochroot +cp $INSTALL_ROOT/usr/share/licenses/*-release/* $LIVE_ROOT/ + +# This only works on x86_64 +if [ "$(uname -i)" = "i386" -o "$(uname -i)" = "x86_64" ]; then + # For livecd-creator builds + if [ ! -d $LIVE_ROOT/LiveOS ]; then mkdir -p $LIVE_ROOT/LiveOS ; fi + cp /usr/bin/livecd-iso-to-disk $LIVE_ROOT/LiveOS + + # For lorax/livemedia-creator builds + sed -i ' + /## make boot.iso/ i\ + # Add livecd-iso-to-disk script to .iso filesystem at /LiveOS/\ + <% f = "usr/bin/livecd-iso-to-disk" %>\ + %if exists(f):\ + install ${f} ${LIVEDIR}/${f|basename}\ + %endif\ + ' /usr/share/lorax/templates.d/99-generic/live/x86.tmpl +fi + +%end diff --git a/live/9/peridot/mainline/rocky-live-workstation.ks b/live/9/peridot/mainline/rocky-live-workstation.ks new file mode 100644 index 0000000..e83e334 --- /dev/null +++ b/live/9/peridot/mainline/rocky-live-workstation.ks @@ -0,0 +1,107 @@ +# Maintained by Release Engineering +# mailto:releng@rockylinux.org + +%include rocky-live-base.ks +%include rocky-workstation-common.ks +# +# Disable this for now as packagekit is causing compose failures +# by leaving a gpg-agent around holding /dev/null open. +# +#include snippets/packagekit-cached-metadata.ks + +part / --size 6656 + +%post + +cat >> /etc/rc.d/init.d/livesys << EOF + + +# disable gnome-software automatically downloading updates +cat >> /usr/share/glib-2.0/schemas/org.gnome.software.gschema.override << FOE +[org.gnome.software] +download-updates=false +FOE + +# don't autostart gnome-software session service +rm -f /etc/xdg/autostart/gnome-software-service.desktop + +# disable the gnome-software shell search provider +cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE +DefaultDisabled=true +FOE + +# don't run gnome-initial-setup +mkdir ~liveuser/.config +touch ~liveuser/.config/gnome-initial-setup-done + +# suppress anaconda spokes redundant with gnome-initial-setup +cat >> /etc/sysconfig/anaconda << FOE +[NetworkSpoke] +visited=1 + +[PasswordSpoke] +visited=1 + +[UserSpoke] +visited=1 +FOE + +# make the installer show up +if [ -f /usr/share/applications/liveinst.desktop ]; then + # Show harddisk install in shell dash + sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop "" + # need to move it to anaconda.desktop to make shell happy + mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop + + cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE +[org.gnome.shell] +favorite-apps=['firefox.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop'] +FOE + + # Make the welcome screen show up + if [ -f /usr/share/anaconda/gnome/rhel-welcome.desktop ]; then + mkdir -p ~liveuser/.config/autostart + #sed -i "s/Red Hat Enterprise/Rocky/g" /usr/share/anaconda/gnome/rhel-welcome.desktop + #sed -i "s/RHEL/Rocky Linux/g" /usr/share/anaconda/gnome/rhel-welcome + #sed -i "s/Red Hat Enterprise/Rocky/g" /usr/share/anaconda/gnome/rhel-welcome + #sed -i "s/org.fedoraproject.AnacondaInstaller/fedora-logo-icon/g" /usr/share/anaconda/gnome/rhel-welcome + #sed -i "s/org.fedoraproject.AnacondaInstaller/fedora-logo-icon/g" /usr/share/applications/anaconda.desktop + cp /usr/share/anaconda/gnome/rhel-welcome.desktop /usr/share/applications/ + cp /usr/share/anaconda/gnome/rhel-welcome.desktop ~liveuser/.config/autostart/ + fi + + # Copy Anaconda branding in place + if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then + cp -a /usr/share/lorax/product/* / + fi +fi + +# rebuild schema cache with any overrides we installed +glib-compile-schemas /usr/share/glib-2.0/schemas + +# set up auto-login +cat > /etc/gdm/custom.conf << FOE +[daemon] +AutomaticLoginEnable=True +AutomaticLogin=liveuser +FOE + +# Turn off PackageKit-command-not-found while uninstalled +if [ -f /etc/PackageKit/CommandNotFound.conf ]; then + sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf +fi + +# switch default kernel +sed -i 's/DEFAULTKERNEL=kernel/DEFAULTKERNEL=kernel-ml/g' /etc/sysconfig/kernel + +# enable elrepo kernel +dnf config-manager --set-enabled elrepo-kernel + +# make sure to set the right permissions and selinux contexts +chown -R liveuser:liveuser /home/liveuser/ +restorecon -R /home/liveuser/ +restorecon -R / + +EOF + +%end diff --git a/live/9/peridot/mainline/rocky-repo-mainline.ks b/live/9/peridot/mainline/rocky-repo-mainline.ks new file mode 100644 index 0000000..2b6ab85 --- /dev/null +++ b/live/9/peridot/mainline/rocky-repo-mainline.ks @@ -0,0 +1,12 @@ +# These should change based on the major/minor release + +# Base repos +repo --name=BaseOS --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-BaseOS/$basearch +repo --name=AppStream --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-AppStream/$basearch +repo --name=CRB --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-CRB/$basearch +repo --name=extras --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-extras/$basearch + +repo --name="elrepo-kernel" --baseurl=https://elrepo.org/linux/kernel/el9/$basearch/ --cost=200 + +# URL to the base os repo +url --url=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-BaseOS/$basearch diff --git a/live/9/peridot/mainline/rocky-workstation-common.ks b/live/9/peridot/mainline/rocky-workstation-common.ks new file mode 100644 index 0000000..28f865f --- /dev/null +++ b/live/9/peridot/mainline/rocky-workstation-common.ks @@ -0,0 +1,32 @@ +%packages + +# Exclude unwanted groups that rocky-live-base.ks pulls in +-@dial-up +-@input-methods +-@standard + +# Make sure to sync any additions / removals done here with +# workstation-product-environment in comps +@base-x +@core +@fonts +@gnome-desktop +@guest-desktop-agents +@hardware-support +@internet-browser +@multimedia +@networkmanager-submodules +@workstation-product + +# Libreoffice +libreoffice-calc +libreoffice-emailmerge +libreoffice-graphicfilter +libreoffice-impress +libreoffice-writer + +# Exclude unwanted packages from @anaconda-tools group +-gfs2-utils +-reiserfs-utils + +%end diff --git a/live/9/peridot/rocky-live-base-spin.ks b/live/9/peridot/rocky-live-base-spin.ks new file mode 100644 index 0000000..ed2c93c --- /dev/null +++ b/live/9/peridot/rocky-live-base-spin.ks @@ -0,0 +1,358 @@ +# rocky-live-base-spin.ks +# +# Base installation information for Rocky Linux images +# Contains EPEL. +# + +lang en_US.UTF-8 +keyboard us +timezone US/Eastern +selinux --enforcing +firewall --enabled --service=mdns +xconfig --startxonboot +zerombr +clearpart --all +part / --size 5120 --fstype ext4 +services --enabled=NetworkManager,ModemManager --disabled=sshd +network --bootproto=dhcp --device=link --activate +rootpw --lock --iscrypted locked +shutdown + +%include rocky-repo-epel.ks + +%packages +@base-x +@guest-desktop-agents +@standard +@core +@fonts +@input-methods +@dial-up +@multimedia +@hardware-support + +# explicit +kernel +kernel-modules +kernel-modules-extra +memtest86+ +anaconda +anaconda-install-env-deps +anaconda-live +@anaconda-tools + +# Required for SVG rnotes images +aajohan-comfortaa-fonts + +# RHBZ#1242586 - Required for initramfs creation +dracut-live +syslinux + +# Anaconda needs all the locales available, just like a DVD installer +glibc-all-langpacks + +# no longer in @core since 2018-10, but needed for livesys script +initscripts +chkconfig + +# absolutely required - don't want a system that can't actually update +epel-release +%end + +%post +# FIXME: it'd be better to get this installed from a package +cat > /etc/rc.d/init.d/livesys << EOF +#!/bin/bash +# +# live: Init script for live image +# +# chkconfig: 345 00 99 +# description: Init script for live image. +### BEGIN INIT INFO +# X-Start-Before: display-manager 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=} + continue + fi + if [ "\${arg##live_dir=}" != "\${arg}" ]; then + livedir=\${arg##live_dir=} + fi +done + +# Enable swap 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 + +# Support for persistent homes +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 +} + +# Help locate persistent homes +findPersistentHome() { + for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##persistenthome=}" != "\${arg}" ]; then + homedev=\${arg##persistenthome=} + 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 + +# Mount the persistent home if it's available +if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then + action "Mounting persistent /home" mountPersistentHome +fi + +if [ -n "\$configdone" ]; then + exit 0 +fi + +# Create the liveuser (no password) so automatic logins and sudo works +action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser +passwd -d liveuser > /dev/null +usermod -aG wheel liveuser > /dev/null + +# Same for root +passwd -d root > /dev/null + +# Turn off firstboot (similar to a DVD/minimal install, where it asks +# for the user to accept the EULA before bringing up a TTY) +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 || : + +# Prelinking damages the images +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 || : + +# Even if there isn't gnome, this doesn't hurt. +gsettings set org.gnome.software download-updates 'false' || : + +# Disable cron +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 || : + +# Disable abrt +systemctl --no-reload disable abrtd.service 2> /dev/null || : +systemctl stop abrtd.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 + +# HAL likes to start 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 stuff out of the kernel 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 installer +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 <> /etc/fstab << EOF +vartmp /var/tmp tmpfs defaults 0 0 +EOF + +# PackageKit likes to play games. Let's fix that. +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-rockyofficial +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 - the error is expected +/sbin/chkconfig network off + +# Remove machine-id on 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_64 +if [ "$(uname -i)" = "i386" -o "$(uname -i)" = "x86_64" ]; then + # For livecd-creator builds + if [ ! -d $LIVE_ROOT/LiveOS ]; then mkdir -p $LIVE_ROOT/LiveOS ; fi + cp /usr/bin/livecd-iso-to-disk $LIVE_ROOT/LiveOS + + # For lorax/livemedia-creator builds + sed -i ' + /## make boot.iso/ i\ + # Add livecd-iso-to-disk script to .iso filesystem at /LiveOS/\ + <% f = "usr/bin/livecd-iso-to-disk" %>\ + %if exists(f):\ + install ${f} ${LIVEDIR}/${f|basename}\ + %endif\ + ' /usr/share/lorax/templates.d/99-generic/live/x86.tmpl +fi + +%end diff --git a/live/9/peridot/rocky-live-base.ks b/live/9/peridot/rocky-live-base.ks new file mode 100644 index 0000000..ae3a5c9 --- /dev/null +++ b/live/9/peridot/rocky-live-base.ks @@ -0,0 +1,354 @@ +# rocky-live-base.ks +# +# Base installation information for Rocky Linux images +# + +lang en_US.UTF-8 +keyboard us +timezone US/Eastern +selinux --enforcing +firewall --enabled --service=mdns +xconfig --startxonboot +zerombr +clearpart --all +part / --size 5120 --fstype ext4 +services --enabled=NetworkManager,ModemManager --disabled=sshd +network --bootproto=dhcp --device=link --activate +rootpw --lock --iscrypted locked +shutdown + +%include rocky-repo.ks + +%packages +@base-x +@guest-desktop-agents +@standard +@core +@fonts +@input-methods +@dial-up +@multimedia +@hardware-support + +# explicit +kernel +kernel-modules +kernel-modules-extra +memtest86+ +anaconda +anaconda-install-env-deps +anaconda-live +@anaconda-tools + +# Required for SVG rnotes images +aajohan-comfortaa-fonts + +# RHBZ#1242586 - Required for initramfs creation +dracut-live +syslinux + +# Anaconda needs all the locales available, just like a DVD installer +glibc-all-langpacks + +# This isn't in @core anymore, but livesys still needs it +initscripts +chkconfig +%end + +%post +# FIXME: it'd be better to get this installed from a package +cat > /etc/rc.d/init.d/livesys << EOF +#!/bin/bash +# +# live: Init script for live image +# +# chkconfig: 345 00 99 +# description: Init script for live image. +### BEGIN INIT INFO +# X-Start-Before: display-manager 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=} + continue + fi + if [ "\${arg##live_dir=}" != "\${arg}" ]; then + livedir=\${arg##live_dir=} + fi +done + +# Enable swap 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 + +# Support for persistent homes +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 +} + +# Help locate persistent homes +findPersistentHome() { + for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##persistenthome=}" != "\${arg}" ]; then + homedev=\${arg##persistenthome=} + 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 + +# Mount the persistent home if it's available +if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then + action "Mounting persistent /home" mountPersistentHome +fi + +if [ -n "\$configdone" ]; then + exit 0 +fi + +# Create the liveuser (no password) so automatic logins and sudo works +action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser +passwd -d liveuser > /dev/null +usermod -aG wheel liveuser > /dev/null + +# Same for root +passwd -d root > /dev/null + +# Turn off firstboot (similar to a DVD/minimal install, where it asks +# for the user to accept the EULA before bringing up a TTY) +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 || : + +# Prelinking damages the images +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 || : + +# Even if there isn't gnome, this doesn't hurt. +gsettings set org.gnome.software download-updates 'false' || : + +# Disable cron +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 || : + +# Disable abrt +systemctl --no-reload disable abrtd.service 2> /dev/null || : +systemctl stop abrtd.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 + +# HAL likes to start 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 stuff out of the kernel 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 installer +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 <> /etc/fstab << EOF +vartmp /var/tmp tmpfs defaults 0 0 +EOF + +# PackageKit likes to play games. Let's fix that. +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-rockyofficial +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 - the error is expected +/sbin/chkconfig network off + +# Remove machine-id on generated images +rm -f /etc/machine-id +touch /etc/machine-id + +%end + + +%post --nochroot +cp $INSTALL_ROOT/usr/share/licenses/*-release/* $LIVE_ROOT/ + +# This only works on x86_64 +if [ "$(uname -i)" = "i386" -o "$(uname -i)" = "x86_64" ]; then + # For livecd-creator builds + if [ ! -d $LIVE_ROOT/LiveOS ]; then mkdir -p $LIVE_ROOT/LiveOS ; fi + cp /usr/bin/livecd-iso-to-disk $LIVE_ROOT/LiveOS + + # For lorax/livemedia-creator builds + sed -i ' + /## make boot.iso/ i\ + # Add livecd-iso-to-disk script to .iso filesystem at /LiveOS/\ + <% f = "usr/bin/livecd-iso-to-disk" %>\ + %if exists(f):\ + install ${f} ${LIVEDIR}/${f|basename}\ + %endif\ + ' /usr/share/lorax/templates.d/99-generic/live/x86.tmpl +fi + +%end diff --git a/live/9/peridot/rocky-live-kde-base.ks b/live/9/peridot/rocky-live-kde-base.ks new file mode 100644 index 0000000..d2ffac2 --- /dev/null +++ b/live/9/peridot/rocky-live-kde-base.ks @@ -0,0 +1,110 @@ +# Maintained by RelEng + +%include rocky-live-base-spin.ks +%include rocky-live-kde-common.ks + +%post + +# set default GTK+ theme for root (see #683855, #689070, #808062) +cat > /root/.gtkrc-2.0 << EOF +include "/usr/share/themes/Adwaita/gtk-2.0/gtkrc" +include "/etc/gtk-2.0/gtkrc" +gtk-theme-name="Adwaita" +EOF +mkdir -p /root/.config/gtk-3.0 +cat > /root/.config/gtk-3.0/settings.ini << EOF +[Settings] +gtk-theme-name = Adwaita +EOF + +# add initscript +cat >> /etc/rc.d/init.d/livesys << EOF + +# are we *not* able to use wayland sessions? +if strstr "\`cat /proc/cmdline\`" nomodeset ; then +PLASMA_SESSION_FILE="plasmax11.desktop" +else +PLASMA_SESSION_FILE="plasma.desktop" +fi + +# set up autologin for user liveuser +if [ -f /etc/sddm.conf ]; then +sed -i 's/^#User=.*/User=liveuser/' /etc/sddm.conf +sed -i "s/^#Session=.*/Session=\${PLASMA_SESSION_FILE}/" /etc/sddm.conf +else +cat > /etc/sddm.conf << SDDM_EOF +[Autologin] +User=liveuser +Session=\${PLASMA_SESSION_FILE} +SDDM_EOF +fi + +# add liveinst.desktop to favorites menu +mkdir -p /home/liveuser/.config/ +cat > /home/liveuser/.config/kickoffrc << MENU_EOF +[Favorites] +FavoriteURLs=/usr/share/applications/firefox.desktop,/usr/share/applications/org.kde.dolphin.desktop,/usr/share/applications/systemsettings.desktop,/usr/share/applications/org.kde.konsole.desktop,/usr/share/applications/liveinst.desktop +MENU_EOF + +# show liveinst.desktop on desktop and in menu +sed -i 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop +# set executable bit disable KDE security warning +chmod +x /usr/share/applications/liveinst.desktop +mkdir /home/liveuser/Desktop +cp -a /usr/share/applications/liveinst.desktop /home/liveuser/Desktop/ + +if [ -f /usr/share/anaconda/gnome/rhel-welcome.desktop ]; then + mkdir -p ~liveuser/.config/autostart + cp /usr/share/anaconda/gnome/rhel-welcome.desktop /usr/share/applications/ + cp /usr/share/anaconda/gnome/rhel-welcome.desktop ~liveuser/.config/autostart/ +fi + +# Set akonadi backend +mkdir -p /home/liveuser/.config/akonadi +cat > /home/liveuser/.config/akonadi/akonadiserverrc << AKONADI_EOF +[%General] +Driver=QSQLITE3 +AKONADI_EOF + +# "Disable plasma-discover-notifier" +mkdir -p /home/liveuser/.config/autostart +cp -a /etc/xdg/autostart/org.kde.discover.notifier.desktop /home/liveuser/.config/autostart/ +echo 'Hidden=true' >> /home/liveuser/.config/autostart/org.kde.discover.notifier.desktop + +# Disable baloo +cat > /home/liveuser/.config/baloofilerc << BALOO_EOF +[Basic Settings] +Indexing-Enabled=false +BALOO_EOF + +# Disable kres-migrator +cat > /home/liveuser/.kde/share/config/kres-migratorrc << KRES_EOF +[Migration] +Enabled=false +KRES_EOF + +# Disable kwallet migrator +cat > /home/liveuser/.config/kwalletrc << KWALLET_EOL +[Migration] +alreadyMigrated=true +KWALLET_EOL +# Disable automount of 'known' devices +# https://bugzilla.redhat.com/show_bug.cgi?id=2073708 +cat > /home/liveuser/.config/kded_device_automounterrc << AUTOMOUNTER_EOF +[General] +AutomountEnabled=false +AutomountOnLogin=false +AutomountOnPlugin=false +AUTOMOUNTER_EOF + +# make sure to set the right permissions and selinux contexts +chown -R liveuser:liveuser /home/liveuser/ +restorecon -R /home/liveuser/ +restorecon -R / + +EOF + +systemctl enable --force sddm.service +dnf config-manager --set-enabled crb + +%end diff --git a/live/9/peridot/rocky-live-kde-common.ks b/live/9/peridot/rocky-live-kde-common.ks new file mode 100644 index 0000000..7f03d2c --- /dev/null +++ b/live/9/peridot/rocky-live-kde-common.ks @@ -0,0 +1,79 @@ + +%packages +# install env-group to resolve RhBug:1891500 +@^kde-desktop-environment + +@firefox +@kde-apps +@kde-media + +# Libreoffice +libreoffice-calc +libreoffice-emailmerge +libreoffice-graphicfilter +libreoffice-impress +libreoffice-writer + +-@admin-tools + +### The KDE-Desktop + +### fixes +sddm +sddm-breeze +sddm-themes +sddm-kcm + +# use kde-print-manager instead of system-config-printer +-system-config-printer +# make sure mariadb lands instead of MySQL (hopefully a temporary hack) +mariadb-embedded +mariadb-connector-c +mariadb-server + +# minimal localization support - allows installing the kde-l10n-* packages +#kde-l10n <- Not in EL8 + +# unwanted packages from @kde-desktop +# don't include these for now to fit on a cd +-desktop-backgrounds-basic +-kdeaccessibility* +-ktorrent # kget has also basic torrent features (~3 megs) +-digikam # digikam has duplicate functionality with gwenview (~28 megs) +-kipi-plugins # ~8 megs + drags in Marble +-krusader # ~4 megs +-k3b # ~15 megs + +#-kdeplasma-addons # ~16 megs + +# Additional packages that are not default in kde-* groups, but useful +#kdeartwork # only include some parts of kdeartwork +fuse +#mediawriter <-- Not in EL8 + +### space issues + +# admin-tools +-gnome-disk-utility +# kcm_clock still lacks some features, so keep system-config-date around +#-system-config-date +# prefer kcm_systemd +-system-config-services +# prefer/use kusers +-system-config-users + +# we need to keep epel-release, otherwise we can't update +epel-release + +### MINIMIZATION ### +-mpage +-hplip +-isdn4k-utils +-xsane +-xsane-gimp +-@input-methods +-scim* +-iok + +%end + diff --git a/live/9/peridot/rocky-live-kde-minimization.ks b/live/9/peridot/rocky-live-kde-minimization.ks new file mode 100644 index 0000000..58afc4c --- /dev/null +++ b/live/9/peridot/rocky-live-kde-minimization.ks @@ -0,0 +1,6 @@ +# Remove a few things we don't need +%packages +-@input-methods +-scim* +-iok +%end diff --git a/live/9/peridot/rocky-live-kde.ks b/live/9/peridot/rocky-live-kde.ks new file mode 100644 index 0000000..457cac8 --- /dev/null +++ b/live/9/peridot/rocky-live-kde.ks @@ -0,0 +1,10 @@ +# rocky-live-kde.ks +# BROKEN + +%include rocky-live-kde-base.ks + +# DVD +part / --size=7000 + +%post +%end diff --git a/live/9/peridot/rocky-live-minimization.ks b/live/9/peridot/rocky-live-minimization.ks new file mode 100644 index 0000000..3c64dff --- /dev/null +++ b/live/9/peridot/rocky-live-minimization.ks @@ -0,0 +1,14 @@ +# Saving space +%packages + +# save some space +-mpage +-hplip +-isdn4k-utils + +# scanning takes quite a bit of space :/ +-xsane +-xsane-gimp +-sane-backends + +%end diff --git a/live/9/peridot/rocky-live-workstation-lite.ks b/live/9/peridot/rocky-live-workstation-lite.ks new file mode 100644 index 0000000..1825458 --- /dev/null +++ b/live/9/peridot/rocky-live-workstation-lite.ks @@ -0,0 +1,96 @@ +# Maintained by Release Engineering +# mailto:releng@rockylinux.org + +%include rocky-live-base.ks +%include rocky-workstation-common-lite.ks +# +# Disable this for now as packagekit is causing compose failures +# by leaving a gpg-agent around holding /dev/null open. +# +#include snippets/packagekit-cached-metadata.ks + +part / --size 7750 + +%post + +cat >> /etc/rc.d/init.d/livesys << EOF + + +# disable gnome-software automatically downloading updates +cat >> /usr/share/glib-2.0/schemas/org.gnome.software.gschema.override << FOE +[org.gnome.software] +download-updates=false +FOE + +# don't autostart gnome-software session service +rm -f /etc/xdg/autostart/gnome-software-service.desktop + +# disable the gnome-software shell search provider +cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE +DefaultDisabled=true +FOE + +# don't run gnome-initial-setup +mkdir ~liveuser/.config +touch ~liveuser/.config/gnome-initial-setup-done + +# suppress anaconda spokes redundant with gnome-initial-setup +cat >> /etc/sysconfig/anaconda << FOE +[NetworkSpoke] +visited=1 + +[PasswordSpoke] +visited=1 + +[UserSpoke] +visited=1 +FOE + +# make the installer show up +if [ -f /usr/share/applications/liveinst.desktop ]; then + # Show harddisk install in shell dash + sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop "" + # need to move it to anaconda.desktop to make shell happy + mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop + + cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE +[org.gnome.shell] +favorite-apps=['firefox.desktop', 'evolution.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop'] +FOE + + # Make the welcome screen show up + if [ -f /usr/share/anaconda/gnome/rhel-welcome.desktop ]; then + mkdir -p ~liveuser/.config/autostart + cp /usr/share/anaconda/gnome/rhel-welcome.desktop /usr/share/applications/ + cp /usr/share/anaconda/gnome/rhel-welcome.desktop ~liveuser/.config/autostart/ + fi + + # Copy Anaconda branding in place + if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then + cp -a /usr/share/lorax/product/* / + fi +fi + +# rebuild schema cache with any overrides we installed +glib-compile-schemas /usr/share/glib-2.0/schemas + +# set up auto-login +cat > /etc/gdm/custom.conf << FOE +[daemon] +AutomaticLoginEnable=True +AutomaticLogin=liveuser +FOE + +# Turn off PackageKit-command-not-found while uninstalled +if [ -f /etc/PackageKit/CommandNotFound.conf ]; then + sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf +fi + +# make sure to set the right permissions and selinux contexts +chown -R liveuser:liveuser /home/liveuser/ +restorecon -R /home/liveuser/ +restorecon -R / + +EOF + +%end diff --git a/live/9/peridot/rocky-live-workstation.ks b/live/9/peridot/rocky-live-workstation.ks new file mode 100644 index 0000000..c551274 --- /dev/null +++ b/live/9/peridot/rocky-live-workstation.ks @@ -0,0 +1,102 @@ +# Maintained by Release Engineering +# mailto:releng@rockylinux.org + +%include rocky-live-base.ks +%include rocky-workstation-common.ks +# +# Disable this for now as packagekit is causing compose failures +# by leaving a gpg-agent around holding /dev/null open. +# +#include snippets/packagekit-cached-metadata.ks + +part / --size 7750 + +%post + +cat >> /etc/rc.d/init.d/livesys << EOF + + +# disable gnome-software automatically downloading updates +cat >> /usr/share/glib-2.0/schemas/org.gnome.software.gschema.override << FOE +[org.gnome.software] +allow-updates=false +download-updates=false +FOE + +# don't autostart gnome-software session service +rm -f /etc/xdg/autostart/gnome-software-service.desktop + +# disable the gnome-software shell search provider +cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE +DefaultDisabled=true +FOE + +# don't run gnome-initial-setup +mkdir ~liveuser/.config +touch ~liveuser/.config/gnome-initial-setup-done + +# suppress anaconda spokes redundant with gnome-initial-setup +cat >> /etc/sysconfig/anaconda << FOE +[NetworkSpoke] +visited=1 + +[PasswordSpoke] +visited=1 + +[UserSpoke] +visited=1 +FOE + +# make the installer show up +if [ -f /usr/share/applications/liveinst.desktop ]; then + # Show harddisk install in shell dash + sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop "" + # need to move it to anaconda.desktop to make shell happy + mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop + + cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE +[org.gnome.shell] +favorite-apps=['firefox.desktop', 'evolution.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop'] +FOE + + # Make the welcome screen show up + if [ -f /usr/share/anaconda/gnome/rhel-welcome.desktop ]; then + mkdir -p ~liveuser/.config/autostart + cp /usr/share/anaconda/gnome/rhel-welcome.desktop /usr/share/applications/ + cp /usr/share/anaconda/gnome/rhel-welcome.desktop ~liveuser/.config/autostart/ + fi + + # Disable GNOME welcome tour so it doesn't overlap with Fedora welcome screen + cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE +welcome-dialog-last-shown-version='4294967295' +FOE + + # Copy Anaconda branding in place + if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then + cp -a /usr/share/lorax/product/* / + fi +fi + +# rebuild schema cache with any overrides we installed +glib-compile-schemas /usr/share/glib-2.0/schemas + +# set up auto-login +cat > /etc/gdm/custom.conf << FOE +[daemon] +AutomaticLoginEnable=True +AutomaticLogin=liveuser +FOE + +# Turn off PackageKit-command-not-found while uninstalled +if [ -f /etc/PackageKit/CommandNotFound.conf ]; then + sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf +fi + +# make sure to set the right permissions and selinux contexts +chown -R liveuser:liveuser /home/liveuser/ +restorecon -R /home/liveuser/ +restorecon -R / + +EOF + +%end diff --git a/live/9/peridot/rocky-live-xfce-common.ks b/live/9/peridot/rocky-live-xfce-common.ks new file mode 100644 index 0000000..aea6b45 --- /dev/null +++ b/live/9/peridot/rocky-live-xfce-common.ks @@ -0,0 +1,78 @@ +# xfce +%packages + +# these aren't an epel 8 thing for some reason. +@xfce-desktop +#@^xfce-desktop-environment +#@xfce-apps +#@xfce-extra-plugins +#@xfce-media +#@xfce-office + +# Manual install... +#geany +gparted +#mousepad +#ristretto +seahorse +#transmission +pcp-selinux +lightdm +#gdm +-gdm +-gnome-shell +-gnome-menus + +# Some stuff might already be here, doesn't hurt to list it. +firefox +thunderbird +firewall-config +#pidgin +rocky-backgrounds +gparted +#rhythmbox + +# extras +f35-backgrounds-xfce +f35-backgrounds-extras-xfce + +xfce4-about +xfce4-appfinder +xfce4-taskmanager +#xfce4-pulseaudio-plugin +#xfce4-battery-plugin +xfce4-datetime-plugin +xfce4-netload-plugin +#xfce4-places-plugin +xfce4-screenshooter-plugin +xfce4-smartbookmark-plugin +xfce4-systemload-plugin +xfce4-time-out-plugin +xfce4-weather-plugin +xfce4-whiskermenu-plugin +#xfdashboard +#xfdashboard-themes +pavucontrol + +wget +xdg-user-dirs +xdg-user-dirs-gtk + +# save some space +-autofs +-acpid +-gimp-help +-desktop-backgrounds-basic +-aspell-* +-xfce4-sensors-plugin +-xfce4-eyes-plugin + +### MINIMIZATION +-mpage +-hplip +-isdn4k-utils +-xsane +-xsane-gimp +-sane-backends + +%end diff --git a/live/9/peridot/rocky-live-xfce.ks b/live/9/peridot/rocky-live-xfce.ks new file mode 100644 index 0000000..797208b --- /dev/null +++ b/live/9/peridot/rocky-live-xfce.ks @@ -0,0 +1,94 @@ +# rocky-live-kde.ks +# BROKEN + +%include rocky-live-base-spin.ks +%include rocky-live-xfce-common.ks + +part / --size 6144 + +%post +# xfce configuration + +# create /etc/sysconfig/desktop (needed for installation) + +cat > /etc/sysconfig/desktop <> /etc/rc.d/init.d/livesys << EOF + +mkdir -p /home/liveuser/.config/xfce4 +# ugly stuff, this should give us a default background for now +#mkdir -p /usr/share/backgrounds/images +#ln -s /usr/share/backgrounds/f32/default/f32.png \ +# /usr/share/backgrounds/images/default.png + +cat > /home/liveuser/.config/xfce4/helpers.rc << FOE +MailReader=sylpheed-claws +FileManager=Thunar +WebBrowser=firefox +FOE + +# disable screensaver locking (#674410) +cat >> /home/liveuser/.xscreensaver << FOE +mode: off +lock: False +dpmsEnabled: False +FOE + +# deactivate xfconf-migration (#683161) +rm -f /etc/xdg/autostart/xfconf-migration-4.6.desktop || : + +# deactivate xfce4-panel first-run dialog (#693569) +mkdir -p /home/liveuser/.config/xfce4/xfconf/xfce-perchannel-xml +cp /etc/xdg/xfce4/panel/default.xml /home/liveuser/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml + +# 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 Xfce as default session, otherwise login will fail +sed -i 's/^#user-session=.*/user-session=xfce/' /etc/lightdm/lightdm.conf + +# debrand +#sed -i "s/Red Hat Enterprise/Rocky/g" /usr/share/anaconda/gnome/rhel-welcome.desktop +#sed -i "s/RHEL/Rocky Linux/g" /usr/share/anaconda/gnome/rhel-welcome +#sed -i "s/Red Hat Enterprise/Rocky/g" /usr/share/anaconda/gnome/rhel-welcome +#sed -i "s/org.fedoraproject.AnacondaInstaller/fedora-logo-icon/g" /usr/share/anaconda/gnome/rhel-welcome +#sed -i "s/org.fedoraproject.AnacondaInstaller/fedora-logo-icon/g" /usr/share/applications/liveinst.desktop + +# 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/ + +if [ -f /usr/share/anaconda/gnome/rhel-welcome.desktop ]; then + mkdir -p ~liveuser/.config/autostart + cp /usr/share/anaconda/gnome/rhel-welcome.desktop /usr/share/applications/ + cp /usr/share/anaconda/gnome/rhel-welcome.desktop ~liveuser/.config/autostart/ +fi + +# no updater applet in live environment +rm -f /etc/xdg/autostart/org.mageia.dnfdragora-updater.desktop + +# and mark it as executable (new Xfce security feature) +chmod +x /home/liveuser/Desktop/liveinst.desktop + +# move to anaconda - probably not required for XFCE. +mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop + +# this goes at the end after all other changes. +chown -R liveuser:liveuser /home/liveuser +restorecon -R /home/liveuser + +EOF + +# this doesn't come up automatically. not sure why. +systemctl enable --force lightdm.service + +# CRB needs to be enabled for EPEL to function. +dnf config-manager --set-enabled crb + +%end diff --git a/live/9/peridot/rocky-repo-epel.ks b/live/9/peridot/rocky-repo-epel.ks new file mode 100644 index 0000000..85d8078 --- /dev/null +++ b/live/9/peridot/rocky-repo-epel.ks @@ -0,0 +1,12 @@ +# These should change based on the major/minor release + +# Base repos +repo --name=BaseOS --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-BaseOS/$basearch +repo --name=AppStream --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-AppStream/$basearch +repo --name=CRB --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-CRB/$basearch +repo --name=extras --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-extras/$basearch +repo --name=epel --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/9/Everything/$basearch/ +#repo --name=epel-modular --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/9/Modular/$basearch/ + +# URL to the base os repo +url --url=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-BaseOS/$basearch diff --git a/live/9/peridot/rocky-repo.ks b/live/9/peridot/rocky-repo.ks new file mode 100644 index 0000000..b0f2c85 --- /dev/null +++ b/live/9/peridot/rocky-repo.ks @@ -0,0 +1,10 @@ +# These should change based on the major/minor release + +# Base repos +repo --name=BaseOS --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-BaseOS/$basearch +repo --name=AppStream --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-AppStream/$basearch +repo --name=CRB --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-CRB/$basearch +repo --name=extras --cost=200 --baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-extras/$basearch + +# URL to the base os repo +url --url=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/hashed-BaseOS/$basearch diff --git a/live/9/peridot/rocky-workstation-common-lite.ks b/live/9/peridot/rocky-workstation-common-lite.ks new file mode 100644 index 0000000..54aa7a1 --- /dev/null +++ b/live/9/peridot/rocky-workstation-common-lite.ks @@ -0,0 +1,30 @@ +%packages + +# Exclude unwanted groups that rocky-live-base.ks pulls in +-@dial-up +-@input-methods +-@standard + +# Make sure to sync any additions / removals done here with +# workstation-product-environment in comps +@base-x +@core +@fonts +@gnome-desktop +@guest-desktop-agents +@hardware-support +@internet-browser +@networkmanager-submodules + +# Libreoffice +libreoffice-calc +libreoffice-emailmerge +libreoffice-graphicfilter +libreoffice-impress +libreoffice-writer + +# Exclude unwanted packages from @anaconda-tools group +-gfs2-utils +-reiserfs-utils + +%end diff --git a/live/9/peridot/rocky-workstation-common.ks b/live/9/peridot/rocky-workstation-common.ks new file mode 100644 index 0000000..28f865f --- /dev/null +++ b/live/9/peridot/rocky-workstation-common.ks @@ -0,0 +1,32 @@ +%packages + +# Exclude unwanted groups that rocky-live-base.ks pulls in +-@dial-up +-@input-methods +-@standard + +# Make sure to sync any additions / removals done here with +# workstation-product-environment in comps +@base-x +@core +@fonts +@gnome-desktop +@guest-desktop-agents +@hardware-support +@internet-browser +@multimedia +@networkmanager-submodules +@workstation-product + +# Libreoffice +libreoffice-calc +libreoffice-emailmerge +libreoffice-graphicfilter +libreoffice-impress +libreoffice-writer + +# Exclude unwanted packages from @anaconda-tools group +-gfs2-utils +-reiserfs-utils + +%end diff --git a/live/9/prod/mainline/rocky-live-base.ks b/live/9/prod/mainline/rocky-live-base.ks index 282b2ce..52d09db 100644 --- a/live/9/prod/mainline/rocky-live-base.ks +++ b/live/9/prod/mainline/rocky-live-base.ks @@ -205,7 +205,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/live/9/prod/mainline/rocky-repo-mainline.ks b/live/9/prod/mainline/rocky-repo-mainline.ks index 2e32a8f..efa6a3a 100644 --- a/live/9/prod/mainline/rocky-repo-mainline.ks +++ b/live/9/prod/mainline/rocky-repo-mainline.ks @@ -1,14 +1,14 @@ # These should change based on the major/minor release # Deps repo, there are some anaconda packages that are *not* available by default -repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ -repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/AppStream/$basearch/os/ -repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/CRB/$basearch/os/ -repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/extras/$basearch/os +repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ +repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/AppStream/$basearch/os/ +repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/CRB/$basearch/os/ +repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/extras/$basearch/os # ELRepo repo --name="elrepo-kernel" --baseurl=https://elrepo.org/linux/kernel/el8/$basearch/ --cost=200 # URL to the base os repo -url --url=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ +url --url=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ #url --url=http://10.100.0.1/pub/deps diff --git a/live/9/prod/rocky-live-base-spin.ks b/live/9/prod/rocky-live-base-spin.ks index 820468a..4831b29 100644 --- a/live/9/prod/rocky-live-base-spin.ks +++ b/live/9/prod/rocky-live-base-spin.ks @@ -207,7 +207,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/live/9/prod/rocky-live-base.ks b/live/9/prod/rocky-live-base.ks index c904d95..abb59f6 100644 --- a/live/9/prod/rocky-live-base.ks +++ b/live/9/prod/rocky-live-base.ks @@ -203,7 +203,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/live/9/prod/rocky-repo-epel.ks b/live/9/prod/rocky-repo-epel.ks index aa163b4..35ce214 100644 --- a/live/9/prod/rocky-repo-epel.ks +++ b/live/9/prod/rocky-repo-epel.ks @@ -1,15 +1,14 @@ # These should change based on the major/minor release # Deps repo, there are some anaconda packages that are *not* available by default -repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ -repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/AppStream/$basearch/os/ -repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/CRB/$basearch/os/ -repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/extras/$basearch/os +repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ +repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/AppStream/$basearch/os/ +repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/CRB/$basearch/os/ +repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/extras/$basearch/os # EPEL (required for KDE and XFCE) -repo --name=epel --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/$basearch/ -repo --name=epel-modular --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/8/Modular/$basearch/ +repo --name=epel --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/9/Everything/$basearch/ +#repo --name=epel-modular --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/9/Modular/$basearch/ # URL to the base os repo -url --url=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ -#url --url=http://10.100.0.1/pub/deps +url --url=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ diff --git a/live/9/prod/rocky-repo.ks b/live/9/prod/rocky-repo.ks index bba93fc..0d7163c 100644 --- a/live/9/prod/rocky-repo.ks +++ b/live/9/prod/rocky-repo.ks @@ -1,10 +1,10 @@ # These should change based on the major/minor release # Base repos -repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ -repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/AppStream/$basearch/os/ -repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/CRB/$basearch/os/ -repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9.0/extras/$basearch/os +repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ +repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/AppStream/$basearch/os/ +repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/CRB/$basearch/os/ +repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/pub/rocky/9/extras/$basearch/os # URL to the base os repo -url --url=http://dl.rockylinux.org/pub/rocky/9.0/BaseOS/$basearch/os/ +url --url=http://dl.rockylinux.org/pub/rocky/9/BaseOS/$basearch/os/ diff --git a/live/9/stage/mainline/rocky-live-base.ks b/live/9/stage/mainline/rocky-live-base.ks index c0aa4aa..b3e05cc 100644 --- a/live/9/stage/mainline/rocky-live-base.ks +++ b/live/9/stage/mainline/rocky-live-base.ks @@ -204,7 +204,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/live/9/stage/mainline/rocky-repo-mainline.ks b/live/9/stage/mainline/rocky-repo-mainline.ks index e31abf1..35fbe82 100644 --- a/live/9/stage/mainline/rocky-repo-mainline.ks +++ b/live/9/stage/mainline/rocky-repo-mainline.ks @@ -1,14 +1,14 @@ # These should change based on the major/minor release # Deps repo, there are some anaconda packages that are *not* available by default -repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/BaseOS/$basearch/os/ -repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/AppStream/$basearch/os/ -repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/CRB/$basearch/os/ -repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/extras/$basearch/os +repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/BaseOS/$basearch/os/ +repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/AppStream/$basearch/os/ +repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/CRB/$basearch/os/ +repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/extras/$basearch/os # ELRepo repo --name="elrepo-kernel" --baseurl=https://elrepo.org/linux/kernel/el8/$basearch/ --cost=200 # URL to the base os repo -url --url=http://dl.rockylinux.org/stg/rocky/9.0/BaseOS/$basearch/os/ +url --url=http://dl.rockylinux.org/stg/rocky/9/BaseOS/$basearch/os/ #url --url=http://10.100.0.1/pub/deps diff --git a/live/9/stage/rocky-live-base-spin.ks b/live/9/stage/rocky-live-base-spin.ks index be0e486..ed2c93c 100644 --- a/live/9/stage/rocky-live-base-spin.ks +++ b/live/9/stage/rocky-live-base-spin.ks @@ -207,7 +207,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/live/9/stage/rocky-live-base.ks b/live/9/stage/rocky-live-base.ks index 5b4946b..ae3a5c9 100644 --- a/live/9/stage/rocky-live-base.ks +++ b/live/9/stage/rocky-live-base.ks @@ -203,7 +203,7 @@ systemctl stop atd.service 2> /dev/null || : systemctl --no-reload disable abrtd.service 2> /dev/null || : systemctl stop abrtd.service 2> /dev/null || : -# Don't sync the system clock when running live (RHBZ #1019.02) +# Don't sync the system clock when running live (RHBZ #1018162) sed -i 's/rtcsync//' /etc/chrony.conf # Mark things as configured diff --git a/live/9/stage/rocky-repo-epel.ks b/live/9/stage/rocky-repo-epel.ks index 3f02c04..a246f70 100644 --- a/live/9/stage/rocky-repo-epel.ks +++ b/live/9/stage/rocky-repo-epel.ks @@ -1,15 +1,14 @@ # These should change based on the major/minor release # Deps repo, there are some anaconda packages that are *not* available by default -repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/BaseOS/$basearch/os/ -repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/AppStream/$basearch/os/ -repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/CRB/$basearch/os/ -repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/extras/$basearch/os +repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/BaseOS/$basearch/os/ +repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/AppStream/$basearch/os/ +repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/CRB/$basearch/os/ +repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/extras/$basearch/os # EPEL (required for KDE and XFCE) -repo --name=epel --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/$basearch/ -repo --name=epel-modular --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/8/Modular/$basearch/ +repo --name=epel --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/9/Everything/$basearch/ +#repo --name=epel-modular --cost=200 --baseurl=https://dl.fedoraproject.org/pub/epel/8/Modular/$basearch/ # URL to the base os repo -url --url=http://dl.rockylinux.org/stg/rocky/9.0/BaseOS/$basearch/os/ -#url --url=http://10.100.0.1/pub/deps +url --url=http://dl.rockylinux.org/stg/rocky/9/BaseOS/$basearch/os/ diff --git a/live/9/stage/rocky-repo.ks b/live/9/stage/rocky-repo.ks index ec4f009..82ab196 100644 --- a/live/9/stage/rocky-repo.ks +++ b/live/9/stage/rocky-repo.ks @@ -1,10 +1,10 @@ # These should change based on the major/minor release # Base repos -repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/BaseOS/$basearch/os/ -repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/AppStream/$basearch/os/ -repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/CRB/$basearch/os/ -repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9.0/extras/$basearch/os +repo --name=BaseOS --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/BaseOS/$basearch/os/ +repo --name=AppStream --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/AppStream/$basearch/os/ +repo --name=CRB --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/CRB/$basearch/os/ +repo --name=extras --cost=200 --baseurl=http://dl.rockylinux.org/stg/rocky/9/extras/$basearch/os # URL to the base os repo -url --url=http://dl.rockylinux.org/stg/rocky/9.0/BaseOS/$basearch/os/ +url --url=http://dl.rockylinux.org/stg/rocky/9/BaseOS/$basearch/os/