[oe] [meta-oe, v2 3/4] systemd.bbclass: extract SYSTEMD_SERVICE properly
Martin Jansa
martin.jansa at gmail.com
Fri Jun 1 05:36:14 UTC 2012
On Fri, Jun 01, 2012 at 02:27:22AM +0200, Andreas Müller wrote:
> 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 at googlemail.com>
> ---
> meta-oe/classes/systemd.bbclass | 14 +++++++++-----
> 1 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/meta-oe/classes/systemd.bbclass b/meta-oe/classes/systemd.bbclass
> index 2881abf..00e108e 100644
> --- a/meta-oe/classes/systemd.bbclass
> +++ b/meta-oe/classes/systemd.bbclass
> @@ -24,6 +24,12 @@ systemd_postrm() {
> 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_check_vars():
> if d.getVar('BB_WORKERCONTEXT', True) is not None:
> @@ -155,8 +161,7 @@ python populate_packages_prepend () {
> systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1)
> has_exactly_one_service = len(systemd_packages.split()) == 1
> 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(systemd_services.split()) == 1
> + has_exactly_one_service = len(get_package_var(d, 'SYSTEMD_SERVICE', systemd_packages)) == 1
^ isn't split() still needed here?
>
> keys = 'Also' # Conflicts??
> if has_exactly_one_service:
> @@ -164,8 +169,7 @@ python populate_packages_prepend () {
> keys = 'Also Conflicts'
> # scan for all in SYSTEMD_SERVICE[]
> 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 systemd_services.split():
> + for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split():
> path_found = ''
> for path in searchpaths.split():
> if os.path.exists('${D}' + path + service):
> @@ -196,7 +200,7 @@ python populate_packages_prepend () {
> # run all modifications once when creating package
> if os.path.exists('${D}'):
> 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_add_rdepends(pkg_systemd)
> systemd_check_services()
> --
> 1.7.4.4
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20120601/5a8afee5/attachment-0002.sig>
More information about the Openembedded-devel
mailing list