diff --git a/Dockerfile b/Dockerfile index 73d1ed8..4daddbc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,14 @@ FROM quay.io/almalinuxorg/atomic-desktop-kde:10 ARG CACHEBUST=1 -# Install some basic apps -RUN dnf -y install chromium gwenview haruna - # 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" /tmp/builds.txt RUN echo 'omit_drivers+=" nouveau "' | tee /etc/dracut.conf.d/blacklist-nouveau.conf +COPY bin/set_next_version.sh /tmp +RUN /tmp/set_next_version.sh + COPY repo/*.repo /etc/yum.repos.d/ RUN dnf config-manager --add-repo=https://negativo17.org/repos/epel-nvidia.repo -y @@ -46,6 +46,9 @@ RUN dnf install libheif-freeworld -y # Install proprietary codecs RUN dnf swap libavcodec-free libavcodec-freeworld --allowerasing -y +RUN dnf -y install gwenview haruna kalk okular +RUN dnf -y --enablerepo=epel-next-minor install chromium + # Add rule to SELinux allowing modules to be loaded into custom kernel RUN setsebool -P domain_kernel_load_modules on diff --git a/bin/set_next_version.sh b/bin/set_next_version.sh new file mode 100755 index 0000000..0801688 --- /dev/null +++ b/bin/set_next_version.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# ----------------------------------------------------------- +# Script til beregning af AlmaLinux's næste minor version +# og lagring af værdien som en DNF variabel. +# ----------------------------------------------------------- + +VAR_FILE="/etc/dnf/vars/epel_next_releasever" +VERSION_FILE="/etc/os-release" + +# 1. Hent den fulde version (f.eks. "10.1") +# Vi bruger VERSION_ID fra /etc/os-release, da den er standardiseret. +if [ ! -f "$VERSION_FILE" ]; then + echo "Fejl: OS-versionsfil ($VERSION_FILE) ikke fundet." >&2 + exit 1 +fi + +# Henter strengen (f.eks. 10.1) +FULL_VERSION=$(grep '^VERSION_ID=' "$VERSION_FILE" | cut -d'"' -f2) + +if [[ ! "$FULL_VERSION" =~ ^[0-9]+\.[0-9]+$ ]]; then + echo "Fejl: Ugyldig versionsformat fundet i $VERSION_FILE: $FULL_VERSION" >&2 + exit 1 +fi + +# 2. Opdel i Major (10) og Minor (1) +MAJOR_VERSION=$(echo "$FULL_VERSION" | cut -d. -f1) +CURRENT_MINOR=$(echo "$FULL_VERSION" | cut -d. -f2) + +# 3. Udfør aritmetik: Minor + 1 +NEXT_MINOR=$((CURRENT_MINOR + 1)) + +# 4. Sammensæt den næste version streng (f.eks. 10.2) +NEXT_VERSION="${MAJOR_VERSION}.${NEXT_MINOR}" + +# 5. Opret DNF vars mappen, hvis den ikke findes +mkdir -p /etc/dnf/vars + +# 6. Skriv den beregnede værdi til DNF variabelfilen +echo "$NEXT_VERSION" | tee "$VAR_FILE" + +# Output til log (nyttigt i en Dockerfil) +echo "---------------------------------------------------------" +echo "Nuværende AlmaLinux version: $FULL_VERSION" +echo "Næste version beregnet: $NEXT_VERSION" +echo "Værdien '$NEXT_VERSION' er gemt i $VAR_FILE." +echo "---------------------------------------------------------" + +exit 0 diff --git a/repo/epel-next-minor.repo b/repo/epel-next-minor.repo new file mode 100644 index 0000000..443a2bc --- /dev/null +++ b/repo/epel-next-minor.repo @@ -0,0 +1,36 @@ +[epel-next-minor] +name=Extra Packages for Enterprise Linux $epel_next_releasever - $basearch +# It is much more secure to use the metalink, but if you wish to use a local mirror +# place its address here. +#baseurl=https://download.example/pub/epel/$releasever${releasever_minor:+z}/Everything/$basearch/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=epel${releasever_minor:+-z}-$epel_next_releasever&arch=$basearch +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever_major +gpgcheck=1 +repo_gpgcheck=0 +metadata_expire=24h +countme=1 +enabled=0 + +[epel-next-minor-debuginfo] +name=Extra Packages for Enterprise Linux $epel_next_releasever - $basearch - Debug +# It is much more secure to use the metalink, but if you wish to use a local mirror +# place its address here. +#baseurl=https://download.example/pub/epel/$releasever${releasever_minor:+z}/Everything/$basearch/debug/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=epel${releasever_minor:+-z}-debug-$epel_next_releasever&arch=$basearch +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever_major +gpgcheck=1 +repo_gpgcheck=0 +metadata_expire=24h +enabled=0 + +[epel-next-minor-source] +name=Extra Packages for Enterprise Linux $epel_next_releasever - $basearch - Source +# It is much more secure to use the metalink, but if you wish to use a local mirror +# place its address here. +#baseurl=https://download.example/pub/epel/$releasever${releasever_minor:+z}/Everything/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=epel${releasever_minor:+-z}-source-$epel_next_releasever&arch=source +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever_major +gpgcheck=1 +repo_gpgcheck=0 +metadata_expire=24h +enabled=0