File phosh.spec of Package phosh
#
# spec file for package phosh
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: phosh
Version: 0.41.1
Release: 0
Summary: Graphical shell for mobile devices
License: GPL-3.0-or-later
URL: https://gitlab.gnome.org/World/Phosh/phosh
Source0: %{name}-%{version}.tar.zst
# This library doesn't compile into a DSO or ever has had any releases.
# Other projects, such as gnome-shell use it this way.
Source1: phosh_pam
Source2: sm.puri.OSK0.desktop
BuildRequires: Mesa-dri
BuildRequires: Mesa-dri-devel
BuildRequires: Mesa-libEGL-devel
BuildRequires: Mesa-libGL-devel
BuildRequires: at-spi2-core
BuildRequires: cmake
BuildRequires: desktop-file-utils
BuildRequires: feedbackd-devel
BuildRequires: gcc
BuildRequires: git
BuildRequires: gnome-session
BuildRequires: gnome-session-wayland
BuildRequires: gnome-themes-extras
BuildRequires: gsettings-backend-dconf
BuildRequires: libgcr-devel
BuildRequires: libgnome-desktop-3-devel
BuildRequires: meson >= 1.0.0
BuildRequires: mutter
BuildRequires: pam-devel
BuildRequires: pkgconfig
BuildRequires: systemd-rpm-macros
BuildRequires: xauth
BuildRequires: xvfb-run
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(evince-document-3.0)
BuildRequires: pkgconfig(gcr-3) >= 3.7.5
BuildRequires: pkgconfig(gio-2.0) >= 2.76
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.76
BuildRequires: pkgconfig(glib-2.0) >= 2.76
BuildRequires: pkgconfig(gmobile)
BuildRequires: pkgconfig(gnome-bluetooth-3.0)
BuildRequires: pkgconfig(gnome-desktop-3.0) >= 3.26
BuildRequires: pkgconfig(gobject-2.0) >= 2.76
BuildRequires: pkgconfig(gsettings-desktop-schemas)
BuildRequires: pkgconfig(gtk+-3.0) >= 3.22
BuildRequires: pkgconfig(gtk+-wayland-3.0) >= 3.22
BuildRequires: pkgconfig(gudev-1.0)
BuildRequires: pkgconfig(libadwaita-1)
BuildRequires: pkgconfig(libcallaudio-0.1)
BuildRequires: pkgconfig(libecal-2.0)
BuildRequires: pkgconfig(libfeedback-0.0) >= 0.2.0
BuildRequires: pkgconfig(libhandy-1) >= 1.2.0
BuildRequires: pkgconfig(libnm) >= 1.14
BuildRequires: pkgconfig(libpulse) >= 2.0
BuildRequires: pkgconfig(libpulse-mainloop-glib)
BuildRequires: pkgconfig(libsecret-1)
BuildRequires: pkgconfig(libsystemd) >= 241
BuildRequires: pkgconfig(polkit-agent-1) >= 0.105
BuildRequires: pkgconfig(upower-glib) >= 0.99.1
BuildRequires: pkgconfig(wayland-client) >= 1.14
BuildRequires: pkgconfig(wayland-protocols) >= 1.12
Requires: gnome-session
Requires: gsettings-desktop-schemas
Requires: hicolor-icon-theme
Requires: iio-sensor-proxy
Requires: lato-fonts
Requires: libcap-progs
Requires: phoc
Recommends: feedbackd
%{?systemd_ordering}
%description
Phosh is a simple shell for Wayland compositors speaking the layer-surface
protocol. It currently supports
* a lockscreen
* brightness control and nighlight
* the gcr system-prompter interface
* acting as a polkit auth agent
* enough of org.gnome.Mutter.DisplayConfig to make gnome-settings-daemon happy
* a homebutton that toggles a simple favorites menu
* status icons for battery, wwan and wifi
%package devel
Summary: Graphical shell for mobile devices
Requires: %{name} = %{version}
%description devel
Phosh is a simple shell for Wayland compositors speaking the layer-surface
protocol. It currently supports
* a lockscreen
* brightness control and nighlight
* the gcr system-prompter interface
* acting as a polkit auth agent
* enough of org.gnome.Mutter.DisplayConfig to make gnome-settings-daemon happy
* a homebutton that toggles a simple favorites menu
* status icons for battery, wwan and wifi
%lang_package
%prep
%autosetup -p1
%build
%meson \
-Dtests=false \
-Dphoc_tests=disabled \
%{nil}
%meson_build
%install
install -Dpm 0644 %{SOURCE1} %{buildroot}%{_pam_vendordir}/phosh
%meson_install
%find_lang %{name}
install -Dpm 0644 data/phosh.service %{buildroot}%{_unitdir}/phosh.service
install -Dpm 0644 %{SOURCE2} %{buildroot}%{_datadir}/applications/
%check
desktop-file-validate \
%{buildroot}/%{_datadir}/applications/sm.puri.Phosh.desktop
# Disable tests for now, fails due to missing example app
# LC_ALL=C.UTF-8 xvfb-run sh <<'SH'
# %%meson_test
# SH
%pre
%service_add_pre phosh.service
%post
%service_add_post phosh.service
%preun
%service_del_preun phosh.service
%postun
%service_del_postun phosh.service
%files
%license COPYING
%doc NEWS README.md
%{_bindir}/phosh-session
%{_libexecdir}/phosh
%{_datadir}/applications/sm.puri.Phosh.desktop
%{_datadir}/applications/sm.puri.OSK0.desktop
%{_datadir}/glib-2.0/schemas/sm.puri.phosh.gschema.xml
%{_datadir}/glib-2.0/schemas/sm.puri.phosh.enums.xml
%{_datadir}/glib-2.0/schemas/00_mobi.Phosh.gschema.override
%{_datadir}/glib-2.0/schemas/sm.puri.phosh.plugins.ticket-box.gschema.xml
%{_datadir}/glib-2.0/schemas/sm.puri.phosh.plugins.launcher-box.gschema.xml
%{_datadir}/gnome-session/sessions/phosh.session
%{_datadir}/wayland-sessions/phosh.desktop
%{_datadir}/phosh
%{_datadir}/icons/hicolor/symbolic/apps/sm.puri.Phosh-symbolic.svg
%{_pam_vendordir}/phosh
%{_unitdir}/phosh.service
%dir %{_userunitdir}/gnome-session@phosh.target.d
%{_userunitdir}/gnome-session@phosh.target.d/session.conf
%{_userunitdir}/sm.puri.Phosh.service
%{_userunitdir}/sm.puri.Phosh.target
%dir %{_datadir}/xdg-desktop-portal/portals
%{_datadir}/xdg-desktop-portal/portals/phosh.portal
%{_datadir}/xdg-desktop-portal/phosh-portals.conf
%dir %{_libdir}/phosh
%dir %{_libdir}/phosh/plugins
%dir %{_libdir}/phosh/plugins/prefs
%{_libdir}/phosh/plugins/calendar.plugin
%{_libdir}/phosh/plugins/emergency-info.plugin
%{_libdir}/phosh/plugins/launcher-box.plugin
%{_libdir}/phosh/plugins/libphosh-plugin-launcher-box.so
%{_libdir}/phosh/plugins/libphosh-plugin-calendar.so
%{_libdir}/phosh/plugins/libphosh-plugin-emergency-info.so
%{_libdir}/phosh/plugins/libphosh-plugin-ticket-box.so
%{_libdir}/phosh/plugins/libphosh-plugin-upcoming-events.so
%{_libdir}/phosh/plugins/prefs/libphosh-plugin-prefs-ticket-box.so
%{_libdir}/phosh/plugins/prefs/libphosh-plugin-prefs-emergency-info.so
%{_libdir}/phosh/plugins/ticket-box.plugin
%{_libdir}/phosh/plugins/upcoming-events.plugin
%{_libdir}/phosh/plugins/caffeine-quick-setting.plugin
%{_libdir}/phosh/plugins/dark-mode-quick-setting.plugin
%{_libdir}/phosh/plugins/libphosh-plugin-caffeine-quick-setting.so
%{_libdir}/phosh/plugins/libphosh-plugin-dark-mode-quick-setting.so
%{_libdir}/phosh/plugins/libphosh-plugin-mobile-data-quick-setting.so
%{_libdir}/phosh/plugins/libphosh-plugin-night-light-quick-setting.so
%{_libdir}/phosh/plugins/libphosh-plugin-simple-custom-quick-setting.so
%{_libdir}/phosh/plugins/libphosh-plugin-wifi-hotspot-quick-setting.so
%{_libdir}/phosh/plugins/mobile-data-quick-setting.plugin
%{_libdir}/phosh/plugins/night-light-quick-setting.plugin
%{_libdir}/phosh/plugins/simple-custom-quick-setting.plugin
%{_libdir}/phosh/plugins/wifi-hotspot-quick-setting.plugin
%{_libexecdir}/phosh-calendar-server
%{_datadir}/dbus-1/services/sm.puri.Phosh.CalendarServer.service
%files lang -f %{name}.lang
%files devel
%{_includedir}/phosh/
%{_libdir}/pkgconfig/phosh-settings.pc
%{_libdir}/pkgconfig/phosh-plugins.pc
%changelog