accountsservice/accountsservice.spec

196 lines
6.5 KiB
RPMSpec

#
# spec file for package accountsservice
#
# 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/
#
# allow to not build vala binding
%bcond_without vala
Name: accountsservice
Version: 23.13.9
Release: 0
Summary: D-Bus Service to Manipulate User Account Information
License: GPL-3.0-or-later
Group: System/Daemons
URL: https://www.freedesktop.org/wiki/Software/AccountsService/
Source0: https://www.freedesktop.org/software/accountsservice/%{name}-%{version}.tar.xz
# Patched mocklibc source to fix build with GCC 14
Source1: mocklibc-1.0.tar.gz
# PATCH-FIX-UPSTREAM accountsservice-mocklib-gcc14.patch -- Fix meson checksum to accept patched tarball
Patch0: accountsservice-mocklib-gcc14.patch
# WARNING: do not remove/significantly change patch1 without updating the relevant patch in gdm too
# PATCH-FIX-OPENSUSE accountsservice-sysconfig.patch bnc#688071 vuntz@opensuse.org -- Read/write autologin configuration from sysconfig, like gdm (see gdm-sysconfig-settings.patch) WAS PATCH-FIX-OPENSUSE
Patch1: accountsservice-sysconfig.patch
# PATCH-FIX-OPENSUSE accountsservice-filter-suse-accounts.patch vuntz@opensuse.org -- Filter out some system users that are specific to openSUSE
Patch2: accountsservice-filter-suse-accounts.patch
# PATCH-FIX-OPENSUSE harden_accounts-daemon.service.patch jsegitz@suse.com -- For details please see https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
Patch3: harden_accounts-daemon.service.patch
BuildRequires: gtk-doc
BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(gio-2.0) >= 2.63.5
BuildRequires: pkgconfig(gio-unix-2.0)
BuildRequires: pkgconfig(glib-2.0) >= 2.63.5
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(libsystemd) >= 186
BuildRequires: pkgconfig(polkit-gobject-1)
BuildRequires: pkgconfig(systemd)
%{?systemd_ordering}
%description
The accountsservice server provides a set of D-Bus interfaces for
querying and manipulating user account information.
The implementation is based on the useradd, usermod and userdel
commands.
%package -n libaccountsservice0
Summary: Client library for the user account information manipulation D-Bus service
# Clients do need the server to do something useful
Group: System/Libraries
Requires: %{name}
%description -n libaccountsservice0
The accountsservice server provides a set of D-Bus interfaces for
querying and manipulating user account information.
This package provides a client library for the service.
%package -n typelib-1_0-AccountsService-1_0
Summary: Introspection bindings for the user account information manipulation service
Group: System/Libraries
%description -n typelib-1_0-AccountsService-1_0
The accountsservice server provides a set of D-Bus interfaces for
querying and manipulating user account information.
This package provides the GObject Introspection bindings for the
client library.
%package devel
Summary: Header files for the user account information manipulation service
Group: Development/Libraries/C and C++
Requires: libaccountsservice0 = %{version}
Requires: typelib-1_0-AccountsService-1_0 = %{version}
%description devel
The accountsservice server provides a set of D-Bus interfaces for
querying and manipulating user account information.
%if %{with vala}
%package vala
Summary: Vala bindings for accountsservice
Group: Development/Libraries/C and C++
BuildRequires: vala
Requires: libaccountsservice0 = %{version}
Requires: typelib-1_0-AccountsService-1_0 = %{version}
%description vala
The accountsservice server provides a set of D-Bus interfaces for
querying and manipulating user account information.
This package contains the Vala bindings for accountservice.
%endif
%lang_package
%prep
%setup -q
# inject patched mocklibc tarball into package cache
cp %{SOURCE1} subprojects/packagecache/
%autopatch -p1
%build
%meson \
-Dintrospection=true \
-Dgtk_doc=true \
%if %{with vala}
-Dvapi=true \
%else
-Dvapi=false \
%endif
%{nil}
%meson_build
%install
%meson_install
%find_lang accounts-service
%pre
%service_add_pre accounts-daemon.service
%post
%service_add_post accounts-daemon.service
%preun
%service_del_preun accounts-daemon.service
%postun
%service_del_postun accounts-daemon.service
%post -n libaccountsservice0 -p /sbin/ldconfig
%postun -n libaccountsservice0 -p /sbin/ldconfig
%files
%license COPYING
%doc README.md
%{_unitdir}/accounts-daemon.service
%{_libexecdir}/accounts-daemon
%{_datadir}/dbus-1/system.d/org.freedesktop.Accounts.conf
%{_datadir}/dbus-1/interfaces/org.freedesktop.Accounts.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.Accounts.User.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.Accounts.service
%{_datadir}/polkit-1/actions/org.freedesktop.accounts.policy
# User templates
%dir %{_datadir}/accountsservice
%{_datadir}/accountsservice/user-templates
# Directories where the server stores user data
%dir %{_localstatedir}/lib/AccountsService
%dir %{_localstatedir}/lib/AccountsService/users
%dir %{_localstatedir}/lib/AccountsService/icons
%{_datadir}/locale/en/LC_MESSAGES/accounts-service.mo
%{_datadir}/locale/en_GB/LC_MESSAGES/accounts-service.mo
%files -n libaccountsservice0
%{_libdir}/*.so.0*
%files -n typelib-1_0-AccountsService-1_0
%{_libdir}/girepository-1.0/AccountsService-1.0.typelib
%files devel
%doc AUTHORS TODO
%doc %{_datadir}/gtk-doc/html/lib%{name}/
%{_libdir}/*.so
%{_libdir}/pkgconfig/accountsservice.pc
%{_includedir}/accountsservice-1.0/
%{_datadir}/gir-1.0/AccountsService-1.0.gir
%if %{with vala}
%files vala
%dir %{_datadir}/vala/vapi
%{_datadir}/vala/vapi/accountsservice.deps
%{_datadir}/vala/vapi/accountsservice.vapi
%endif
%files lang -f accounts-service.lang
%exclude %{_datadir}/locale/en/LC_MESSAGES/accounts-service.mo
%exclude %{_datadir}/locale/en_GB/LC_MESSAGES/accounts-service.mo
%changelog