From 060113bca18b5508cb224e6a1ed3101c8010049d Mon Sep 17 00:00:00 2001 From: Benjamin Sherman Date: Sun, 24 Nov 2024 19:38:15 -0600 Subject: [PATCH 01/16] chore: un-cliwrap and use dnf5 instead of rpm-ostree I've been tinkering with and testing dnf5 for a while. Key items are: - ensuring cliwrap is properly unwound (checked rpm-ostree Rust code) - using normal (not wrapped) binaries, eg for dracut - and the more obvious, replacing "rpm-ostree install" with "dnf5 install", etc Relates: #1946 --- Containerfile | 6 ++-- build_files/base/01-build-fix.sh | 27 ++------------ build_files/base/02-install-copr-repos.sh | 15 ++++---- build_files/base/03-install-kernel-akmods.sh | 19 +++++----- build_files/base/04-packages.sh | 11 +++--- build_files/base/05-override-install.sh | 35 ++++++++----------- build_files/base/07-base-image-changes.sh | 11 +++++- build_files/base/09-hwe-additions.sh | 2 +- build_files/base/17-cleanup.sh | 6 ++-- build_files/base/19-initramfs.sh | 2 +- build_files/dx/01-install-copr-repos-dx.sh | 23 +++++------- build_files/dx/02-install-kernel-akmods-dx.sh | 7 ++-- build_files/dx/03-packages-dx.sh | 11 +++--- build_files/dx/09-cleanup-dx.sh | 19 +++++----- build_files/shared/build-base.sh | 19 ++++++++++ build_files/shared/clean-stage.sh | 7 ++-- 16 files changed, 111 insertions(+), 109 deletions(-) diff --git a/Containerfile b/Containerfile index d10e053a..240f9e1d 100644 --- a/Containerfile +++ b/Containerfile @@ -20,7 +20,8 @@ ARG UBLUE_IMAGE_TAG="stable" ARG VERSION="" # Build, cleanup, commit. -RUN --mount=type=cache,dst=/var/cache/rpm-ostree \ +RUN --mount=type=cache,dst=/var/cache/libdnf5 \ + --mount=type=cache,dst=/var/cache/rpm-ostree \ --mount=type=bind,from=ctx,source=/,target=/ctx \ /ctx/build_files/shared/build-base.sh @@ -38,6 +39,7 @@ ARG UBLUE_IMAGE_TAG="stable" ARG VERSION="" # Build, Clean-up, Commit -RUN --mount=type=cache,dst=/var/cache/rpm-ostree \ +RUN --mount=type=cache,dst=/var/cache/libdnf5 \ + --mount=type=cache,dst=/var/cache/rpm-ostree \ --mount=type=bind,from=ctx,source=/,target=/ctx \ /ctx/build_files/shared/build-dx.sh diff --git a/build_files/base/01-build-fix.sh b/build_files/base/01-build-fix.sh index 90d46039..f5911fa9 100755 --- a/build_files/base/01-build-fix.sh +++ b/build_files/base/01-build-fix.sh @@ -19,32 +19,9 @@ for repo in "${repos[@]}"; do fi done -rpm-ostree override replace \ - --experimental \ - --from repo=updates \ - glib2 \ - || true - -rpm-ostree override replace \ - --experimental \ - --from repo=updates \ - glibc \ - glibc-common \ - glibc-all-langpacks \ - glibc-gconv-extra \ - || true - -rpm-ostree override replace \ - --experimental \ - --from repo=updates \ - libX11 \ - libX11-common \ - libX11-xcb \ - || true -rpm-ostree override replace \ - --experimental \ - --from repo=updates \ +dnf5 -y upgrade \ + --repo=updates \ elfutils-libelf \ elfutils-libs \ qt6-qtbase \ diff --git a/build_files/base/02-install-copr-repos.sh b/build_files/base/02-install-copr-repos.sh index b1fdfe34..bb3ccb4b 100755 --- a/build_files/base/02-install-copr-repos.sh +++ b/build_files/base/02-install-copr-repos.sh @@ -5,17 +5,16 @@ echo "::group:: ===$(basename "$0")===" set -eoux pipefail # Add Staging repo -curl --retry 3 -Lo /etc/yum.repos.d/ublue-os-staging-fedora-"$(rpm -E %fedora)".repo \ - https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-"$(rpm -E %fedora)"/ublue-os-staging-fedora-"$(rpm -E %fedora)".repo +dnf5 -y copr enable ublue-os/staging # Add Switcheroo Repo -curl --retry 3 -Lo /etc/yum.repos.d/_copr_sentry-switcheroo-control_discrete.repo \ - https://copr.fedorainfracloud.org/coprs/sentry/switcheroo-control_discrete/repo/fedora-"$(rpm -E %fedora)"/sentry-switcheroo-control_discrete-fedora-"$(rpm -E %fedora)".repo - -# Add Nerd Fonts Repo -curl --retry 3 -Lo /etc/yum.repos.d/_copr_che-nerd-fonts-"$(rpm -E %fedora)".repo https://copr.fedorainfracloud.org/coprs/che/nerd-fonts/repo/fedora-"$(rpm -E %fedora)"/che-nerd-fonts-fedora-"$(rpm -E %fedora)".repo +dnf5 -y copr enable sentry/switcheroo-control_discrete # Add openrazer repo curl -Lo /etc/yum.repos.d/hardware:razer.repo https://openrazer.github.io/hardware:razer.repo -echo "::endgroup::" \ No newline at end of file +# Enable Nerd fonts repo +dnf5 -y copr enable che/nerd-fonts + + +echo "::endgroup::" diff --git a/build_files/base/03-install-kernel-akmods.sh b/build_files/base/03-install-kernel-akmods.sh index 35760f73..c59e97ce 100755 --- a/build_files/base/03-install-kernel-akmods.sh +++ b/build_files/base/03-install-kernel-akmods.sh @@ -17,7 +17,7 @@ tar -xvzf /tmp/kernel-rpms/"$KERNEL_TARGZ" -C / mv /tmp/rpms/* /tmp/kernel-rpms/ # Install Kernel -rpm-ostree install \ +dnf5 -y install \ /tmp/kernel-rpms/kernel-[0-9]*.rpm \ /tmp/kernel-rpms/kernel-core-*.rpm \ /tmp/kernel-rpms/kernel-modules-*.rpm @@ -29,21 +29,22 @@ tar -xvzf /tmp/akmods/"$AKMODS_TARGZ" -C /tmp/ mv /tmp/rpms/* /tmp/akmods/ # Everyone +# NOTE: we won't use dnf5 copr plugin for ublue-os/akmods until our upstream provides the COPR standard naming sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo -rpm-ostree install \ +dnf5 -y install \ /tmp/akmods/kmods/*xone*.rpm \ /tmp/akmods/kmods/*xpadneo*.rpm \ /tmp/akmods/kmods/*openrazer*.rpm \ /tmp/akmods/kmods/*framework-laptop*.rpm # RPMFUSION Dependent AKMODS -rpm-ostree install \ - https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-"$(rpm -E %fedora)".noarch.rpm \ - https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-"$(rpm -E %fedora)".noarch.rpm -rpm-ostree install \ +dnf5 -y install \ + https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \ + https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm +dnf5 -y install \ broadcom-wl /tmp/akmods/kmods/*wl*.rpm \ v4l2loopback /tmp/akmods/kmods/*v4l2loopback*.rpm -rpm-ostree uninstall rpmfusion-free-release rpmfusion-nonfree-release +dnf5 -y remove rpmfusion-free-release rpmfusion-nonfree-release # Nvidia AKMODS if [[ "${IMAGE_NAME}" =~ nvidia ]]; then @@ -86,11 +87,11 @@ if [[ ${AKMODS_FLAVOR} =~ coreos ]]; then ) # Install - rpm-ostree install "${ZFS_RPMS[@]}" + dnf5 -y install "${ZFS_RPMS[@]}" # Depmod and autoload depmod -a -v "${KERNEL}" echo "zfs" > /usr/lib/modules-load.d/zfs.conf fi -echo "::endgroup::" \ No newline at end of file +echo "::endgroup::" diff --git a/build_files/base/04-packages.sh b/build_files/base/04-packages.sh index f0ba820a..3dec0a4a 100755 --- a/build_files/base/04-packages.sh +++ b/build_files/base/04-packages.sh @@ -28,14 +28,15 @@ fi # simple case to install where no packages need excluding if [[ "${#INCLUDED_PACKAGES[@]}" -gt 0 && "${#INSTALLED_EXCLUDED_PACKAGES[@]}" -eq 0 ]]; then - rpm-ostree install \ + dnf5 -y install \ ${INCLUDED_PACKAGES[@]} # install/excluded packages both at same time elif [[ "${#INCLUDED_PACKAGES[@]}" -gt 0 && "${#INSTALLED_EXCLUDED_PACKAGES[@]}" -gt 0 ]]; then - rpm-ostree override remove \ - ${INSTALLED_EXCLUDED_PACKAGES[@]} \ - $(printf -- "--install=%s " ${INCLUDED_PACKAGES[@]}) + dnf5 -y remove \ + ${INSTALLED_EXCLUDED_PACKAGES[@]} && \ + dnf5 -y install \ + ${INCLUDED_PACKAGES[@]} else echo "No packages to install." fi @@ -48,7 +49,7 @@ fi # remove any excluded packages which are still present on image if [[ "${#INSTALLED_EXCLUDED_PACKAGES[@]}" -gt 0 ]]; then - rpm-ostree override remove \ + dnf5 -y remove \ ${INSTALLED_EXCLUDED_PACKAGES[@]} fi diff --git a/build_files/base/05-override-install.sh b/build_files/base/05-override-install.sh index 95be6596..00073d7b 100755 --- a/build_files/base/05-override-install.sh +++ b/build_files/base/05-override-install.sh @@ -4,10 +4,10 @@ echo "::group:: ===$(basename "$0")===" set -eoux pipefail + # Patched shell -rpm-ostree override replace \ - --experimental \ - --from repo=copr:copr.fedorainfracloud.org:ublue-os:staging \ +dnf5 -y swap \ + --repo=copr:copr.fedorainfracloud.org:ublue-os:staging \ kf6-kio-doc \ kf6-kio-widgets-libs \ kf6-kio-core-libs \ @@ -16,29 +16,24 @@ rpm-ostree override replace \ kf6-kio-core \ kf6-kio-gui + # Fix for ID in fwupd -rpm-ostree override replace \ - --experimental \ - --from repo=copr:copr.fedorainfracloud.org:ublue-os:staging \ - fwupd \ - fwupd-plugin-flashrom \ - fwupd-plugin-modem-manager \ - fwupd-plugin-uefi-capsule-data +dnf5 -y swap \ + --repo=copr:copr.fedorainfracloud.org:ublue-os:staging \ + fwupd fwupd # Switcheroo patch -rpm-ostree override replace \ - --experimental \ - --from repo=copr:copr.fedorainfracloud.org:sentry:switcheroo-control_discrete \ - switcheroo-control +dnf5 -y swap \ + --repo=copr:copr.fedorainfracloud.org:sentry:switcheroo-control_discrete \ + switcheroo-control switcheroo-control -rm /etc/yum.repos.d/_copr_sentry-switcheroo-control_discrete.repo +dnf5 -y copr remove sentry/switcheroo-control_discrete # TODO: Fedora 41 specific -- re-evaluate with Fedora 42 # negativo's libheif is broken somehow on older Intel machines # https://github.com/ublue-os/aurora/issues/8 -rpm-ostree override replace \ - --experimental \ - --from repo=fedora \ +dnf5 -y swap \ + --repo=fedora \ libheif heif-pixbuf-loader # Starship Shell Prompt @@ -55,7 +50,7 @@ curl --retry 3 -Lo /usr/share/bash-prexec https://raw.githubusercontent.com/rcal pip install --prefix=/usr topgrade # Install ublue-update -- breaks with packages.json due to missing topgrade -rpm-ostree install ublue-update +dnf5 -y install ublue-update # Consolidate Just Files find /tmp/just -iname '*.just' -exec printf "\n\n" \; -exec cat {} \; >> /usr/share/ublue-os/just/60-custom.just @@ -70,4 +65,4 @@ fc-cache -f /usr/share/fonts/inter # Caps setcap 'cap_net_raw+ep' /usr/libexec/ksysguard/ksgrd_network_helper -echo "::endgroup::" \ No newline at end of file +echo "::endgroup::" diff --git a/build_files/base/07-base-image-changes.sh b/build_files/base/07-base-image-changes.sh index 9d656569..f0828595 100755 --- a/build_files/base/07-base-image-changes.sh +++ b/build_files/base/07-base-image-changes.sh @@ -4,11 +4,20 @@ echo "::group:: ===$(basename "$0")===" set -ouex pipefail + # Restore x11 for Nvidia Images if [[ "${FEDORA_MAJOR_VERSION}" -eq "40" ]]; then rpm-ostree install plasma-workspace-x11 fi +# Remove desktop entries +if [[ -f /usr/share/applications/gnome-system-monitor.desktop ]]; then + sed -i 's@\[Desktop Entry\]@\[Desktop Entry\]\nHidden=true@g' /usr/share/applications/gnome-system-monitor.desktop +fi +if [[ -f /usr/share/applications/org.gnome.SystemMonitor.desktop ]]; then + sed -i 's@\[Desktop Entry\]@\[Desktop Entry\]\nHidden=true@g' /usr/share/applications/org.gnome.SystemMonitor.desktop +fi + # Branding for Images ln -sf ../places/distributor-logo.svg /usr/share/icons/hicolor/scalable/apps/start-here.svg ln -sf /usr/share/wallpapers/aurora-wallpaper-1/contents/images/15392x8616.jpg /usr/share/backgrounds/default.png @@ -45,4 +54,4 @@ glib-compile-schemas /usr/share/glib-2.0/schemas &>/dev/null # Watermark for Plymouth cp /usr/share/plymouth/themes/spinner/{"$BASE_IMAGE_NAME"-,}watermark.png -echo "::endgroup::" \ No newline at end of file +echo "::endgroup::" diff --git a/build_files/base/09-hwe-additions.sh b/build_files/base/09-hwe-additions.sh index e5280c7e..6d8d66c8 100755 --- a/build_files/base/09-hwe-additions.sh +++ b/build_files/base/09-hwe-additions.sh @@ -32,7 +32,7 @@ SURFACE_PACKAGES=( pipewire-plugin-libcamera ) -rpm-ostree install \ +dnf5 -y install \ "${ASUS_PACKAGES[@]}" \ "${SURFACE_PACKAGES[@]}" diff --git a/build_files/base/17-cleanup.sh b/build_files/base/17-cleanup.sh index f4ab55ac..86ee3822 100755 --- a/build_files/base/17-cleanup.sh +++ b/build_files/base/17-cleanup.sh @@ -31,8 +31,10 @@ sed -i 's@\[Desktop Entry\]@\[Desktop Entry\]\nHidden=true@g' /usr/share/applica sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-multimedia.repo sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/tailscale.repo sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/charm.repo -sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/ublue-os-staging-fedora-"${FEDORA_MAJOR_VERSION}".repo -sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_che-nerd-fonts-"${FEDORA_MAJOR_VERSION}".repo +dnf5 -y copr disable ublue-os/staging +dnf5 -y copr disable che/nerd-fonts +dnf5 -y copr disable phracek/PyCharm +# NOTE: we won't use dnf5 copr plugin for ublue-os/akmods until our upstream provides the COPR standard naming sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/fedora-cisco-openh264.repo sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/hardware:razer.repo diff --git a/build_files/base/19-initramfs.sh b/build_files/base/19-initramfs.sh index 459e364e..37f3a225 100755 --- a/build_files/base/19-initramfs.sh +++ b/build_files/base/19-initramfs.sh @@ -11,7 +11,7 @@ else fi QUALIFIED_KERNEL="$(rpm -qa | grep -P 'kernel-(|'"$KERNEL_SUFFIX"'-)(\d+\.\d+\.\d+)' | sed -E 's/kernel-(|'"$KERNEL_SUFFIX"'-)//')" -/usr/libexec/rpm-ostree/wrapped/dracut --no-hostonly --kver "$QUALIFIED_KERNEL" --reproducible -v --add ostree -f "/lib/modules/$QUALIFIED_KERNEL/initramfs.img" +/usr/bin/dracut --no-hostonly --kver "$QUALIFIED_KERNEL" --reproducible -v --add ostree -f "/lib/modules/$QUALIFIED_KERNEL/initramfs.img" chmod 0600 "/lib/modules/$QUALIFIED_KERNEL/initramfs.img" echo "::endgroup::" diff --git a/build_files/dx/01-install-copr-repos-dx.sh b/build_files/dx/01-install-copr-repos-dx.sh index 690f5742..8f62eace 100755 --- a/build_files/dx/01-install-copr-repos-dx.sh +++ b/build_files/dx/01-install-copr-repos-dx.sh @@ -5,33 +5,28 @@ echo "::group:: ===$(basename "$0")===" set -eoux pipefail #incus, lxc, lxd + if [[ "${FEDORA_MAJOR_VERSION}" -lt "42" ]]; then - curl -Lo /etc/yum.repos.d/ganto-lxc4-fedora-"${FEDORA_MAJOR_VERSION}".repo \ - https://copr.fedorainfracloud.org/coprs/ganto/lxc4/repo/fedora-"${FEDORA_MAJOR_VERSION}"/ganto-lxc4-fedora-"${FEDORA_MAJOR_VERSION}".repo + dnf5 -y copr enable ganto/lxc4 fi #umoci -curl --retry 3 -Lo /etc/yum.repos.d/ganto-umoci-fedora-"${FEDORA_MAJOR_VERSION}".repo \ - https://copr.fedorainfracloud.org/coprs/ganto/umoci/repo/fedora-"${FEDORA_MAJOR_VERSION}"/ganto-umoci-fedora-"${FEDORA_MAJOR_VERSION}".repo +dnf5 -y copr enable ganto/umoci #ublue-os staging -curl --retry 3 -Lo /etc/yum.repos.d/ublue-os-staging-fedora-"${FEDORA_MAJOR_VERSION}".repo \ - https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-"${FEDORA_MAJOR_VERSION}"/ublue-os-staging-fedora-"${FEDORA_MAJOR_VERSION}".repo +dnf5 -y copr enable ublue-os/staging #karmab-kcli -curl --retry 3 -Lo /etc/yum.repos.d/karmab-kcli-fedora-"${FEDORA_MAJOR_VERSION}".repo \ - https://copr.fedorainfracloud.org/coprs/karmab/kcli/repo/fedora-"${FEDORA_MAJOR_VERSION}"/karmab-kcli-fedora-"${FEDORA_MAJOR_VERSION}".repo +dnf5 -y copr enable karmab/kcli # Fonts -curl --retry 3 -Lo /etc/yum.repos.d/atim-ubuntu-fonts-fedora-"${FEDORA_MAJOR_VERSION}".repo \ - https://copr.fedorainfracloud.org/coprs/atim/ubuntu-fonts/repo/fedora-"${FEDORA_MAJOR_VERSION}"/atim-ubuntu-fonts-fedora-"${FEDORA_MAJOR_VERSION}".repo +dnf5 -y copr enable atim/ubuntu-fonts # Kvmfr module -curl --retry 3 -Lo /etc/yum.repos.d/hikariknight-looking-glass-kvmfr-fedora-"${FEDORA_MAJOR_VERSION}".repo \ - https://copr.fedorainfracloud.org/coprs/hikariknight/looking-glass-kvmfr/repo/fedora-"${FEDORA_MAJOR_VERSION}"/hikariknight-looking-glass-kvmfr-fedora-"${FEDORA_MAJOR_VERSION}".repo +dnf5 -y copr enable hikariknight/looking-glass-kvmfr # Podman-bootc -curl --retry 3 -Lo /etc/yum.repos.d/gmaglione-podman-bootc-fedora-"${FEDORA_MAJOR_VERSION}".repo \ - https://copr.fedorainfracloud.org/coprs/gmaglione/podman-bootc/repo/fedora-"${FEDORA_MAJOR_VERSION}"/gmaglione-podman-bootc-fedora-"${FEDORA_MAJOR_VERSION}".repo +dnf5 -y copr enable gmaglione/podman-bootc + echo "::endgroup::" diff --git a/build_files/dx/02-install-kernel-akmods-dx.sh b/build_files/dx/02-install-kernel-akmods-dx.sh index 67f1e9a8..30a9697f 100755 --- a/build_files/dx/02-install-kernel-akmods-dx.sh +++ b/build_files/dx/02-install-kernel-akmods-dx.sh @@ -4,6 +4,7 @@ echo "::group:: ===$(basename "$0")===" set -ouex pipefail +# NOTE: we won't use dnf5 copr plugin for ublue-os/akmods until our upstream provides the COPR standard naming sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo # Fetch Kernel RPMS @@ -12,8 +13,8 @@ KERNEL_TARGZ=$(jq -r '.layers[].digest' Date: Sat, 11 Jan 2025 17:52:56 -0600 Subject: [PATCH 02/16] remove build-fix since not needed with dnf5 --- build_files/shared/build-base.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/build_files/shared/build-base.sh b/build_files/shared/build-base.sh index 11289068..972028e6 100755 --- a/build_files/shared/build-base.sh +++ b/build_files/shared/build-base.sh @@ -36,9 +36,6 @@ echo "::endgroup::" # Generate image-info.json /ctx/build_files/base/00-image-info.sh -# Build Fix - Fix known skew offenders -/ctx/build_files/base/01-build-fix.sh - # Get COPR Repos /ctx/build_files/base/02-install-copr-repos.sh From a85a4143b87b9486fc681f7c5f5c2fa37d129677 Mon Sep 17 00:00:00 2001 From: Benjamin Sherman Date: Sun, 12 Jan 2025 14:55:04 -0600 Subject: [PATCH 03/16] convert a few more commands from rpm-ostree to dnf5 the nvidia script from hwe repo had been missed before the logo swap is new --- build_files/base/03-install-kernel-akmods.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build_files/base/03-install-kernel-akmods.sh b/build_files/base/03-install-kernel-akmods.sh index c59e97ce..3481a045 100755 --- a/build_files/base/03-install-kernel-akmods.sh +++ b/build_files/base/03-install-kernel-akmods.sh @@ -60,6 +60,7 @@ if [[ "${IMAGE_NAME}" =~ nvidia ]]; then # Install Nvidia RPMs curl -Lo /tmp/nvidia-install.sh https://raw.githubusercontent.com/ublue-os/hwe/main/nvidia-install.sh + sed -i "s/rpm-ostree install/dnf install -y/" /tmp/nvidia-install.sh chmod +x /tmp/nvidia-install.sh IMAGE_NAME="${BASE_IMAGE_NAME}" RPMFUSION_MIRROR="" /tmp/nvidia-install.sh rm -f /usr/share/vulkan/icd.d/nouveau_icd.*.json From 4e39e9628572a04135ceae8b319f412798372fb7 Mon Sep 17 00:00:00 2001 From: m2 <69128853+m2Giles@users.noreply.github.com> Date: Sat, 1 Feb 2025 23:12:42 -0500 Subject: [PATCH 04/16] Update 03-install-kernel-akmods.sh --- build_files/base/03-install-kernel-akmods.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build_files/base/03-install-kernel-akmods.sh b/build_files/base/03-install-kernel-akmods.sh index 3481a045..5d81659f 100755 --- a/build_files/base/03-install-kernel-akmods.sh +++ b/build_files/base/03-install-kernel-akmods.sh @@ -59,8 +59,7 @@ if [[ "${IMAGE_NAME}" =~ nvidia ]]; then mv /tmp/rpms/* /tmp/akmods-rpms/ # Install Nvidia RPMs - curl -Lo /tmp/nvidia-install.sh https://raw.githubusercontent.com/ublue-os/hwe/main/nvidia-install.sh - sed -i "s/rpm-ostree install/dnf install -y/" /tmp/nvidia-install.sh + curl -Lo /tmp/nvidia-install.sh https://raw.githubusercontent.com/ublue-os/hwe/b3a3dbddf4af81cfbfa7526c1918c9b9f014f86b/nvidia-install.sh # Change when nvidia-install.sh updates chmod +x /tmp/nvidia-install.sh IMAGE_NAME="${BASE_IMAGE_NAME}" RPMFUSION_MIRROR="" /tmp/nvidia-install.sh rm -f /usr/share/vulkan/icd.d/nouveau_icd.*.json From 3a6f08a21116a5f529797db52989f82cdede510b Mon Sep 17 00:00:00 2001 From: m2 <69128853+m2Giles@users.noreply.github.com> Date: Sun, 2 Feb 2025 00:05:46 -0500 Subject: [PATCH 05/16] Update 03-install-kernel-akmods.sh --- build_files/base/03-install-kernel-akmods.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build_files/base/03-install-kernel-akmods.sh b/build_files/base/03-install-kernel-akmods.sh index 5d81659f..3e2216f1 100755 --- a/build_files/base/03-install-kernel-akmods.sh +++ b/build_files/base/03-install-kernel-akmods.sh @@ -22,6 +22,8 @@ dnf5 -y install \ /tmp/kernel-rpms/kernel-core-*.rpm \ /tmp/kernel-rpms/kernel-modules-*.rpm +dnf5 versionlock add kernel kernel-devel kernel-devel-matched kernel-core kernel-headers kernel-modules kernel-modules-core kernel-modules-extra + # Fetch Common AKMODS skopeo copy --retry-times 3 docker://ghcr.io/ublue-os/akmods:"${AKMODS_FLAVOR}"-"$(rpm -E %fedora)"-"${KERNEL}" dir:/tmp/akmods AKMODS_TARGZ=$(jq -r '.layers[].digest' < /tmp/akmods/manifest.json | cut -d : -f 2) From 78aed8d8022cf01f3062e20c699fe1746cb62a21 Mon Sep 17 00:00:00 2001 From: m2 <69128853+m2Giles@users.noreply.github.com> Date: Sun, 2 Feb 2025 00:05:46 -0500 Subject: [PATCH 06/16] Update 03-install-kernel-akmods.sh From 57eb7a750f99dda49b18e650255dfa975327e06a Mon Sep 17 00:00:00 2001 From: m2 <69128853+m2Giles@users.noreply.github.com> Date: Sun, 2 Feb 2025 00:35:52 -0500 Subject: [PATCH 07/16] Update 02-install-kernel-akmods-dx.sh --- build_files/dx/02-install-kernel-akmods-dx.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build_files/dx/02-install-kernel-akmods-dx.sh b/build_files/dx/02-install-kernel-akmods-dx.sh index 30a9697f..58d687df 100755 --- a/build_files/dx/02-install-kernel-akmods-dx.sh +++ b/build_files/dx/02-install-kernel-akmods-dx.sh @@ -13,10 +13,14 @@ KERNEL_TARGZ=$(jq -r '.layers[].digest' Date: Sun, 2 Feb 2025 00:45:51 -0500 Subject: [PATCH 08/16] Update 09-hwe-additions.sh --- build_files/base/09-hwe-additions.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build_files/base/09-hwe-additions.sh b/build_files/base/09-hwe-additions.sh index 6d8d66c8..02875dd9 100755 --- a/build_files/base/09-hwe-additions.sh +++ b/build_files/base/09-hwe-additions.sh @@ -36,6 +36,12 @@ dnf5 -y install \ "${ASUS_PACKAGES[@]}" \ "${SURFACE_PACKAGES[@]}" +dnf5 -y swap \ + libwacom-data libwacom-surface-data + +dnf5 -y swap \ + libwacom libwacom-surface + tee /usr/lib/modules-load.d/ublue-surface.conf << EOF # Only on AMD models pinctrl_amd From f7ac8ebf1ddb9f238cc2d4476e843ad509ecdcf3 Mon Sep 17 00:00:00 2001 From: m2 <69128853+m2Giles@users.noreply.github.com> Date: Mon, 3 Feb 2025 13:44:15 -0500 Subject: [PATCH 09/16] Appease the linter --- build_files/shared/build-base.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_files/shared/build-base.sh b/build_files/shared/build-base.sh index 972028e6..5511445b 100755 --- a/build_files/shared/build-base.sh +++ b/build_files/shared/build-base.sh @@ -18,7 +18,7 @@ if [ -d /usr/libexec/rpm-ostree/wrapped ]; then rm -fr /usr/libexec/rpm-ostree fi -if [ ${FEDORA_MAJOR_VERSION} -lt 41 ]; then +if [ "${FEDORA_MAJOR_VERSION}" -lt 41 ]; then rpm-ostree install --idempotent dnf5 dnf5-plugins fi From 74d79d9969d599432687115629302fe3979fa106 Mon Sep 17 00:00:00 2001 From: m2 <69128853+m2Giles@users.noreply.github.com> Date: Mon, 3 Feb 2025 15:24:21 -0500 Subject: [PATCH 10/16] fix: Install kernel-devel --- build_files/base/03-install-kernel-akmods.sh | 6 +++++- build_files/dx/02-install-kernel-akmods-dx.sh | 15 ++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/build_files/base/03-install-kernel-akmods.sh b/build_files/base/03-install-kernel-akmods.sh index 3e2216f1..608359c5 100755 --- a/build_files/base/03-install-kernel-akmods.sh +++ b/build_files/base/03-install-kernel-akmods.sh @@ -22,7 +22,11 @@ dnf5 -y install \ /tmp/kernel-rpms/kernel-core-*.rpm \ /tmp/kernel-rpms/kernel-modules-*.rpm -dnf5 versionlock add kernel kernel-devel kernel-devel-matched kernel-core kernel-headers kernel-modules kernel-modules-core kernel-modules-extra +# TODO: Figure out why akmods cache is pulling in akmods/kernel-devel +dnf5 -y install \ + /tmp/kernel-rpms/kernel-devel-*.rpm + +dnf5 versionlock add kernel kernel-devel kernel-devel-matched kernel-core kernel-modules kernel-modules-core kernel-modules-extra # Fetch Common AKMODS skopeo copy --retry-times 3 docker://ghcr.io/ublue-os/akmods:"${AKMODS_FLAVOR}"-"$(rpm -E %fedora)"-"${KERNEL}" dir:/tmp/akmods diff --git a/build_files/dx/02-install-kernel-akmods-dx.sh b/build_files/dx/02-install-kernel-akmods-dx.sh index 58d687df..6d20263b 100755 --- a/build_files/dx/02-install-kernel-akmods-dx.sh +++ b/build_files/dx/02-install-kernel-akmods-dx.sh @@ -13,13 +13,14 @@ KERNEL_TARGZ=$(jq -r '.layers[].digest' Date: Tue, 4 Feb 2025 00:20:17 +0200 Subject: [PATCH 11/16] Update 05-override-install.sh --- build_files/base/05-override-install.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/build_files/base/05-override-install.sh b/build_files/base/05-override-install.sh index 00073d7b..5eb23d78 100755 --- a/build_files/base/05-override-install.sh +++ b/build_files/base/05-override-install.sh @@ -8,13 +8,7 @@ set -eoux pipefail # Patched shell dnf5 -y swap \ --repo=copr:copr.fedorainfracloud.org:ublue-os:staging \ - kf6-kio-doc \ - kf6-kio-widgets-libs \ - kf6-kio-core-libs \ - kf6-kio-widgets \ - kf6-kio-file-widgets \ - kf6-kio-core \ - kf6-kio-gui + kf6-kio-core kf6-kio-core # Fix for ID in fwupd From 61d009ac9a652f5a514928fb00763a53dbc5b817 Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:23:07 +0200 Subject: [PATCH 12/16] Update 07-base-image-changes.sh --- build_files/base/07-base-image-changes.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/build_files/base/07-base-image-changes.sh b/build_files/base/07-base-image-changes.sh index f0828595..30251350 100755 --- a/build_files/base/07-base-image-changes.sh +++ b/build_files/base/07-base-image-changes.sh @@ -4,12 +4,6 @@ echo "::group:: ===$(basename "$0")===" set -ouex pipefail - -# Restore x11 for Nvidia Images -if [[ "${FEDORA_MAJOR_VERSION}" -eq "40" ]]; then - rpm-ostree install plasma-workspace-x11 -fi - # Remove desktop entries if [[ -f /usr/share/applications/gnome-system-monitor.desktop ]]; then sed -i 's@\[Desktop Entry\]@\[Desktop Entry\]\nHidden=true@g' /usr/share/applications/gnome-system-monitor.desktop From e4a3dbdd6f2b0d96f642e0aad198a87db9eb6507 Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:27:47 +0200 Subject: [PATCH 13/16] Update 03-install-kernel-akmods.sh --- build_files/base/03-install-kernel-akmods.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_files/base/03-install-kernel-akmods.sh b/build_files/base/03-install-kernel-akmods.sh index 608359c5..51f6b66b 100755 --- a/build_files/base/03-install-kernel-akmods.sh +++ b/build_files/base/03-install-kernel-akmods.sh @@ -65,7 +65,7 @@ if [[ "${IMAGE_NAME}" =~ nvidia ]]; then mv /tmp/rpms/* /tmp/akmods-rpms/ # Install Nvidia RPMs - curl -Lo /tmp/nvidia-install.sh https://raw.githubusercontent.com/ublue-os/hwe/b3a3dbddf4af81cfbfa7526c1918c9b9f014f86b/nvidia-install.sh # Change when nvidia-install.sh updates + curl -Lo /tmp/nvidia-install.sh https://raw.githubusercontent.com/ublue-os/hwe/main/nvidia-install.sh # Change when nvidia-install.sh updates chmod +x /tmp/nvidia-install.sh IMAGE_NAME="${BASE_IMAGE_NAME}" RPMFUSION_MIRROR="" /tmp/nvidia-install.sh rm -f /usr/share/vulkan/icd.d/nouveau_icd.*.json From d31f49fc8736867c73d274eee0820e78c18b05c9 Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:29:40 +0200 Subject: [PATCH 14/16] Delete build_files/base/01-build-fix.sh --- build_files/base/01-build-fix.sh | 37 -------------------------------- 1 file changed, 37 deletions(-) delete mode 100755 build_files/base/01-build-fix.sh diff --git a/build_files/base/01-build-fix.sh b/build_files/base/01-build-fix.sh deleted file mode 100755 index f5911fa9..00000000 --- a/build_files/base/01-build-fix.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/bash - -echo "::group:: ===$(basename "$0")===" - -set -eoux pipefail - -# This script provides fixes to packages known to have caused build skew. -# It works by force replacing packages on the FROM image with current -# packages from fedora update repos. - -repos=( - fedora-updates.repo - fedora-updates-archive.repo -) - -for repo in "${repos[@]}"; do - if [[ "$(grep -c "enabled=1" /etc/yum.repos.d/"${repo}")" -eq 0 ]]; then - sed -i "0,/enabled=0/{s/enabled=0/enabled=1/}" /etc/yum.repos.d/"${repo}" - fi -done - - -dnf5 -y upgrade \ - --repo=updates \ - elfutils-libelf \ - elfutils-libs \ - qt6-qtbase \ - qt6-qtbase-common \ - qt6-qtbase-mysql \ - qt6-qtbase-gui || - true - -rpm-ostree override remove \ - glibc32 \ - || true - - echo "::endgroup::" From 99cdfbc345f23ba6a521c49385957ef351e01f63 Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:39:39 +0200 Subject: [PATCH 15/16] Update 05-override-install.sh --- build_files/base/05-override-install.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build_files/base/05-override-install.sh b/build_files/base/05-override-install.sh index 5eb23d78..6537f071 100755 --- a/build_files/base/05-override-install.sh +++ b/build_files/base/05-override-install.sh @@ -28,7 +28,11 @@ dnf5 -y copr remove sentry/switcheroo-control_discrete # https://github.com/ublue-os/aurora/issues/8 dnf5 -y swap \ --repo=fedora \ - libheif heif-pixbuf-loader + libheif libheif + +dnf5 -y swap \ + --repo=fedora \ + heif-pixbuf-loader heif-pixbuf-loader # Starship Shell Prompt curl --retry 3 -Lo /tmp/starship.tar.gz "https://github.com/starship/starship/releases/latest/download/starship-x86_64-unknown-linux-gnu.tar.gz" From 1b19832f839bbeb198521c5d5f04de10177eb24e Mon Sep 17 00:00:00 2001 From: Juha Uotila <10782843+inffy@users.noreply.github.com> Date: Tue, 4 Feb 2025 01:01:14 +0200 Subject: [PATCH 16/16] Update 05-override-install.sh --- build_files/base/05-override-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_files/base/05-override-install.sh b/build_files/base/05-override-install.sh index 6537f071..878c1384 100755 --- a/build_files/base/05-override-install.sh +++ b/build_files/base/05-override-install.sh @@ -8,7 +8,7 @@ set -eoux pipefail # Patched shell dnf5 -y swap \ --repo=copr:copr.fedorainfracloud.org:ublue-os:staging \ - kf6-kio-core kf6-kio-core + kf6-kio kf6-kio # Fix for ID in fwupd