[oe] [meta-systemd][PATCH 1/2] Delete systemd class.
Martin Jansa
martin.jansa at gmail.com
Tue Mar 5 22:18:57 UTC 2013
On Wed, Feb 13, 2013 at 09:25:34AM -0800, Khem Raj wrote:
> Signed-off-by: Khem Raj <raj.khem at 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 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/20130305/f9a2153e/attachment-0002.sig>
More information about the Openembedded-devel
mailing list