mirror of
https://git.yoctoproject.org/poky
synced 2026-04-05 08:02:25 +02:00
classes/package: move read_shlib_providers() to a common unit
This allows us to use this function elsewhere in the code. (From OE-Core rev: 657cff8a0f0e5db171b2ed9388a790ee0b135842) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
3e6e4e0198
commit
de8730ce2d
@@ -1391,32 +1391,11 @@ python package_do_shlibs() {
|
||||
|
||||
pkgdest = d.getVar('PKGDEST', True)
|
||||
|
||||
shlibs_dirs = d.getVar('SHLIBSDIRS', True).split()
|
||||
shlibswork_dir = d.getVar('SHLIBSWORKDIR', True)
|
||||
|
||||
# Take shared lock since we're only reading, not writing
|
||||
lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"))
|
||||
|
||||
def read_shlib_providers():
|
||||
list_re = re.compile('^(.*)\.list$')
|
||||
# Go from least to most specific since the last one found wins
|
||||
for dir in reversed(shlibs_dirs):
|
||||
bb.debug(2, "Reading shlib providers in %s" % (dir))
|
||||
if not os.path.exists(dir):
|
||||
continue
|
||||
for file in os.listdir(dir):
|
||||
m = list_re.match(file)
|
||||
if m:
|
||||
dep_pkg = m.group(1)
|
||||
fd = open(os.path.join(dir, file))
|
||||
lines = fd.readlines()
|
||||
fd.close()
|
||||
for l in lines:
|
||||
s = l.strip().split(":")
|
||||
if s[0] not in shlib_provider:
|
||||
shlib_provider[s[0]] = {}
|
||||
shlib_provider[s[0]][s[1]] = (dep_pkg, s[2])
|
||||
|
||||
def linux_so(file, needed, sonames, renames, pkgver):
|
||||
needs_ldconfig = False
|
||||
ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '')
|
||||
@@ -1513,8 +1492,7 @@ python package_do_shlibs() {
|
||||
use_ldconfig = False
|
||||
|
||||
needed = {}
|
||||
shlib_provider = {}
|
||||
read_shlib_providers()
|
||||
shlib_provider = oe.package.read_shlib_providers(d)
|
||||
|
||||
for pkg in packages.split():
|
||||
private_libs = d.getVar('PRIVATE_LIBS_' + pkg, True) or d.getVar('PRIVATE_LIBS', True) or ""
|
||||
|
||||
@@ -97,3 +97,29 @@ def filedeprunner(arg):
|
||||
raise e
|
||||
|
||||
return (pkg, provides, requires)
|
||||
|
||||
|
||||
def read_shlib_providers(d):
|
||||
import re
|
||||
|
||||
shlib_provider = {}
|
||||
shlibs_dirs = d.getVar('SHLIBSDIRS', True).split()
|
||||
list_re = re.compile('^(.*)\.list$')
|
||||
# Go from least to most specific since the last one found wins
|
||||
for dir in reversed(shlibs_dirs):
|
||||
bb.debug(2, "Reading shlib providers in %s" % (dir))
|
||||
if not os.path.exists(dir):
|
||||
continue
|
||||
for file in os.listdir(dir):
|
||||
m = list_re.match(file)
|
||||
if m:
|
||||
dep_pkg = m.group(1)
|
||||
fd = open(os.path.join(dir, file))
|
||||
lines = fd.readlines()
|
||||
fd.close()
|
||||
for l in lines:
|
||||
s = l.strip().split(":")
|
||||
if s[0] not in shlib_provider:
|
||||
shlib_provider[s[0]] = {}
|
||||
shlib_provider[s[0]][s[1]] = (dep_pkg, s[2])
|
||||
return shlib_provider
|
||||
|
||||
Reference in New Issue
Block a user