Merge branch 'beta' into promote-beta-to-main44 and resolve conflicts
This commit is contained in:
commit
de8a17af3a
22 changed files with 277 additions and 296 deletions
2
.github/renovate.json5
vendored
2
.github/renovate.json5
vendored
|
|
@ -33,7 +33,7 @@
|
|||
},
|
||||
{
|
||||
"matchUpdateTypes": ["pin", "digest", "pinDigest"],
|
||||
"matchPackageNames": ["ghcr.io/jasonn3/build-container-installer", "ghcr.io/hhd-dev/rechunk"],
|
||||
"matchPackageNames": ["ghcr.io/jasonn3/build-container-installer"],
|
||||
"automerge": false
|
||||
},
|
||||
{
|
||||
|
|
|
|||
10
.github/workflows/build-image-beta.yml
vendored
10
.github/workflows/build-image-beta.yml
vendored
|
|
@ -10,6 +10,14 @@ on:
|
|||
- ".github/workflows/scorecard.yml"
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
previous_build:
|
||||
description: 'Set to 0 to manually clear rechunking plan'
|
||||
type: choice
|
||||
default: '1'
|
||||
options:
|
||||
- '0'
|
||||
- '1'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
|
@ -31,3 +39,5 @@ jobs:
|
|||
image_flavors: '["main", "nvidia-open"]'
|
||||
brand_name: ${{ matrix.brand_name }}
|
||||
stream_name: beta
|
||||
previous_build: ${{ inputs.previous_build }}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,14 @@ on:
|
|||
- ".github/workflows/scorecard.yml"
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
previous_build:
|
||||
description: 'Set to 0 to manually clear rechunking plan'
|
||||
type: choice
|
||||
default: '1'
|
||||
options:
|
||||
- '0'
|
||||
- '1'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
|
@ -32,6 +40,7 @@ jobs:
|
|||
brand_name: ${{ matrix.brand_name }}
|
||||
stream_name: latest
|
||||
#kernel_pin: 6.12.15-200.fc41.x86_64
|
||||
previous_build: ${{ inputs.previous_build }}
|
||||
|
||||
generate-release:
|
||||
name: Generate Release
|
||||
|
|
|
|||
11
.github/workflows/build-image-stable.yml
vendored
11
.github/workflows/build-image-stable.yml
vendored
|
|
@ -1,6 +1,6 @@
|
|||
name: Stable Images
|
||||
on:
|
||||
merge_group: # Make Stable-Daily run on merge groups
|
||||
# merge_group: # Make Stable-Daily run on merge groups
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
|
@ -13,6 +13,14 @@ on:
|
|||
- cron: "0 1 * * TUE" # Every Tuesday at 1:15 AM
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
previous_build:
|
||||
description: 'Set to 0 to manually clear rechunking plan'
|
||||
type: choice
|
||||
default: '1'
|
||||
options:
|
||||
- '0'
|
||||
- '1'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
|
@ -34,6 +42,7 @@ jobs:
|
|||
#kernel_pin: 6.14.11-300.fc42.x86_64 ## This is where kernels get pinned.
|
||||
brand_name: ${{ matrix.brand_name }}
|
||||
stream_name: stable
|
||||
previous_build: ${{ inputs.previous_build }}
|
||||
|
||||
generate-release:
|
||||
name: Generate Release
|
||||
|
|
|
|||
78
.github/workflows/reusable-build.yml
vendored
78
.github/workflows/reusable-build.yml
vendored
|
|
@ -18,6 +18,9 @@ on:
|
|||
kernel_pin:
|
||||
description: "The full kernel version to pin"
|
||||
type: string
|
||||
previous_build:
|
||||
description: 'Set a reference to a previous build to make updates smaller'
|
||||
type: string
|
||||
|
||||
env:
|
||||
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
|
||||
|
|
@ -184,31 +187,21 @@ jobs:
|
|||
echo "SBOM=${SBOM}" >> $GITHUB_OUTPUT
|
||||
sudo rm -rf ${OCI_DIR}
|
||||
|
||||
- name: Rechunk Image
|
||||
id: rechunk-image
|
||||
shell: bash
|
||||
- name: Rechunk Image with rpm-ostree
|
||||
id: rechunker
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
MATRIX_BASE_NAME: ${{ matrix.base_name }}
|
||||
MATRIX_STREAM_NAME: ${{ matrix.stream_name }}
|
||||
MATRIX_IMAGE_FLAVOR: ${{ matrix.image_flavor }}
|
||||
DEFAULT_TAG: ${{ env.DEFAULT_TAG }}
|
||||
PREVIOUS_BUILD: ${{ github.event.inputs.previous_build || '1' }}
|
||||
run: |
|
||||
sudo -E $(command -v just) rechunk "${MATRIX_BASE_NAME}" \
|
||||
"${MATRIX_STREAM_NAME}" \
|
||||
"${MATRIX_IMAGE_FLAVOR}" \
|
||||
"1"
|
||||
|
||||
- name: Load Image into Podman
|
||||
id: load-rechunk
|
||||
shell: bash
|
||||
env:
|
||||
MATRIX_BASE_NAME: ${{ matrix.base_name }}
|
||||
DEFAULT_TAG: ${{ env.DEFAULT_TAG }}
|
||||
MATRIX_IMAGE_FLAVOR: ${{ matrix.image_flavor }}
|
||||
run: |
|
||||
sudo -E $(command -v just) load-rechunk "${MATRIX_BASE_NAME}" \
|
||||
"${DEFAULT_TAG}" \
|
||||
"${MATRIX_IMAGE_FLAVOR}"
|
||||
"1" \
|
||||
"0" \
|
||||
"${PREVIOUS_BUILD}"
|
||||
|
||||
- name: Secureboot Check
|
||||
id: secureboot
|
||||
|
|
@ -222,6 +215,39 @@ jobs:
|
|||
"${DEFAULT_TAG}" \
|
||||
"${MATRIX_IMAGE_FLAVOR}"
|
||||
|
||||
- name: Export to OCI Archive
|
||||
if: github.event_name == 'pull_request'
|
||||
id: oci-archive
|
||||
env:
|
||||
MATRIX_BASE_NAME: ${{ matrix.base_name }}
|
||||
DEFAULT_TAG: ${{ env.DEFAULT_TAG }}
|
||||
MATRIX_IMAGE_FLAVOR: ${{ matrix.image_flavor }}
|
||||
run: |
|
||||
sudo -E $(command -v just) export-oci "${MATRIX_BASE_NAME}" \
|
||||
"${DEFAULT_TAG}" \
|
||||
"${MATRIX_IMAGE_FLAVOR}"
|
||||
|
||||
- name: Upload OCI Archive as Artifact
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
|
||||
with:
|
||||
name: ${{ env.IMAGE_NAME }}.oci
|
||||
path: ${{ env.IMAGE_NAME }}.oci
|
||||
archive: false
|
||||
if-no-files-found: error
|
||||
retention-days: 1
|
||||
|
||||
- name: PR Testing Instructions
|
||||
if: github.event_name == 'pull_request'
|
||||
id: pr-summary
|
||||
env:
|
||||
IMAGE_NAME: ${{ env.IMAGE_NAME }}
|
||||
MATRIX_STREAM_NAME: "${{ matrix.stream_name }}"
|
||||
run: |
|
||||
echo "Download the .oci file" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Rebase: sudo bootc switch --transport oci-archive /path/to/${IMAGE_NAME}".oci >> $GITHUB_STEP_SUMMARY
|
||||
echo "Go back to the production image e.g.: sudo bootc switch --enforce-container-sigpolicy ghcr.io/ublue-os/${IMAGE_NAME}:${MATRIX_STREAM_NAME}" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
- name: Generate tags
|
||||
id: generate-tags
|
||||
shell: bash
|
||||
|
|
@ -271,6 +297,14 @@ jobs:
|
|||
run: |
|
||||
echo "lowercase=${IMAGE_REGISTRY,,}" >> $GITHUB_OUTPUT
|
||||
|
||||
# TODO: remove me when we have a new podman in 26.04 runners
|
||||
# needed because old podman doesn't push layer annotations for
|
||||
# the rpm-ostree rechunker at all
|
||||
- name: install podman from brew
|
||||
if: github.event_name != 'pull_request'
|
||||
run: |
|
||||
/home/linuxbrew/.linuxbrew/bin/brew install podman
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
if: github.event_name != 'pull_request'
|
||||
run: |
|
||||
|
|
@ -292,9 +326,15 @@ jobs:
|
|||
timeout_minutes: 10
|
||||
command: |
|
||||
set -euox pipefail
|
||||
# HACK: push a second time so layer annotations are pushed
|
||||
# TODO: remove me when https://github.com/containers/podman/issues/27796 fixed
|
||||
|
||||
for tag in ${ALIAS_TAGS}; do
|
||||
sudo -E podman push ${IMAGE_NAME}:${tag} ${LOWERCASE}/${IMAGE_NAME}:${tag}
|
||||
sudo -E /home/linuxbrew/.linuxbrew/bin/podman push --compression-format=zstd --compression-level=3 ${IMAGE_NAME}:${tag} ${LOWERCASE}/${IMAGE_NAME}:${tag}
|
||||
done
|
||||
|
||||
for tag in ${ALIAS_TAGS}; do
|
||||
sudo -E /home/linuxbrew/.linuxbrew/bin/podman push --compression-format=zstd --compression-level=3 ${IMAGE_NAME}:${tag} ${LOWERCASE}/${IMAGE_NAME}:${tag}
|
||||
done
|
||||
|
||||
digest=$(skopeo inspect docker://${LOWERCASE}/${IMAGE_NAME}:${DEFAULT_TAG} --format '{{.Digest}}')
|
||||
|
|
@ -303,7 +343,7 @@ jobs:
|
|||
|
||||
- name: Upload OCI dir as Artifact
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
|
||||
with:
|
||||
name: ${{ env.IMAGE_NAME }}.oci
|
||||
path: ${{ env.IMAGE_NAME }}_build
|
||||
|
|
|
|||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -3,8 +3,7 @@
|
|||
flatpaks_with_deps
|
||||
flatpak.*
|
||||
|
||||
*_build
|
||||
*_build.*
|
||||
aurora*.oci
|
||||
previous.manifest.json
|
||||
changelog.md
|
||||
output.env
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
ARG BASE_IMAGE_ORG="${BASE_IMAGE_ORG}:-quay.io/fedora-ostree-desktops"
|
||||
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}:-kinoite"
|
||||
ARG BASE_IMAGE_ORG
|
||||
ARG BASE_IMAGE_NAME
|
||||
ARG BASE_IMAGE="${BASE_IMAGE_ORG}/${BASE_IMAGE_NAME}"
|
||||
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}:-43"
|
||||
ARG AKMODS_FLAVOR="${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION}:-coreos-stable-43"
|
||||
ARG KERNEL="${KERNEL}:-6.17.12-300.fc43.x86_64"
|
||||
ARG COMMON_IMAGE="${COMMON_IMAGE}:-ghcr.io/get-aurora-dev/common:latest"
|
||||
ARG COMMON_IMAGE_SHA=""
|
||||
ARG BREW_IMAGE="${BREW_IMAGE}:-ghcr.io/ublue-os/brew:latest"
|
||||
ARG BREW_IMAGE_SHA=""
|
||||
ARG FEDORA_MAJOR_VERSION
|
||||
ARG AKMODS_FLAVOR
|
||||
ARG KERNEL
|
||||
ARG COMMON_IMAGE
|
||||
ARG COMMON_IMAGE_SHA
|
||||
ARG BREW_IMAGE
|
||||
ARG BREW_IMAGE_SHA
|
||||
|
||||
FROM ${COMMON_IMAGE}@${COMMON_IMAGE_SHA} AS common
|
||||
FROM ${BREW_IMAGE}@${BREW_IMAGE_SHA} AS brew
|
||||
|
|
|
|||
213
Justfile
213
Justfile
|
|
@ -3,9 +3,8 @@ export base_image_org := env("BASE_IMAGE_ORG", "quay.io/fedora-ostree-desktops")
|
|||
export base_image_name := env("BASE_IMAGE_NAME", "kinoite")
|
||||
export common_image := env("COMMON_IMAGE", "ghcr.io/get-aurora-dev/common:latest")
|
||||
export brew_image := env("BREW_IMAGE", "ghcr.io/ublue-os/brew:latest")
|
||||
rechunker_image := "ghcr.io/ublue-os/legacy-rechunk:v1.0.1-x86_64@sha256:2627cbf92ca60ab7372070dcf93b40f457926f301509ffba47a04d6a9e1ddaf7"
|
||||
stable_version := "43"
|
||||
latest_version := "43"
|
||||
latest_version := "44"
|
||||
beta_version := "44"
|
||||
images := '(
|
||||
[aurora]=aurora
|
||||
|
|
@ -59,7 +58,6 @@ clean:
|
|||
set -eoux pipefail
|
||||
touch _build
|
||||
find *_build* -exec rm -rf {} \;
|
||||
rm -f previous.manifest.json
|
||||
rm -f changelog.md
|
||||
rm -f output.env
|
||||
|
||||
|
|
@ -251,7 +249,7 @@ build $image="aurora" $tag="latest" $flavor="main" rechunk="0" ghcr="0" pipeline
|
|||
elif [[ "{{ rechunk }}" == "1" && "{{ ghcr }}" == "1" ]]; then
|
||||
${SUDOIF} {{ just }} rechunk "${image}" "${tag}" "${flavor}" 1
|
||||
elif [[ "{{ rechunk }}" == "1" ]]; then
|
||||
${SUDOIF} {{ just }} rechunk "${image}" "${tag}" "${flavor}"
|
||||
{{ just }} rechunk "${image}" "${tag}" "${flavor}"
|
||||
fi
|
||||
|
||||
# Build Image and Rechunk
|
||||
|
|
@ -278,10 +276,9 @@ build-pipeline image="aurora" tag="latest" flavor="main" kernel_pin="":
|
|||
# Rechunk Image
|
||||
[group('Image')]
|
||||
[private]
|
||||
rechunk $image="aurora" $tag="latest" $flavor="main" ghcr="0" pipeline="0":
|
||||
rechunk $image="aurora" $tag="latest" $flavor="main" ghcr="0" pipeline="0" previous_build="0":
|
||||
#!/usr/bin/bash
|
||||
|
||||
echo "::group:: Rechunk Prep"
|
||||
set -eoux pipefail
|
||||
|
||||
# Validate
|
||||
|
|
@ -289,154 +286,70 @@ rechunk $image="aurora" $tag="latest" $flavor="main" ghcr="0" pipeline="0":
|
|||
|
||||
# Image Name
|
||||
image_name=$({{ just }} image_name {{ image }} {{ tag }} {{ flavor }})
|
||||
fedora_version=$({{ just }} fedora_version '{{ image }}' '{{ tag }}' '{{ flavor }}')
|
||||
DEFAULT_TAG=$({{ just }} generate-default-tag {{ tag }} {{ ghcr }})
|
||||
|
||||
# Check if image is already built
|
||||
ID=$(${PODMAN} images --filter reference=localhost/"${image_name}":"${tag}" --format "'{{ '{{.ID}}' }}'")
|
||||
if [[ -z "$ID" ]]; then
|
||||
{{ just }} build "${image}" "${tag}" "${flavor}"
|
||||
if [[ "{{ ghcr }}" == "0" ]]; then
|
||||
{{ just }} load-rootful "${image}" "${tag}" "${flavor}"
|
||||
fi
|
||||
|
||||
# Load into Rootful Podman
|
||||
ID=$(${SUDOIF} ${PODMAN} images --filter reference=localhost/"${image_name}":"${tag}" --format "'{{ '{{.ID}}' }}'")
|
||||
if [[ -z "$ID" && ! ${PODMAN} =~ docker ]]; then
|
||||
COPYTMP=$(mktemp -p "${PWD}" -d -t podman_scp.XXXXXXXXXX)
|
||||
${SUDOIF} TMPDIR=${COPYTMP} ${PODMAN} image scp ${UID}@localhost::localhost/"${image_name}":"${tag}" root@localhost::localhost/"${image_name}":"${tag}"
|
||||
rm -rf "${COPYTMP}"
|
||||
# TODO: Redo everything here with --previous-build in rpm-ostree 2026.1+
|
||||
# so we don't have to pull an old image + rename it
|
||||
if [[ "{{ previous_build }}" == "1" ]]; then
|
||||
PREVIOUS_IMAGE=ghcr.io/{{ repo_organization }}/"${image_name}":"${DEFAULT_TAG}"
|
||||
|
||||
# https://github.com/coreos/rpm-ostree/blob/7e2f2065a4aa4d5965b4537bb7d74e0b2898650e/rust/src/compose.rs#L522-L529
|
||||
if skopeo inspect docker://"${PREVIOUS_IMAGE}" | jq -e '.LayersData[1:] | all(.Annotations?["ostree.components"]?)'; then
|
||||
${SUDOIF} ${PODMAN} pull ${PREVIOUS_IMAGE}
|
||||
else
|
||||
echo "${PREVIOUS_IMAGE} doesn't exist. Making a fresh layer Plan instead."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Prep Container
|
||||
CREF=$(${SUDOIF} ${PODMAN} create localhost/"${image_name}":"${tag}" bash)
|
||||
OLD_IMAGE=$(${SUDOIF} ${PODMAN} inspect $CREF | jq -r '.[].Image')
|
||||
OUT_NAME="${image_name}_build"
|
||||
MOUNT=$(${SUDOIF} ${PODMAN} mount "${CREF}")
|
||||
|
||||
# Fedora Version
|
||||
fedora_version=$(${SUDOIF} ${PODMAN} inspect $CREF | jq -r '.[].Config.Labels["ostree.linux"]' | grep -oP 'fc\K[0-9]+')
|
||||
|
||||
# Label Version
|
||||
VERSION=$(${SUDOIF} ${PODMAN} inspect $CREF | jq -r '.[].Config.Labels["org.opencontainers.image.version"]')
|
||||
|
||||
# Git SHA
|
||||
SHA="dedbeef"
|
||||
if [[ -z "$(git status -s)" ]]; then
|
||||
SHA=$(git rev-parse HEAD)
|
||||
fi
|
||||
|
||||
# Rest of Labels
|
||||
LABELS="
|
||||
io.artifacthub.package.deprecated=false
|
||||
io.artifacthub.package.keywords=bootc,fedora,aurora,ublue,universal-blue
|
||||
io.artifacthub.package.logo-url=https://avatars.githubusercontent.com/u/120078124?s=200&v=4
|
||||
io.artifacthub.package.maintainers=[{\"name\": \"NiHaiden\", \"email\": \"me@nhaiden.io\"}]
|
||||
io.artifacthub.package.readme-url=https://raw.githubusercontent.com/ublue-os/aurora/refs/heads/main/README.md
|
||||
org.opencontainers.image.created=$(date -u +%Y\-%m\-%d\T%H\:%M\:%S\Z)
|
||||
org.opencontainers.image.license=Apache-2.0
|
||||
org.opencontainers.image.source=https://raw.githubusercontent.com/ublue-os/aurora/refs/heads/main/Containerfile
|
||||
org.opencontainers.image.title=${image_name}
|
||||
org.opencontainers.image.url=https://getaurora.dev
|
||||
org.opencontainers.image.vendor={{ repo_organization }}
|
||||
ostree.linux=$(${SUDOIF} ${PODMAN} inspect $CREF | jq -r '.[].Config.Labels["ostree.linux"]')
|
||||
containers.bootc=1
|
||||
"
|
||||
|
||||
# Cleanup Space during Github Action
|
||||
if [[ "{{ ghcr }}" == "1" ]]; then
|
||||
base_image_name=kinoite
|
||||
if [[ "${tag}" =~ stable ]]; then
|
||||
tag="stable-daily"
|
||||
fi
|
||||
ID=$(${SUDOIF} ${PODMAN} images --filter reference=ghcr.io/{{ repo_organization }}/"${base_image_name}":${fedora_version} --format "{{ '{{.ID}}' }}")
|
||||
if [[ -n "$ID" ]]; then
|
||||
${PODMAN} rmi "$ID"
|
||||
CHUNKED_IMAGE="localhost/"${image_name}":"${DEFAULT_TAG}""
|
||||
if [[ "{{ previous_build }}" == "1" ]]; then
|
||||
CHUNKED_IMAGE="${PREVIOUS_IMAGE}"
|
||||
fi
|
||||
else
|
||||
# keep the original unrechunked image for local builds
|
||||
CHUNKED_IMAGE="localhost/"${image_name}":"${DEFAULT_TAG}"-chunked"
|
||||
fi
|
||||
|
||||
# Rechunk Container
|
||||
rechunker="{{ rechunker_image }}"
|
||||
|
||||
echo "::endgroup::"
|
||||
echo "::group:: Prune"
|
||||
|
||||
# Run Rechunker's Prune
|
||||
# 96 layers, conservative default, same what ci-test is using
|
||||
# one layer is secretly being added for the ostree export
|
||||
# 499 is podman run limit
|
||||
# 128 is docker pull limit
|
||||
# in CI this renames stable to stable-daily
|
||||
${SUDOIF} ${PODMAN} run --rm \
|
||||
--pull=${PULL_POLICY} \
|
||||
--security-opt label=disable \
|
||||
--volume "$MOUNT":/var/tree \
|
||||
--env TREE=/var/tree \
|
||||
--user 0:0 \
|
||||
"${rechunker}" \
|
||||
/sources/rechunk/1_prune.sh
|
||||
--privileged \
|
||||
-v "/var/lib/containers:/var/lib/containers" \
|
||||
--entrypoint /usr/bin/rpm-ostree \
|
||||
"${base_image_org}/${base_image_name}:${fedora_version}" \
|
||||
compose build-chunked-oci \
|
||||
--max-layers 127 \
|
||||
--format-version=2 \
|
||||
--bootc \
|
||||
--from "localhost/"${image_name}":"${tag}"" \
|
||||
--output containers-storage:${CHUNKED_IMAGE}
|
||||
|
||||
echo "::endgroup::"
|
||||
echo "::group:: Create ostree tree"
|
||||
|
||||
# Run Rechunker's Create
|
||||
${SUDOIF} ${PODMAN} run --rm \
|
||||
--security-opt label=disable \
|
||||
--volume "$MOUNT":/var/tree \
|
||||
--volume "cache_ostree:/var/ostree" \
|
||||
--env TREE=/var/tree \
|
||||
--env REPO=/var/ostree/repo \
|
||||
--env RESET_TIMESTAMP=1 \
|
||||
--user 0:0 \
|
||||
"${rechunker}" \
|
||||
/sources/rechunk/2_create.sh
|
||||
|
||||
# Cleanup Temp Container Reference
|
||||
${SUDOIF} ${PODMAN} unmount "$CREF"
|
||||
${SUDOIF} ${PODMAN} rm "$CREF"
|
||||
${SUDOIF} ${PODMAN} rmi "$OLD_IMAGE"
|
||||
|
||||
echo "::endgroup::"
|
||||
echo "::group:: Rechunker"
|
||||
|
||||
# Run Rechunker
|
||||
${SUDOIF} ${PODMAN} run --rm \
|
||||
--pull=${PULL_POLICY} \
|
||||
--security-opt label=disable \
|
||||
--volume "$PWD:/workspace" \
|
||||
--volume "$PWD:/var/git" \
|
||||
--volume cache_ostree:/var/ostree \
|
||||
--env REPO=/var/ostree/repo \
|
||||
--env PREV_REF=ghcr.io/ublue-os/"${image_name}":"${tag}" \
|
||||
--env OUT_NAME="$OUT_NAME" \
|
||||
--env LABELS="${LABELS}" \
|
||||
--env "DESCRIPTION='The ultimate productivity workstation'" \
|
||||
--env "VERSION=${VERSION}" \
|
||||
--env VERSION_FN=/workspace/version.txt \
|
||||
--env OUT_REF="oci:$OUT_NAME" \
|
||||
--env GIT_DIR="/var/git" \
|
||||
--env REVISION="$SHA" \
|
||||
--user 0:0 \
|
||||
"${rechunker}" \
|
||||
/sources/rechunk/3_chunk.sh
|
||||
|
||||
# Fix Permissions of OCI
|
||||
${SUDOIF} find ${OUT_NAME} -type d -exec chmod 0755 {} \; || true
|
||||
${SUDOIF} find ${OUT_NAME}* -type f -exec chmod 0644 {} \; || true
|
||||
|
||||
if [[ "${UID}" -gt "0" ]]; then
|
||||
${SUDOIF} chown "${UID}:${GROUPS}" -R "${PWD}"
|
||||
elif [[ -n "${SUDO_UID:-}" ]]; then
|
||||
chown "${SUDO_UID}":"${SUDO_GID}" -R "${PWD}"
|
||||
# rename the image to localhost
|
||||
if [[ "{{ ghcr }}" == "1" && "{{ previous_build }}" == "1" ]]; then
|
||||
${SUDOIF} ${PODMAN} tag ${CHUNKED_IMAGE} "localhost/"${image_name}":"${tag}""
|
||||
${SUDOIF} ${PODMAN} image rm -f ${CHUNKED_IMAGE}
|
||||
fi
|
||||
|
||||
# Remove cache_ostree
|
||||
${SUDOIF} ${PODMAN} volume rm cache_ostree
|
||||
|
||||
echo "::endgroup::"
|
||||
|
||||
# Pipeline Checks
|
||||
if [[ {{ pipeline }} == "1" && -n "${SUDO_USER:-}" ]]; then
|
||||
sudo -u "${SUDO_USER}" {{ just }} load-rechunk "${image}" "${tag}" "${flavor}"
|
||||
sudo -u "${SUDO_USER}" {{ just }} secureboot "${image}" "${tag}" "${flavor}"
|
||||
fi
|
||||
|
||||
# Load OCI into Podman Store
|
||||
# For Rechunk
|
||||
[group('Image')]
|
||||
load-rechunk image="aurora" tag="latest" flavor="main":
|
||||
load-rootful $image="aurora" $tag="latest" $flavor="main":
|
||||
#!/usr/bin/bash
|
||||
set -eou pipefail
|
||||
set -oux pipefail
|
||||
|
||||
# Validate
|
||||
{{ just }} validate {{ image }} {{ tag }} {{ flavor }}
|
||||
|
|
@ -444,14 +357,27 @@ load-rechunk image="aurora" tag="latest" flavor="main":
|
|||
# Image Name
|
||||
image_name=$({{ just }} image_name {{ image }} {{ tag }} {{ flavor }})
|
||||
|
||||
# Load Image
|
||||
OUT_NAME="${image_name}_build"
|
||||
IMAGE=$(${PODMAN} pull oci:"${PWD}"/"${OUT_NAME}")
|
||||
${PODMAN} tag ${IMAGE} localhost/"${image_name}":{{ tag }}
|
||||
if [[ ! "$(id -u)" == 0 && ! ${PODMAN} =~ docker ]]; then
|
||||
ID=$(${PODMAN} images --filter reference=localhost/"${image_name}":"${tag}" --format "'{{ '{{.ID}}' }}'")
|
||||
if [[ -z "$ID" ]]; then
|
||||
{{ just }} build "$image" "$tag" "$flavor"
|
||||
fi
|
||||
${PODMAN} image scp localhost/"${image_name}":"${tag}" root@localhost::
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
rm -rf "${OUT_NAME}*"
|
||||
rm -f previous.manifest.json
|
||||
# Generate OCI Archive for PR Testing
|
||||
[group('Image')]
|
||||
export-oci $image="aurora" $tag="latest" $flavor="main":
|
||||
#!/usr/bin/bash
|
||||
set -oux pipefail
|
||||
|
||||
# Validate
|
||||
{{ just }} validate {{ image }} {{ tag }} {{ flavor }}
|
||||
|
||||
# Image Name
|
||||
image_name=$({{ just }} image_name {{ image }} {{ tag }} {{ flavor }})
|
||||
|
||||
${PODMAN} push --compression-format=zstd --compression-level=3 localhost/"${image_name}":"${tag}" oci-archive:"${image_name}".oci
|
||||
|
||||
# Run Container
|
||||
[group('Image')]
|
||||
|
|
@ -533,7 +459,7 @@ secureboot $image="aurora" $tag="latest" $flavor="main":
|
|||
openssl x509 -in /tmp/akmods.der -out /tmp/akmods.crt
|
||||
|
||||
# Make sure we have sbverify
|
||||
CMD="$(command -v sbverify)"
|
||||
CMD="$(command -v sbverify || true)"
|
||||
if [[ -z "${CMD:-}" ]]; then
|
||||
temp_name="sbverify-${RANDOM}"
|
||||
${PODMAN} run -dt \
|
||||
|
|
@ -641,6 +567,8 @@ generate-build-tags image="aurora" tag="latest" flavor="main" kernel_pin="" ghcr
|
|||
BUILD_TAGS+=("stable" "stable-${version}" "stable-${version:3}")
|
||||
elif [[ ! "{{ tag }}" =~ stable|beta ]]; then
|
||||
BUILD_TAGS+=("${FEDORA_VERSION}" "${FEDORA_VERSION}-${version}" "${FEDORA_VERSION}-${version:3}")
|
||||
# compatiblity for f44, TODO: remove me when we merge beta branch into main
|
||||
BUILD_TAGS+=("beta" "beta-${version}" "beta-${version:3}")
|
||||
fi
|
||||
|
||||
if [[ "${github_event}" == "pull_request" ]]; then
|
||||
|
|
@ -683,8 +611,6 @@ tag-images image_name="" default_tag="" tags="":
|
|||
${PODMAN} tag $IMAGE {{ image_name }}:${tag}
|
||||
done
|
||||
|
||||
|
||||
|
||||
# Show Images
|
||||
${PODMAN} images
|
||||
|
||||
|
|
@ -695,6 +621,7 @@ setup-cache $image="aurora" $tag="latest" $flavor="main" $ghcr="0" $github_event
|
|||
set -eou pipefail
|
||||
|
||||
image_name=$({{ just }} image_name '{{ image }}' '{{ tag }}' '{{ flavor }}')
|
||||
|
||||
fedora_version=$({{ just }} fedora_version '{{ image }}' '{{ tag }}')
|
||||
|
||||
ALLOW_CACHE_WRITE="false"
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ OVERRIDES=(
|
|||
"mesa-libEGL"
|
||||
"mesa-libGL"
|
||||
"mesa-libgbm"
|
||||
"mesa-va-drivers"
|
||||
"mesa-vulkan-drivers"
|
||||
)
|
||||
|
||||
|
|
@ -94,7 +93,6 @@ FEDORA_PACKAGES=(
|
|||
htop
|
||||
icoutils
|
||||
ifuse
|
||||
igt-gpu-tools
|
||||
input-remapper
|
||||
iwd
|
||||
just
|
||||
|
|
@ -121,7 +119,6 @@ FEDORA_PACKAGES=(
|
|||
plasma-wallpapers-dynamic
|
||||
powerstat
|
||||
powertop
|
||||
ptyxis
|
||||
rclone
|
||||
restic
|
||||
samba-winbind
|
||||
|
|
@ -176,10 +173,6 @@ dnf -y install --enablerepo='tailscale-stable' tailscale
|
|||
# Install COPR packages using isolated enablement (secure)
|
||||
echo "Installing COPR packages with isolated repo enablement..."
|
||||
|
||||
# From ublue-os/staging
|
||||
copr_install_isolated "ublue-os/staging" \
|
||||
"fw-fanctrl"
|
||||
|
||||
# From ublue-os/packages
|
||||
copr_install_isolated "ublue-os/packages" \
|
||||
"kcm_ublue" \
|
||||
|
|
@ -227,6 +220,8 @@ EXCLUDED_PACKAGES=(
|
|||
krfb-libs
|
||||
plasma-discover-kns
|
||||
plasma-discover-rpm-ostree
|
||||
plasma-discover
|
||||
plasma-discover-libs
|
||||
plasma-welcome-fedora
|
||||
podman-docker
|
||||
)
|
||||
|
|
@ -251,18 +246,18 @@ if [[ "${#EXCLUDED_PACKAGES[@]}" -gt 0 ]]; then
|
|||
fi
|
||||
fi
|
||||
|
||||
# we can't remove plasma-lookandfeel-fedora package because it is a dependency of plasma-desktop
|
||||
rpm --erase --nodeps plasma-lookandfeel-fedora
|
||||
# rpm erase doesn't remove actual files
|
||||
rm -rf /usr/share/plasma/look-and-feel/org.fedoraproject.fedora.desktop/
|
||||
|
||||
|
||||
# https://github.com/ublue-os/bazzite/issues/1400
|
||||
# TODO: test if we still need this when upgrading firmware with fwupd
|
||||
dnf -y copr enable ublue-os/staging
|
||||
dnf -y copr disable ublue-os/staging
|
||||
dnf5 -y swap \
|
||||
--repo=copr:copr.fedorainfracloud.org:ublue-os:staging \
|
||||
fwupd fwupd
|
||||
|
||||
|
||||
# needs to be removed before we swap the version
|
||||
systemctl disable flatpak-add-fedora-repos.service
|
||||
|
||||
# TODO: remove me on next flatpak release when preinstall landed in Fedora
|
||||
dnf5 -y copr enable ublue-os/flatpak-test
|
||||
dnf5 -y copr disable ublue-os/flatpak-test
|
||||
|
|
@ -271,6 +266,10 @@ dnf5 -y --repo=copr:copr.fedorainfracloud.org:ublue-os:flatpak-test swap flatpak
|
|||
dnf5 -y --repo=copr:copr.fedorainfracloud.org:ublue-os:flatpak-test swap flatpak-session-helper flatpak-session-helper
|
||||
dnf5 -y --repo=copr:copr.fedorainfracloud.org:ublue-os:flatpak-test install flatpak-debuginfo flatpak-libs-debuginfo flatpak-session-helper-debuginfo
|
||||
|
||||
|
||||
PLASMA_VERS=$(rpm -q --qf "%{VERSION}" plasma-desktop)
|
||||
dnf -y install plasma-firewall-"${PLASMA_VERS}"
|
||||
|
||||
## Pins and Overrides
|
||||
## Use this section to pin packages in order to avoid regressions
|
||||
# Remember to leave a note with rationale/link to issue for each pin!
|
||||
|
|
@ -281,15 +280,18 @@ dnf5 -y --repo=copr:copr.fedorainfracloud.org:ublue-os:flatpak-test install flat
|
|||
# dnf5 upgrade --refresh --advisory=FEDORA-2024-dd2e9fb225
|
||||
#fi
|
||||
|
||||
# Explicitly install KDE Plasma related packages with the same version as in base image
|
||||
if [[ "${UBLUE_IMAGE_TAG}" == "beta" ]]; then
|
||||
dnf -y copr enable @kdesig/kde-beta
|
||||
dnf -y copr disable @kdesig/kde-beta
|
||||
dnf -y --repo=copr:copr.fedorainfracloud.org:group_kdesig:kde-beta install plasma-firewall
|
||||
else
|
||||
dnf -y install \
|
||||
plasma-firewall-$(rpm -q --qf "%{VERSION}" plasma-desktop)
|
||||
fi
|
||||
# https://invent.kde.org/plasma/plasma-setup/-/issues/72
|
||||
dnf -y copr enable ublue-os/staging
|
||||
dnf -y copr disable ublue-os/staging
|
||||
dnf -y swap --repo=copr:copr.fedorainfracloud.org:ublue-os:staging \
|
||||
plasma-setup plasma-setup-"${PLASMA_VERS}"-*.aurora
|
||||
|
||||
dnf versionlock add plasma-setup
|
||||
|
||||
# we can't remove plasma-lookandfeel-fedora package because it is a dependency of plasma-desktop
|
||||
rpm --erase --nodeps plasma-lookandfeel-fedora
|
||||
# rpm erase doesn't remove actual files
|
||||
rm -rf /usr/share/plasma/look-and-feel/org.fedoraproject.fedora.desktop/
|
||||
|
||||
# Install DX specific packages
|
||||
if [[ "${IMAGE_FLAVOR}" == "dx" ]]; then
|
||||
|
|
|
|||
|
|
@ -24,16 +24,11 @@ fi
|
|||
|
||||
dnf5 versionlock add kernel kernel-devel kernel-devel-matched kernel-core kernel-modules kernel-modules-core kernel-modules-extra
|
||||
|
||||
dnf -y install /tmp/rpms/{common,kmods}/*xone*.rpm /tmp/rpms/{common,kmods}/*openrazer*.rpm || true
|
||||
dnf -y install /tmp/rpms/{common,kmods}/*xone*.rpm || true
|
||||
|
||||
dnf -y install /tmp/rpms/{kmods,common}/*v4l2loopback*.rpm || true
|
||||
|
||||
mkdir -p /etc/pki/akmods/certs
|
||||
ghcurl "https://github.com/ublue-os/akmods/raw/refs/heads/main/certs/public_key.der" --retry 3 -Lo /etc/pki/akmods/certs/akmods-ublue.der
|
||||
|
||||
# OpenRazer from hardware:razer repo (not a COPR)
|
||||
dnf -y config-manager addrepo --from-repofile=https://openrazer.github.io/hardware:razer.repo
|
||||
dnf -y install openrazer-daemon || true
|
||||
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/hardware:razer.repo
|
||||
|
||||
echo "::endgroup::"
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ flatpak remote-add --system --if-not-exists flathub https://flathub.org/repo/fla
|
|||
# Offline Aurora documentation
|
||||
ghcurl "https://github.com/ublue-os/aurora-docs/releases/download/0.1/aurora.pdf" --retry 3 -o /tmp/aurora.pdf
|
||||
install -Dm0644 -t /usr/share/doc/aurora/ /tmp/aurora.pdf
|
||||
setfattr -n user.component -v "aurora-offline-docs" /usr/share/doc/aurora/aurora.pdf
|
||||
cp /usr/share/applications/dev.getaurora.offline-docs.desktop /usr/share/kglobalaccel/
|
||||
|
||||
# Weekly user count for fastfetch
|
||||
|
|
@ -20,29 +21,24 @@ curl -X 'GET' \
|
|||
'https://flathub.org/api/v2/stats/io.github.kolunmi.Bazaar?all=false&days=1' \
|
||||
-H 'accept: application/json' | jq -r ".installs_last_7_days" | numfmt --to=si --round=nearest > /usr/share/ublue-os/bazaar-install-count
|
||||
|
||||
# Starship Shell Prompt
|
||||
ghcurl "https://github.com/starship/starship/releases/latest/download/starship-$(uname -m)-unknown-linux-gnu.tar.gz" --retry 3 -o /tmp/starship.tar.gz
|
||||
ghcurl "https://github.com/starship/starship/releases/latest/download/starship-$(uname -m)-unknown-linux-gnu.tar.gz.sha256" --retry 3 -o /tmp/starship.tar.gz.sha256
|
||||
|
||||
echo "$(cat /tmp/starship.tar.gz.sha256) /tmp/starship.tar.gz" | sha256sum --check
|
||||
tar -xzf /tmp/starship.tar.gz -C /tmp
|
||||
install -c -m 0755 /tmp/starship /usr/bin
|
||||
|
||||
# Nerdfont symbols
|
||||
# to fix motd and prompt atleast temporarily
|
||||
ghcurl "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/NerdFontsSymbolsOnly.zip" --retry 3 -o /tmp/nerdfontsymbols.zip
|
||||
unzip /tmp/nerdfontsymbols.zip -d /tmp
|
||||
mkdir -p /usr/share/fonts/nerd-fonts/NerdFontsSymbolsOnly/
|
||||
mv /tmp/SymbolsNerdFont*.ttf /usr/share/fonts/nerd-fonts/NerdFontsSymbolsOnly/
|
||||
setfattr -n user.component -v "nerdfonts" /usr/share/fonts/nerd-fonts/NerdFontsSymbolsOnly
|
||||
|
||||
# Bash Prexec v0.6.0
|
||||
# Bash Preexec v0.6.0
|
||||
ghcurl https://raw.githubusercontent.com/rcaloras/bash-preexec/b73ed5f7f953207b958f15b1773721dded697ac3/bash-preexec.sh --retry 3 -Lo /usr/share/bash-preexec
|
||||
setfattr -n user.component -v "aurora-config" /usr/share/bash-preexec
|
||||
|
||||
# use CoreOS' generator for emergency/rescue boot
|
||||
# see detail: https://github.com/ublue-os/main/issues/653
|
||||
mkdir -p /usr/lib/systemd/system-generators
|
||||
ghcurl "https://raw.githubusercontent.com/coreos/fedora-coreos-config/refs/heads/stable/overlay.d/05core/usr/lib/systemd/system-generators/coreos-sulogin-force-generator" --retry 3 -Lo /usr/lib/systemd/system-generators/coreos-sulogin-force-generator
|
||||
chmod +x /usr/lib/systemd/system-generators/coreos-sulogin-force-generator
|
||||
setfattr -n user.component -v "aurora-config" /usr/lib/systemd/system-generators/coreos-sulogin-force-generator
|
||||
|
||||
echo "::endgroup::"
|
||||
|
||||
|
|
|
|||
|
|
@ -21,48 +21,14 @@ rm -rf /usr/share/doc/HTML
|
|||
# BASE IMAGE CHANGES
|
||||
# ######
|
||||
|
||||
# Hide Discover entries by renaming them (allows for easy re-enabling)
|
||||
discover_apps=(
|
||||
"org.kde.discover.desktop"
|
||||
"org.kde.discover.flatpak.desktop"
|
||||
"org.kde.discover.notifier.desktop"
|
||||
"org.kde.discover.urlhandler.desktop"
|
||||
)
|
||||
|
||||
for app in "${discover_apps[@]}"; do
|
||||
if [ -f "/usr/share/applications/${app}" ]; then
|
||||
mv "/usr/share/applications/${app}" "/usr/share/applications/${app}.disabled"
|
||||
fi
|
||||
done
|
||||
|
||||
# These notifications are useless and confusing
|
||||
rm /etc/xdg/autostart/org.kde.discover.notifier.desktop
|
||||
rm -f /usr/lib64/qt6/plugins/kf6/krunner/krunner_appstream.so
|
||||
|
||||
# Use Bazaar for Flatpak refs
|
||||
# Force Ptyxis version opened via dbus (e.g., keyboard shortcut) to use the proper shim
|
||||
# https://github.com/ublue-os/bazzite/pull/3620
|
||||
sed -i 's@Exec=/usr/bin/ptyxis@Exec=/usr/bin/kde-ptyxis@g' /usr/share/dbus-1/services/org.gnome.Ptyxis.service
|
||||
echo "application/vnd.flatpak.ref=io.github.kolunmi.Bazaar.desktop" >> /usr/share/applications/mimeapps.list
|
||||
|
||||
# Ptyxis Terminal
|
||||
sed -i 's@\[Desktop Action new-window\]@\[Desktop Action new-window\]\nX-KDE-Shortcuts=Ctrl+Alt+T@g' /usr/share/applications/org.gnome.Ptyxis.desktop
|
||||
sed -i 's@Exec=ptyxis@Exec=kde-ptyxis@g' /usr/share/applications/org.gnome.Ptyxis.desktop
|
||||
sed -i 's@Keywords=@Keywords=konsole;console;@g' /usr/share/applications/org.gnome.Ptyxis.desktop
|
||||
# GTK 4.20 changed how it handles input methods; see https://github.com/ghostty-org/ghostty/discussions/8899#discussioncomment-14717979
|
||||
desktop-file-edit --set-key=Exec --set-value='env GTK_IM_MODULE=ibus kde-ptyxis' /usr/share/applications/org.gnome.Ptyxis.desktop
|
||||
cp /usr/share/applications/org.gnome.Ptyxis.desktop /usr/share/kglobalaccel/
|
||||
|
||||
rm -f /etc/profile.d/gnome-ssh-askpass.{csh,sh} # This shouldn't be pulled in
|
||||
|
||||
# Test aurora gschema override for errors. If there are no errors, proceed with compiling aurora gschema, which includes setting overrides.
|
||||
mkdir -p /tmp/aurora-schema-test
|
||||
find /usr/share/glib-2.0/schemas/ -type f ! -name "*.gschema.override" -exec cp {} /tmp/aurora-schema-test/ \;
|
||||
cp /usr/share/glib-2.0/schemas/zz0-aurora-modifications.gschema.override /tmp/aurora-schema-test/
|
||||
echo "Running error test for aurora gschema override. Aborting if failed."
|
||||
glib-compile-schemas --strict /tmp/aurora-schema-test
|
||||
echo "Compiling gschema to include aurora setting overrides"
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas &>/dev/null
|
||||
|
||||
# Make Samba usershares work OOTB
|
||||
mkdir -p /var/lib/samba/usershares
|
||||
chown -R root:usershares /var/lib/samba/usershares
|
||||
|
|
@ -72,4 +38,8 @@ setsebool -P samba_export_all_ro=1
|
|||
setsebool -P samba_export_all_rw=1
|
||||
sed -i '/^\[homes\]/,/^\[/{/^\[homes\]/d;/^\[/!d}' /etc/samba/smb.conf
|
||||
|
||||
# beta only quirk, remove when https://github.com/get-aurora-dev/common/pull/119 merged
|
||||
sed -i "s/org.gnome.Ptyxis/org.kde.konsole/" /usr/share/kde-settings/kde-profile/default/xdg/kicker-extra-favoritesrc
|
||||
sed -i "s/org.gnome.Ptyxis/org.kde.konsole/" /usr/share/plasma/look-and-feel/dev.getaurora.aurora.desktop/contents/layouts/org.kde.plasma.desktop-layout.js
|
||||
|
||||
echo "::endgroup::"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ systemctl enable tailscaled.service
|
|||
systemctl enable dconf-update.service
|
||||
systemctl enable brew-setup.service
|
||||
systemctl enable aurora-groups.service
|
||||
systemctl enable usr-share-sddm-themes.mount
|
||||
systemctl enable ublue-system-setup.service
|
||||
systemctl --global enable ublue-user-setup.service
|
||||
systemctl --global enable podman-auto-update.timer
|
||||
|
|
@ -25,6 +24,10 @@ systemctl enable flatpak-nuke-fedora.service
|
|||
# TODO: Reinvestigate when bazaar gains dbus activation
|
||||
# systemctl --global enable bazaar.service
|
||||
|
||||
# see /usr/bin/rechunker-group-fix
|
||||
# DO NOT REMOVE THIS
|
||||
systemctl enable rechunker-group-fix.service
|
||||
|
||||
# run flatpak preinstall once at startup
|
||||
systemctl enable flatpak-preinstall.service
|
||||
|
||||
|
|
@ -44,8 +47,6 @@ for file in htop nvtop; do
|
|||
fi
|
||||
done
|
||||
|
||||
systemctl disable flatpak-add-fedora-repos.service
|
||||
|
||||
# NOTE: With isolated COPR installation, most repos are never enabled globally.
|
||||
# We only need to clean up repos that were enabled during the build process.
|
||||
|
||||
|
|
@ -56,11 +57,6 @@ for repo in fedora-multimedia tailscale fedora-cisco-openh264; do
|
|||
fi
|
||||
done
|
||||
|
||||
# Disable hardware:razer repo if it exists
|
||||
if [[ -f "/etc/yum.repos.d/hardware:razer.repo" ]]; then
|
||||
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/hardware:razer.repo
|
||||
fi
|
||||
|
||||
# Disable Terra repos (installed on F42 and earlier)
|
||||
for i in /etc/yum.repos.d/terra*.repo; do
|
||||
if [[ -f "$i" ]]; then
|
||||
|
|
|
|||
|
|
@ -43,7 +43,10 @@ test -f /usr/share/flatpak/preinstall.d/bazaar.preinstall
|
|||
test -f /usr/lib/systemd/system/flatpak-add-fedora-repos.service && false
|
||||
|
||||
# Basic smoke test to check if the flatpak version is from our copr
|
||||
flatpak preinstall --help
|
||||
flatpak preinstall --help > /dev/null 2>&1
|
||||
|
||||
# Make sure to not pull in the bazzite one
|
||||
rpm -q plasma-setup --qf "%{RELEASE}" | grep -q aurora
|
||||
|
||||
test -f /usr/share/doc/aurora/aurora.pdf
|
||||
test -f /usr/share/homebrew.tar.zst
|
||||
|
|
@ -53,12 +56,10 @@ desktop-file-validate \
|
|||
/usr/share/applications/dev.getaurora.boot-to-windows.desktop \
|
||||
/usr/share/applications/dev.getaurora.offline-docs.desktop \
|
||||
/usr/share/applications/dev.getaurora.documentation.desktop \
|
||||
/usr/share/applications/dev.getaurora.system-update.desktop \
|
||||
/usr/share/applications/org.gnome.Ptyxis.desktop
|
||||
/usr/share/applications/dev.getaurora.system-update.desktop
|
||||
|
||||
# Check for KDE Plasma version mismatch
|
||||
# Fedora Repos have gotten the newer one, trying to upgrade
|
||||
# everything except a few packages, breaking SDDM and shell
|
||||
|
||||
KDE_VER="$(rpm -q --qf '%{VERSION}' plasma-desktop)"
|
||||
# package picked by failures in the past
|
||||
|
|
@ -89,8 +90,7 @@ IMPORTANT_PACKAGES=(
|
|||
pipewire
|
||||
plasma-desktop
|
||||
podman
|
||||
ptyxis
|
||||
sddm
|
||||
plasma-login-manager
|
||||
Sunshine
|
||||
systemd
|
||||
tailscale
|
||||
|
|
@ -110,7 +110,7 @@ NEGATIVO=(
|
|||
libheif
|
||||
libva
|
||||
mesa-filesystem
|
||||
mesa-va-drivers
|
||||
mesa-dri-drivers
|
||||
pipewire-libs-extra
|
||||
x264-libs
|
||||
x265-libs
|
||||
|
|
@ -128,8 +128,7 @@ UNWANTED_PACKAGES=(
|
|||
fedora-logos
|
||||
fedora-third-party
|
||||
firefox
|
||||
plasma-discover-kns
|
||||
plasma-discover-rpm-ostree
|
||||
plasma-discover
|
||||
plasma-lookandfeel-fedora
|
||||
podman-docker
|
||||
)
|
||||
|
|
@ -140,6 +139,7 @@ for package in "${UNWANTED_PACKAGES[@]}"; do
|
|||
fi
|
||||
done
|
||||
|
||||
#TODO: add libnvidia-container-tools back once its available for F44
|
||||
if [[ "${IMAGE_NAME}" =~ nvidia ]]; then
|
||||
NV_PACKAGES=(
|
||||
kmod-nvidia
|
||||
|
|
|
|||
|
|
@ -6,10 +6,6 @@ set -eoux pipefail
|
|||
|
||||
IMPORTANT_PACKAGES_DX=(
|
||||
code
|
||||
containerd.io
|
||||
docker-ce
|
||||
docker-buildx-plugin
|
||||
docker-compose-plugin
|
||||
flatpak-builder
|
||||
libvirt
|
||||
podman-bootc
|
||||
|
|
|
|||
|
|
@ -17,6 +17,13 @@ rpm --erase --nodeps --nodb generic-logos
|
|||
# Copy Files to Container
|
||||
rsync -rvKl /ctx/system_files/shared/ /
|
||||
|
||||
setfattr -n user.component -v "aurora-wallpapers" /usr/share/backgrounds/aurora
|
||||
setfattr -n user.component -v "aurora-assets" /usr/share/plasma/avatars/{echo,lumina,scope,tina,vincent}.png
|
||||
setfattr -n user.component -v "aurora-assets" /etc/bazaar
|
||||
setfattr -n user.component -v "aurora-plasma-theme" /usr/share/plasma/look-and-feel/dev.getaurora.aurora{,light}.desktop
|
||||
setfattr -n user.component -v "aurora-config" /usr/share/ublue-os
|
||||
setfattr -n user.component -v "homebrew" /usr/share/homebrew.tar.zst
|
||||
|
||||
if [[ "${IMAGE_FLAVOR}" == "dx" ]]; then
|
||||
/ctx/build_files/shared/build-dx.sh
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ dnf config-manager setopt keepcache=0
|
|||
dnf versionlock clear
|
||||
|
||||
# This comes last because we can't *ever* afford to ship fedora flatpaks on the image
|
||||
systemctl disable flatpak-add-fedora-repos.service || true
|
||||
systemctl mask flatpak-add-fedora-repos.service
|
||||
rm -f /usr/lib/systemd/system/flatpak-add-fedora-repos.service
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
images:
|
||||
- name: kinoite
|
||||
image: quay.io/fedora-ostree-desktops/kinoite
|
||||
tag: 43
|
||||
digest: sha256:bf5fe2d836c43a9134a0aef31193716b5280fd103fb3df07259b6f9f188815b7
|
||||
tag: 44
|
||||
digest: sha256:d73a04a449fd8184427302545e557006507941ae3805c04140cfedd7dc146a0f
|
||||
- name: common
|
||||
image: ghcr.io/get-aurora-dev/common
|
||||
tag: latest
|
||||
|
|
|
|||
18
system_files/shared/usr/bin/rechunker-group-fix
Executable file
18
system_files/shared/usr/bin/rechunker-group-fix
Executable file
|
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# To use this script, you'll want to put this in your systemd service:
|
||||
# rm /etc/gshadow
|
||||
# systemd-sysusers
|
||||
# (run this script)
|
||||
# systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev
|
||||
# This will populate /etc/group successfully, and then populate /etc/gshadow
|
||||
# with any missing groups that we nuked when we removed /etc/gshadow
|
||||
|
||||
GSHADOW_FILE="/etc/gshadow"
|
||||
GROUP_FILE="/etc/group"
|
||||
|
||||
for f in $(cat $GROUP_FILE); do
|
||||
cut -f1 -d':' <(echo $f) | xargs -I{} grep ^"{}" $GSHADOW_FILE &>/dev/null || \
|
||||
echo $(cut -f1 -d':' <(echo $f)):'!*::' >> $GSHADOW_FILE
|
||||
done
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
# We have this script so that people using images with `nss-altfiles` (`/usr/lib/g{roup,shadow}`)
|
||||
# do not break their systems when rebasing to an image without that
|
||||
# This usually happens when using https://github.com/hhd-dev/rechunk then rebasing to an image without it.
|
||||
# Please DO NOT remove this unless this is fully, completely obsolete.
|
||||
# This is exactly what is making it break: https://github.com/ublue-os/legacy-rechunk/blob/1d2b0c2e99afbdc2eb06788ae28e157a88b03d70/1_prune.sh#L41-L47
|
||||
# Users WILL experience black screens and systems will NOT boot if this script malfunctions. Please test this properly and always make sure this works
|
||||
# Relevant issues:
|
||||
# - https://github.com/bootc-dev/bootc/issues/1179#issuecomment-2708305926
|
||||
# - https://github.com/ublue-os/main/issues/759
|
||||
# - https://github.com/ublue-os/bluefin-lts/issues/918
|
||||
# - https://github.com/ublue-os/image-template/issues/177
|
||||
# - https://github.com/ublue-os/aurora/issues/1468
|
||||
# - https://github.com/ublue-os/bluefin/issues/3852
|
||||
# This got created on Tue, 16 Dec 2025 00:44:58 -0300
|
||||
[Unit]
|
||||
Description=Fix groups for Legacy rechunker
|
||||
ConditionPathExists=/run/ostree-booted
|
||||
Wants=local-fs.target
|
||||
After=local-fs.target
|
||||
Before=systemd-user-sessions.service
|
||||
# Before=systemd-sysusers.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=bash -c 'touch /etc/gshadow && chmod 600 /etc/gshadow'
|
||||
ExecStart=bash -c 'rm /etc/gshadow'
|
||||
ExecStart=systemd-sysusers
|
||||
ExecStart=rechunker-group-fix
|
||||
ExecStart=systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target multi-user.target
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# Workaround to allow KDE Discover to install sddm themes
|
||||
# TODO: Remove this whenever sddm allows installing themes other than in /usr/share.
|
||||
# See https://github.com/sddm/sddm/issues/1561
|
||||
|
||||
[Unit]
|
||||
Description=KDE writable sddm workaround
|
||||
RequiresMountsFor=/usr /var
|
||||
ConditionPathExists=/usr/share/sddm
|
||||
ConditionPathExists=/var/sddm_themes/themes
|
||||
ConditionPathExists=/var/sddm_themes/themes.work
|
||||
PartOf=aurora-kde-themes-workaround.target
|
||||
|
||||
[Mount]
|
||||
Type=overlay
|
||||
What=overlay
|
||||
Where=/usr/share/sddm/themes
|
||||
Options=lowerdir=/usr/share/sddm/themes,upperdir=/var/sddm_themes/themes,workdir=/var/sddm_themes/themes.work
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
# Workaround to allow KDE Discover to install sddm themes
|
||||
# TODO: Remove this whenever sddm allows installing themes other than in /usr/share.
|
||||
# See https://github.com/sddm/sddm/issues/1561
|
||||
|
||||
d /var/sddm_themes/themes 0755 - - -
|
||||
d /var/sddm_themes/themes.work 0755 - - -
|
||||
Loading…
Reference in a new issue