[oe-commits] : package.bbclass: add PACKAGE_SNAP_LIB_SYMLINKS
OE GIT Trial
gittrial at amethyst.openembedded.net
Sun Sep 7 13:32:50 UTC 2008
Module: OE.dev
Branch: org.openembedded.dev
Commit: 8c0c0af568485e609e47e31d6ad8feb7ce1183b8
URL: http://gitweb.openembedded.net//OE.dev.git/?a=commit;h=8c0c0af568485e609e47e31d6ad8feb7ce1183b8
Author: <pb at openembedded.org>
Date: Sun Sep 7 12:57:29 2008 +0000
package.bbclass: add PACKAGE_SNAP_LIB_SYMLINKS
---
classes/package.bbclass | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/classes/package.bbclass b/classes/package.bbclass
index e014796..4079e11 100644
--- a/classes/package.bbclass
+++ b/classes/package.bbclass
@@ -581,6 +581,11 @@ python package_do_shlibs() {
if pstageactive == "1":
lf = bb.utils.lockfile(bb.data.expand("${STAGING_DIR}/staging.lock", d))
+ if bb.data.getVar('PACKAGE_SNAP_LIB_SYMLINKS', d, True) == "1":
+ snap_symlinks = True
+ else:
+ snap_symlinks = False
+
needed = {}
private_libs = bb.data.getVar('PRIVATE_LIBS', d, 1)
for pkg in packages.split():
@@ -590,6 +595,7 @@ python package_do_shlibs() {
needed[pkg] = []
sonames = list()
top = os.path.join(pkgdest, pkg)
+ renames = []
for root, dirs, files in os.walk(top):
for file in files:
soname = None
@@ -605,12 +611,18 @@ python package_do_shlibs() {
if m:
needed[pkg].append(m.group(1))
m = re.match("\s+SONAME\s+([^\s]*)", l)
- if m and not m.group(1) in sonames:
- # if library is private (only used by package) then do not build shlib for it
- if not private_libs or -1 == private_libs.find(m.group(1)):
- sonames.append(m.group(1))
- if m and libdir_re.match(root):
- needs_ldconfig = True
+ if m:
+ this_soname = m.group(1)
+ if not this_soname in sonames:
+ # if library is private (only used by package) then do not build shlib for it
+ if not private_libs or -1 == private_libs.find(this_soname):
+ sonames.append(this_soname)
+ if libdir_re.match(root):
+ needs_ldconfig = True
+ if snap_symlinks and (file != soname):
+ renames.append((path, os.path.join(root, this_soname)))
+ for (old, new) in renames:
+ os.rename(old, new)
shlibs_file = os.path.join(shlibs_dir, pkg + ".list")
if os.path.exists(shlibs_file):
os.remove(shlibs_file)
More information about the Openembedded-commits
mailing list