48 lines
1.8 KiB
Bash
48 lines
1.8 KiB
Bash
# gnome-network-displays-bin - prebuilt package of
|
|
# https://gitlab.gnome.org/GNOME/gnome-network-displays
|
|
# (GNOME screencasting via Miracast/Chromecast, C + GTK4/LibAdwaita).
|
|
#
|
|
# Upstream publishes no binary assets, so build_artifact() builds from the
|
|
# GitLab release tarball.
|
|
|
|
GITLAB_PROJECT="GNOME%2Fgnome-network-displays"
|
|
|
|
# Installed in CI (pacman) before build_artifact runs.
|
|
BUILD_DEPS=(meson ninja glib2-devel gettext gtk4 libadwaita gstreamer
|
|
gst-rtsp-server gst-plugins-bad json-glib libnm libportal
|
|
libportal-gtk4 libpulse libsoup3 protobuf-c avahi)
|
|
|
|
latest_version() {
|
|
curl -sf "https://gitlab.gnome.org/api/v4/projects/$GITLAB_PROJECT/releases?per_page=1" \
|
|
| jq -r '.[0].tag_name' | sed 's/^v//'
|
|
}
|
|
|
|
# build_artifact <version> <output-file>
|
|
build_artifact() {
|
|
local ver="$1" outfile="$2"
|
|
local workdir destdir srctree
|
|
workdir="$(mktemp -d)"
|
|
destdir="$(mktemp -d)"
|
|
|
|
curl -sfL "https://gitlab.gnome.org/GNOME/gnome-network-displays/-/archive/$ver/gnome-network-displays-$ver.tar.gz" \
|
|
| tar -xz -C "$workdir"
|
|
srctree="$workdir/gnome-network-displays-$ver"
|
|
|
|
# Arch has no /usr/libexec; same fix as the AUR source package
|
|
sed -i 's/libexec/lib/g' "$srctree/src/nd-systemd-helpers.c" "$srctree/src/meson.build"
|
|
|
|
meson setup "$workdir/build" "$srctree" --prefix=/usr --buildtype=release
|
|
meson install -C "$workdir/build" --destdir "$destdir"
|
|
|
|
# These caches are generated by pacman hooks; shipping them would cause
|
|
# file conflicts on install.
|
|
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
|
"$destdir/usr/share/applications/mimeinfo.cache" \
|
|
"$destdir/usr/share/icons/hicolor/icon-theme.cache"
|
|
|
|
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
|
|
-cf "$outfile" -C "$destdir" usr
|
|
|
|
rm -rf "$workdir" "$destdir"
|
|
}
|