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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox