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
openSUSE Build Service is sponsored by