1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-09 17:39:31 +00:00

package.bbclass: Fix do_shlibs

The current packages shlibs processing is written to a local temporary file.
This file is not consulted when evaluting the provider of the dependency,
instead we need to cache the local values into the dictionary while we write
the temp file.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
This commit is contained in:
Mark Hatle
2010-08-21 12:21:02 -07:00
committed by Richard Purdie
parent 5977534d5f
commit b9f4ff1386
+5 -4
View File
@@ -557,9 +557,6 @@ if [ x"$D" = "x" ]; then
fi fi
} }
SHLIBSDIR = "${STAGING_DIR_HOST}/shlibs"
SHLIBSWORKDIR = "${WORKDIR}/shlibs"
RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/${BUILD_ARCH}-${BUILD_OS}-rpmdeps" RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/${BUILD_ARCH}-${BUILD_OS}-rpmdeps"
# Collect perfile run-time dependency metadata # Collect perfile run-time dependency metadata
@@ -616,6 +613,9 @@ python package_do_filedeps() {
process_deps(dep_pipe, pkg, 'RDEPENDS') process_deps(dep_pipe, pkg, 'RDEPENDS')
} }
SHLIBSDIR = "${STAGING_DIR_HOST}/shlibs"
SHLIBSWORKDIR = "${WORKDIR}/shlibs"
python package_do_shlibs() { python package_do_shlibs() {
import re import re
@@ -723,6 +723,7 @@ python package_do_shlibs() {
needed[pkg].append(name) needed[pkg].append(name)
#bb.note("Adding %s for %s" % (name, pkg)) #bb.note("Adding %s for %s" % (name, pkg))
needed = {} needed = {}
shlib_provider = {}
private_libs = bb.data.getVar('PRIVATE_LIBS', d, True) private_libs = bb.data.getVar('PRIVATE_LIBS', d, True)
for pkg in packages.split(): for pkg in packages.split():
needs_ldconfig = False needs_ldconfig = False
@@ -747,6 +748,7 @@ python package_do_shlibs() {
fd = open(shlibs_file, 'w') fd = open(shlibs_file, 'w')
for s in sonames: for s in sonames:
fd.write(s + '\n') fd.write(s + '\n')
shlib_provider[s] = (pkg, ver)
fd.close() fd.close()
fd = open(shver_file, 'w') fd = open(shver_file, 'w')
fd.write(ver + '\n') fd.write(ver + '\n')
@@ -761,7 +763,6 @@ python package_do_shlibs() {
bb.utils.unlockfile(lf) bb.utils.unlockfile(lf)
shlib_provider = {}
list_re = re.compile('^(.*)\.list$') list_re = re.compile('^(.*)\.list$')
for dir in [shlibs_dir]: for dir in [shlibs_dir]:
if not os.path.exists(dir): if not os.path.exists(dir):