mirror of
https://git.yoctoproject.org/poky
synced 2026-04-28 15:32:27 +02:00
systemd.bbclass: do not automatically add Also services
Starting a systemd service “Also” does not mean that both services
must be in the same package. However, the systemd.bbclass enforces
this.
Example:
a.service:
[Install]
Also=b.service
If a.service is packed in package A, b.service is automatically packed
into package A as well. This happens even if b.service is explicitly
added to package B using FILES and SYSTEMD_SERVICE variables.
The automatic packing of socket files with the corresponding service
files is probably a widely used feature of systemd.bbclass. This bahavior
does not change.
Adding regular service files to a package just because it is another
service in the same package that "Also" uses the service is a bug that
this commit fixes.
(From OE-Core rev: f836d80eb48a2a2f9b1e66980021755cf0ca2a26)
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
0324f69749
commit
efa5f65c22
@@ -132,18 +132,18 @@ python systemd_populate_packages() {
|
||||
# for *.service add *@.service
|
||||
service_base = service.replace('.service', '')
|
||||
systemd_add_files_and_parse(pkg_systemd, path, service_base + '@.service')
|
||||
# Add the socket unit which is referred by the Also= in this service file to the same package.
|
||||
with open(fullpath, 'r') as unit_f:
|
||||
for line in unit_f:
|
||||
if line.startswith('Also'):
|
||||
also_unit = line.split('=', 1)[1].strip()
|
||||
if also_unit.find('.socket') != -1:
|
||||
systemd_add_files_and_parse(pkg_systemd, path, also_unit)
|
||||
if service.find('.socket') != -1:
|
||||
# for *.socket add *.service and *@.service
|
||||
service_base = service.replace('.socket', '')
|
||||
systemd_add_files_and_parse(pkg_systemd, path, service_base + '.service')
|
||||
systemd_add_files_and_parse(pkg_systemd, path, service_base + '@.service')
|
||||
# Add all units which have an Also= referring a unit in this package to this package as well.
|
||||
with open(fullpath, 'r') as unit_f:
|
||||
for line in unit_f:
|
||||
if line.startswith('Also'):
|
||||
also_unit = line.split('=', 1)[1].strip()
|
||||
bb.warn("also: %s" % also_unit)
|
||||
systemd_add_files_and_parse(pkg_systemd, path, also_unit)
|
||||
|
||||
# Check service-files and call systemd_add_files_and_parse for each entry
|
||||
def systemd_check_services():
|
||||
|
||||
Reference in New Issue
Block a user