The bridge runs a background process at login and is no longer needed now that Discord and Zoom support the desktop portal. Closes #3066
172 lines
5.3 KiB
Bash
Executable file
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::"
|