Commit graph

521 commits

Author SHA1 Message Date
Kyle Gospodnetich
6d6d70c840
fix: Correct executable status (#622) 2026-10-26 23:10:57 -07:00
Kyle Gospodnetich
4648703aee
fix: Move vhba to the extras repo where Bazzite expects it (#621) 2026-10-26 14:16:16 -07:00
Benjamin Sherman
95d16290f1
feat(ci): skip rebuilding unchanged akmods images (#620)
Every nightly rebuilds all 33 targets even when nothing changed. Each
rebuild is another chance to hit a mirror flake, and published images
record nothing about what they were built from.

Label each image with a fingerprint of its inputs: the kernel release,
the git objects that feed the build, the target config, and overrides.
The build job skips test, build, and push when the published image
matches, is signed, and is under AKMODS_MAX_AGE_DAYS old (default 7).
The manifest job likewise skips regenerating indexes that are already
current and signed, but attestation still runs every time. Any doubt
means build. PR runs and the new force input bypass the guard.

NVIDIA builds pin akmod-nvidia to the fingerprinted version, and the
userspace packages to the same driver version, so the label describes
what was actually built.
2026-10-25 05:21:52 +00:00
Benjamin Sherman
bd91a7eb53
fix(ci): stop four recurring CI flakes (#618)
* fix(build): retry dnf installs with fresh metadata

Fedora updates pushes leave mirrors briefly inconsistent. dnf rejects the
new repomd, accepts an older one, then 404s on RPMs that have already been
removed. A plain retry reuses that metadata, especially with the persistent
libdnf5 cache, so refresh it between attempts.

* fix(zfs): pin ZFS release instead of querying the GitHub API

Unauthenticated api.github.com calls from shared runner IPs get rate-limited,
and short curl retries cannot outlast an hourly limit. Pinning the full
release removes that call and makes version bumps show up as PRs.

BREAKING: ZFS_MINOR_VERSION and zfs.*.minor_version are no longer read.
Use ZFS_VERSION and zfs.*.version (full X.Y.Z). Renovate manages the pin.

* fix(just): resolve CoreOS kernel without pulling the image

cache-kernel pulls the full fedora-coreos image on every arch just to run
rpm -q kernel, and a quay.io CDN EOF fails the job. Read the build id from
the image index and the kernel from commitmeta.json instead.

An empty or invalid cache.json was also published, so the later step failed
with "Input required and not supplied: path". Write the cache only after
the fields check out, and drop a restored cache that does not match.

* fix(just): retry koji kernel lookups

A transient curl error was treated as "not found" because the check matched
the string "200 OK" with no retry. That dropped the release number by 100
and could select the wrong kernel or none. Retry transport failures, and
only use the fallback after a successful request that returns 404.

* docs: document RPMFUSION_MIRROR build override

The variable already changes where the build fetches RPM Fusion packages,
but it was not listed with the other Justfile environment variables.
2026-10-24 18:08:40 -05:00
ubot-7274[bot]
5f6deac85e
chore(deps): update ghcr.io/ublue-os/devcontainer:latest docker digest to ec1046d (#605)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-24 17:48:27 -05:00
ubot-7274[bot]
8de7add3b1
chore(deps): update ossf/scorecard-action action to v2.5.0 (#606)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-24 14:09:01 -05:00
ubot-7274[bot]
f930eef772
chore(deps): update dependency sigstore/cosign to v3.1.4 (#612)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-24 14:08:27 -05:00
ubot-7274[bot]
ff31ebb9d6
chore(deps): update github/codeql-action digest to 9b32540 (#614)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-24 14:08:04 -05:00
Kyle Gospodnetich
59238b6e0f
chore: Drop ayaneo-leds while it's being retooled (#617) 2026-10-22 16:42:57 -07:00
Kyle Gospodnetich
8ebebde06c
feat: Add ayaneo-platform to OGC and OGC-LTS (#616) 2026-10-22 16:30:17 -07:00
Kyle Gospodnetich
8e5352bd3b
feat: Add support for logitech-trueforce wheels to OGC and OGC-lts (#615) 2026-10-22 16:27:25 -07:00
Kyle Gospodnetich
e2b0f07d8f
fix: Apply realpath around _builddir, fixes a double slash that causes our changes to be ignored (#613)
fix: Apply realpath around _builddir, fixes a double slash that causes our change to be ignored
2026-10-20 21:06:08 -07:00
Kyle Gospodnetich
6cda5f6fba
fix: Normalize build paths to ensure RPMs built here are reproducible (#610)
* fix: Normalize build paths to ensure RPMs built here are reproducible

* chore: Fix empty variable
2026-10-20 10:16:41 -07:00
Kyle Gospodnetich
7c9f9274d3
fix: Change rpmfusion mirror to resolve build errors (#611) 2026-10-20 09:25:49 -07:00
ubot-7274[bot]
d3958bd6c1
chore(deps): update github/codeql-action digest to 6f2ac81 (#609)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-15 14:57:24 +03:00
Robin?
d4bab83a0e
chore: remove centos and centos-kmodsig akmods support (#608)
* chore: remove centos and centos-kmodsig akmods support

CentOS Stream 10 builds are no longer needed. This change removes:
- The centos kernel flavor from images.yaml and its generated workflow
- The centos-kmodsig dead code from Justfile and fetch-kernel.sh
- All centos-specific branches in build scripts (prep, test, nvidia, dual-sign)
- The #ifndef CENTOS preprocessor guard in Containerfile.in
- CentOS references from README.md badges and examples
- CentOS from artifacthub package keywords

* docs: update akmods example version to 44
2026-10-13 19:24:35 +00:00
ubot-7274[bot]
cdb58c09b9
chore(deps): update github/codeql-action digest to 24c5418 (#604)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-13 08:39:17 +03:00
Kyle Gospodnetich
39da7b5802
fix: Use config-manager instead of sed for rpmfusion (#607) 2026-10-12 14:37:06 -07:00
ubot-7274[bot]
cc75e3b16d
chore(deps): update actions/upload-artifact action to v7.0.2 (#603)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-08 04:03:56 +00:00
ubot-7274[bot]
dddf5adf14
chore(deps): update ghcr.io/ublue-os/devcontainer:latest docker digest to 94c59f2 (#602)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-08 04:03:40 +00:00
Benjamin Sherman
21c5bae947
chore: drop Fedora 43 builds (#600)
* chore: drop Fedora 43 builds

Fedora 43 akmods are no longer needed by the maintained downstreams.
Retire their build matrix alongside the removal of GTS support in
ublue-os/main to stop producing unused kernel and module caches.

* fix: preserve Fedora 43 CoreOS stable builds

Bluefin LTS HWE and GDX still consume coreos-stable-43 akmods, so retain that flavor while dropping the other Fedora 43 builds.
2026-10-02 07:07:08 +00:00
TiPSilva
9ca07f4edb
feat: add ayaneo-leds to extra akmods (#601)
Joystick ring RGB LEDs on AYANEO handhelds with the legacy EC
interface. Built from the akmod-ayaneo-leds package in Terra, the
same way as sc0710.
2026-10-02 05:35:42 +00:00
Robin?
eae7a2299a
chore: remove framework akmods (#584)
* feat: remove framework-laptop kmod

* fix: Add back error handling to build scripts in Containerfile

* chore: removed framework mention in README

---------

Co-authored-by: Robin Groves <robin@obsidianos.xyz>
2026-09-30 12:01:52 -05:00
ubot-7274[bot]
bf19f7b350
chore(deps): update ghcr.io/ublue-os/devcontainer:latest docker digest to ba4c0e5 (#599)
* chore(deps): update ghcr.io/ublue-os/devcontainer:latest docker digest to ba4c0e5

* fix(build): enable just list support

The refreshed devcontainer's just version requires list support for which(). Enable it so CI can evaluate build recipes.

---------

Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Sherman <benjamin@holyarmy.org>
2026-09-30 12:01:32 -05:00
ubot-7274[bot]
37bc32a7c1
chore(deps): update github/codeql-action digest to 2892aa5 (#586)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Sherman <benjamin@holyarmy.org>
2026-09-29 00:16:11 -05:00
Benjamin Sherman
f124aa59b7
ci: pin build pipeline runners to ubuntu-26.04 (#598)
ubuntu-latest will soon migrate to 26.04. Update in advance to verify
behavior. Pin every job in the build, cache, and publish path to 26.04
explicitly so the runner OS is deterministic there. Housekeeping
workflows (cleanup, scorecard) stay on ubuntu-latest.
2026-09-28 23:16:43 -05:00
Kyle Gospodnetich
1e4d10b9ac
feat: Add Fedora 45 support for OGC and OGC-LTS (#597)
* feat: Add Fedora 45 support for OGC and OGC-LTS

* fix: Drop a dependency and use skopeo
2026-09-24 22:34:59 -07:00
renner
658325c9ba
chore(nvidia): move negativo nvidia repos to /usr (#596)
* chore(nvidia): move negativo nvidia repos to /usr

This PR should do the following things:
On Fedora 45 and higher, move .repo files from /etc/yum.repos.d to
/usr/share/dnf5/repos.d.

On Fedora 44 and centos/rhel, don't touch anything, package should be
identical after this change and keep the
/usr/share/ublue-os/etc/yum.repos.d for everything for now.

As discussed in: https://github.com/ublue-os/akmods/issues/591#issuecomment-5742188994

* debug package contents

* rm /usr/share/ublue-os/etc/yum.repos.d from F45 and higher

* remove more redundant leading slashes

or else this results in /usr/share/ublue-os//etc/yum.repos.d with 2
slashes as %{_sysconfdir} resolves to /etc which already has a slash
character

* add check to prevent shipping enabled repos

* changelog

* make test check for True and yes as well

These are also valid options in dnf5, however at least Fedora sticks
with 0/1.

See: https://dnf5.readthedocs.io/en/stable/dnf5.conf.5.html#boolean-label
See: https://dnf5.readthedocs.io/en/stable/dnf5.conf.5.html#repo-options
2026-09-20 20:32:49 +00:00
renner
40b9859ae2
chore(nvidia): move ublue-os/staging copr to dnf config-manager (#595)
This gets rid of one occurence of the hardcoded yum.repos.d, also we
should be using the standard COPR naming scheme, nothing in the org, for
this particular dnf repo at least, relies this non-standard naming
convention.

The dnf copr plugin seems to create a new .repo file in /etc/yum.repos.d
even though it is already present and disabled in
/usr/share/dnf5/repos.d (which is what we want to do in Aurora [1])

So if you rely on this script to add/enable ublue-os/staging then this
shouldn't affect anything, however, if you are vendoring the repo files
and putting them in /usr/share/dnf5/repos.d then you won't have this
specific COPR repo anymore in /etc/yum.repos.d.

This is a step towards [2].

[1] https://github.com/ublue-os/aurora/issues/2854
[2] https://github.com/ublue-os/akmods/issues/591
2026-09-19 16:08:48 +00:00
inffy
69c139b49b
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
2026-09-17 12:09:56 -05:00
Kyle Gospodnetich
56c8acd125
feat: Add big screen patches for Nvidia-open driver (#593) 2026-09-14 10:16:30 -07:00
Benjamin Sherman
9a4db4eb14
fix: Make kmod build failures fatal and retry flaky ZFS downloads (#590)
* fix: Fail the build when a common or nvidia kmod script fails

The RUN blocks that call build-kmod-*.sh for the common and nvidia
targets ran `bash <<'RUNEOF'` without `set -euo pipefail`, unlike every
other block in the Containerfile. When a script exited non-zero, the
remaining scripts still ran and the build went on to RPM caching and
signing with a partial set of modules.

That is how the Terra openrazer change broke aarch64 builds. openrazer
aborted before removing its repo file, and the later kmod scripts kept
running with that repo still enabled, pulling in x86_64 RPMs.

Add `set ${CI+-x} -euo pipefail` to the common kmod block and the three
nvidia blocks so any failure stops the job. The extra block already has
it and intentionally keeps going on per-kmod failures via
`|| echo "SKIPPED: ..."`, so it is unchanged.

* fix: Retry the ZFS release downloads and fail on bad responses

`build-kmod-zfs.sh` fetched the OpenZFS release list from the
unauthenticated GitHub API with a bare `curl`, no retry and no `--fail`.
When GitHub throttled the runner it wrote the rate-limit page to
`data.json`, `jq` then died with "Invalid numeric literal", and the
build stopped with no hint of the real cause. The release tarball and
signature downloads had the same exposure to a transient github.com
error.

Route all four through a shared `curl --fail --show-error --location
--retry 5 --retry-delay 5 --retry-all-errors`, so a throttle or 5xx is
retried and a persistent bad response aborts the script at the curl
call.

* don't attempt vhba for aarch64
2026-09-03 03:59:16 +00:00
Kyle Gospodnetich
7591c29d84
feat: Switch to terra package for openrazer (#588)
* feat: Switch to terra package for openrazer, now auto-updates and no longer requires manual ublue intervention for updates

* fix: Skip openrazer build on aarch64

Terra only publishes openrazer for x86_64. On aarch64 the build script
fails at `dnf install akmod-openrazer` (no arch match) before reaching
its `rm -f /etc/yum.repos.d/terra.repo` cleanup.

The leaked Terra repo then stays enabled for every later script in the
same layer, so `dnf download` pulls x86_64 builds of v4l2loopback and
xpadneo into the shared /var/cache/rpms/common set. The final aarch64
test install then fails on the incompatible-arch RPMs.

Exit early on aarch64 so the Terra repo is never added, matching the
existing wl build script.

---------

Co-authored-by: Benjamin Sherman <benjamin@holyarmy.org>
2026-09-01 15:54:01 -07:00
Benjamin Sherman
c30e9467fe
fix: Preserve cron schedule across workflow regeneration (#582)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-25 11:56:22 +03:00
Benjamin Sherman
10284eeaae
docs: Explain how to actually use the devcontainer (#583)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-25 11:55:44 +03:00
Kyle Gospodnetich
4ccd2e3618
feat: Patch nvidia-open for gamemode during build (#579) 2026-08-21 10:03:26 -07:00
ubot-7274[bot]
4403fec091
chore(deps): update github/codeql-action digest to db488dd (#580)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-08-21 07:07:33 -07:00
Kyle Gospodnetich
c5193d7d6b
fix: Support kernels with only two version numbers. IE: 7.1, 7.2 (#578) 2026-08-17 20:59:12 -07:00
Kyle Gospodnetich
c97617de0a
fix: Return to latest, no more RC builds (#577) 2026-08-17 18:48:47 -07:00
Kyle Gospodnetich
86a209433e
chore: Ship one last rc build of OGC (#576) 2026-08-17 16:33:05 -07:00
Kyle Gospodnetich
ebc3199a88
fix: Restore use of latest for ogc kernel (#575) 2026-08-17 01:34:46 -07:00
Kyle Gospodnetich
afc983c624
feat: Add support for OGC LTS kernel (#574) 2026-08-17 01:06:26 -07:00
Kyle Gospodnetich
030f543249
chore: Bump temporary OGC pin to 6 (#573) 2026-08-16 07:56:42 -07:00
Kyle Gospodnetich
53c275d042
Revert "revertme: Disable Nvidia LTS on OGC for now (#571)" (#572)
This reverts commit 55a9b6d154.
2026-08-14 17:13:54 -07:00
Michael Becker
5d68c98e00
feat(extra): add nct6687d akmod via Terra (#522)
* feat(extra): add nct6687d akmod via Terra

* fix(extra): avoid nct6687d Terra package file conflict
2026-08-14 20:48:37 +00:00
Benjamin Sherman
00f67b8cba
docs: explain when to pin the coreos-stable kernel (#569)
ZFS failing on a too-new CoreOS stable kernel turns the whole
coreos-stable check red and blocks nvidia and CVE updates. The
Justfile pin exists for that hold, but it was only a comment, so
the 7.1 incident went to local ZFS backports instead.

Document the pin policy in the README and point the ZFS configure
failure path at it when the kernel looks newer than OpenZFS
declares supported.
2026-08-14 13:10:16 +00:00
Kyle Gospodnetich
55a9b6d154
revertme: Disable Nvidia LTS on OGC for now (#571) 2026-08-13 23:46:25 -07:00
Kyle Gospodnetich
35df0bc3ae
revertme: Temporarily use RC kernel release for OGC (#570) 2026-08-13 23:30:12 -07:00
ubot-7274[bot]
d416a66ece
chore(deps): update github/codeql-action digest to ff2f1c6 (#568)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-08-13 19:24:14 -05:00
Benjamin Sherman
f69eeb12ff
fix(ci): remove exact Cosign version gate (#567)
Verify published image signatures directly instead of requiring one
Cosign patch version.
2026-08-13 02:58:45 +00:00