# 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 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" }