mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-05-07 05:10:20 +00:00
systemd.bbclass: extract SYSTEMD_SERVICE properly
To set service files the following syntax is allowed:
SYSTEMD_SERVICE = <service_file>
or
SYSTEMD_SERVICE_{<systemd_package_name>} = <service_file>
A function get_package_var was introduced to handle all use-cases [1]
properly.
Build tested / buildhistory checks
[1] http://lists.linuxtogo.org/pipermail/openembedded-devel/2012-May/039870.html
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Acked-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
committed by
Koen Kooi
parent
27e2e32869
commit
b52a74b7a2
@@ -24,6 +24,12 @@ systemd_postrm() {
|
|||||||
systemctl disable ${SYSTEMD_SERVICE}
|
systemctl disable ${SYSTEMD_SERVICE}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def get_package_var(d, var, pkg):
|
||||||
|
val = (d.getVar('%s_%s' % (var, pkg), d, 1) or "").strip()
|
||||||
|
if val == "":
|
||||||
|
val = (d.getVar(var, d, 1) or "").strip()
|
||||||
|
return val
|
||||||
|
|
||||||
def systemd_after_parse(d):
|
def systemd_after_parse(d):
|
||||||
def systemd_check_vars():
|
def systemd_check_vars():
|
||||||
if d.getVar('BB_WORKERCONTEXT', True) is not None:
|
if d.getVar('BB_WORKERCONTEXT', True) is not None:
|
||||||
@@ -155,8 +161,7 @@ python populate_packages_prepend () {
|
|||||||
systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1)
|
systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1)
|
||||||
has_exactly_one_service = len(systemd_packages.split()) == 1
|
has_exactly_one_service = len(systemd_packages.split()) == 1
|
||||||
if has_exactly_one_service:
|
if has_exactly_one_service:
|
||||||
systemd_services = d.getVar('SYSTEMD_SERVICE' + "_" + systemd_packages, 1) or d.getVar('SYSTEMD_SERVICE', 1)
|
has_exactly_one_service = len(get_package_var(d, 'SYSTEMD_SERVICE', systemd_packages).split()) == 1
|
||||||
has_exactly_one_service = len(systemd_services.split()) == 1
|
|
||||||
|
|
||||||
keys = 'Also' # Conflicts??
|
keys = 'Also' # Conflicts??
|
||||||
if has_exactly_one_service:
|
if has_exactly_one_service:
|
||||||
@@ -164,8 +169,7 @@ python populate_packages_prepend () {
|
|||||||
keys = 'Also Conflicts'
|
keys = 'Also Conflicts'
|
||||||
# scan for all in SYSTEMD_SERVICE[]
|
# scan for all in SYSTEMD_SERVICE[]
|
||||||
for pkg_systemd in systemd_packages.split():
|
for pkg_systemd in systemd_packages.split():
|
||||||
systemd_services = d.getVar('SYSTEMD_SERVICE' + "_" + pkg_systemd, 1) or d.getVar('SYSTEMD_SERVICE', 1)
|
for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split():
|
||||||
for service in systemd_services.split():
|
|
||||||
path_found = ''
|
path_found = ''
|
||||||
for path in searchpaths.split():
|
for path in searchpaths.split():
|
||||||
if os.path.exists('${D}' + path + service):
|
if os.path.exists('${D}' + path + service):
|
||||||
@@ -196,7 +200,7 @@ python populate_packages_prepend () {
|
|||||||
# run all modifications once when creating package
|
# run all modifications once when creating package
|
||||||
if os.path.exists('${D}'):
|
if os.path.exists('${D}'):
|
||||||
for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
|
for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
|
||||||
if d.getVar('SYSTEMD_SERVICE' + "_" + pkg_systemd, 1) and d.getVar('SYSTEMD_SERVICE' + "_" + pkg_systemd, 1).strip():
|
if get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd) != "":
|
||||||
systemd_generate_package_scripts(pkg_systemd)
|
systemd_generate_package_scripts(pkg_systemd)
|
||||||
systemd_add_rdepends(pkg_systemd)
|
systemd_add_rdepends(pkg_systemd)
|
||||||
systemd_check_services()
|
systemd_check_services()
|
||||||
|
|||||||
Reference in New Issue
Block a user