From: Martin Jansa <martin.jansa@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [meta-systemd][PATCH 1/2] Delete systemd class.
Date: Tue, 5 Mar 2013 23:18:57 +0100 [thread overview]
Message-ID: <20130305221857.GA14869@jama> (raw)
In-Reply-To: <1360776335-21633-1-git-send-email-raj.khem@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 11423 bytes --]
On Wed, Feb 13, 2013 at 09:25:34AM -0800, Khem Raj wrote:
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
good old meta-systemd should now parse again, I wont apply this 2 commits
until systemd discussion in oe-core is finished and future of
meta-systemd decided.
> ---
> meta-systemd/classes/systemd.bbclass | 225 ----------------------------------
> 1 file changed, 225 deletions(-)
> delete mode 100644 meta-systemd/classes/systemd.bbclass
>
> diff --git a/meta-systemd/classes/systemd.bbclass b/meta-systemd/classes/systemd.bbclass
> deleted file mode 100644
> index f2a0363..0000000
> --- a/meta-systemd/classes/systemd.bbclass
> +++ /dev/null
> @@ -1,225 +0,0 @@
> -DEPENDS_append = " systemd-systemctl-native"
> -
> -SYSTEMD_AUTO_ENABLE ??= "enable"
> -
> -SYSTEMD_AUTO_RRECOMMENDS ??= "enable"
> -
> -systemd_postinst() {
> -OPTS=""
> -
> -if [ -n "$D" ]; then
> - OPTS="--root=$D"
> -fi
> -
> -systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE}
> -
> -if [ -z "$D" -a ${SYSTEMD_AUTO_ENABLE} = "enable" ]; then
> - systemctl start ${SYSTEMD_SERVICE}
> -fi
> -}
> -
> -systemd_prerm() {
> -if [ -z "$D" ]; then
> - systemctl stop ${SYSTEMD_SERVICE}
> -fi
> -
> -systemctl disable ${SYSTEMD_SERVICE}
> -}
> -
> -def get_package_var(d, var, pkg):
> - val = (d.getVar('%s_%s' % (var, pkg), 1) or "").strip()
> - if val == "":
> - val = (d.getVar(var, 1) or "").strip()
> - return val
> -
> -def systemd_after_parse(d):
> - def systemd_check_vars():
> - if d.getVar('BB_WORKERCONTEXT', True) is not None:
> - return
> -
> - bb_filename = d.getVar('FILE')
> - packages = d.getVar('PACKAGES', 1)
> -
> - # check SYSTEMD_PACKAGES
> - systemd_pkgs = d.getVar('SYSTEMD_PACKAGES', 1) or ""
> - if systemd_pkgs == "":
> - raise bb.build.FuncFailed, "\n\n%s inherits systemd but doesn't set SYSTEMD_PACKAGES" % bb_filename
> - for pkg_systemd in systemd_pkgs.split():
> - if pkg_systemd.find("-systemd") == -1:
> - if pkg_systemd != d.getVar('PN', 1):
> - raise bb.build.FuncFailed, \
> - "\n\n%s: %s in SYSTEMD_PACKAGES does not match <existing-package>-systemd or ${PN}" % \
> - (bb_filename, pkg_systemd)
> - else:
> - pkg_systemd_base = pkg_systemd
> - if pkg_systemd_base.endswith('-systemd'):
> - pkg_systemd_base = pkg_systemd[:-8]
> - if pkg_systemd_base not in packages:
> - raise bb.build.FuncFailed, \
> - "\n\n%s: %s in SYSTEMD_PACKAGES does not match <existing-package>-systemd or ${PN}" % \
> - ( bb_filename, pkg_systemd)
> -
> - # prepend systemd-packages not already included
> - def systemd_create_package(pkg_systemd):
> - packages = d.getVar('PACKAGES', 1)
> - if not pkg_systemd in packages:
> - packages = "%s %s" % (pkg_systemd, packages)
> - d.setVar('PACKAGES', packages)
> -
> -
> - bpn = d.getVar('BPN', 1)
> - ml = d.getVar('MLPREFIX', 1) or ""
> - if bpn + "-native" != d.getVar('PN', 1) and \
> - bpn + "-cross" != d.getVar('PN', 1) and \
> - ml + bpn == d.getVar('PN', 1) and \
> - "nativesdk-" + bpn != d.getVar('PN', 1):
> - systemd_check_vars()
> - for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
> - systemd_create_package(pkg_systemd)
> -
> -
> -python __anonymous() {
> - systemd_after_parse(d)
> -}
> -
> -# automatically install all *.service and *.socket supplied in recipe's SRC_URI
> -do_install_append() {
> - for service in `find ${WORKDIR} -maxdepth 1 -name '*.service' -o -name '*.socket'` ; do
> - # ensure installing systemd-files only (e.g not avahi *.service)
> - if grep -q '\[Unit\]' $service ; then
> - install -d ${D}${systemd_unitdir}/system
> - install -m 644 $service ${D}${systemd_unitdir}/system
> - fi
> - done
> -}
> -
> -python populate_packages_prepend () {
> - def systemd_generate_package_scripts(pkg):
> - bb.debug(1, 'adding systemd calls to postinst/postrm for %s' % pkg)
> - localdata = d.createCopy()
> - overrides = localdata.getVar("OVERRIDES", 1)
> - localdata.setVar("OVERRIDES", "%s:%s" % (pkg, overrides))
> - bb.data.update_data(localdata)
> -
> - """
> - systemd postinst is appended here because pkg_postinst may require to
> - execute on the target. Not doing so may cause systemd postinst invoked
> - twice to cause unwanted warnings.
> - """
> - postinst = localdata.getVar('pkg_postinst', 1)
> - if not postinst:
> - postinst = '#!/bin/sh\n'
> - postinst += localdata.getVar('systemd_postinst', 1)
> - d.setVar('pkg_postinst_%s' % pkg, postinst)
> -
> - prerm = localdata.getVar('pkg_prerm', 1)
> - if not prerm:
> - prerm = '#!/bin/sh\n'
> - prerm += localdata.getVar('systemd_prerm', 1)
> - d.setVar('pkg_prerm_%s' % pkg, prerm)
> -
> - # add files to FILES_*-systemd if existent and not already done
> - def systemd_append_file(pkg_systemd, file_append):
> - appended = False
> - if os.path.exists('${D}' + file_append):
> - var_name = "FILES_" + pkg_systemd
> - files = d.getVar(var_name, 0) or ""
> - if file_append not in files.split():
> - d.setVar(var_name, "%s %s" % (files, file_append))
> - appended = True
> - return appended
> -
> - # add systemd files to FILES_*-systemd, parse for Also= and follow recursive
> - def systemd_add_files_and_parse(pkg_systemd, path, service, keys):
> - # avoid infinite recursion
> - if systemd_append_file(pkg_systemd, path + service):
> - fullpath = '${D}' + path + service
> - 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', keys)
> - systemd_add_files_and_parse(pkg_systemd, path, service_base + '@.service', keys)
> - for key in keys.split():
> - # recurse all dependencies found in keys ('Also';'Conflicts';..) and add to files
> - cmd = "grep %s %s | sed 's,%s=,,g' | tr ',' '\\n'" % (key, fullpath, key)
> - pipe = os.popen(cmd, 'r')
> - line = pipe.readline()
> - while line:
> - line = line.replace('\n', '')
> - systemd_add_files_and_parse(pkg_systemd, path, line, keys)
> - line = pipe.readline()
> - pipe.close()
> -
> - # check service-files and call systemd_add_files_and_parse for each entry
> - def systemd_check_services():
> - base_libdir = d.getVar('base_libdir', 1)
> - searchpaths = '/etc/systemd/system/' + ' '
> - searchpaths += '/lib/systemd/system/' + ' '
> - searchpaths += '/usr/lib/systemd/system/' + ' '
> - systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1)
> - has_exactly_one_service = len(systemd_packages.split()) == 1
> - if has_exactly_one_service:
> - has_exactly_one_service = len(get_package_var(d, 'SYSTEMD_SERVICE', systemd_packages).split()) == 1
> -
> - keys = 'Also' # Conflicts??
> - if has_exactly_one_service:
> - # single service gets also the /dev/null dummies
> - keys = 'Also Conflicts'
> - # scan for all in SYSTEMD_SERVICE[]
> - for pkg_systemd in systemd_packages.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):
> - path_found = path
> - if path_found != '':
> - systemd_add_files_and_parse(pkg_systemd, path_found, service, keys)
> - else:
> - raise bb.build.FuncFailed, "\n\nFor package %s SYSTEMD_SERVICE-entry %s does not exist" % \
> - (pkg_systemd, service)
> -
> - """ Setup rdepends / rrecommmends as:
> -
> - -----------------------------
> - | pkg_systemd_base: 'foo' |
> - -----------------------------
> - | ^
> - | | --------------
> - rrecommends | | rdepends | 'systemd' |
> - | | ->--------------
> - V | / rdepends
> - ------------------------------/
> - | pkg_systemd: 'foo-systemd' |
> - ------------------------------
> - """
> - def systemd_add_rdepends_rrecommends(pkg_systemd):
> - # RDEPENDS_${pkg_systemd} += pkg_systemd_base systemd
> - rdepends = d.getVar('RDEPENDS_' + pkg_systemd, 1) or ""
> - rdepends_arr = rdepends.split()
> - if not 'systemd' in rdepends_arr:
> - rdepends = '%s %s' % (rdepends, 'systemd')
> - pkg_systemd_base = pkg_systemd.replace('-systemd', '')
> - # no automatism for:
> - # recipes setting rdepends themselves AND
> - # not rdepending myself AND
> - # avoid double entries
> - if len(rdepends_arr) == 0 and pkg_systemd != '${PN}' and not pkg_systemd_base in rdepends:
> - rdepends = '%s %s' % (rdepends, pkg_systemd_base)
> - d.setVar('RDEPENDS_' + pkg_systemd, rdepends)
> - auto_rrecommends = d.getVar('SYSTEMD_AUTO_RRECOMMENDS', 1) or 'enable'
> - if auto_rrecommends == 'enable':
> - # RRECOMMENDS_${pkg_systemd_base} += pkg_systemd systemd
> - rrecommends = d.getVar('RRECOMMENDS_' + pkg_systemd_base, 1) or ""
> - # not rrecommending myself AND avoid double entries
> - if pkg_systemd != pkg_systemd_base and not pkg_systemd in rrecommends.split():
> - rrecommends = '%s %s' % (rrecommends, pkg_systemd)
> - d.setVar('RRECOMMENDS_' + pkg_systemd_base, rrecommends)
> -
> - # run all modifications once when creating package
> - if os.path.exists('${D}'):
> - for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
> - if get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd) != "":
> - systemd_generate_package_scripts(pkg_systemd)
> - systemd_add_rdepends_rrecommends(pkg_systemd)
> - systemd_check_services()
> -}
> --
> 1.7.9.5
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
next prev parent reply other threads:[~2013-03-05 22:35 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-13 17:25 [meta-systemd][PATCH 1/2] Delete systemd class Khem Raj
2013-02-13 17:25 ` [meta-systemd][PATCH 2/2] meta-systemd: Append ${PN} to SYSTEMD_SERVICE Khem Raj
2013-02-14 3:01 ` Martin Jansa
2013-02-15 18:34 ` Khem Raj
2013-02-14 7:45 ` Martin Jansa
2013-02-15 18:39 ` Khem Raj
2013-04-13 14:56 ` Martin Jansa
2013-03-05 22:18 ` Martin Jansa [this message]
2013-03-05 22:50 ` [meta-systemd][PATCH 1/2] Delete systemd class Andreas Müller
2013-03-05 22:59 ` Martin Jansa
2013-04-09 20:01 ` meta-systemd future vote Was: " Martin Jansa
2013-04-09 20:06 ` Otavio Salvador
2013-04-09 20:08 ` Koen Kooi
2013-04-10 11:06 ` Burton, Ross
2013-04-10 21:17 ` Martin Jansa
2013-04-11 9:59 ` Burton, Ross
2013-04-10 11:39 ` Andreas Müller
2013-04-10 14:55 ` Khem Raj
2013-04-11 0:12 ` Andreas Müller
2013-04-11 0:51 ` Khem Raj
2013-04-12 17:02 ` Martin Jansa
2013-04-13 11:29 ` Martin Jansa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130305221857.GA14869@jama \
--to=martin.jansa@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.