Skip to content

Commit d6631ea

Browse files
committed
feat: move to timothee's ci-test silverblue image
We don't really need <https://github.com/ublue-os/main> anymore, this should trim down on a few packages over time. THIS ALSO UNBLOCKS ARM which is amazing Signed-off-by: Tulip Blossom <tulilirockz@outlook.com>
1 parent 849c932 commit d6631ea

10 files changed

Lines changed: 85 additions & 37 deletions

File tree

.github/renovate.json5

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"automerge": true,
4343
"matchUpdateTypes": ["digest"],
4444
"matchDepNames": [
45-
"ghcr.io/ublue-os/silverblue-main",
45+
"quay.io/fedora-ostree-desktops/silverblue"
4646
"ghcr.io/projectbluefin/common"
4747
]
4848
}

Containerfile

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
ARG BASE_IMAGE_NAME="silverblue"
2-
ARG FEDORA_MAJOR_VERSION="42"
3-
ARG SOURCE_IMAGE="${BASE_IMAGE_NAME}-main"
4-
ARG BASE_IMAGE="ghcr.io/ublue-os/${SOURCE_IMAGE}"
2+
ARG FEDORA_MAJOR_VERSION="43"
3+
ARG BASE_IMAGE="quay.io/fedora-ostree-desktops/silverblue"
54
ARG COMMON_IMAGE="ghcr.io/projectbluefin/common:latest"
65
ARG COMMON_IMAGE_SHA=""
76
ARG BREW_IMAGE="ghcr.io/ublue-os/brew:latest"

Justfile

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,6 @@ build $image="bluefin" $tag="latest" $flavor="main" rechunk="0" ghcr="0" pipelin
109109
common_image_sha=$(yq -r '.images[] | select(.name == "common") | .digest' image-versions.yml)
110110
brew_image_sha=$(yq -r '.images[] | select(.name == "brew") | .digest' image-versions.yml)
111111

112-
# Base Image
113-
base_image_name="silverblue"
114-
115-
116112
# AKMODS Flavor and Kernel Version
117113
if [[ "${flavor}" =~ hwe ]]; then
118114
akmods_flavor="bazzite"
@@ -131,7 +127,7 @@ build $image="bluefin" $tag="latest" $flavor="main" rechunk="0" ghcr="0" pipelin
131127
fedora_version=$({{ just }} fedora_version '{{ image }}' '{{ tag }}' '{{ flavor }}' '{{ kernel_pin }}')
132128

133129
# Verify Base Image with cosign
134-
{{ just }} verify-container "${base_image_name}-main:${fedora_version}"
130+
{{ just }} verify-container silverblue:${fedora_version} quay.io/fedora-ostree-desktops "https://gitlab.com/fedora/ostree/ci-test/-/raw/main/quay.io-fedora-ostree-desktops.pub?ref_type=heads"
135131

136132
# Kernel Release/Pin
137133
if [[ -z "${kernel_pin:-}" ]]; then
@@ -178,7 +174,6 @@ build $image="bluefin" $tag="latest" $flavor="main" rechunk="0" ghcr="0" pipelin
178174
target="dx"
179175
fi
180176
BUILD_ARGS+=("--build-arg" "AKMODS_FLAVOR=${akmods_flavor}")
181-
BUILD_ARGS+=("--build-arg" "BASE_IMAGE_NAME=${base_image_name}")
182177
BUILD_ARGS+=("--build-arg" "COMMON_IMAGE={{ common_image }}")
183178
BUILD_ARGS+=("--build-arg" "COMMON_IMAGE_SHA=${common_image_sha}")
184179
BUILD_ARGS+=("--build-arg" "BREW_IMAGE={{ brew_image }}")
@@ -326,11 +321,10 @@ rechunk $image="bluefin" $tag="latest" $flavor="main" ghcr="0" pipeline="0":
326321

327322
# Cleanup Space during Github Action
328323
if [[ "{{ ghcr }}" == "1" ]]; then
329-
base_image_name=silverblue-main
330324
if [[ "${tag}" =~ stable ]]; then
331325
tag="stable-daily"
332326
fi
333-
ID=$(${SUDOIF} ${PODMAN} images --filter reference=ghcr.io/{{ repo_organization }}/"${base_image_name}":${fedora_version} --format "{{ '{{.ID}}' }}")
327+
ID=$(${SUDOIF} ${PODMAN} images --filter reference=quay.io/fedora-ostree-desktops/silverblue --format "{{ '{{.ID}}' }}")
334328
if [[ -n "$ID" ]]; then
335329
${PODMAN} rmi "$ID"
336330
fi

build_files/base/03-install-kernel-akmods.sh

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ dnf5 -y install \
3333

3434
dnf5 versionlock add kernel kernel-devel kernel-devel-matched kernel-core kernel-modules kernel-modules-core kernel-modules-extra
3535

36-
# Everyone
37-
# NOTE: we won't use dnf5 copr plugin for ublue-os/akmods until our upstream provides the COPR standard naming
38-
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo
36+
dnf copr enable -y ublue-os/akmods
37+
38+
mkdir -p /etc/pki/akmods/certs
39+
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
40+
grep -F -e "Universal Blue" /etc/pki/akmods/certs/akmods-ublue.der
3941

4042
# RPMFUSION Dependent AKMODS
4143
if [[ "${UBLUE_IMAGE_TAG}" == "beta" ]]; then
@@ -122,4 +124,6 @@ if [[ ${AKMODS_FLAVOR} =~ coreos ]]; then
122124
echo "zfs" >/usr/lib/modules-load.d/zfs.conf
123125
fi
124126

127+
dnf copr disable -y ublue-os/akmods
128+
125129
echo "::endgroup::"

build_files/base/04-packages.sh

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,48 @@ FEDORA_PACKAGES=(
8989
xprop
9090
zenity
9191
zsh
92+
adw-gtk3-theme
93+
gvfs-nfs
94+
ibus-unikey
95+
ibus-mozc
96+
97+
alsa-firmware
98+
alsa-tools-firmware
99+
flatpak-spawn
100+
pipewire-libs-extra
101+
oversteer-udev
102+
google-noto-sans-cjk-fonts
103+
grub2-tools-extra
104+
htop
105+
intel-vaapi-driver
106+
libcamera-gstreamer
107+
libcamera-tools
108+
libimobiledevice-utils
109+
libva-utils
110+
lshw
111+
mtools
112+
net-tools
113+
ocl-icd
114+
openrgb-udev-rules
115+
oversteer-udev
116+
pam-u2f
117+
pam_yubico
118+
pamu2fcfg
119+
pipewire-libs-extra
120+
smartmontools
121+
solaar-udev
122+
squashfs-tools
123+
symlinks
124+
tcpdump
125+
traceroute
126+
vim
127+
yubikey-manager
92128
)
93129

130+
if [[ "${IMAGE_NAME}" =~ nvidia ]]; then
131+
dnf install -y nvtop
132+
fi
133+
94134
# Version-specific Fedora package additions
95135
case "$FEDORA_MAJOR_VERSION" in
96136
42)
@@ -115,6 +155,12 @@ dnf config-manager addrepo --from-repofile=https://pkgs.tailscale.com/stable/fed
115155
dnf config-manager setopt tailscale-stable.enabled=0
116156
dnf -y install --enablerepo='tailscale-stable' tailscale
117157

158+
dnf config-manager addrepo --from-repofile=https://negativo17.org/repos/fedora-multimedia.repo
159+
dnf config-manager setopt fedora-multimedia.enabled=0
160+
dnf -y install --enablerepo=fedora-multimedia \
161+
-x PackageKit* \
162+
ffmpeg libavcodec @multimedia gstreamer1-plugins-{bad-free,bad-free-libs,good,base} lame{,-libs} libjxl ffmpegthumbnailer
163+
118164
# From che/nerd-fonts
119165
copr_install_isolated "che/nerd-fonts" "nerd-fonts"
120166

@@ -146,6 +192,10 @@ EXCLUDED_PACKAGES=(
146192
gnome-terminal-nautilus
147193
podman-docker
148194
yelp
195+
totem-video-thumbnailer
196+
gnome-software
197+
google-noto-sans-cjk-vf-fonts
198+
default-fonts-cjk-sans
149199
)
150200

151201
# Version-specific package exclusions

build_files/base/05-override-install.sh

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,23 @@ mkdir -p /usr/share/doc/bluefin
1515
ghcurl "https://github.com/ublue-os/bluefin-docs/releases/download/0.1/bluefin.pdf" --retry 3 -o /tmp/bluefin.pdf
1616
install -Dm0644 -t /usr/share/doc/bluefin/ /tmp/bluefin.pdf
1717

18+
# Footgun, See: https://github.com/ublue-os/main/issues/598
19+
rm -f /usr/bin/chsh /usr/bin/lchsh
20+
21+
# Add linuxbrew to the list of paths usable by `sudo`
22+
# not a sudoers.d override because we want to get updates from upstream and not break everything
23+
sed -Ei "s/secure_path = (.*)/secure_path = \1:\/home\/linuxbrew\/.linuxbrew\/bin/" /etc/sudoers
24+
25+
# https://github.com/ublue-os/main/pull/334
26+
ln -s "/usr/share/fonts/google-noto-sans-cjk-fonts" "/usr/share/fonts/noto-cjk"
27+
28+
29+
# use CoreOS' generator for emergency/rescue boot
30+
# see detail: https://github.com/ublue-os/main/issues/653
31+
mkdir -p /usr/lib/systemd/system-generators
32+
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
33+
chmod +x /usr/lib/systemd/system-generators/coreos-sulogin-force-generator
34+
1835
# Starship Shell Prompt
1936
ghcurl "https://github.com/starship/starship/releases/latest/download/starship-x86_64-unknown-linux-gnu.tar.gz" --retry 3 -o /tmp/starship.tar.gz
2037
tar -xzf /tmp/starship.tar.gz -C /tmp
@@ -28,18 +45,6 @@ sed -i "/picture-uri/ s/${HARDCODED_RPM_MONTH}/$(date +%m)/" "/usr/share/glib-2.
2845
rm /usr/share/glib-2.0/schemas/gschemas.compiled
2946
glib-compile-schemas /usr/share/glib-2.0/schemas
3047

31-
# Required for bluefin faces to work without conflicting with a ton of packages
32-
rm -f /usr/share/pixmaps/faces/* || echo "Expected directory deletion to fail"
33-
mv /usr/share/pixmaps/faces/bluefin/* /usr/share/pixmaps/faces
34-
rm -rf /usr/share/pixmaps/faces/bluefin
35-
36-
# Remove desktop entries
37-
if [[ -f /usr/share/applications/gnome-system-monitor.desktop ]]; then
38-
sed -i 's@\[Desktop Entry\]@\[Desktop Entry\]\nHidden=true@g' /usr/share/applications/gnome-system-monitor.desktop
39-
fi
40-
if [[ -f /usr/share/applications/org.gnome.SystemMonitor.desktop ]]; then
41-
sed -i 's@\[Desktop Entry\]@\[Desktop Entry\]\nHidden=true@g' /usr/share/applications/org.gnome.SystemMonitor.desktop
42-
fi
4348

4449
# Add Mutter experimental-features
4550
if [[ "${IMAGE_NAME}" =~ nvidia ]]; then

build_files/base/17-cleanup.sh

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ systemctl disable flatpak-add-fedora-repos.service
4545
# We only need to clean up repos that were enabled during the build process.
4646

4747
# Disable third-party repos
48-
for repo in negativo17-fedora-multimedia tailscale fedora-cisco-openh264; do
48+
for repo in fedora-multimedia tailscale fedora-cisco-openh264; do
4949
if [[ -f "/etc/yum.repos.d/${repo}.repo" ]]; then
5050
sed -i 's@enabled=1@enabled=0@g' "/etc/yum.repos.d/${repo}.repo"
5151
fi
@@ -58,11 +58,6 @@ for i in /etc/yum.repos.d/_copr:*.repo; do
5858
fi
5959
done
6060

61-
# NOTE: we won't use dnf5 copr plugin for ublue-os/akmods until our upstream provides the COPR standard naming
62-
if [[ -f "/etc/yum.repos.d/_copr_ublue-os-akmods.repo" ]]; then
63-
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo
64-
fi
65-
6661
# Disable RPM Fusion repos
6762
for i in /etc/yum.repos.d/rpmfusion-*.repo; do
6863
if [[ -f "$i" ]]; then

build_files/dx/00-dx.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ systemctl enable bluefin-dx-groups.service
121121
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/fedora-cisco-openh264.repo
122122

123123
# NOTE: we won't use dnf5 copr plugin for ublue-os/akmods until our upstream provides the COPR standard naming
124-
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo
124+
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:ublue-os:akmods.repo
125125

126126
# Disable RPM Fusion repos
127127
for i in /etc/yum.repos.d/rpmfusion-*.repo; do

build_files/shared/build.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ set -eoux pipefail
44

55
echo "::group:: Copy Files"
66

7-
# We need to remove this package here because lots of files we add from `projectbluefin/common` override the rpm files and they also go away when you do `dnf remove`
8-
dnf remove -y ublue-os-luks ublue-os-just ublue-os-udev-rules ublue-os-signing ublue-os-update-services
9-
107
# Conflicts with a ton of packages, has to be removed before we copy all the files as well
118
rpm --erase --nodeps fedora-logos
129

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Changing ID from `fedora` to anything thats not fedora/centos/rhel breaks the COPR plugin
2+
# It'll try to load repositories for `bluefin-43` and fail
3+
[main]
4+
distribution = fedora

0 commit comments

Comments
 (0)