diff --git a/extra-repos/systemd/phosh/APKBUILD b/extra-repos/systemd/phosh/APKBUILD new file mode 100644 index 0000000000000000000000000000000000000000..c0d3b8db31b95587c6688dbd41990a1f14274bc1 --- /dev/null +++ b/extra-repos/systemd/phosh/APKBUILD @@ -0,0 +1,137 @@ +# Contributor: Bart Ribbers <bribbers@disroot.org> +# Contributor: Danct12 <danct12@disroot.org> +# Contributor: Newbyte <newbyte@disroot.org> +# Contributor: Rasmus Thomsen <oss@cogitri.dev> +# Maintainer: team/phosh <newbyte@postmarketos.org> +pkgname=phosh +pkgver=0.44.0 +pkgrel=1 +pkgdesc="Wayland shell for GNOME on mobile devices" +# armhf: blocked by gnome-shell-schemas +arch="all !armhf" +url="https://gitlab.gnome.org/World/Phosh/phosh" +license="GPL-3.0-only" +triggers="$pkgname.trigger=/usr/lib/phosh/plugins/prefs" +depends=" + adwaita-icon-theme + bash + dbus-x11 + dbus:org.freedesktop.Secrets + desktop-file-utils + font-adobe-source-code-pro + font-cantarell + gnome-control-center + gnome-session + gnome-settings-daemon + gnome-shell-schemas + gsettings-desktop-schemas + phoc + phosh-keyboard + xwayland + " +makedepends=" + callaudiod-dev + elogind-dev + evince-dev + evolution-data-server-dev + feedbackd-dev + gcr-dev + gettext-dev + glib-dev + gmobile-dev + gnome-bluetooth-dev + gnome-desktop-dev + gtk+3.0-dev + libadwaita-dev + libgudev-dev + libhandy1-dev + libsecret-dev + linux-pam-dev + meson + modemmanager-dev + networkmanager-dev + polkit-elogind-dev + pulseaudio-dev + py3-docutils + upower-dev + wayland-dev + wayland-protocols + " +checkdepends="xvfb-run" +# the ordering here is important - libphosh split functions need to run first to move the libphosh-0 +# headers/pkgconfig/lib into the libphosh packages, before the top level -dev package gobbles +# up the rest. +subpackages=" + libphosh:libs + libphosh-dev:libphosh_dev + $pkgname-dbg + $pkgname-dev + $pkgname-doc + $pkgname-lang + $pkgname-portalsconf + $pkgname-systemd:_systemd_user + " +source="https://sources.phosh.mobi/releases/phosh/phosh-${pkgver/_/.}.tar.xz + phosh.desktop + " +builddir="$srcdir/$pkgname-${pkgver/_/.}" + +prepare() { + default_prepare + sed -i 's/\.rc/_rc/' meson.build +} + +build() { + # phoc tests need a running Wayland compositor + abuild-meson \ + -Db_lto=true \ + -Dphoc_tests=disabled \ + -Dman=true \ + -Dbindings-lib=true \ + . output + meson compile -C output +} + +check() { + xvfb-run -a meson test --no-rebuild --print-errorlogs -C output +} + +package() { + DESTDIR="$pkgdir/" meson install --no-rebuild --skip-subprojects -C output + + install -D -m644 "$srcdir"/phosh.desktop \ + "$pkgdir"/usr/share/wayland-sessions/phosh.desktop + + # https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/64741#note_402279 + rm -r "$pkgdir"/usr/lib/systemd/system +} + +portalsconf() { + install_if="$pkgname=$pkgver-r$pkgrel xdg-desktop-portal>=1.17.1" + amove usr/share/xdg-desktop-portal/phosh-portals.conf +} + +libphosh_dev() { + local _soname="libphosh-${pkgver%.*}" + amove usr/include/$_soname + amove usr/lib/$_soname.so + amove usr/lib/pkgconfig/$_soname.pc +} + +# This is a temporary workaround til abuild supports _systemd and is depended +# upon downstream in phosh-systemd. +# Phosh gains more and more gnome-session integration, this is heavily systemd +# dependend when gnome-session is built with systemd support. +# Vendoring these files manually in pmOS is quite britle, we would otherwise +# have to fork phosh or make a lot of version pinning. +# TODO: when we drop this subpackage, add a {provides,replaces}="$pkgname-systemd-user" to systemd() +_systemd_user() { + pkgdesc="User units for phosh" + + amove usr/lib/systemd/user +} + +sha512sums=" +8dde81b55d00725e8bd1fc86a8167c46ead0dc53e69b57b2c3965fe7185cbfaf8a232ca922e2459e0d9421fd1dac6153b4c0b057dd980789c60fe86a6651e405 phosh-0.44.0.tar.xz +8ca4893a751311de326e198314669f5a276092ade99c6353c4c9ce070713fb1a5b1615e7fecb93b428dc79fd4001a9af43d24eafaf2545d7db464963fda25330 phosh.desktop +" diff --git a/extra-repos/systemd/phosh/phosh.desktop b/extra-repos/systemd/phosh/phosh.desktop new file mode 100644 index 0000000000000000000000000000000000000000..386325d329572481c1775e4187d87b2df116cbc5 --- /dev/null +++ b/extra-repos/systemd/phosh/phosh.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Phosh +Name[en]=Phosh +Comment=This session logs you into Phosh +Comment[en]=This session logs in you into Phosh +Exec=dbus-run-session /usr/bin/phosh-session +TryExec=/usr/bin/phosh-session +Type=Application +DesktopNames=Phosh:GNOME +Keywords=launch;Phosh;desktop;session; diff --git a/extra-repos/systemd/phosh/phosh.trigger b/extra-repos/systemd/phosh/phosh.trigger new file mode 100644 index 0000000000000000000000000000000000000000..e89490b3c01e7cbdc2c38a60c2f78e6182a5aa6f --- /dev/null +++ b/extra-repos/systemd/phosh/phosh.trigger @@ -0,0 +1,9 @@ +#!/bin/sh + +for i in "$@"; do + if ! [ -e "$i" ]; then + continue + fi + /usr/bin/gio-querymodules "$i" +done + diff --git a/extra-repos/systemd/systemd-services/APKBUILD b/extra-repos/systemd/systemd-services/APKBUILD index f4411365ace7e2b542e43828feec7a86e15dc80d..cb700d4514701a08c15dcff8237d27a843cc3dee 100644 --- a/extra-repos/systemd/systemd-services/APKBUILD +++ b/extra-repos/systemd/systemd-services/APKBUILD @@ -6,7 +6,7 @@ # How to add a new service file (5 steps): pkgname=systemd-services # 1. bump pkgver -pkgver=36 +pkgver=37 pkgrel=0 pkgdesc="Systemd service files" url="https://postmarketos.org" @@ -251,6 +251,8 @@ _wireplumber_user_presets="wireplumber.service" _wpa_supplicant_system_presets="wpa_supplicant.service" _xdg_desktop_portal_user_presets="xdg-desktop-portal-rewrite-launchers.service" +_dependencies_phosh="phosh-systemd-user" + _service() { local name=$(echo ${subpkgname%%-systemd}) local n=$(echo ${subpkgname%-systemd} | sed s/-/_/g) @@ -275,6 +277,14 @@ _service() { install -Dm$mode "$srcdir/$(flatpath "$f")" "$prefix/$f" done + depends="$(eval "echo \$_dependencies_${n}")" + if ! depends_has systemd; then + depends="$depends systemd" + fi + if ! depends_has "$name"; then + depends="$depends $name" + fi + for t in user system; do local presets presets="$(eval "echo \$_${n}_${t}_presets" || true)"