[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