aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristian Klausen <kristian@klausen.dk>2021-09-03 23:36:22 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-09-04 15:05:39 +0100
commitfff339b5bd7789db5d0c024fc84490ac17fa4fe9 (patch)
tree335a998c8c625e61d0725647b63d82f8a7c23c5f
parentffb886497390d4de2631bda671f2f631bc0bc7be (diff)
downloadopenembedded-core-contrib-fff339b5bd7789db5d0c024fc84490ac17fa4fe9.tar.gz
openembedded-core-contrib-fff339b5bd7789db5d0c024fc84490ac17fa4fe9.tar.bz2
openembedded-core-contrib-fff339b5bd7789db5d0c024fc84490ac17fa4fe9.zip
systemd: Add homed PACKAGECONFIG
If systemd is built with fdisk support[1] and the openssl and cryptsetup PACKAGECONFIG are enabled, systemd-homed[1] is automatically enabled. The org.freedesktop.home1.conf file was forgotten, so this commit adds the file and make enabling homed a explicit choice. systemd-homed.service and systemd-homed-activate.service have a Also= on each other, so "systemctl" has been fixed to handle the circular dependency. userdb isn't strictly speaking needed for homed but "systemctl" can't handle the missing unit file and upstream recommend enabling both[3]. [1] Automatically enabled if the fdisk dependency is installed which it is as util-linux is pulled in by systemd [2] https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html [3] https://github.com/systemd/systemd/commit/871dc8d644eef7542a5330f84c25b1db2617317c Signed-off-by: Kristian Klausen <kristian@klausen.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xmeta/recipes-core/systemd/systemd-systemctl/systemctl5
-rw-r--r--meta/recipes-core/systemd/systemd_249.3.bb5
2 files changed, 8 insertions, 2 deletions
diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl
index e8c3d2d1ee..6324319a45 100755
--- a/meta/recipes-core/systemd/systemd-systemctl/systemctl
+++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl
@@ -191,7 +191,7 @@ class SystemdUnit():
except KeyError:
pass
- def enable(self):
+ def enable(self, caller_unit=None):
# if we're enabling an instance, first extract the actual instance
# then figure out what the template unit is
template = re.match(r"[^@]+@(?P<instance>[^\.]*)\.", self.unit)
@@ -227,7 +227,8 @@ class SystemdUnit():
try:
for also in config.get('Install', 'Also'):
try:
- SystemdUnit(self.root, also).enable()
+ if caller_unit != also:
+ SystemdUnit(self.root, also).enable(unit)
except SystemdUnitNotFoundError as e:
sys.exit("Error: Systemctl also enable issue with %s (%s)" % (service, e.unit))
diff --git a/meta/recipes-core/systemd/systemd_249.3.bb b/meta/recipes-core/systemd/systemd_249.3.bb
index c2d4343f10..e848eea361 100644
--- a/meta/recipes-core/systemd/systemd_249.3.bb
+++ b/meta/recipes-core/systemd/systemd_249.3.bb
@@ -133,6 +133,7 @@ PACKAGECONFIG[gnu-efi] = "-Dgnu-efi=true -Defi-libdir=${STAGING_LIBDIR} -Defi-in
PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils"
PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false"
PACKAGECONFIG[repart] = "-Drepart=true,-Drepart=false"
+PACKAGECONFIG[homed] = "-Dhomed=true,-Dhomed=false"
# Sign the journal for anti-tampering
PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt"
PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
@@ -619,6 +620,7 @@ FILES:${PN} = " ${base_bindir}/* \
${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.oom1.conf \
+ ${datadir}/dbus-1/system.d/org.freedesktop.home1.conf \
"
FILES:${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
@@ -717,6 +719,9 @@ python __anonymous() {
if bb.utils.contains('PACKAGECONFIG', 'repart', True, False, d) and not bb.utils.contains('PACKAGECONFIG', 'openssl', True, False, d):
bb.error("PACKAGECONFIG[repart] requires PACKAGECONFIG[openssl]")
+
+ if bb.utils.contains('PACKAGECONFIG', 'homed', True, False, d) and not bb.utils.contains('PACKAGECONFIG', 'userdb openssl cryptsetup', True, False, d):
+ bb.error("PACKAGECONFIG[homed] requires PACKAGECONFIG[userdb], PACKAGECONFIG[openssl] and PACKAGECONFIG[cryptsetup]")
}
python do_warn_musl() {