feat: fedora 45 bringup (#594)

* bringup f45

* update the workflow

* do-not-test

* use dnf repo commands instead of sed

* gate openrazer on f45

* add notice for temp workaround for openrazer
This commit is contained in:
inffy 2026-09-17 20:09:56 +03:00 committed by GitHub
parent 56c8acd125
commit 69c139b49b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 110 additions and 18 deletions

View file

@ -16,6 +16,84 @@ on:
- cron: '01 0 * * *' # staggered minute past 00:00 UTC, see Justfile generate-workflows
workflow_dispatch:
jobs:
cache_kernel_main_45:
name: Cache main (45)
uses: ./.github/workflows/reusable-cache-kernel.yml
secrets: inherit
permissions:
actions: read
contents: read
packages: write
with:
architecture: '["x86_64"]'
kernel_flavor: main
version: 45
build-main_45_common:
name: Build common main (45)
uses: ./.github/workflows/reusable-build.yml
secrets: inherit
permissions:
actions: read
attestations: write
contents: read
id-token: write
packages: write
needs: cache_kernel_main_45
with:
akmods_target: common
architecture: '["x86_64"]'
kernel_cache_key: ${{ needs.cache_kernel_main_45.outputs.KCKEY }}
kernel_flavor: main
version: 45
build-main_45_nvidia-lts:
name: Build nvidia-lts main (45)
uses: ./.github/workflows/reusable-build.yml
secrets: inherit
permissions:
actions: read
attestations: write
contents: read
id-token: write
packages: write
needs: cache_kernel_main_45
with:
akmods_target: nvidia-lts
architecture: '["x86_64"]'
kernel_cache_key: ${{ needs.cache_kernel_main_45.outputs.KCKEY }}
kernel_flavor: main
version: 45
build-main_45_nvidia-open:
name: Build nvidia-open main (45)
uses: ./.github/workflows/reusable-build.yml
secrets: inherit
permissions:
actions: read
attestations: write
contents: read
id-token: write
packages: write
needs: cache_kernel_main_45
with:
akmods_target: nvidia-open
architecture: '["x86_64"]'
kernel_cache_key: ${{ needs.cache_kernel_main_45.outputs.KCKEY }}
kernel_flavor: main
version: 45
check-main_45:
name: Check main (45)
permissions:
actions: read
contents: read
needs: [build-main_45_common,build-main_45_nvidia-lts,build-main_45_nvidia-open]
runs-on: ubuntu-24.04
if: always()
steps:
- name: Check for Build Failures
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped')
run: exit 1
- name: Exit if Success
run: exit 0
cache_kernel_main_44:
name: Cache main (44)
uses: ./.github/workflows/reusable-cache-kernel.yml

View file

@ -17,17 +17,27 @@ curl -LsSf -o /etc/pki/rpm-gpg/RPM-GPG-KEY-terra"${RELEASE}" \
rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-terra"${RELEASE}"
### BUILD openrazer (succeed or fail-fast with debug output)
dnf install -y \
akmod-openrazer-*.fc"${RELEASE}"."${ARCH}"
akmods --force --kernels "${KERNEL}" --kmod openrazer
modinfo /usr/lib/modules/"${KERNEL}"/extra/openrazer/razerkbd.ko.xz >/dev/null ||
(find /var/cache/akmods/openrazer/ -name \*.log -print -exec cat {} \; && exit 1)
modinfo /usr/lib/modules/"${KERNEL}"/extra/openrazer/razermouse.ko.xz >/dev/null ||
(find /var/cache/akmods/openrazer/ -name \*.log -print -exec cat {} \; && exit 1)
modinfo /usr/lib/modules/"${KERNEL}"/extra/openrazer/razerkraken.ko.xz >/dev/null ||
(find /var/cache/akmods/openrazer/ -name \*.log -print -exec cat {} \; && exit 1)
modinfo /usr/lib/modules/"${KERNEL}"/extra/openrazer/razeraccessory.ko.xz >/dev/null ||
(find /var/cache/akmods/openrazer/ -name \*.log -print -exec cat {} \; && exit 1)
# REVERTME: Once terra has openrazer packages for F45
if [[ "${RELEASE}" -ge 45 ]]; then
dnf install -y akmod-openrazer-*.fc"${RELEASE}"."${ARCH}" || {
echo "SKIPPED: Openrazer gets skipped if Terra doesn't have package for F45."
rm -f /etc/yum.repos.d/terra.repo
exit 0
}
akmods --force --kernels "${KERNEL}" --kmod openrazer || { rm -f /etc/yum.repos.d/terra.repo; exit 0; }
else
dnf install -y \
akmod-openrazer-*.fc"${RELEASE}"."${ARCH}"
akmods --force --kernels "${KERNEL}" --kmod openrazer
modinfo /usr/lib/modules/"${KERNEL}"/extra/openrazer/razerkbd.ko.xz >/dev/null ||
(find /var/cache/akmods/openrazer/ -name \*.log -print -exec cat {} \; && exit 1)
modinfo /usr/lib/modules/"${KERNEL}"/extra/openrazer/razermouse.ko.xz >/dev/null ||
(find /var/cache/akmods/openrazer/ -name \*.log -print -exec cat {} \; && exit 1)
modinfo /usr/lib/modules/"${KERNEL}"/extra/openrazer/razerkraken.ko.xz >/dev/null ||
(find /var/cache/akmods/openrazer/ -name \*.log -print -exec cat {} \; && exit 1)
modinfo /usr/lib/modules/"${KERNEL}"/extra/openrazer/razeraccessory.ko.xz >/dev/null ||
(find /var/cache/akmods/openrazer/ -name \*.log -print -exec cat {} \; && exit 1)
fi
mkdir -p /var/cache/rpms/common
dnf download --destdir /var/cache/rpms/common \

View file

@ -40,7 +40,7 @@ for RPMPATH in "${RPMPATHS[@]}"; do
RPM=$(basename "${RPMPATH/\.rpm/}")
mkdir -p /tmp/buildroot
cp -r /{usr,lib} /tmp/buildroot
rpmrebuild --additional=--buildroot=/tmp/buildroot --batch "$RPM"
rpmrebuild --notest-install --additional=--buildroot=/tmp/buildroot --batch "$RPM"
rm -rf /tmp/buildroot
done
popd

View file

@ -21,7 +21,7 @@ else
echo "Building for Fedora"
RELEASE="$(rpm -E '%fedora')"
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/fedora-cisco-openh264.repo
dnf config-manager setopt fedora-cisco-openh264.enabled=0
RPMFUSION_MIRROR_RPMS="https://mirrors.rpmfusion.org"
if [ -n "${RPMFUSION_MIRROR}" ]; then
@ -47,7 +47,7 @@ if [[ "${VERSION}" -ge 45 && -f /etc/fedora-release ]]; then
# pre-release rpmfusion is in a different location
sed -i "s%free/fedora/releases%free/fedora/development%" /etc/yum.repos.d/rpmfusion-*.repo
# pre-release rpmfusion needs to enable testing
sed -i '0,/enabled=0/{s/enabled=0/enabled=1/}' /etc/yum.repos.d/rpmfusion-*-updates-testing.repo
dnf config-manager enable rpmfusion-free-updates-testing rpmfusion-nonfree-updates-testing
fi
if [[ -n "${RPMFUSION_MIRROR}" && -f /etc/fedora-release ]]; then

View file

@ -16,7 +16,7 @@ if [[ "${KERNEL_FLAVOR}" =~ "centos" ]]; then
else
echo "Building for Fedora"
RELEASE="$(rpm -E '%fedora')"
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/fedora-cisco-openh264.repo
dnf config-manager setopt fedora-cisco-openh264.enabled=0
dnf config-manager addrepo --from-repofile=https://negativo17.org/repos/fedora-multimedia.repo
fi
@ -38,7 +38,7 @@ if [[ "${RELEASE}" -ge 45 && -f /etc/fedora-release ]]; then
# pre-release rpmfusion is in a different location
sed -i "s%free/fedora/releases%free/fedora/development%" /etc/yum.repos.d/rpmfusion-*.repo
# pre-release rpmfusion needs to enable testing
sed -i '0,/enabled=0/{s/enabled=0/enabled=1/}' /etc/yum.repos.d/rpmfusion-*-updates-testing.repo
dnf config-manager enable rpmfusion-free-updates-testing rpmfusion-nonfree-updates-testing
fi
if [[ -f $(find /tmp/akmods-rpms/kmods/kmod-nvidia-*.rpm) ]]; then

View file

@ -39,7 +39,7 @@ done
find /var/cache/rpms/kmods/zfs -type f -name "\kmod-*.rpm" | grep -v debug | grep -v devel
RPMPATH=$(find /var/cache/rpms/kmods/zfs -type f -name "\kmod-*.rpm" | grep -v debug | grep -v devel)
RPM=$(basename "${RPMPATH/\.rpm/}")
rpmrebuild --additional=--buildroot=/tmp/buildroot --batch "${RPM}"
rpmrebuild --notest-install --additional=--buildroot=/tmp/buildroot --batch "${RPM}"
rm -rf /usr/lib/modules/"${KERNEL}"/extra
pushd /root/rpmbuild/RPMS/"$(uname -m)"/
mapfile -t RPMPATHS < <(find . -type f -name "\kmod-*.rpm")

View file

@ -196,7 +196,7 @@ fi
ln -s / /tmp/buildroot
# Rebuild RPMs and Verify
rpmrebuild --additional=--buildroot=/tmp/buildroot --batch "${kernel_name}-core-${kernel_version}"
rpmrebuild --notest-install --additional=--buildroot=/tmp/buildroot --batch "${kernel_name}-core-${kernel_version}"
rm -f /usr/lib/modules/"${kernel_version}"/vmlinuz
find /tmp
find /root

View file

@ -190,3 +190,7 @@ images:
"longterm-6.18":
!!merge <<:
- *server-build-group
45:
main:
!!merge <<:
- *desktop-build-group-only-x86