aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEnrico Jorns <ejo@pengutronix.de>2016-01-12 13:55:43 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-01-29 18:14:55 +0000
commit8b9b9fd700b19731b14a7dcc51d0fa013a5e106a (patch)
tree5b971d4d0c51c6c70f62a82b12dbbdfa192525ca
parent50f84bbf3cf340e0e98abb7994dd4eade4183078 (diff)
downloadopenembedded-core-contrib-8b9b9fd700b19731b14a7dcc51d0fa013a5e106a.tar.gz
systemd: fix systemctl enable script for template units
The systemctl script supports enabling template units by evaluating "DefaultInstance" parameter. Unfortunately, due to the sed replacement mechanism, all escaping used in the DefaultInstance string, e.g. for giving path names with dashes, is expanded too early. Thus for DefaultInstance=-path\x2dwith\x2ddashes a path unit `foobar@.path` will be installed with a symlink named foobar@-path-with-dashed.path that is interpreted as the path `/path/with/dashes` instead of the intended path nam `/path-with-dashes`. To fix this behavior additional escaping of the backslashes in the `DefaultInstance` string is required so that sed does not expand the escaped characters. Signed-off-by: Enrico Jorns <ejo@pengutronix.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rwxr-xr-xmeta/recipes-core/systemd/systemd-systemctl/systemctl2
1 files changed, 1 insertions, 1 deletions
diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl
index 6e163bd5c2..697fbd59df 100755
--- a/meta/recipes-core/systemd/systemd-systemctl/systemctl
+++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl
@@ -136,7 +136,7 @@ for service in $services; do
continue
else
echo "Found DefaultInstance $default_instance, enabling it"
- enable_service=$(echo $service | sed "s/@/@$default_instance/")
+ enable_service=$(echo $service | sed "s/@/@$(echo $default_instance | sed 's/\\/\\\\/g')/")
fi
fi
mkdir -p $ROOT/etc/systemd/system/$r.wants