Subject: [bug#44400] [PATCH v2 4/4] WIP: gnu: Add phosh.

From: phodina <[email-masked]>
Date: Wed, 17 Nov 2021 10:19:11 +0000

* gnu/packages/gnome.scm (phosh): New variable.

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9348cf356e..7d9fcce229 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -83,6 +83,7 @@ (define-module (gnu packages gnome)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages aspell)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages backup)
@@ -1278,6 +1279,96 @@ (define-public phodav
    (home-page "https://wiki.gnome.org/phodav")
    (license license:lgpl2.1+)))

+(define-public phosh
+  (package
+    (name "phosh")
+    (version "0.14.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/Phosh/phosh")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0fhp2jmwjzzxd66b4figc2wdpzdjycpq3cf4lx3z04dzl9vmw65a"))))
+    (build-system meson-build-system)
+    (arguments
+	 `(#:meson ,meson-next
+       #:phases
+       (modify-phases %standard-phases
+	   (add-after 'unpack 'get-libgnome-volume-control
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "libgnome-volume-control-source")
+                               "subprojects/gvc")))
+	   (add-after 'unpack 'get-libcall-ui
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "libcall-ui")
+                               "subprojects/libcall-ui")))
+	   (add-after 'unpack 'patch-systemd
+           (lambda* (#:key inputs #:allow-other-keys)
+		    (substitute* "meson.build"
+			(("libsystemd_dep") "#libsystemd_dep"))
+		    (substitute* "src/meson.build"
+			(("libsystemd_dep") "#libsystemd_dep"))))
+         (add-before 'configure 'fix-phoc-path
+           (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "data/phosh.in"
+                  (("@bindir@") (string-append (assoc-ref inputs "phoc") "/bin")))))
+         (delete 'check) ; TODO: needs a running wayland compositor
+                     )))
+    (native-inputs
+     `(("gcr" ,gcr)
+       ("gettext" ,gettext-minimal)
+	   ("git" ,git)
+       ("glib:bin" ,glib "bin")
+       ("gnome-desktop" ,gnome-desktop)
+       ("gtk+:bin" ,gtk+ "bin")
+	   ("libgnome-volume-control-source" ; needs to be present in subprojects/gvc folder
+        ,(origin
+	         (method git-fetch)
+           (uri (git-reference
+                 (url "https://gitlab.gnome.org/GNOME/libgnome-volume-control.git")
+                 (commit "ae1a34aafce7026b8c0f65a43c9192d756fe1057")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw"))))
+	   ("libcall-ui" ; needs to be present in subprojects/libcall-ui folder
+        ,(origin
+	         (method git-fetch)
+           (uri (git-reference
+                 (url "https://gitlab.gnome.org/World/Phosh/libcall-ui")
+                 (commit "465f6add090b623fb80c6c5cbb9ab2880ff531a4")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "1as857npl2yra4zh4bfph9wvhvjck53i2qp3zzbv3mbpi36nscfr"))))
+       ("callaudiod" ,callaudiod)
+       ("libsecret" ,libsecret)
+       ("linux-pam" ,linux-pam)
+       ("network-manager" ,network-manager)
+       ("pkg-config" ,pkg-config)
+       ("polkit" ,polkit)
+       ("upower" ,upower)))
+    (inputs
+     `(("feedbackd" ,feedbackd)
+       ("libhandy" ,libhandy)
+	   ("libgudev" ,libgudev)
+       ("pulseaudio" ,pulseaudio)))
+    (propagated-inputs
+      ;; "missing" schema files
+      ;; org.gnome.DejaDup.File org.guido-berhoerster.code.package-update-indicator org.blueberry
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ;org.gnome.desktop.wm.keybindings
+       ("gnome-session" ,gnome-session)
+       ("mutter" ,mutter) ;org.gnome.mutter.keybindings
+       ("network-manager-applet" ,network-manager-applet) ;org.gnome.nm-applet
+       ("phoc" ,phoc))) ;sm.puri.phoc
+    (synopsis "Wayland shell for GNOME on mobile devices")
+    (description "Phosh is a pure Wayland prototype intended for mobile devices.")
+    (home-page "https://gitlab.gnome.org/World/Phosh/phosh")
+    (license license:gpl3+)))
+
 (define-public gnome-color-manager
   (package
    (name "gnome-color-manager")
--
2.33.0