From: Lincoln Ramsay <[email protected]> Templated systemd service files can have an instance starting with a number, but the poky systemctl replacement for building a rootfs crafts a regex replacement pattern that uses \1, which is not terminated, and when combined with the instance name leads to an invalid expression.
For example, installing [email protected] will cause a call to re.sub with replacement \11a, which tries to use the 11th match, while the pattern only has 1 match. There is a terminated alternative syntax that avoids this issue. \g<1> achieves the same result but doesn't break when the result is \g<1>1a. Signed-off-by: Lincoln Ramsay <[email protected]> --- meta/recipes-core/systemd/systemd-systemctl/systemctl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl index 514f747fe6..7fe751b397 100755 --- a/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl @@ -202,7 +202,7 @@ class SystemdUnit(): try: for dependent in config.get('Install', prop): # expand any %i to instance (ignoring escape sequence %%) - dependent = re.sub("([^%](%%)*)%i", "\\1{}".format(instance), dependent) + dependent = re.sub("([^%](%%)*)%i", "\\g<1>{}".format(instance), dependent) wants = systemdir / "{}.{}".format(dependent, dirstem) / service add_link(wants, target) -- 2.25.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#183986): https://lists.openembedded.org/g/openembedded-core/message/183986 Mute This Topic: https://lists.openembedded.org/mt/99996661/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
