All of lore.kernel.org
 help / color / mirror / Atom feed
* PR to fix WantedBy parsing of systemctl
@ 2022-09-20 17:55 Robert Henz
  2022-09-20 21:19 ` [OE-core] " Alexandre Belloni
  0 siblings, 1 reply; 14+ messages in thread
From: Robert Henz @ 2022-09-20 17:55 UTC (permalink / raw)
  To: openembedded-core


[-- Attachment #1.1: Type: text/plain, Size: 651 bytes --]

Hi everyone,

I have a PR to fix the WantedBy parsing of the systemctl script. I tried to follow the process described in your wiki (https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded), but ran into some problems I wasn't able to figure out. I will attach the patch file for my suggested change to this email but I also went ahead and created a fork and generated a GitHub PR in case that is ok/easier?

https://github.com/openembedded/openembedded-core/pull/78

Again, I apologize for not being able to follow your defined procedure, please let me know if there is additional information you need from me.

Thanks,
Bob

[-- Attachment #1.2: Type: text/html, Size: 2477 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-WantedBy-processing.patch --]
[-- Type: text/x-patch; name="0001-Fix-WantedBy-processing.patch", Size: 1608 bytes --]

From 6cdb207ed99bc82324fb7b85126425ac8d439070 Mon Sep 17 00:00:00 2001
From: Bob Henz <robert_henz@jabil.com>
Date: Mon, 19 Sep 2022 22:02:58 -0400
Subject: [PATCH] Fix WantedBy processing

An empty string assignment to WantedBy should clear all prior WantedBy
settings. This matches behavior of the current systemd implementation.
---
 meta/recipes-core/systemd/systemd-systemctl/systemctl | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl
index 6d19666d82..cddae75a06 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):
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2022-10-28 11:46 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-20 17:55 PR to fix WantedBy parsing of systemctl Robert Henz
2022-09-20 21:19 ` [OE-core] " Alexandre Belloni
2022-09-26 15:49   ` Robert Henz
2022-09-26 17:52     ` [OE-core] " Martin Jansa
2022-09-26 19:50       ` Robert Henz
2022-09-26 20:24         ` [PATCH] create-pull-request: don't switch the git remote protocol to git:// Martin Jansa
2022-09-26 20:31         ` [OE-core] PR to fix WantedBy parsing of systemctl Martin Jansa
2022-09-27  1:30           ` Robert Henz
2022-09-27  2:50             ` [OE-core] " Martin Jansa
2022-09-27 10:13         ` Ross Burton
2022-09-27 13:33           ` Robert Henz
2022-09-27 13:46             ` Robert Henz
2022-10-28 11:46               ` [OE-core] " Ross Burton
2022-09-27  9:50     ` Alexandre Belloni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.