- systemd-homed is no more considered as experimental

It's been moved to its own dedicated sub-package "systemd-homed".

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1414
This commit is contained in:
Franck Bui 2023-07-25 06:35:14 +00:00 committed by Git OBS Bridge
parent c4fd7e3731
commit 053f0cfcc0
4 changed files with 102 additions and 53 deletions

View File

@ -1,44 +1,29 @@
# #
# Please keep the list sorted (with `LC_ALL=C sort`). # Please keep the list sorted (with `LC_ALL=C sort`).
# #
%config(noreplace) %{_sysconfdir}/systemd/homed.conf
%config(noreplace) %{_sysconfdir}/systemd/oomd.conf %config(noreplace) %{_sysconfdir}/systemd/oomd.conf
%if %{with sd_boot} %if %{with sd_boot}
%dir %{_unitdir}/initrd.target.wants %dir %{_unitdir}/initrd.target.wants
%endif %endif
%{_bindir}/homectl
%{_bindir}/oomctl %{_bindir}/oomctl
%{_bindir}/systemd-repart %{_bindir}/systemd-repart
%{_datadir}/bash-completion/completions/homectl
%{_datadir}/bash-completion/completions/oomctl %{_datadir}/bash-completion/completions/oomctl
%{_datadir}/dbus-1/interfaces/org.freedesktop.home1.Home.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.home1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.oom1.Manager.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.oom1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.portable1.Image.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.portable1.Image.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.portable1.Manager.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.portable1.Manager.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.home1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.oom1.service %{_datadir}/dbus-1/system-services/org.freedesktop.oom1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.home1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.oom1.conf %{_datadir}/dbus-1/system.d/org.freedesktop.oom1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.home1.policy
%{_datadir}/zsh/site-functions/_oomctl %{_datadir}/zsh/site-functions/_oomctl
%{_mandir}/man1/homectl.1.gz
%{_mandir}/man1/oomctl.1.gz %{_mandir}/man1/oomctl.1.gz
%if %{with sd_boot} %if %{with sd_boot}
%{_mandir}/man1/systemd-measure.1.gz %{_mandir}/man1/systemd-measure.1.gz
%{_mandir}/man1/ukify.1.gz %{_mandir}/man1/ukify.1.gz
%endif %endif
%{_mandir}/man5/homed.conf.5.gz
%{_mandir}/man5/homed.conf.d.5.gz
%{_mandir}/man5/oomd.conf.5.gz %{_mandir}/man5/oomd.conf.5.gz
%{_mandir}/man5/oomd.conf.d.5.gz %{_mandir}/man5/oomd.conf.d.5.gz
%{_mandir}/man5/org.freedesktop.home1.5.gz
%{_mandir}/man5/org.freedesktop.oom1.5.gz %{_mandir}/man5/org.freedesktop.oom1.5.gz
%{_mandir}/man5/repart.d.5.gz %{_mandir}/man5/repart.d.5.gz
%{_mandir}/man5/sysupdate.d.5.gz %{_mandir}/man5/sysupdate.d.5.gz
%{_mandir}/man8/pam_systemd_home.8.gz
%{_mandir}/man8/systemd-homed.8.gz
%{_mandir}/man8/systemd-homed.service.8.gz
%{_mandir}/man8/systemd-oomd.8.gz %{_mandir}/man8/systemd-oomd.8.gz
%{_mandir}/man8/systemd-oomd.service.8.gz %{_mandir}/man8/systemd-oomd.service.8.gz
%if %{with sd_boot} %if %{with sd_boot}
@ -57,11 +42,8 @@
%{_mandir}/man8/systemd-sysupdate.8.gz %{_mandir}/man8/systemd-sysupdate.8.gz
%{_mandir}/man8/systemd-sysupdate.service.8.gz %{_mandir}/man8/systemd-sysupdate.service.8.gz
%{_mandir}/man8/systemd-sysupdate.timer.8.gz %{_mandir}/man8/systemd-sysupdate.timer.8.gz
%{_pam_moduledir}/pam_systemd_home.so
%{_systemd_util_dir}/system/initrd-root-fs.target.wants/systemd-repart.service %{_systemd_util_dir}/system/initrd-root-fs.target.wants/systemd-repart.service
%{_systemd_util_dir}/system/sysinit.target.wants/systemd-repart.service %{_systemd_util_dir}/system/sysinit.target.wants/systemd-repart.service
%{_systemd_util_dir}/systemd-homed
%{_systemd_util_dir}/systemd-homework
%if %{with sd_boot} %if %{with sd_boot}
%{_systemd_util_dir}/systemd-measure %{_systemd_util_dir}/systemd-measure
%endif %endif
@ -81,8 +63,6 @@
%{_unitdir}/sysinit.target.wants/systemd-pcrphase-sysinit.service %{_unitdir}/sysinit.target.wants/systemd-pcrphase-sysinit.service
%{_unitdir}/sysinit.target.wants/systemd-pcrphase.service %{_unitdir}/sysinit.target.wants/systemd-pcrphase.service
%endif %endif
%{_unitdir}/systemd-homed-activate.service
%{_unitdir}/systemd-homed.service
%{_unitdir}/systemd-oomd.service %{_unitdir}/systemd-oomd.service
%{_unitdir}/systemd-oomd.socket %{_unitdir}/systemd-oomd.socket
%if %{with sd_boot} %if %{with sd_boot}

23
files.homed Normal file
View File

@ -0,0 +1,23 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%config(noreplace) %{_sysconfdir}/systemd/homed.conf
%{_bindir}/homectl
%{_datadir}/bash-completion/completions/homectl
%{_datadir}/dbus-1/interfaces/org.freedesktop.home1.Home.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.home1.Manager.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.home1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.home1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.home1.policy
%{_mandir}/man1/homectl.1.gz
%{_mandir}/man5/homed.conf.5.gz
%{_mandir}/man5/homed.conf.d.5.gz
%{_mandir}/man5/org.freedesktop.home1.5.gz
%{_mandir}/man8/pam_systemd_home.8.gz
%{_mandir}/man8/systemd-homed.8.gz
%{_mandir}/man8/systemd-homed.service.8.gz
%{_pam_moduledir}/pam_systemd_home.so
%{_systemd_util_dir}/systemd-homed
%{_systemd_util_dir}/systemd-homework
%{_unitdir}/systemd-homed-activate.service
%{_unitdir}/systemd-homed.service

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Tue Jul 25 06:30:55 UTC 2023 - Franck Bui <fbui@suse.com>
- systemd-homed is no more considered as experimental
It's been moved to its own dedicated sub-package "systemd-homed".
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Jul 24 14:29:35 UTC 2023 - Franck Bui <fbui@suse.com> Mon Jul 24 14:29:35 UTC 2023 - Franck Bui <fbui@suse.com>

View File

@ -38,6 +38,7 @@
%define mini -mini %define mini -mini
%bcond_without bootstrap %bcond_without bootstrap
%bcond_with coredump %bcond_with coredump
%bcond_with homed
%bcond_with importd %bcond_with importd
%bcond_with journal_remote %bcond_with journal_remote
%bcond_with machined %bcond_with machined
@ -52,6 +53,7 @@
%define mini %nil %define mini %nil
%bcond_with bootstrap %bcond_with bootstrap
%bcond_without coredump %bcond_without coredump
%bcond_without homed
%bcond_without importd %bcond_without importd
%bcond_without journal_remote %bcond_without journal_remote
%bcond_without machined %bcond_without machined
@ -188,6 +190,7 @@ Source205: files.sysvcompat
Source206: files.uefi-boot Source206: files.uefi-boot
Source207: files.experimental Source207: files.experimental
Source208: files.coredump Source208: files.coredump
Source209: files.homed
# #
# All changes backported from upstream are tracked by the git repository, which # All changes backported from upstream are tracked by the git repository, which
@ -480,6 +483,43 @@ To activate this NSS module, you will need to include it in /etc/nsswitch.conf,
see nss-resolve(8) manpage for more details. see nss-resolve(8) manpage for more details.
%endif %endif
%if %{with homed}
%package homed
Summary: Home Area/User Account Manager
License: LGPL-2.1-or-later
Requires: %{name} = %{version}-%{release}
%systemd_requires
BuildRequires: pkgconfig(fdisk)
BuildRequires: pkgconfig(libcryptsetup)
BuildRequires: pkgconfig(libfido2)
BuildRequires: pkgconfig(libqrencode)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(pwquality)
# These Recommends because some symbols of these libs are dlopen()ed by homed
Recommends: libfido2
Recommends: libpwquality1
Recommends: libqrencode4
%description homed
This package contains systemd-homed.service, a system service that manages home
directories of users. The home directories managed are self-contained, and thus
include the user's full metadata record in the home's data storage itself,
making them easy to migrate between machines; the user account and home
directory becoming the same concept.
This package also includes homectl(1), a tool to interact with systemd-homed and
PAM module to automatically mount home directories on user login.
See homectl(1) man page for instructions to create a new user account.
A description of the various storage mechanisms implemented by systemd-homed can
be found at https://systemd.io/HOME_DIRECTORY/.
Note that nss-systemd has still not been integrated into nsswitch and therefore
needs to be added manually into /etc/nsswitch.conf, see nss-systemd(8) man page
for an example on how to do that.
%endif
%if %{with portabled} %if %{with portabled}
%package portable %package portable
Summary: Systemd tools for portable services Summary: Systemd tools for portable services
@ -488,9 +528,8 @@ Requires: %{name} = %{version}-%{release}
%systemd_requires %systemd_requires
%description portable %description portable
Systemd tools to manage portable services. The feature is still Systemd tools to manage portable services. The feature is still considered
considered experimental so the package might change or vanish. experimental so the package might change or vanish. Use at own risk.
Use at own risk.
More information can be found online: More information can be found online:
@ -617,17 +656,8 @@ Requires: %{name} = %{version}-%{release}
# Needed by ukify # Needed by ukify
Requires: python3-pefile Requires: python3-pefile
%systemd_requires %systemd_requires
# These Recommends because some symbols of these libs are dlopen()ed by home stuff # fdisk is a build requirement for repart
Recommends: libfido2
Recommends: libpwquality1
Recommends: libqrencode4
# libfido2, libpwquality1 and libqrencode4 are build requirements for home stuff
BuildRequires: pkgconfig(libfido2)
BuildRequires: pkgconfig(libqrencode)
BuildRequires: pkgconfig(pwquality)
# fdisk and openssl are build requirements for home stuff and repart
BuildRequires: pkgconfig(fdisk) BuildRequires: pkgconfig(fdisk)
BuildRequires: pkgconfig(openssl)
%description experimental %description experimental
This package contains optional extra services that are considered as previews This package contains optional extra services that are considered as previews
@ -642,24 +672,7 @@ change without the usual backwards-compatibility promises.
Components that turn out to be stable and considered as fully supported will be Components that turn out to be stable and considered as fully supported will be
merged into the main package or moved into a dedicated package. merged into the main package or moved into a dedicated package.
Currently this package contains: homed, repart, oomd, measure, Currently this package contains: repart, oomd, measure, pcrphase and ukify.
pcrphase and ukify.
In case you want to create a user with systemd-homed quickly, here are the steps
you can follow:
- Make sure the nss-systemd package is installed and added into
/etc/nsswitch.conf, see nss-systemd(8) man page for details
- Integrate pam_systemd_home.so in your PAM stack. You can do that either by
following the instructions in pam_systemd_home(8) man page or by executing
`pam-config --add --systemd_home` command
- Enable and start systemd-homed with `systemctl enable --now systemd-homed`
- Create a user with `homectl create <username>`
- Verify the previous steps with `getent passwd <username>`
Have fun (at your own risk). Have fun (at your own risk).
%endif %endif
@ -736,6 +749,7 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
-Duserdb=%{when_not bootstrap} \ -Duserdb=%{when_not bootstrap} \
\ \
-Dcoredump=%{when coredump} \ -Dcoredump=%{when coredump} \
-Dhomed=%{when homed} \
-Dimportd=%{when importd} \ -Dimportd=%{when importd} \
-Dmachined=%{when machined} \ -Dmachined=%{when machined} \
-Dnetworkd=%{when networkd} \ -Dnetworkd=%{when networkd} \
@ -757,7 +771,6 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
-Ddns-over-tls=%{when resolved openssl} \ -Ddns-over-tls=%{when resolved openssl} \
-Dresolve=%{when resolved} \ -Dresolve=%{when resolved} \
\ \
-Dhomed=%{when experimental} \
-Doomd=%{when experimental} \ -Doomd=%{when experimental} \
-Drepart=%{when experimental} \ -Drepart=%{when experimental} \
-Dsysupdate=%{when experimental} \ -Dsysupdate=%{when experimental} \
@ -1206,6 +1219,26 @@ fi
%endif %endif
%endif %endif
%if %{with homed}
%pre homed
%systemd_pre systemd-homed.service
%post homed
if [ $1 -eq 1 ]; then
pam-config --add --systemd-homed || :
fi
%systemd_post systemd-homed.service
%preun homed
%systemd_preun systemd-homed.service
if [ $1 -eq 0 ]; then
pam-config --delete --systemd-homed || :
fi
%postun homed
%systemd_postun_with_restart systemd-homed.service
%endif
%if %{with portabled} %if %{with portabled}
%pre portable %pre portable
%systemd_pre systemd-portabled.service %systemd_pre systemd-portabled.service
@ -1220,7 +1253,7 @@ fi
%systemd_preun systemd-portabled.service %systemd_preun systemd-portabled.service
%postun portable %postun portable
%systemd_postun systemd-portabled.service %systemd_postun_with_restart systemd-portabled.service
%endif %endif
%if %{with experimental} %if %{with experimental}
@ -1329,6 +1362,12 @@ fi
%ghost %dir %{_localstatedir}/log/journal/remote %ghost %dir %{_localstatedir}/log/journal/remote
%endif %endif
%if %{with homed}
%files homed
%defattr(-,root,root)
%include %{SOURCE209}
%endif
%if %{with portabled} %if %{with portabled}
%files portable %files portable
%defattr(-,root,root) %defattr(-,root,root)