diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-06-12 23:01:34 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-06-12 23:01:34 +0100 |
commit | 592ef8966295008c96c2a2b4138b16345a7c05b1 (patch) | |
tree | 3841497303e3240ac1bbde74db9a2b5563602079 /meta | |
parent | aea90e9ee6f34e7c1c08307080b1e29646668df6 (diff) | |
download | openembedded-core-contrib-592ef8966295008c96c2a2b4138b16345a7c05b1.tar.gz |
Revert "package.bbclass: Restore functionality to detect RPM dependencies"
This reverts commit aea90e9ee6f34e7c1c08307080b1e29646668df6.
RP hadn't meant to merge this yet and its causing problems so delay it until its
ready.
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/package.bbclass | 5 | ||||
-rw-r--r-- | meta/lib/oe/package.py | 47 |
2 files changed, 23 insertions, 29 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 65cf5fac5f..cc466bd1b2 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1434,7 +1434,7 @@ if [ x"$D" = "x" ]; then fi } -RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --alldeps" +RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --rcfile ${STAGING_LIBDIR_NATIVE}/rpm/rpmrc --macros ${STAGING_LIBDIR_NATIVE}/rpm/macros --define '_rpmconfigdir ${STAGING_LIBDIR_NATIVE}/rpm/'" # Collect perfile run-time dependency metadata # Output: @@ -1451,6 +1451,7 @@ python package_do_filedeps() { pkgdest = d.getVar('PKGDEST') packages = d.getVar('PACKAGES') rpmdeps = d.getVar('RPMDEPS') + magic = d.expand("${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc") def chunks(files, n): return [files[i:i+n] for i in range(0, len(files), n)] @@ -1462,7 +1463,7 @@ python package_do_filedeps() { if pkg.endswith('-dbg') or pkg.endswith('-doc') or pkg.find('-locale-') != -1 or pkg.find('-localedata-') != -1 or pkg.find('-gconv-') != -1 or pkg.find('-charmap-') != -1 or pkg.startswith('kernel-module-'): continue for files in chunks(pkgfiles[pkg], 100): - pkglist.append((pkg, files, rpmdeps, pkgdest)) + pkglist.append((pkg, files, rpmdeps, pkgdest, magic)) processed = oe.utils.multiprocess_exec( pkglist, oe.package.filedeprunner) diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index 811d27964b..52c5f16cf8 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -57,51 +57,44 @@ def file_translate(file): def filedeprunner(arg): import re, subprocess, shlex - (pkg, pkgfiles, rpmdeps, pkgdest) = arg + (pkg, pkgfiles, rpmdeps, pkgdest, magic) = arg provides = {} requires = {} - file_re = re.compile(r'\s+\d+\s(.*)') - dep_re = re.compile(r'\s+(\S)\s+(.*)') - r = re.compile(r'[<>=]+\s+\S*') + r = re.compile(r'[<>=]+ +[^ ]*') def process_deps(pipe, pkg, pkgdest, provides, requires): - file = None for line in pipe: - line = line.decode("utf-8") + f = line.decode("utf-8").split(" ", 1)[0].strip() + line = line.decode("utf-8").split(" ", 1)[1].strip() - m = file_re.match(line) - if m: - file = m.group(1) - file = file.replace(pkgdest + "/" + pkg, "") - file = file_translate(file) - continue - - m = dep_re.match(line) - if not m or not file: - continue - - type, dep = m.groups() - - if type == 'R': + if line.startswith("Requires:"): i = requires - elif type == 'P': + elif line.startswith("Provides:"): i = provides else: - continue - - if dep.startswith("python("): continue - dep = r.sub(r'(\g<0>)',dep) + file = f.replace(pkgdest + "/" + pkg, "") + file = file_translate(file) + value = line.split(":", 1)[1].strip() + value = r.sub(r'(\g<0>)', value) + + if value.startswith("rpmlib("): + continue + if value == "python": + continue if file not in i: i[file] = [] - i[file].append(dep) + i[file].append(value) return provides, requires + env = os.environ.copy() + env["MAGIC"] = magic + try: - dep_popen = subprocess.Popen(shlex.split(rpmdeps) + pkgfiles, stdout=subprocess.PIPE) + dep_popen = subprocess.Popen(shlex.split(rpmdeps) + pkgfiles, stdout=subprocess.PIPE, env=env) provides, requires = process_deps(dep_popen.stdout, pkg, pkgdest, provides, requires) except OSError as e: bb.error("rpmdeps: '%s' command failed, '%s'" % (shlex.split(rpmdeps) + pkgfiles, e)) |