Compare commits

...

26 commits

Author SHA1 Message Date
Philip Peterson
f6a831c07d build-arm64.yml: run natively on runner-arm64-linux, daily
All checks were successful
Build Aurora / build (push) Successful in 9m9s
The new arm64 runner (a Tart VM on the Mac mini) builds it at native
speed, so it runs daily like build.yml, an hour after it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 21:49:48 -09:00
forgejo-actions
530d3e842d Merge upstream ublue-os/aurora main 2026-11-04 05:29:55 +00:00
Philip Peterson
0abe38650d build-arm64.yml: initramfs without kmod-v4l2loopback
All checks were successful
Build Aurora / build (push) Successful in 7m46s
Run 22 got through every package install and stopped in 19-initramfs.sh,
which asks rpm for kmod-v4l2loopback's files; the arm64 stand-in akmods
has no kmods. dracut --remove none builds fine (checked on Fedora 44).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 19:51:36 -09:00
Philip Peterson
414bb548b2 build-arm64.yml: drop intel-compute-runtime, x86_64-only in Fedora
All checks were successful
Build Aurora / build (push) Successful in 10m45s
Run 20 stopped at it in 01-packages.sh. It's the only package in that
list without an aarch64 or noarch build in Fedora 44 or negativo17.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 18:46:38 -09:00
ubot-7274[bot]
2dd27d1930
chore(deps): update quay.io/fedora-ostree-desktops/kinoite:45 docker digest to 45c510b (#3141)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-11-04 03:09:22 +00:00
Philip Peterson
65933688d7 Build and register the schedules at 2cf3613f
All checks were successful
Build Aurora / build (push) Successful in 9m42s
2cf3613f's message quoted the skip marker, so Forgejo skipped it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 23:06:57 -09:00
Philip Peterson
2cf3613f3d Scheduled builds: start from main as it is now
Run 18 (schedule) checked out e06d965f, where its schedule was registered,
because the pushes after it said [skip ci]; its merge of upstream was then
behind main and the push was rejected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 22:49:19 -09:00
Philip Peterson
8f8af2614e vendor-images.sh: skopeo never read CONTAINERS_REGISTRIES_CONF
Not a 1.22 change, as the last commit said: 1.16 ignored it too.

[skip ci]

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 20:43:42 -09:00
Philip Peterson
df3ac0bfc2 Read upstream with skopeo --registries-conf, not the env variable
skopeo 1.22 (the runner's, since NixOS 26.05) ignores
CONTAINERS_REGISTRIES_CONF, so vendoring copied the mirror onto itself and
Kinoite stayed at an old, amd64-only copy.

[skip ci]

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 19:50:46 -09:00
Philip Peterson
b5e0848146 build-arm64.yml: stop if Kinoite's tag has no arm64 image
Run 16 got the amd64 kernel while quay's kinoite:44 was single-arch.

[skip ci]

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 19:48:18 -09:00
ubot-7274[bot]
f27c96fefd
chore(deps): update zizmorcore/zizmor-action action to v0.8.1 (#3137)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-11-03 04:47:21 +00:00
ubot-7274[bot]
e4ac5de71f
chore(deps): update quay.io/fedora-ostree-desktops/kinoite:45 docker digest to 1ea3d6c (#3138)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-11-03 03:11:08 +00:00
Philip Peterson
e06d965f7d arm64: a weekly emulated build, as aurora:stable-arm64
All checks were successful
Build Aurora / build (push) Successful in 8m22s
Upstream has no arm64 Aurora or akmods. A stand-in akmods image carries
Fedora's own aarch64 kernel (the one Kinoite ships) and no extra kmods;
buildah-arm64 makes `just build` target linux/arm64. Vendoring now copies
every architecture, and both builds prune their images when done.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:04:15 -09:00
inffy
f65d257565
feat(ci): add dnf-retry wrapper script (#3133)
Co-authored-by: renner <80410025+renner0e@users.noreply.github.com>
2026-11-02 14:56:28 +00:00
forgejo-actions
a30c1130a0 Merge upstream ublue-os/aurora main 2026-11-02 06:14:28 +00:00
ubot-7274[bot]
99761ccdd3
chore(deps): update quay.io/fedora-ostree-desktops/kinoite:45 docker digest to d54aee1 (#3135)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-11-02 03:11:55 +00:00
forgejo-actions
1c425703c8 Merge upstream ublue-os/aurora main 2026-11-01 05:00:09 +00:00
ubot-7274[bot]
db9023259e
chore(deps): update quay.io/fedora-ostree-desktops/kinoite:45 docker digest to bfe08b1 (#3131)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-11-01 03:06:44 +00:00
ubot-7274[bot]
b2a2a456eb
chore(deps): update ghcr.io/ublue-os/brew:latest docker digest to 1308485 (#3130)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-11-01 01:44:55 +00:00
renner
b798933d1b
chore: remove plasma-union (#3076)
Will be pulled in with 6.8 [1]

[1] 394b79d2be

Co-authored-by: inffy <10782843+inffy@users.noreply.github.com>
2026-10-31 20:57:15 +00:00
ubot-7274[bot]
c5a71ca294
chore(deps): update ghcr.io/get-aurora-dev/common:latest docker digest to df4929b (#3128)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-31 19:52:21 +00:00
ubot-7274[bot]
da2dba6460
chore(deps): update quay.io/fedora-ostree-desktops/kinoite:45 docker digest to 30f2f77 (#3123)
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
2026-10-31 19:51:43 +00:00
renner
103bdd39dc
chore: remove fcitx5 from image (#3081)
part of: https://github.com/ublue-os/aurora/issues/3038
2026-10-31 18:47:28 +00:00
renner
f034c18da1
feat(ci): add dnf makecache before installing things (#3124) 2026-10-31 14:49:46 +02:00
Philip Peterson
216a45b35f build.yml: upload the build's RPMs (left out of the last commit)
All checks were successful
Build Aurora / build (push) Successful in 4m2s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:48:40 -08:00
Philip Peterson
85726d8def Upload each build's RPMs to the forge's RPM registry
All checks were successful
Build Aurora / build (push) Successful in 3m58s
.forgejo/upload-rpms.sh, from the rpm-mirror-test branch: a group per
upstream repository, packages already there skipped. Best effort: the
step never fails the build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:43:12 -08:00
12 changed files with 288 additions and 14 deletions

41
.forgejo/akmods-arm64.sh Executable file
View file

@ -0,0 +1,41 @@
#!/usr/bin/env bash
# Stands in for ghcr.io/ublue-os/akmods on arm64, which upstream doesn't
# build: an image with the akmods image's layout (/kernel-rpms, /rpms/common,
# /rpms/kmods), holding Fedora's own aarch64 kernel from Koji and no extra
# kmods (so no xone or v4l2loopback on arm64). Pushed where the runner's
# registries.conf looks first for ghcr.io/ublue-os/akmods (the mirror), so
# Containerfile.in's `FROM ghcr.io/ublue-os/akmods:...` finds it.
#
# Usage: akmods-arm64.sh FLAVOR FEDORA KERNEL
# e.g. akmods-arm64.sh main 45 7.2.14-300.fc45.aarch64
# Needs a `podman login` to the forge first.
set -euo pipefail
flavor=$1 fedora=$2 kernel=$3
mirror=${MIRROR:-forge.quinefoundation.com/quine-global-labs/mirror}
ref="$mirror/ghcr.io/ublue-os/akmods:$flavor-$fedora-$kernel"
nvr=${kernel%.aarch64} # 7.2.14-300.fc45
version=${nvr%%-*} # 7.2.14
release=${nvr#*-} # 300.fc45
koji="https://kojipkgs.fedoraproject.org/packages/kernel/$version/$release/aarch64"
work=$(mktemp -d)
trap 'rm -rf "$work"' EXIT
mkdir -p "$work/kernel-rpms" "$work/rpms/common" "$work/rpms/kmods"
for pkg in kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra; do
curl -fsSL --retry 5 -o "$work/kernel-rpms/$pkg-$nvr.aarch64.rpm" "$koji/$pkg-$nvr.aarch64.rpm"
done
ls -l "$work/kernel-rpms"
# Empty directories, so the bind mounts of /rpms/* have something to mount.
touch "$work/rpms/common/.keep" "$work/rpms/kmods/.keep"
ctr=$(buildah from --arch arm64 --os linux scratch)
trap 'buildah rm "$ctr" >/dev/null; rm -rf "$work"' EXIT
buildah copy "$ctr" "$work/kernel-rpms" /kernel-rpms
buildah copy "$ctr" "$work/rpms" /rpms
buildah config --arch arm64 --os linux --label "ostree.linux=$kernel" "$ctr"
buildah commit --rm "$ctr" "$ref"
trap 'rm -rf "$work"' EXIT
podman push --retry 5 "$ref"
echo "pushed $ref"

10
.forgejo/buildah-arm64 Executable file
View file

@ -0,0 +1,10 @@
#!/usr/bin/env bash
# `buildah`, but `buildah build` builds for linux/arm64: build-arm64.yml runs
# `just BUILDAH=.../buildah-arm64 build`, so the Justfile stays upstream's.
# A no-op on an arm64 runner; on an x86_64 one (runner-x86-linux) the arm64
# steps run under QEMU user emulation.
if [[ ${1:-} == build ]]; then
shift
exec buildah build --platform linux/arm64 "$@"
fi
exec buildah "$@"

47
.forgejo/upload-rpms.sh Executable file
View file

@ -0,0 +1,47 @@
#!/usr/bin/env bash
# Uploads the RPMs a build downloaded (its dnf cache, kept by
# Containerfile.in's cache mounts) to this forge's RPM registry, one group
# per upstream repository: fedora, updates, terra, copr-ublue-os-packages...
# Each group is a dnf repository at
# https://forge.quinefoundation.com/api/packages/quine-global-labs/rpm/<group>.
#
# Usage: upload-rpms.sh CACHE_DIR (a libdnf5 cache: one directory per
# repository, <repo id>-<hash>/packages/*.rpm)
#
# Needs REGISTRY_USER and REGISTRY_TOKEN (package write access). Packages
# the registry already has are skipped (409). Best effort: a failed upload
# is a warning, not a failure.
set -euo pipefail
cache=$1
api=${RPM_API:-https://forge.quinefoundation.com/api/packages/quine-global-labs/rpm}
# The token goes to curl in a file, not on its command line.
netrc=$(mktemp)
trap 'rm -f "$netrc"' EXIT
chmod 600 "$netrc"
printf 'machine %s login %s password %s\n' \
"$(sed -E 's|^https?://([^/]+).*|\1|' <<<"$api")" "$REGISTRY_USER" "$REGISTRY_TOKEN" >"$netrc"
upload() { # group rpm
local code
code=$(curl -sS -o /dev/null -w '%{http_code}' --retry 3 --netrc-file "$netrc" \
--upload-file "$2" "$api/$1/upload") || code=000
case $code in
201) echo "new $1 ${2##*/}" ;;
409) echo "had $1 ${2##*/}" ;;
*) echo "::warning::$code uploading ${2##*/} to $1" ;;
esac
}
export -f upload
export api netrc
for dir in "$cache"/*/; do
id=$(basename "$dir")
id=${id%-*} # the hash libdnf5 appends
[[ $id == @* ]] && continue # @commandline: local files, not a repository
# copr:copr.fedorainfracloud.org:ublue-os:packages -> copr-ublue-os-packages
group=$(sed -E 's/^copr:[^:]+:/copr-/; s/:/-/g' <<<"$id")
find "$dir" -name '*.rpm' -printf "$group\0%p\0"
done | xargs -0 -n 2 -P 4 bash -c 'upload "$@"' _ |
tee /dev/stderr | awk '{n[$1]++} END {for (k in n) printf "%s: %d\n", k, n[k]}'

View file

@ -15,12 +15,18 @@ set -uo pipefail
mirror=${MIRROR:-forge.quinefoundation.com/quine-global-labs/mirror}
# Read from upstream itself, not from the mirror registries.conf points at.
export CONTAINERS_REGISTRIES_CONF=/dev/null
# The flag, not CONTAINERS_REGISTRIES_CONF: podman and buildah read that
# variable, but skopeo never has. Until 2026-11-03 this exported it, skopeo
# read the mirror, and every run copied the mirror onto itself, so tags
# stayed at their first copy. (runner-x86-linux's skopeo now honors the
# variable too; petersweb-infra, hosts/runner-x86-linux.)
skopeo() { command skopeo --registries-conf /dev/null "$@"; }
for ref in "$@"; do
src="docker://$ref"
dest="docker://$mirror/$ref"
opts=(--multi-arch system)
# Every architecture: build-arm64.yml pulls the arm64 halves.
opts=(--multi-arch all)
if [[ $ref == *@sha256:* ]]; then
# Pinned by digest: copy the whole index unchanged, so the digest the
# build asks for exists on the mirror. skopeo refuses a reference with

View file

@ -0,0 +1,125 @@
name: Build Aurora (arm64)
# Builds Aurora for arm64 from this tree and pushes it as
# forge.quinefoundation.com/quine-global-labs/aurora:stable-arm64 (plus
# stable-arm64-<date>). quine-global-labs/quine-linux's arm64 build is FROM
# it. A separate tag, not part of `stable`: build.yml pushes `stable` (amd64)
# daily and would drop an arm64 half each time.
#
# Upstream doesn't ship arm64 Aurora yet, and has no arm64 akmods, which is
# also where Aurora's kernel comes from. So this build uses Fedora's own
# aarch64 kernel, the one Kinoite ships, from a stand-in akmods image
# (.forgejo/akmods-arm64.sh), with no extra kmods.
#
# Runs natively on runner-arm64-linux (petersweb-infra, a Tart VM on the Mac
# mini), daily, an hour after build.yml. It builds this repo's main as
# build.yml last merged it, without merging upstream itself. (Until
# 2026-11-04 it ran weekly under QEMU emulation on runner-x86-linux; it
# still works there, slowly, through buildah-arm64.)
#
# Secret: REGISTRY_TOKEN, as build.yml. Variable (optional): REGISTRY_USER.
on:
schedule:
- cron: '0 6 * * *'
workflow_dispatch:
concurrency:
group: aurora-arm64-${{ github.ref }}
cancel-in-progress: true
env:
REGISTRY: forge.quinefoundation.com
MIRRORS: https://forge.quinefoundation.com/quine-global-labs
IMAGE: forge.quinefoundation.com/quine-global-labs/aurora
TAG: stable
jobs:
build:
runs-on: runner-arm64-linux
timeout-minutes: 300
steps:
- uses: https://forge.quinefoundation.com/quine-global-labs/mirror-actions-checkout@v4
with:
fetch-depth: 0
- name: Build main as it is now
# A scheduled run checks out the commit its schedule was registered
# at, which can be behind main (see build.yml).
if: github.event_name == 'schedule'
run: |
git fetch --no-tags origin main
git checkout -B main FETCH_HEAD
- name: Point downloads at our mirrors
# As build.yml.
run: |
files=$(grep -rlE 'github(usercontent)?\.com/(ublue-os/(akmods|countme)|rcaloras/bash-preexec|coreos/fedora-coreos-config)/' build_scripts)
sed -i -E \
-e "s#https://github\.com/ublue-os/akmods/raw/refs/heads/([^/]+)/#$MIRRORS/mirror-ublue-os-akmods/raw/branch/\1/#g" \
-e "s#https://raw\.githubusercontent\.com/ublue-os/countme/([^/]+)/#$MIRRORS/mirror-ublue-os-countme/raw/branch/\1/#g" \
-e "s#https://raw\.githubusercontent\.com/rcaloras/bash-preexec/([0-9a-f]{40})/#$MIRRORS/mirror-rcaloras-bash-preexec/raw/commit/\1/#g" \
-e "s#https://raw\.githubusercontent\.com/coreos/fedora-coreos-config/refs/heads/([^/]+)/#$MIRRORS/mirror-coreos-fedora-coreos-config/raw/branch/\1/#g" \
$files
git update-index --skip-worktree $files
- name: Adapt the build scripts to arm64
# 01-packages.sh: drop what Fedora builds for x86_64 only. Checked
# against Fedora 44 + negativo17's aarch64 repos (2026-11-04): just
# intel-compute-runtime.
# 19-initramfs.sh: it asks rpm for kmod-v4l2loopback's files, which
# fails without the package, and the stand-in akmods has no kmods.
# "none" keeps dracut's --remove argument in place, naming no module.
run: |
sed -i -E '/^[[:space:]]*intel-compute-runtime[[:space:]]*$/d' build_scripts/base/01-packages.sh
sed -i 's|^V4L2_PATH="$(rpm -ql kmod-v4l2loopback)"$|V4L2_PATH="$(rpm -q --quiet kmod-v4l2loopback \&\& rpm -ql kmod-v4l2loopback \|\| echo none)"|' build_scripts/base/19-initramfs.sh
grep -q 'echo none' build_scripts/base/19-initramfs.sh
git update-index --skip-worktree build_scripts/base/01-packages.sh build_scripts/base/19-initramfs.sh
- name: Log in to the registry
env:
REGISTRY_USER: ${{ vars.REGISTRY_USER || github.actor }}
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
run: printf %s "$REGISTRY_TOKEN" | podman login "$REGISTRY" -u "$REGISTRY_USER" --password-stdin
- name: Vendor upstream images, and the arm64 akmods stand-in
run: |
org=$(just --evaluate base_image_org)
name=$(just --evaluate base_image_name)
ver=$(just fedora_version --image aurora --tag "$TAG" --flavor main)
flavor=$(just akmods_flavor --tag "$TAG")
mapfile -t pinned < <(yq -r '.images[] | select(.name != "kinoite") | "\(.image):\(.tag)@\(.digest)"' image-versions.yml)
.forgejo/vendor-images.sh "$org/$name:$ver" "${pinned[@]}"
# The kernel Kinoite's arm64 image ships.
kernel=$(skopeo --registries-conf /dev/null inspect --override-arch arm64 --override-os linux \
--no-tags --retry-times 3 "docker://$org/$name:$ver" | jq -er '.Labels["ostree.linux"]')
echo "kernel: $kernel"
# Quay's tag has been single-arch (amd64) for a while mid-publish.
[[ $kernel == *.aarch64 ]] || { echo "::error::$org/$name:$ver has no arm64 image right now (kernel $kernel); try again later"; exit 1; }
echo "KERNEL=$kernel" >>"$GITHUB_ENV"
.forgejo/akmods-arm64.sh "$flavor" "$ver" "$kernel"
- name: Build
# As build.yml, through a buildah that builds for linux/arm64, with
# the kernel pinned to the stand-in's.
run: >-
env -u GITHUB_TOKEN
GITHUB_REPOSITORY_OWNER=ublue-os
GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=safe.directory GIT_CONFIG_VALUE_0='*'
just BUILDAH="$PWD/.forgejo/buildah-arm64"
build --image aurora --tag "$TAG" --flavor main --kernel-pin "$KERNEL"
- name: Push
run: |
podman image inspect --format '{{.Architecture}}' "localhost/aurora:$TAG"
for t in "$TAG-arm64" "$TAG-arm64-$(date -u +%Y%m%d)"; do
podman tag "localhost/aurora:$TAG" "$IMAGE:$t"
podman push --retry 5 "$IMAGE:$t"
done
- name: Clean up
if: always()
# The runner's hourly sweep keeps a day of images; this build's are
# done with now.
run: |
podman logout "$REGISTRY" || true
podman image prune -af >/dev/null || true

View file

@ -13,7 +13,9 @@ name: Build Aurora
#
# Upstream images (Kinoite, akmods, and image-versions.yml's) are vendored
# into forge.quinefoundation.com/quine-global-labs/mirror/ first, and the
# build pulls them from there (.forgejo/vendor-images.sh).
# build pulls them from there (.forgejo/vendor-images.sh). After the push,
# the RPMs the build downloaded go to the forge's RPM registry, a group per
# upstream repository (.forgejo/upload-rpms.sh).
#
# Secret: REGISTRY_TOKEN, a Forgejo token with package write access.
# Variable (optional): REGISTRY_USER, the token's owner (default: the actor).
@ -57,6 +59,11 @@ jobs:
run: |
git config user.name "forgejo-actions"
git config user.email "actions@forge.quinefoundation.com"
# A scheduled run checks out the commit its schedule was registered
# at, the last push without [skip ci], which can be behind main:
# merge onto main as it is now, or the push below is rejected.
git fetch --no-tags origin main
git checkout -B main FETCH_HEAD
# Our pull mirror of github.com/ublue-os/aurora, synced hourly.
git fetch --no-tags "$MIRRORS/mirror-ublue-os-aurora.git" main
before=$(git rev-parse HEAD)
@ -104,7 +111,7 @@ jobs:
ver=$(just fedora_version --image aurora --tag "$TAG" --flavor main)
akmods=ghcr.io/ublue-os/akmods:$(just akmods_flavor --tag "$TAG")-$ver
refs=("$org/$name:$ver" "$akmods")
if kernel=$(CONTAINERS_REGISTRIES_CONF=/dev/null skopeo inspect --no-tags --retry-times 3 "docker://$akmods" | jq -er '.Labels["ostree.linux"]'); then
if kernel=$(skopeo --registries-conf /dev/null inspect --no-tags --retry-times 3 "docker://$akmods" | jq -er '.Labels["ostree.linux"]'); then
refs+=("$akmods-$kernel")
fi
mapfile -t pinned < <(yq -r '.images[] | select(.name != "kinoite") | "\(.image):\(.tag)@\(.digest)"' image-versions.yml)
@ -130,6 +137,25 @@ jobs:
podman push --retry 5 "$IMAGE:$t"
done
- name: Log out
- name: Upload the build's RPMs
# From the dnf cache Containerfile.in's cache mounts keep (buildah
# keeps it on the runner, under /var/tmp/buildah-cache-0), to
# https://forge.quinefoundation.com/api/packages/quine-global-labs/rpm/<group>.
# Packages already there are skipped. Never fails the build.
continue-on-error: true
env:
REGISTRY_USER: ${{ vars.REGISTRY_USER || github.actor }}
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
run: |
fedora=$(ls -d /var/tmp/buildah-cache-0/*/fedora-*/ 2>/dev/null | head -1)
[ -n "$fedora" ] || { echo "::warning::no dnf cache under /var/tmp/buildah-cache-0"; exit 0; }
.forgejo/upload-rpms.sh "$(dirname "$fedora")"
- name: Clean up
if: always()
run: podman logout "$REGISTRY" || true
# The runner's hourly sweep keeps a day of images; this build's are
# done with now (quine-linux pulls the pushed image from the forge).
# `image prune` leaves the dnf cache the RPM upload reads.
run: |
podman logout "$REGISTRY" || true
podman image prune -af >/dev/null || true

View file

@ -29,6 +29,6 @@ jobs:
persist-credentials: false
- name: Run zizmor
uses: zizmorcore/zizmor-action@53290badfa369cb0bf7ad16342cb62c2fa47ac7b # v0.8.0
uses: zizmorcore/zizmor-action@45d7276c9ca790aabd705e31ca99c6185c3e76dd # v0.8.1
with:
persona: auditor

View file

@ -4,6 +4,8 @@ echo "::group:: ===$(basename "$0")==="
set -ouex pipefail
dnf makecache --refresh
# Prevent partial upgrading, major kde version updates black screened
# https://github.com/ublue-os/aurora/issues/1227
dnf versionlock add "qt6-*" "plasma-desktop"
@ -39,7 +41,6 @@ FEDORA_PACKAGES=(
distrobox
evtest
fastfetch
fcitx5-{chewing,chinese-addons,configtool,gtk,hangul,libthai,m17n,mozc,qt,sayura,unikey}
fish
flatpak-spawn
foo2zjs
@ -65,7 +66,6 @@ FEDORA_PACKAGES=(
iwd
just
kate{-krunner-plugin,-plugins}
kcm-fcitx5
fzf # for just
krb5-workstation
ksystemlog
@ -84,7 +84,6 @@ FEDORA_PACKAGES=(
pamu2fcfg
plasma-firewall-"${PLASMA_VERS}"
plasma-oxygen
plasma-union-"${PLASMA_VERS}"
# TODO: look into removing this, plasma supports the transition feature of this natively
plasma-wallpapers-dynamic-builder
plasma-wallpapers-dynamic-builder{-bash,-fish,-zsh}-completion
@ -154,7 +153,7 @@ TERRA_PACKAGES=(
# Fedora Tailscale is usually behind
TAILSCALE=(tailscale)
dnf -y install --from-repo="terra" "${TERRA_PACKAGES[@]}"
dnf-retry -y install --from-repo="terra" "${TERRA_PACKAGES[@]}"
COPR_PREFIX="copr:copr.fedorainfracloud.org"

View file

@ -20,6 +20,9 @@ KERNEL_PKGS=(
/tmp/kernel-rpms/kernel-modules-*.rpm
)
# Quine: arm64's stand-in akmods image (.forgejo/akmods-arm64.sh) has no
# kmods; without nullglob an unmatched pattern stays literal and fails dnf.
shopt -s nullglob
KMODS=(
/tmp/rpms/{common,kmods}/*xone*.rpm
/tmp/rpms/{common,kmods}/*v4l2loopback*.rpm

View file

@ -27,5 +27,6 @@ dnf config-manager disable fedora-cisco-openh264
mkdir -p /tmp/scripts/helpers
install -Dm0755 /ctx/build_scripts/shared/utils/ghcurl /tmp/scripts/helpers/ghcurl
install -Dm0755 /ctx/build_scripts/shared/utils/dnf-retry /tmp/scripts/helpers/dnf-retry
echo "::endgroup::"

View file

@ -0,0 +1,16 @@
#!/usr/bin/env bash
set -euo pipefail
tries=5
sleep=60
for i in $(seq 1 "${tries}"); do
if [[ ${i} -gt 1 ]]; then
# echo "[+] Command failed. Waiting for ${sleep} seconds"
sleep "${sleep}"
fi
# echo "[+] Running (try: ${i}): dnf ${*}"
dnf "${@}" && r=0 && break || r=$?
done
exit "$r"

View file

@ -3,19 +3,19 @@ images:
- name: kinoite
image: quay.io/fedora-ostree-desktops/kinoite
tag: 45
digest: sha256:2a1fea9adbd27dd87935508115d88ab5c7b335114e32994e7c2c615545ea5cac
digest: sha256:45c510bf901b9f01fd7f5c4f48837156987c37ac968cc19b2d382ea13b318906
# https://github.com/get-aurora-dev/common
- name: common
image: ghcr.io/get-aurora-dev/common
tag: latest
digest: sha256:2888e957bd72e1656c8de374bbfa3a933c19aad82dccd0994bd1766e03973ff1
digest: sha256:df4929bb819cef47653dd7dd2386a926f9dd3e63bf451c183be4adb893db44e9
# https://github.com/ublue-os/brew
- name: brew
image: ghcr.io/ublue-os/brew
tag: latest
digest: sha256:0c9703f1a49faa89a44d9458a68c0ca03270e8bdd32018285dad8b14ddd7cdc3
digest: sha256:130848582eed433e85af6fa8c829ddec12ddaa6b18bc037a610b4b8da3c97458
# https://github.com/coreos/chunkah
- name: chunkah