aurora/build_scripts/base/20-tests.sh
Quinn! 6ee91e0dca
chore: remove xwaylandvideobridge (#3082)
The bridge runs a background process at login and is no longer needed
now that Discord and Zoom support the desktop portal.

Closes #3066
2026-10-24 01:08:00 +00:00

172 lines
5.3 KiB
Bash
Executable file

#!/usr/bin/bash
echo "::group:: ===$(basename "$0")==="
set -eoux pipefail
# We need to have the ublue-os signing keys on the image!
# Published images without these keys won't be able to pull ghcr.io/ublue-os/*
# and can therefore not update!
# https://github.com/ublue-os/main/blob/963609eaf01f7c2bb1a76821fe6d0ec269d2df25/build_files/install.sh#L56
# https://github.com/ublue-os/packages/tree/1f77c7e7faa9ebad120609a10d79e0412376c3b7/packages/ublue-os-signing/src
KEY1=$(jq -r '.transports.docker."ghcr.io/ublue-os"[0].keyPaths[0]' /etc/containers/policy.json)
BACKUP_KEY=$(jq -r '.transports.docker."ghcr.io/ublue-os"[0].keyPaths[1]' /etc/containers/policy.json)
KEY1_SHA256="af78ecfda6eb21c35195af3739341715e9cfc3f2f5911dd9c10b0670547bf6e8"
BACKUP_KEY_SHA256="b723467015ba562d40b4645c98c51c65d8254bb59444f6e9962debcfe2315da0"
RPM_OSTREED_CONF_SHA256="f48bb2359e9c31ed464127048138993e2e058bb648e5fd9ba7b7386a2b5eb174"
echo "${RPM_OSTREED_CONF_SHA256} /etc/rpm-ostreed.conf" | sha256sum -c -
echo "${KEY1_SHA256} ${KEY1}" | sha256sum -c -
echo "${BACKUP_KEY_SHA256} ${BACKUP_KEY}" | sha256sum -c -
# branding related changes
test -f /usr/share/icons/hicolor/scalable/distributor-logo.svg
test -f /usr/share/pixmaps/system-logo-white.png
test -f /usr/share/icons/hicolor/scalable/apps/start-here.svg
test -f /usr/share/pixmaps/fedora-logo.svg
test -d /usr/share/plasma/look-and-feel/dev.getaurora.aurora.desktop
test -f /usr/share/backgrounds/aurora/aurora-wallpaper-10/contents/images/3840x2160.jxl
test -f /usr/share/wallpapers/aurora-wallpaper-10/contents/images/3840x2160.jxl
test -L /usr/share/backgrounds/default.jxl
xmllint --noout \
/usr/share/backgrounds/default.xml
# If this file is not on the image bazaar will automatically be removed from users systems :(
# See: https://docs.flatpak.org/en/latest/flatpak-command-reference.html#flatpak-preinstall
test -f /usr/share/flatpak/preinstall.d/bazaar.preinstall
# Make sure this garbage never makes it to an image
test -f /usr/lib/systemd/system/flatpak-add-fedora-repos.service && false
# Is flathub enabled by default?
test -f /usr/share/flatpak/remotes.d/flathub.flatpakrepo
# 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
desktop-file-validate \
/usr/share/applications/dev.getaurora.discussions.desktop \
/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
# Check for KDE Plasma version mismatch
# Fedora Repos have gotten the newer one, trying to upgrade
KDE_VER="$(rpm -q --qf '%{VERSION}' plasma-desktop)"
# package picked by failures in the past
KSCREEN_VERS="$(rpm -q --qf '%{VERSION}' kscreen)"
KWIN_VERS="$(rpm -q --qf '%{VERSION}' kwin)"
# Doing QT as well just in case, we have a versionlock in main
QT_VER="$(rpm -q --qf '%{VERSION}' qt6-qtbase)"
# Not an important package in itself, just a good indicator
QTFS_VER="$(rpm -q --qf '%{VERSION}' qt6-filesystem)"
if [[ "$KDE_VER" != "$KSCREEN_VERS" || "$KDE_VER" != "$KWIN_VERS" ]]; then
echo "KDE Version mismatch"
exit 1
fi
if [[ "$QT_VER" != "$QTFS_VER" ]]; then
echo "QT Version mismatch"
exit 1
fi
IMPORTANT_PACKAGES=(
distrobox
fish
flatpak
krunner-bazaar
kwin
pipewire
plasma-desktop
podman
plasma-login-manager
Sunshine
systemd
tailscale
uupd
wireplumber
zsh
)
for package in "${IMPORTANT_PACKAGES[@]}"; do
rpm -q "${package}" >/dev/null || { echo "Missing package: ${package}... Exiting"; exit 1 ; }
done
# these should be sourced from negativo's fedora-multimedia repo
# as Fedora can't ship patent encumbered video codecs
NEGATIVO=(
ffmpeg
libheif
libva
mesa-filesystem
mesa-dri-drivers
pipewire-libs-extra
x264-libs
x265-libs
)
for package in "${NEGATIVO[@]}"; do
rpm -q --qf "%{NAME} %{VENDOR}" "${package}" | grep -q "negativo17\.org" || { echo "${package} not from negativo... Exiting"; exit 1 ; }
done
# these packages are supposed to be removed
# and are considered footguns
UNWANTED_PACKAGES=(
akonadi-server
fedora-flathub-remote
fedora-logos
fedora-third-party
firefox
plasma-discover
xwaylandvideobridge
)
for package in "${UNWANTED_PACKAGES[@]}"; do
if rpm -q "${package}" >/dev/null 2>&1; then
echo "Unwanted package found: ${package}... Exiting"; exit 1
fi
done
if [[ "${IMAGE_NAME}" =~ nvidia ]]; then
NV_PACKAGES=(
kmod-nvidia
libnvidia-container-tools
nvidia-driver-cuda
)
for package in "${NV_PACKAGES[@]}"; do
rpm -q "${package}" >/dev/null || { echo "Missing NVIDIA package: ${package}... Exiting"; exit 1 ; }
done
fi
IMPORTANT_UNITS=(
rpm-ostree-countme.timer
tailscaled.service
ublue-system-setup.service
uupd.timer
)
for unit in "${IMPORTANT_UNITS[@]}"; do
if ! systemctl is-enabled "$unit" 2>/dev/null | grep -q "^enabled$"; then
echo "${unit} is not enabled"
exit 1
fi
done
if [[ "${IMAGE_FLAVOR}" == "dx" ]]; then
/ctx/build_scripts/dx/10-tests-dx.sh;
fi
/ctx/build_scripts/shared/validate-repos.sh
echo "::endgroup::"