diff options
| -rw-r--r-- | meta/classes/package.bbclass | 24 | ||||
| -rw-r--r-- | meta/lib/oe/package.py | 26 | 
2 files changed, 27 insertions, 23 deletions
| diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index dc4025d327..fc501fcdea 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -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 "" diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index f8b532220a..ea6feaaea4 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -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 | 
