From 1fc1bca4767f9876dd6d6cb102e76ab8d8bca120 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 17 Nov 2021 11:14:15 +0100
Subject: [PATCH v3 5/5] gnu: Add phosh.
* gnu/packages/gnome.scm (phosh): New variable.
@@ -91,6 +91,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)
@@ -1353,6 +1354,112 @@ (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
+ `(#:modules ((guix build meson-build-system)
+ ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ (guix build utils)
+ (ice-9 match))
+ #:imported-modules ((guix build glib-or-gtk-build-system)
+ ,@%meson-build-system-modules)
+ #: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")))
+ ;; we use elogind instead of systemd
+ (add-after 'unpack 'patch-systemd
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "meson.build"
+ (("libsystemd") "libelogind"))
+ (substitute* "src/meson.build"
+ (("libsystemd_dep") "libelogind_dep"))
+ (substitute* "src/util.c"
+ (("systemd/sd-login.h") "elogind/sd-login.h"))
+ (substitute* "src/main.c"
+ (("systemd/sd-daemon.h") "elogind/sd-daemon.h"))))
+ (add-before 'configure 'fix-phoc-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "data/phosh.in"
+ (("@bindir@") (string-append (assoc-ref inputs "phoc") "/bin")))))
+ (add-after 'install 'glib-or-gtk-compile-schemas
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+ (add-after 'install 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+ (delete 'check) ; TODO: needs a running wayland compositor
+ )))
+ (native-inputs
+ `(("elogind" ,elogind)
+ ("gcr" ,gcr)
+ ("gettext" ,gettext-minimal)
+ ("git" ,git)
+ ("glib:bin" ,glib "bin")
+ ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gnome-desktop" ,gnome-desktop)
+ ("gtk+:bin" ,gtk+ "bin")
+ ("pkg-config" ,pkg-config)))
+ (inputs `(
+ ("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)
+ ("polkit" ,polkit)
+ ("upower" ,upower)
+ ("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.34.0