From 2906dabb003a0e269ef778d4c8f701e0c5ddca5c Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Tue, 29 Jul 2025 16:24:53 -0300 Subject: [PATCH 01/14] Start new Dockerfile from scratch for AlmaLinux (ver. 10) --- Dockerfile | 170 ++++---------------------------------------- Dockerfile.backup | 175 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 188 insertions(+), 157 deletions(-) create mode 100644 Dockerfile.backup diff --git a/Dockerfile b/Dockerfile index 544a0e0..ec075bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,175 +1,31 @@ -FROM fedora:41 AS akmods-builder +FROM quay.io/almalinuxorg/atomic-desktop-kde:latest + ARG KERNEL=kernel-cachyos-lto-skylake ENV KERNEL=${KERNEL} -# Get list of kernels from CachyOS LTO repo. If the list has been updated, then akmods will be rebuilt. If it hasn't been updated, then caching of the previous build will be used. +# Get list of kernels from my repo. If the list has been updated, then the image will be rebuilt. If it hasn't been updated, then caching of the previous build will be used. ADD "https://copr.fedorainfracloud.org/api_3/build/list?ownername=andersrh&projectname=my-ostree-os&packagename=kernel-cachyos-lto-skylake" /tmp/builds.txt -# Install necessary tools to build kernel modules -RUN dnf -y update && dnf -y install wget clang polly +RUN dnf copr enable -y andersrh/my-ostree-os -RUN dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm +RUN dnf install --nogpgcheck -y https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm -# Update cachebust in case a rebuild is required without usage of cache. -ARG CACHEBUST=11 - -RUN cd /etc/yum.repos.d/ && \ -wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-lto/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-lto-fedora-$(rpm -E %fedora).repo && \ -wget https://copr.fedorainfracloud.org/coprs/andersrh/kernel-cachyos/repo/fedora-$(rpm -E %fedora)/andersrh-kernel-cachyos-fedora-$(rpm -E %fedora).repo && \ -wget https://copr.fedorainfracloud.org/coprs/andersrh/my-ostree-os/repo/fedora-$(rpm -E %fedora)/andersrh-my-ostree-os-fedora-$(rpm -E %fedora).repo && \ -wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-addons/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-addons-fedora-$(rpm -E %fedora).repo && \ -wget https://negativo17.org/repos/fedora-nvidia.repo && \ -cd /tmp - -RUN dnf -y install ${KERNEL} ${KERNEL}-devel ${KERNEL}-modules ${KERNEL}-core ${KERNEL}-devel-matched -RUN dnf -y install akmod-VirtualBox - -COPY akmods.sh /tmp/akmods.sh -RUN /tmp/akmods.sh ${KERNEL} - -FROM quay.io/fedora-ostree-desktops/kinoite:41 AS base - -ARG CACHEBUST=5 - -RUN mkdir /tmp/nvidia - -COPY install-nvidia.sh /tmp/install-nvidia.sh - -COPY --from=akmods-builder /var/cache/akmods/*/* /tmp/nvidia - -COPY repo/*.repo /etc/yum.repos.d/ - -# install RPM-fusion -RUN rpm-ostree install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm - -# 32-bit dependencies for the Nvidia driver. -RUN rpm-ostree install glibc.i686 - -# install nonfree codecs -RUN rpm-ostree override remove libavcodec-free libavfilter-free libavformat-free libavutil-free libpostproc-free libswresample-free libswscale-free libavdevice-free ffmpeg-free --install libavcodec-freeworld +RUN dnf config-manager --add-repo=https://negativo17.org/repos/epel-nvidia.repo -y # Install HEIC support for Gwenview and Dolphin (and potentially other applications) -RUN rpm-ostree install libheif-freeworld +RUN dnf install -y libheif-freeworld -# Mesa clang -RUN rpm-ostree override replace --experimental --from repo=copr:copr.fedorainfracloud.org:andersrh:my-ostree-os mesa-filesystem mesa-dri-drivers mesa-libgbm mesa-libEGL mesa-libGL mesa-vulkan-drivers mesa-libxatracker mesa-vdpau-drivers mesa-libOSMesa mesa-libOpenCL mesa-va-drivers +RUN dnf install -y fish distrobox nvtop gnome-boxes gwenview ffmpeg ffmpeg-libs libavdevice intel-media-driver pipewire-codec-aptx libva-intel-driver libva-utils libavcodec-freeworld +RUN dnf install -y https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm -# 32-bit dependencies for the Nvidia driver. -RUN rpm-ostree override replace --experimental --from repo=copr:copr.fedorainfracloud.org:andersrh:my-ostree-os:ml mesa-dri-drivers.i686 -RUN rpm-ostree install mesa-filesystem.i686 mesa-libEGL.i686 mesa-libGL.i686 mesa-libgbm.i686 mesa-vulkan-drivers.i686 +RUN dnf install -y ${KERNEL} ${KERNEL}-devel-matched -RUN rpm-ostree install ffmpeg ffmpeg-libs libavdevice intel-media-driver pipewire-codec-aptx libva-intel-driver libva-utils nvidia-vaapi-driver +RUN dnf remove -y kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra kernel-tools kernel-tools-libs -FROM base AS kernel - -ARG KERNEL=kernel-cachyos-lto-skylake -ENV KERNEL=${KERNEL} - -RUN cd /etc/yum.repos.d/ && wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-addons/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-addons-fedora-$(rpm -E %fedora).repo - -RUN cd /etc/yum.repos.d/ && \ -wget https://copr.fedorainfracloud.org/coprs/andersrh/kernel-cachyos/repo/fedora-$(rpm -E %fedora)/andersrh-kernel-cachyos-fedora-$(rpm -E %fedora).repo && \ -wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-lto/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-lto-fedora-$(rpm -E %fedora).repo && \ -wget https://negativo17.org/repos/fedora-nvidia.repo && \ -cd /tmp - -# install binutils to get strip command -RUN rpm-ostree install binutils - -# Install Clang and Polly so kernel modules can be built -RUN rpm-ostree install clang polly - -COPY install_cachyos_kernel.sh /tmp -# Enable cliwrap. -RUN rpm-ostree cliwrap install-to-root / && \ -# Replace the kernel, kernel-core and kernel-modules packages. -/tmp/install_cachyos_kernel.sh ${KERNEL} - -# install akmods -RUN ls /tmp/nvidia && /tmp/install-nvidia.sh ${KERNEL} # Install Negativo17 Nvidia driver -RUN rpm-ostree install dkms-nvidia nvidia-driver ${KERNEL}-devel ${KERNEL}-devel-matched zstd +RUN rpm-ostree install dkms-nvidia nvidia-driver zstd nvidia-vaapi-driver nvidia-persistenced opencl-filesystem RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) -RUN rpm-ostree install nvidia-container-toolkit supergfxctl supergfxctl-plasmoid - -RUN mv /etc/nvidia-container-runtime/config.toml{,.orig} - -RUN systemctl enable supergfxd.service - -# install Nvidia software -RUN rpm-ostree install nvidia-vaapi-driver nvidia-persistenced opencl-filesystem - -# Clear cache, /var and /tmp and commit ostree -RUN rm -rf /tmp/* /var/* && mkdir -p /var/tmp && chmod -R 1777 /var/tmp && \ -ostree container commit - - -FROM kernel AS os - -ARG CACHEBUST=5 - -RUN cd /tmp && \ -rpm-ostree cleanup -m && rpm-ostree install ksshaskpass cronie distrobox fish lld nvtop seadrive-gui pulseaudio-utils hfsplus-tools VirtualBox - -# Add podman-compose dependency for "podman compose" command -RUN rpm-ostree install podman-compose - -# Disable SELinux -RUN sed -i "s/^SELINUX=.*$/SELINUX=permissive/g" /etc/sysconfig/selinux && sed -i "s/^SELINUX=.*$/SELINUX=permissive/g" /etc/selinux/config - -# Xwayland clang -RUN rpm-ostree override replace --experimental --from repo=copr:copr.fedorainfracloud.org:andersrh:my-ostree-os xorg-x11-server-Xwayland - -# add Haruna media player to host for better VAAPI performance -RUN rpm-ostree install haruna - -# Install AppImageLauncher -RUN rpm-ostree install https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm - -# Install Gwenview on host for full support for image formats such as HEIC -RUN rpm-ostree install gwenview - -# add cachyos-settings, scx-scheds and scx-manager -RUN rpm-ostree install scx-scheds scx-manager -RUN rpm-ostree override remove zram-generator-defaults --install cachyos-settings - -# Install Waydroid -RUN rpm-ostree install waydroid - -# Install virt-manager and LXC driver -RUN rpm-ostree install virt-manager libvirt-daemon-driver-lxc libvirt-daemon-lxc - -# Install VDO tools and Bees -RUN rpm-ostree install vdo bees - -# Install ZFS -RUN rpm -e --nodeps zfs-fuse && rpm-ostree install https://zfsonlinux.org/fedora/zfs-release-2-6$(rpm --eval "%{dist}").noarch.rpm && rpm-ostree install zfs --uninstall zfs-fuse - -# Build ZFS module manually -RUN dkms install zfs/$(ls /usr/src/ | grep zfs- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) - -# Install Gnome Boxes -RUN rpm-ostree install gnome-boxes - -# Remove plocate to avoid updatedb going crazy with scanning the file system once a day -RUN rpm-ostree override remove plocate - -# enable scx service -RUN systemctl enable scx.service - -# Copy config files -COPY etc /etc -# Copy /usr -COPY usr /usr - -# Enable /nix mount service -RUN systemctl enable mount-nix-prepare.service -# Disable nvidia-powerd to avoid crashing when the system goes into suspension -RUN systemctl disable nvidia-powerd - -# Clear cache, /var and /tmp and commit ostree -RUN rm -rf /tmp/* /var/* && mkdir -p /var/tmp && chmod -R 1777 /var/tmp && \ -ostree container commit +RUN rm -rf /tmp/* \ No newline at end of file diff --git a/Dockerfile.backup b/Dockerfile.backup new file mode 100644 index 0000000..544a0e0 --- /dev/null +++ b/Dockerfile.backup @@ -0,0 +1,175 @@ +FROM fedora:41 AS akmods-builder + +ARG KERNEL=kernel-cachyos-lto-skylake +ENV KERNEL=${KERNEL} + +# Get list of kernels from CachyOS LTO repo. If the list has been updated, then akmods will be rebuilt. If it hasn't been updated, then caching of the previous build will be used. +ADD "https://copr.fedorainfracloud.org/api_3/build/list?ownername=andersrh&projectname=my-ostree-os&packagename=kernel-cachyos-lto-skylake" /tmp/builds.txt + +# Install necessary tools to build kernel modules +RUN dnf -y update && dnf -y install wget clang polly + +RUN dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm + +# Update cachebust in case a rebuild is required without usage of cache. +ARG CACHEBUST=11 + +RUN cd /etc/yum.repos.d/ && \ +wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-lto/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-lto-fedora-$(rpm -E %fedora).repo && \ +wget https://copr.fedorainfracloud.org/coprs/andersrh/kernel-cachyos/repo/fedora-$(rpm -E %fedora)/andersrh-kernel-cachyos-fedora-$(rpm -E %fedora).repo && \ +wget https://copr.fedorainfracloud.org/coprs/andersrh/my-ostree-os/repo/fedora-$(rpm -E %fedora)/andersrh-my-ostree-os-fedora-$(rpm -E %fedora).repo && \ +wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-addons/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-addons-fedora-$(rpm -E %fedora).repo && \ +wget https://negativo17.org/repos/fedora-nvidia.repo && \ +cd /tmp + +RUN dnf -y install ${KERNEL} ${KERNEL}-devel ${KERNEL}-modules ${KERNEL}-core ${KERNEL}-devel-matched +RUN dnf -y install akmod-VirtualBox + +COPY akmods.sh /tmp/akmods.sh +RUN /tmp/akmods.sh ${KERNEL} + +FROM quay.io/fedora-ostree-desktops/kinoite:41 AS base + +ARG CACHEBUST=5 + +RUN mkdir /tmp/nvidia + +COPY install-nvidia.sh /tmp/install-nvidia.sh + +COPY --from=akmods-builder /var/cache/akmods/*/* /tmp/nvidia + +COPY repo/*.repo /etc/yum.repos.d/ + +# install RPM-fusion +RUN rpm-ostree install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm + +# 32-bit dependencies for the Nvidia driver. +RUN rpm-ostree install glibc.i686 + +# install nonfree codecs +RUN rpm-ostree override remove libavcodec-free libavfilter-free libavformat-free libavutil-free libpostproc-free libswresample-free libswscale-free libavdevice-free ffmpeg-free --install libavcodec-freeworld + +# Install HEIC support for Gwenview and Dolphin (and potentially other applications) +RUN rpm-ostree install libheif-freeworld + +# Mesa clang +RUN rpm-ostree override replace --experimental --from repo=copr:copr.fedorainfracloud.org:andersrh:my-ostree-os mesa-filesystem mesa-dri-drivers mesa-libgbm mesa-libEGL mesa-libGL mesa-vulkan-drivers mesa-libxatracker mesa-vdpau-drivers mesa-libOSMesa mesa-libOpenCL mesa-va-drivers + +# 32-bit dependencies for the Nvidia driver. +RUN rpm-ostree override replace --experimental --from repo=copr:copr.fedorainfracloud.org:andersrh:my-ostree-os:ml mesa-dri-drivers.i686 +RUN rpm-ostree install mesa-filesystem.i686 mesa-libEGL.i686 mesa-libGL.i686 mesa-libgbm.i686 mesa-vulkan-drivers.i686 + +RUN rpm-ostree install ffmpeg ffmpeg-libs libavdevice intel-media-driver pipewire-codec-aptx libva-intel-driver libva-utils nvidia-vaapi-driver + +FROM base AS kernel + +ARG KERNEL=kernel-cachyos-lto-skylake +ENV KERNEL=${KERNEL} + +RUN cd /etc/yum.repos.d/ && wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-addons/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-addons-fedora-$(rpm -E %fedora).repo + +RUN cd /etc/yum.repos.d/ && \ +wget https://copr.fedorainfracloud.org/coprs/andersrh/kernel-cachyos/repo/fedora-$(rpm -E %fedora)/andersrh-kernel-cachyos-fedora-$(rpm -E %fedora).repo && \ +wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-lto/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-lto-fedora-$(rpm -E %fedora).repo && \ +wget https://negativo17.org/repos/fedora-nvidia.repo && \ +cd /tmp + +# install binutils to get strip command +RUN rpm-ostree install binutils + +# Install Clang and Polly so kernel modules can be built +RUN rpm-ostree install clang polly + +COPY install_cachyos_kernel.sh /tmp +# Enable cliwrap. +RUN rpm-ostree cliwrap install-to-root / && \ +# Replace the kernel, kernel-core and kernel-modules packages. +/tmp/install_cachyos_kernel.sh ${KERNEL} + +# install akmods +RUN ls /tmp/nvidia && /tmp/install-nvidia.sh ${KERNEL} +# Install Negativo17 Nvidia driver +RUN rpm-ostree install dkms-nvidia nvidia-driver ${KERNEL}-devel ${KERNEL}-devel-matched zstd +RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf +RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) + +RUN rpm-ostree install nvidia-container-toolkit supergfxctl supergfxctl-plasmoid + +RUN mv /etc/nvidia-container-runtime/config.toml{,.orig} + +RUN systemctl enable supergfxd.service + +# install Nvidia software +RUN rpm-ostree install nvidia-vaapi-driver nvidia-persistenced opencl-filesystem + +# Clear cache, /var and /tmp and commit ostree +RUN rm -rf /tmp/* /var/* && mkdir -p /var/tmp && chmod -R 1777 /var/tmp && \ +ostree container commit + + +FROM kernel AS os + +ARG CACHEBUST=5 + +RUN cd /tmp && \ +rpm-ostree cleanup -m && rpm-ostree install ksshaskpass cronie distrobox fish lld nvtop seadrive-gui pulseaudio-utils hfsplus-tools VirtualBox + +# Add podman-compose dependency for "podman compose" command +RUN rpm-ostree install podman-compose + +# Disable SELinux +RUN sed -i "s/^SELINUX=.*$/SELINUX=permissive/g" /etc/sysconfig/selinux && sed -i "s/^SELINUX=.*$/SELINUX=permissive/g" /etc/selinux/config + +# Xwayland clang +RUN rpm-ostree override replace --experimental --from repo=copr:copr.fedorainfracloud.org:andersrh:my-ostree-os xorg-x11-server-Xwayland + +# add Haruna media player to host for better VAAPI performance +RUN rpm-ostree install haruna + +# Install AppImageLauncher +RUN rpm-ostree install https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm + +# Install Gwenview on host for full support for image formats such as HEIC +RUN rpm-ostree install gwenview + +# add cachyos-settings, scx-scheds and scx-manager +RUN rpm-ostree install scx-scheds scx-manager +RUN rpm-ostree override remove zram-generator-defaults --install cachyos-settings + +# Install Waydroid +RUN rpm-ostree install waydroid + +# Install virt-manager and LXC driver +RUN rpm-ostree install virt-manager libvirt-daemon-driver-lxc libvirt-daemon-lxc + +# Install VDO tools and Bees +RUN rpm-ostree install vdo bees + +# Install ZFS +RUN rpm -e --nodeps zfs-fuse && rpm-ostree install https://zfsonlinux.org/fedora/zfs-release-2-6$(rpm --eval "%{dist}").noarch.rpm && rpm-ostree install zfs --uninstall zfs-fuse + +# Build ZFS module manually +RUN dkms install zfs/$(ls /usr/src/ | grep zfs- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) + +# Install Gnome Boxes +RUN rpm-ostree install gnome-boxes + +# Remove plocate to avoid updatedb going crazy with scanning the file system once a day +RUN rpm-ostree override remove plocate + +# enable scx service +RUN systemctl enable scx.service + +# Copy config files +COPY etc /etc +# Copy /usr +COPY usr /usr + +# Enable /nix mount service +RUN systemctl enable mount-nix-prepare.service +# Disable nvidia-powerd to avoid crashing when the system goes into suspension +RUN systemctl disable nvidia-powerd + +# Clear cache, /var and /tmp and commit ostree +RUN rm -rf /tmp/* /var/* && mkdir -p /var/tmp && chmod -R 1777 /var/tmp && \ +ostree container commit From f1b3d93918242294269e6e9bc75bf69e2c6e0394 Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Tue, 29 Jul 2025 16:33:51 -0300 Subject: [PATCH 02/14] remove libheif-freeworld for now --- Dockerfile | 3 --- 1 file changed, 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index ec075bc..6c34d4f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,9 +13,6 @@ RUN dnf install --nogpgcheck -y https://mirrors.rpmfusion.org/free/el/rpmfusion- RUN dnf config-manager --add-repo=https://negativo17.org/repos/epel-nvidia.repo -y -# Install HEIC support for Gwenview and Dolphin (and potentially other applications) -RUN dnf install -y libheif-freeworld - RUN dnf install -y fish distrobox nvtop gnome-boxes gwenview ffmpeg ffmpeg-libs libavdevice intel-media-driver pipewire-codec-aptx libva-intel-driver libva-utils libavcodec-freeworld RUN dnf install -y https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm From e71c544da0e849f77c23f069f7b1fe422bf33709 Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Tue, 29 Jul 2025 16:56:32 -0300 Subject: [PATCH 03/14] remove unavailable software --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6c34d4f..604040c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ RUN dnf install --nogpgcheck -y https://mirrors.rpmfusion.org/free/el/rpmfusion- RUN dnf config-manager --add-repo=https://negativo17.org/repos/epel-nvidia.repo -y -RUN dnf install -y fish distrobox nvtop gnome-boxes gwenview ffmpeg ffmpeg-libs libavdevice intel-media-driver pipewire-codec-aptx libva-intel-driver libva-utils libavcodec-freeworld +RUN dnf install -y fish distrobox nvtop gwenview ffmpeg ffmpeg-libs libavdevice intel-media-driver libva-intel-driver libavcodec-freeworld RUN dnf install -y https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm RUN dnf install -y ${KERNEL} ${KERNEL}-devel-matched From 6b9b3e2c56c0a1befb89a0db598b5862b225e166 Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Tue, 29 Jul 2025 17:10:48 -0300 Subject: [PATCH 04/14] . --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 604040c..7e8a06e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ RUN dnf install --nogpgcheck -y https://mirrors.rpmfusion.org/free/el/rpmfusion- RUN dnf config-manager --add-repo=https://negativo17.org/repos/epel-nvidia.repo -y -RUN dnf install -y fish distrobox nvtop gwenview ffmpeg ffmpeg-libs libavdevice intel-media-driver libva-intel-driver libavcodec-freeworld +RUN dnf install -y fish distrobox nvtop gwenview ffmpeg ffmpeg-libs libavdevice intel-media-driver libva-intel-driver RUN dnf install -y https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm RUN dnf install -y ${KERNEL} ${KERNEL}-devel-matched From 9c6c95e04b99cb67f79d04fac98e076b8d4ae7ef Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Tue, 29 Jul 2025 17:12:46 -0300 Subject: [PATCH 05/14] . --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7e8a06e..ef52f81 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ RUN dnf install --nogpgcheck -y https://mirrors.rpmfusion.org/free/el/rpmfusion- RUN dnf config-manager --add-repo=https://negativo17.org/repos/epel-nvidia.repo -y -RUN dnf install -y fish distrobox nvtop gwenview ffmpeg ffmpeg-libs libavdevice intel-media-driver libva-intel-driver +RUN dnf install -y fish distrobox nvtop gwenview intel-media-driver libva-intel-driver RUN dnf install -y https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm RUN dnf install -y ${KERNEL} ${KERNEL}-devel-matched From e6d1e91cc703ed6877eab21a20cce9ead03e696c Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Tue, 29 Jul 2025 18:31:21 -0300 Subject: [PATCH 06/14] dont use rpm-ostree. use dnf --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ef52f81..015ef47 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ RUN dnf install -y ${KERNEL} ${KERNEL}-devel-matched RUN dnf remove -y kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra kernel-tools kernel-tools-libs # Install Negativo17 Nvidia driver -RUN rpm-ostree install dkms-nvidia nvidia-driver zstd nvidia-vaapi-driver nvidia-persistenced opencl-filesystem +RUN dnf install -y dkms-nvidia nvidia-driver zstd nvidia-vaapi-driver nvidia-persistenced opencl-filesystem RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) From 174ee7b2eda42026ef27707d78818625509bcd1c Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Tue, 29 Jul 2025 18:43:44 -0300 Subject: [PATCH 07/14] No match for argument: nvidia-vaapi-driver --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 015ef47..e79dace 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ RUN dnf install -y ${KERNEL} ${KERNEL}-devel-matched RUN dnf remove -y kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra kernel-tools kernel-tools-libs # Install Negativo17 Nvidia driver -RUN dnf install -y dkms-nvidia nvidia-driver zstd nvidia-vaapi-driver nvidia-persistenced opencl-filesystem +RUN dnf install -y dkms-nvidia nvidia-driver nvidia-persistenced opencl-filesystem RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) From 5ec9a2f56c25b56650f2d8fe14dd143b48ed9177 Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Tue, 29 Jul 2025 19:06:23 -0300 Subject: [PATCH 08/14] delete data in var and tmp --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e79dace..4507b06 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,5 @@ RUN dnf install -y dkms-nvidia nvidia-driver nvidia-persistenced opencl-filesyst RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) -RUN rm -rf /tmp/* \ No newline at end of file +RUN rm -rf /tmp/* /var/* && mkdir -p /var/tmp && chmod -R 1777 /var/tmp && \ +bootc container lint From 8c2dfe9e78facb92699bbef2730ac18fb3414388 Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Wed, 30 Jul 2025 21:50:31 -0300 Subject: [PATCH 09/14] add libva-nvidia-driver --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4507b06..9e794ef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ RUN dnf install -y ${KERNEL} ${KERNEL}-devel-matched RUN dnf remove -y kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra kernel-tools kernel-tools-libs # Install Negativo17 Nvidia driver -RUN dnf install -y dkms-nvidia nvidia-driver nvidia-persistenced opencl-filesystem +RUN dnf install -y dkms-nvidia nvidia-driver nvidia-persistenced opencl-filesystem libva-nvidia-driver RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) From 6a2666f47b7ba73ff89e8f44a5621eab2af9a133 Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Wed, 30 Jul 2025 22:23:03 -0300 Subject: [PATCH 10/14] add firewall rule and try to fix nvidia driver loading issue --- Dockerfile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Dockerfile b/Dockerfile index 9e794ef..7304da6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,8 @@ ENV KERNEL=${KERNEL} # Get list of kernels from my repo. If the list has been updated, then the image will be rebuilt. If it hasn't been updated, then caching of the previous build will be used. ADD "https://copr.fedorainfracloud.org/api_3/build/list?ownername=andersrh&projectname=my-ostree-os&packagename=kernel-cachyos-lto-skylake" /tmp/builds.txt +RUN dnf upgrade -y + RUN dnf copr enable -y andersrh/my-ostree-os RUN dnf install --nogpgcheck -y https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm @@ -24,6 +26,12 @@ RUN dnf remove -y kernel kernel-core kernel-modules kernel-modules-core kernel-m RUN dnf install -y dkms-nvidia nvidia-driver nvidia-persistenced opencl-filesystem libva-nvidia-driver RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) +RUN echo 'omit_drivers+=" nouveau "' | sudo tee /etc/dracut.conf.d/blacklist-nouveau.conf +RUN dracut --regenerate-all --force +RUN depmod -a + +# Allow connections to KDEConnect +RUN firewall-cmd --permanent --zone=public --add-service=kdeconnect RUN rm -rf /tmp/* /var/* && mkdir -p /var/tmp && chmod -R 1777 /var/tmp && \ bootc container lint From 8c7f8db653220ca4d1bd03ce977b9f66c86f2bfc Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Wed, 30 Jul 2025 22:34:09 -0300 Subject: [PATCH 11/14] remove sudo from command --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7304da6..f70224f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,7 +26,7 @@ RUN dnf remove -y kernel kernel-core kernel-modules kernel-modules-core kernel-m RUN dnf install -y dkms-nvidia nvidia-driver nvidia-persistenced opencl-filesystem libva-nvidia-driver RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) -RUN echo 'omit_drivers+=" nouveau "' | sudo tee /etc/dracut.conf.d/blacklist-nouveau.conf +RUN echo 'omit_drivers+=" nouveau "' | tee /etc/dracut.conf.d/blacklist-nouveau.conf RUN dracut --regenerate-all --force RUN depmod -a From 488a7ffe162e5b157030b376c2498d5954b6db6e Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Wed, 30 Jul 2025 23:14:35 -0300 Subject: [PATCH 12/14] try to fix nvidia driver load issue and remove firewall rule since it fails --- Dockerfile | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index f70224f..475dfca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,8 @@ RUN dnf config-manager --add-repo=https://negativo17.org/repos/epel-nvidia.repo RUN dnf install -y fish distrobox nvtop gwenview intel-media-driver libva-intel-driver RUN dnf install -y https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm +RUN echo 'omit_drivers+=" nouveau "' | tee /etc/dracut.conf.d/blacklist-nouveau.conf + RUN dnf install -y ${KERNEL} ${KERNEL}-devel-matched RUN dnf remove -y kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra kernel-tools kernel-tools-libs @@ -26,12 +28,6 @@ RUN dnf remove -y kernel kernel-core kernel-modules kernel-modules-core kernel-m RUN dnf install -y dkms-nvidia nvidia-driver nvidia-persistenced opencl-filesystem libva-nvidia-driver RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) -RUN echo 'omit_drivers+=" nouveau "' | tee /etc/dracut.conf.d/blacklist-nouveau.conf -RUN dracut --regenerate-all --force -RUN depmod -a - -# Allow connections to KDEConnect -RUN firewall-cmd --permanent --zone=public --add-service=kdeconnect RUN rm -rf /tmp/* /var/* && mkdir -p /var/tmp && chmod -R 1777 /var/tmp && \ bootc container lint From 7ead7133e58645a7d8be0515bbe5ce9657be26ec Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Thu, 31 Jul 2025 00:41:47 -0300 Subject: [PATCH 13/14] change order and add Waydroid Add rhel+epel repo because packages are different in CentOS+EPEL --- Dockerfile | 23 ++++++++++++----------- repo/andersrh-my-ostree-os.repo | 16 ++-------------- repo/andersrh-myostree-os-rhel+epel.repo | 11 +++++++++++ repo/jhyub-supergfxctl-plasmoid.repo | 10 ---------- repo/lukenukem-asus-linux.repo | 10 ---------- 5 files changed, 25 insertions(+), 45 deletions(-) create mode 100644 repo/andersrh-myostree-os-rhel+epel.repo delete mode 100644 repo/jhyub-supergfxctl-plasmoid.repo delete mode 100644 repo/lukenukem-asus-linux.repo diff --git a/Dockerfile b/Dockerfile index 475dfca..96e36aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,27 +7,28 @@ ENV KERNEL=${KERNEL} # Get list of kernels from my repo. If the list has been updated, then the image will be rebuilt. If it hasn't been updated, then caching of the previous build will be used. ADD "https://copr.fedorainfracloud.org/api_3/build/list?ownername=andersrh&projectname=my-ostree-os&packagename=kernel-cachyos-lto-skylake" /tmp/builds.txt -RUN dnf upgrade -y - -RUN dnf copr enable -y andersrh/my-ostree-os - -RUN dnf install --nogpgcheck -y https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm - -RUN dnf config-manager --add-repo=https://negativo17.org/repos/epel-nvidia.repo -y - -RUN dnf install -y fish distrobox nvtop gwenview intel-media-driver libva-intel-driver -RUN dnf install -y https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm - RUN echo 'omit_drivers+=" nouveau "' | tee /etc/dracut.conf.d/blacklist-nouveau.conf +COPY repo/*.repo /etc/yum.repos.d/ +RUN dnf config-manager --add-repo=https://negativo17.org/repos/epel-nvidia.repo -y + RUN dnf install -y ${KERNEL} ${KERNEL}-devel-matched RUN dnf remove -y kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra kernel-tools kernel-tools-libs +RUN dnf upgrade -y + +RUN dnf install --nogpgcheck -y https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm + +RUN dnf install -y fish distrobox nvtop gwenview intel-media-driver libva-intel-driver +RUN dnf install -y https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher-2.2.0-travis995.0f91801.x86_64.rpm + # Install Negativo17 Nvidia driver RUN dnf install -y dkms-nvidia nvidia-driver nvidia-persistenced opencl-filesystem libva-nvidia-driver RUN sed -i -e 's/kernel-open$/kernel/g' /etc/nvidia/kernel.conf RUN dkms install nvidia/$(ls /usr/src/ | grep nvidia- | cut -d- -f2-) -k $(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" ${KERNEL}) +RUN dnf install -y waydroid + RUN rm -rf /tmp/* /var/* && mkdir -p /var/tmp && chmod -R 1777 /var/tmp && \ bootc container lint diff --git a/repo/andersrh-my-ostree-os.repo b/repo/andersrh-my-ostree-os.repo index be818c4..3305e37 100644 --- a/repo/andersrh-my-ostree-os.repo +++ b/repo/andersrh-my-ostree-os.repo @@ -1,6 +1,6 @@ -[copr:copr.fedorainfracloud.org:andersrh:my-ostree-os] +[my-ostree-os-epel] name=Copr repo for my-ostree-os owned by andersrh -baseurl=https://download.copr.fedorainfracloud.org/results/andersrh/my-ostree-os/fedora-$releasever-$basearch/ +baseurl=https://download.copr.fedorainfracloud.org/results/andersrh/my-ostree-os/epel-10-$basearch/ type=rpm-md skip_if_unavailable=True gpgcheck=1 @@ -8,15 +8,3 @@ gpgkey=https://download.copr.fedorainfracloud.org/results/andersrh/my-ostree-os/ repo_gpgcheck=0 enabled=1 enabled_metadata=1 - -[copr:copr.fedorainfracloud.org:andersrh:my-ostree-os:ml] -name=Copr repo for my-ostree-os owned by andersrh (i386) -baseurl=https://download.copr.fedorainfracloud.org/results/andersrh/my-ostree-os/fedora-$releasever-i386/ -type=rpm-md -skip_if_unavailable=True -gpgcheck=1 -gpgkey=https://download.copr.fedorainfracloud.org/results/andersrh/my-ostree-os/pubkey.gpg -repo_gpgcheck=0 -cost=1100 -enabled=1 -enabled_metadata=1 diff --git a/repo/andersrh-myostree-os-rhel+epel.repo b/repo/andersrh-myostree-os-rhel+epel.repo new file mode 100644 index 0000000..0c5b27a --- /dev/null +++ b/repo/andersrh-myostree-os-rhel+epel.repo @@ -0,0 +1,11 @@ +[my-ostree-os-rhel-epel] +name=Copr repo for my-ostree-os owned by andersrh for RHEL+EPEL +baseurl=https://download.copr.fedorainfracloud.org/results/andersrh/my-ostree-os/rhel+epel-10-$basearch/ +type=rpm-md +skip_if_unavailable=True +gpgcheck=1 +gpgkey=https://download.copr.fedorainfracloud.org/results/andersrh/my-ostree-os/pubkey.gpg +repo_gpgcheck=0 +enabled=1 +enabled_metadata=1 +priority=98 diff --git a/repo/jhyub-supergfxctl-plasmoid.repo b/repo/jhyub-supergfxctl-plasmoid.repo deleted file mode 100644 index 9da555b..0000000 --- a/repo/jhyub-supergfxctl-plasmoid.repo +++ /dev/null @@ -1,10 +0,0 @@ -[copr:copr.fedorainfracloud.org:jhyub:supergfxctl-plasmoid] -name=Copr repo for supergfxctl-plasmoid owned by jhyub -baseurl=https://download.copr.fedorainfracloud.org/results/jhyub/supergfxctl-plasmoid/fedora-$releasever-$basearch/ -type=rpm-md -skip_if_unavailable=True -gpgcheck=1 -gpgkey=https://download.copr.fedorainfracloud.org/results/jhyub/supergfxctl-plasmoid/pubkey.gpg -repo_gpgcheck=0 -enabled=1 -enabled_metadata=1 diff --git a/repo/lukenukem-asus-linux.repo b/repo/lukenukem-asus-linux.repo deleted file mode 100644 index c28cc06..0000000 --- a/repo/lukenukem-asus-linux.repo +++ /dev/null @@ -1,10 +0,0 @@ -[copr:copr.fedorainfracloud.org:lukenukem:asus-linux] -name=Copr repo for asus-linux owned by lukenukem -baseurl=https://download.copr.fedorainfracloud.org/results/lukenukem/asus-linux/fedora-$releasever-$basearch/ -type=rpm-md -skip_if_unavailable=True -gpgcheck=1 -gpgkey=https://download.copr.fedorainfracloud.org/results/lukenukem/asus-linux/pubkey.gpg -repo_gpgcheck=0 -enabled=1 -enabled_metadata=1 From 636ab02ac8bd011985c14cf6edcd1fe75caab767 Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Thu, 31 Jul 2025 09:08:50 -0300 Subject: [PATCH 14/14] build image every day and change version to 10 --- .github/workflows/os.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/os.yml b/.github/workflows/os.yml index 267a05f..cf2932a 100644 --- a/.github/workflows/os.yml +++ b/.github/workflows/os.yml @@ -7,7 +7,7 @@ name: os on: schedule: - - cron: '0 5 */3 * *' # 5 am every 3rd day + - cron: '0 5 * * *' # 5 am every day push: paths: - 'Dockerfile' @@ -92,7 +92,7 @@ jobs: with: context: . push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }}, ${{ steps.meta.outputs.tags }}-41, ${{ steps.meta.outputs.tags }}-41.${{ steps.date.outputs.date }} + tags: ${{ steps.meta.outputs.tags }}, ${{ steps.meta.outputs.tags }}-10, ${{ steps.meta.outputs.tags }}-10.${{ steps.date.outputs.date }} # labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max