summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Henz <robert_henz@jabil.com>2024-05-15 15:12:18 +0530
committerSteve Sakoman <steve@sakoman.com>2024-05-22 05:07:30 -0700
commit9e3a2e143ef2aaab335439ddbe1ab976aeeed35d (patch)
tree558964beb5a680dce7cf1ec17328e35940509282
parentc850931590ff22da4d38756f957b88e04078c76c (diff)
downloadopenembedded-core-contrib-9e3a2e143ef2aaab335439ddbe1ab976aeeed35d.tar.gz
systemd-systemctl: Fix WantedBy processing
An empty string assignment to WantedBy should clear all prior WantedBy settings. This matches behavior of the current systemd implementation. (From OE-Core rev: 8ede0083c28fadf1e83c9256618190b931edd306) Signed-off-by: Bob Henz <robert_henz@jabil.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit c653bfc68b06bfd4fa07ba18322599a130b1c59a) Signed-off-by: Ranjitsinh Rathod <ranjitsinh.rathod@kpit.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rwxr-xr-xmeta/recipes-core/systemd/systemd-systemctl/systemctl11
1 files changed, 11 insertions, 0 deletions
diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl
index 0fd7e24085..7fe751b397 100755
--- a/meta/recipes-core/systemd/systemd-systemctl/systemctl
+++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl
@@ -26,6 +26,9 @@ locations = list()
class SystemdFile():
"""Class representing a single systemd configuration file"""
+
+ _clearable_keys = ['WantedBy']
+
def __init__(self, root, path, instance_unit_name):
self.sections = dict()
self._parse(root, path)
@@ -80,6 +83,14 @@ class SystemdFile():
v = m.group('value')
if k not in section:
section[k] = list()
+
+ # If we come across a "key=" line for a "clearable key", then
+ # forget all preceding assignments. This works because we are
+ # processing files in correct parse order.
+ if k in self._clearable_keys and not v:
+ del section[k]
+ continue
+
section[k].extend(v.split())
def get(self, section, prop):