[oe-commits] [openembedded-core] 04/11: package: Fix various rpmdeps relocation issues
git at git.openembedded.org
git at git.openembedded.org
Tue Mar 14 14:28:21 UTC 2017
This is an automated email from the git hooks/post-receive script.
rpurdie pushed a commit to branch master-next
in repository openembedded-core.
commit 806e37264d7102ae982867350ad8363ed3e5f475
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Mon Mar 13 22:46:18 2017 +0000
package: Fix various rpmdeps relocation issues
There are several issues with rpmdeps after the rpm v5 -> v4 transition:
* _rpmfc_magic_path is an invalid option for rpm4
* --rpmpopt is an invalid option for rpm4
* we need to use the path to rpmrc since otherwise it poitns at the
original build path
* we need to set MAGIC in the environment so libmagic can find its
files.
This patch addresses those and ensures rpmdeps works in relocated builds
from sstate (or with rm_work).
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
meta/classes/package.bbclass | 5 +++--
meta/lib/oe/package.py | 7 +++++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 48fef97..871263f 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1433,7 +1433,7 @@ if [ x"$D" = "x" ]; then
fi
}
-RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --macros ${STAGING_LIBDIR_NATIVE}/rpm/macros --define '_rpmfc_magic_path ${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc' --rpmpopt ${STAGING_LIBDIR_NATIVE}/rpm/rpmpopt"
+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:
@@ -1450,6 +1450,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)]
@@ -1461,7 +1462,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 0ca41aa..52c5f16 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -57,7 +57,7 @@ def file_translate(file):
def filedeprunner(arg):
import re, subprocess, shlex
- (pkg, pkgfiles, rpmdeps, pkgdest) = arg
+ (pkg, pkgfiles, rpmdeps, pkgdest, magic) = arg
provides = {}
requires = {}
@@ -90,8 +90,11 @@ def filedeprunner(arg):
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))
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Openembedded-commits
mailing list