Skip to content

Commit

Permalink
overlay/15fcos: ensure valid aleph file
Browse files Browse the repository at this point in the history
Due to an ordering mishap, some builds have both a `version` and a
`build` field. This causes bootupctl to fail while parsing the file.

Detect this case, and fix the aleph if necessary by removing the `build`
field.

This should be removed after the next barrier release.

Fixes: coreos/fedora-coreos-tracker#1724

Co-authored-by: Jonathan Lebon <jonathan@jlebon.com>
  • Loading branch information
jbtrystram and jlebon committed Jun 27, 2024
1 parent dfb0b16 commit 3467113
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
3 changes: 3 additions & 0 deletions overlay.d/15fcos/usr/lib/systemd/system-preset/45-fcos.preset
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@ enable fwupd-refresh.timer
# Check if wifi firmwares are missing when NetworkManager-wifi is installed
# https://github.com/coreos/fedora-coreos-tracker/issues/1575
enable coreos-check-wireless-firmwares.service
# Strip extraneous field in aleph files to avoid bootupctl failing
# https://github.com/coreos/fedora-coreos-tracker/issues/1724
enable coreos-fix-aleph-file.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Remove after the next barrier release

[Unit]
Description=Fix CoreOS Aleph File
Documentation=https://github.com/coreos/fedora-coreos-tracker/issues/1724

[Service]
Type=oneshot
ExecStart=/usr/libexec/coreos-fix-aleph-file
RemainAfterExit=yes
MountFlags=slave

[Install]
WantedBy=multi-user.target
28 changes: 28 additions & 0 deletions overlay.d/15fcos/usr/libexec/coreos-fix-aleph-file
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/usr/bin/bash

# This script removes the extra `version` field
# which was shipped in a couple of builds
# when switching to the `build` field
# To be removed after the next barrier release.
# see https://github.com/coreos/fedora-coreos-tracker/issues/1724 for more details

set -euo pipefail

ALEPH_FILE=/sysroot/.coreos-aleph-version.json

if ! jq -e 'has("build") and has("version")' ${ALEPH_FILE}; then
echo "Aleph file does not require fixing"
exit
fi

echo "Aleph file is invalid; fixing"

# remount /sysroot as writable
mount -o rw,remount /sysroot

# remove field "build"
fixed_aleph=$(jq 'del(.build)' ${ALEPH_FILE})

echo "$fixed_aleph" > ${ALEPH_FILE}

echo "Aleph file is fixed"

0 comments on commit 3467113

Please sign in to comment.