Commit Graph

9 Commits

Author SHA1 Message Date
Ross Burton e38ec0caa7 systemd-systemctl-native: fix unit detection
The regexs were too strict and didn't allow for trailing whitespace.

[ YOCTO #9337 ]

(From OE-Core rev: 0395162aa45a416db6a0a38e7ee6c0f808272393)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-09 23:00:44 +01:00
Tomas Novotny b33efa964a systemctl: handle RequiredBy dependencies
Install section of a systemd service may contain RequiredBy dependency,
which is not handled currently. This means that symlinks to enable the
service are not created and the service may not be started.

Also fix debug output (all dependencies were printed instead of the one
which was enabled or disabled).

(From OE-Core rev: 6f4d9d9675ce39f5154de30b2921ada019a93d0f)

Signed-off-by: Tomas Novotny <tomas@novotny.cz>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-28 11:33:07 +00:00
Enrico Jorns 593dcd4a22 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.

(From OE-Core rev: 8b9b9fd700b19731b14a7dcc51d0fa013a5e106a)

Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-30 11:37:02 +00:00
Martin Jansa d0d404f7cd systemctl: Don't try to remove directory which doesn't exist
Noticed in this log.do_rootfs error:
  Started /OE/build/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/bin/systemctl --root=/OE/build/shr-core/tmp-glibc/work/nokia900-oe-linux-gnueabi/shr-image/2.0-r20/rootfs disable bluetooth.service
  Try to find location of bluetooth.service...
  Found bluetooth.service in /lib/systemd/system/bluetooth.service
  WantedBy=bluetooth.target found in bluetooth.service
  rmdir: failed to remove '/OE/build/shr-core/tmp-glibc/work/nokia900-oe-linux-gnueabi/shr-image/2.0-r20/rootfs/etc/systemd/system/bluetooth.target.wants': No such file or directory
  Disabled bluetooth.service for bluetooth.target.
  Disabled bluetooth.service for dbus-org.bluez.service.

(From OE-Core rev: 0332e19098d7d3d623a04098b43e3b2482af1a17)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-20 11:03:44 +00:00
Tomas Novotny d5e0cc7b08 systemd-systemctl: add handling of template unit files
Template unit files (those with '@' in their names) are not handled with
native version of systemctl. This is usually not a problem, as the
native systemctl fails and systemctl command is executed during first
boot. But some early boot template units may fail during first boot
because opkg configure for first boot is pulled too late for them
(although I encouter it only with some of my services, not with oe-core
ones).

Handling of template unit files is same as in original systemctl. Also
DefaultInstance directive in template is respected. As with original
systemctl, enabling of template without instance and DefaultInstance
does nothing.

(From OE-Core rev: 90904ef3bab182a46174f7bb60e83f0f22a3f209)

Signed-off-by: Tomas Novotny <tomas@novotny.cz>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-19 18:08:01 +00:00
Khem Raj b53a0117c8 systemd-systemctl: Add preset capability
systemd has presets as described here

http://lists.freedesktop.org/archives/systemd-devel/2011-July/002830.html

This patch will let distros define presets file
which will override the enable/disable specified
by recipes.

systemctl preset without any argument will run presents
on all services

systemctl preset service1 service2 will run presets on
specified pervice.

something like enable * or disable *
would mean that all services will be either enabled or
disabled by default.

If no user-presets are specified then 'enable' is default

systemd allows basic globs but we do not implement them
except '*'

(From OE-Core rev: 1254416901a0c70814296a86784f4934f27c7d4a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-14 09:11:11 +00:00
Randy Witt 44c5b770ab systemctl: Support all unit types in the directives.
The Alias and WantedBy directives can accept all valid unit types when
using the systemctl from systemd. And since the systemctl script should
match the behavior of systemd as much as possible, add the current set
of unit types listed at
http://www.freedesktop.org/software/systemd/man/systemd.unit.html
to the Alias and WantedBy directives.

The deficiency was exposed when trying to use:
    Alias=default.target
in a foo.target. No symlink was created by running
"systemctl enable foo.target" during the package's postinst.

(From OE-Core rev: 374b9c37b3310cf2a3373633197ca7ba21f6d1bd)

Signed-off-by: Randy Witt <rewitt@declaratino.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-25 17:44:56 +01:00
Enrico Scholz 999302e9d8 systemd-systemctl: parse unit files more correctly
Old script failed to parse unit files containing comments like

| #Alias=some-alias

or whitespaces like

| WantedBy = foo

correctly.  Patch changes script to interpret keywords only when they
are at the beginning of a line and ignores whitespaces before the '='.

(From OE-Core rev: 443e75ee2c0e9a62df997aef24855bce54d39177)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-29 14:45:06 +01:00
Radu Moisan b8744d5376 systemd: add systemd recipes
Add systemd recipes and associated support recipes.

Mostly based on meta-oe/meta-systemd, so almost all credit should go to:

Andreas Müller <schnitzeltony@googlemail.com>
Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
Holger Hans Peter Freyther <holger@moiji-mobile.com>
Khem Raj <raj.khem@gmail.com>
Koen Kooi <koen@dominion.thruhere.net>
Martin Jansa <Martin.Jansa@gmail.com>

(From OE-Core rev: 6a8a48b4d0d0b9b8d8af46cae11245bcb870bbc3)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-20 12:58:55 +00:00