diff options
| author | Richard Purdie <richard@openedhand.com> | 2007-12-19 11:07:14 +0000 |
|---|---|---|
| committer | Richard Purdie <richard@openedhand.com> | 2007-12-19 11:07:14 +0000 |
| commit | bbb0b8bba763a6d8fc7c06b1d5a49866ebc725b6 (patch) | |
| tree | 33d3f93c8c69452708eee0b3366ac503a89b2965 /meta/classes/package.bbclass | |
| parent | 6480e3a2f6c0363efe336854476c38767b5d636a (diff) | |
| download | poky-bbb0b8bba763a6d8fc7c06b1d5a49866ebc725b6.tar.gz | |
package.bbclass: Various cleanups and bugfixes, some form OE
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3347 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/classes/package.bbclass')
| -rw-r--r-- | meta/classes/package.bbclass | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 5b1a7cf28a..4d9553d693 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass | |||
| @@ -385,8 +385,9 @@ python populate_packages () { | |||
| 385 | if file in seen: | 385 | if file in seen: |
| 386 | continue | 386 | continue |
| 387 | seen.append(file) | 387 | seen.append(file) |
| 388 | if os.path.isdir(file): | 388 | if os.path.isdir(file) and not os.path.islink(file): |
| 389 | bb.mkdirhier(os.path.join(root,file)) | 389 | bb.mkdirhier(os.path.join(root,file)) |
| 390 | os.chmod(os.path.join(root,file), os.stat(file).st_mode) | ||
| 390 | continue | 391 | continue |
| 391 | fpath = os.path.join(root,file) | 392 | fpath = os.path.join(root,file) |
| 392 | dpath = os.path.dirname(fpath) | 393 | dpath = os.path.dirname(fpath) |
| @@ -501,11 +502,14 @@ python emit_pkgdata() { | |||
| 501 | sf.close() | 502 | sf.close() |
| 502 | 503 | ||
| 503 | allow_empty = bb.data.getVar('ALLOW_EMPTY_%s' % pkg, d, 1) | 504 | allow_empty = bb.data.getVar('ALLOW_EMPTY_%s' % pkg, d, 1) |
| 505 | if not allow_empty: | ||
| 506 | allow_empty = bb.data.getVar('ALLOW_EMPTY', d, 1) | ||
| 504 | root = "%s/install/%s" % (workdir, pkg) | 507 | root = "%s/install/%s" % (workdir, pkg) |
| 505 | os.chdir(root) | 508 | os.chdir(root) |
| 506 | g = glob('*') | 509 | g = glob('*') |
| 507 | if g or allow_empty == "1": | 510 | if g or allow_empty == "1": |
| 508 | file(bb.data.expand('${PKGDATA_DIR}/runtime/%s.packaged' % pkg, d), 'w').close() | 511 | packagedfile = bb.data.expand('${PKGDATA_DIR}/runtime/%s.packaged' % pkg, d) |
| 512 | file(packagedfile, 'w').close() | ||
| 509 | } | 513 | } |
| 510 | emit_pkgdata[dirs] = "${PKGDATA_DIR}/runtime" | 514 | emit_pkgdata[dirs] = "${PKGDATA_DIR}/runtime" |
| 511 | 515 | ||
| @@ -555,6 +559,7 @@ python package_do_shlibs() { | |||
| 555 | bb.mkdirhier(shlibs_dir) | 559 | bb.mkdirhier(shlibs_dir) |
| 556 | 560 | ||
| 557 | needed = {} | 561 | needed = {} |
| 562 | private_libs = bb.data.getVar('PRIVATE_LIBS', d, 1) | ||
| 558 | for pkg in packages.split(): | 563 | for pkg in packages.split(): |
| 559 | needs_ldconfig = False | 564 | needs_ldconfig = False |
| 560 | bb.debug(2, "calculating shlib provides for %s" % pkg) | 565 | bb.debug(2, "calculating shlib provides for %s" % pkg) |
| @@ -567,7 +572,8 @@ python package_do_shlibs() { | |||
| 567 | soname = None | 572 | soname = None |
| 568 | path = os.path.join(root, file) | 573 | path = os.path.join(root, file) |
| 569 | if os.access(path, os.X_OK) or lib_re.match(file): | 574 | if os.access(path, os.X_OK) or lib_re.match(file): |
| 570 | cmd = (bb.data.getVar('BUILD_PREFIX', d, 1) or "") + "objdump -p " + path + " 2>/dev/null" | 575 | cmd = bb.data.getVar('OBJDUMP', d, 1) + " -p " + path + " 2>/dev/null" |
| 576 | cmd = "PATH=\"%s\" %s" % (bb.data.getVar('PATH', d, 1), cmd) | ||
| 571 | fd = os.popen(cmd) | 577 | fd = os.popen(cmd) |
| 572 | lines = fd.readlines() | 578 | lines = fd.readlines() |
| 573 | fd.close() | 579 | fd.close() |
| @@ -577,7 +583,9 @@ python package_do_shlibs() { | |||
| 577 | needed[pkg].append(m.group(1)) | 583 | needed[pkg].append(m.group(1)) |
| 578 | m = re.match("\s+SONAME\s+([^\s]*)", l) | 584 | m = re.match("\s+SONAME\s+([^\s]*)", l) |
| 579 | if m and not m.group(1) in sonames: | 585 | if m and not m.group(1) in sonames: |
| 580 | sonames.append(m.group(1)) | 586 | # if library is private (only used by package) then do not build shlib for it |
| 587 | if not private_libs or -1 == private_libs.find(m.group(1)): | ||
| 588 | sonames.append(m.group(1)) | ||
| 581 | if m and libdir_re.match(root): | 589 | if m and libdir_re.match(root): |
| 582 | needs_ldconfig = True | 590 | needs_ldconfig = True |
| 583 | shlibs_file = os.path.join(shlibs_dir, pkg + ".list") | 591 | shlibs_file = os.path.join(shlibs_dir, pkg + ".list") |
| @@ -766,20 +774,14 @@ python read_shlibdeps () { | |||
| 766 | packages = bb.data.getVar('PACKAGES', d, 1).split() | 774 | packages = bb.data.getVar('PACKAGES', d, 1).split() |
| 767 | for pkg in packages: | 775 | for pkg in packages: |
| 768 | rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "") | 776 | rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "") |
| 769 | shlibsfile = bb.data.expand("${PKGDEST}/" + pkg + ".shlibdeps", d) | 777 | for extension in ".shlibdeps", ".pcdeps", ".clilibdeps": |
| 770 | if os.access(shlibsfile, os.R_OK): | 778 | depsfile = bb.data.expand("${PKGDEST}/" + pkg + extension, d) |
| 771 | fd = file(shlibsfile) | 779 | if os.access(depsfile, os.R_OK): |
| 772 | lines = fd.readlines() | 780 | fd = file(depsfile) |
| 773 | fd.close() | 781 | lines = fd.readlines() |
| 774 | for l in lines: | 782 | fd.close() |
| 775 | rdepends.append(l.rstrip()) | 783 | for l in lines: |
| 776 | pcfile = bb.data.expand("${PKGDEST}/" + pkg + ".pcdeps", d) | 784 | rdepends.append(l.rstrip()) |
| 777 | if os.access(pcfile, os.R_OK): | ||
| 778 | fd = file(pcfile) | ||
| 779 | lines = fd.readlines() | ||
| 780 | fd.close() | ||
| 781 | for l in lines: | ||
| 782 | rdepends.append(l.rstrip()) | ||
| 783 | bb.data.setVar('RDEPENDS_' + pkg, " " + " ".join(rdepends), d) | 785 | bb.data.setVar('RDEPENDS_' + pkg, " " + " ".join(rdepends), d) |
| 784 | } | 786 | } |
| 785 | 787 | ||
| @@ -802,10 +804,7 @@ python package_depchains() { | |||
| 802 | prefixes = (bb.data.getVar('DEPCHAIN_PRE', d, 1) or '').split() | 804 | prefixes = (bb.data.getVar('DEPCHAIN_PRE', d, 1) or '').split() |
| 803 | 805 | ||
| 804 | def pkg_addrrecs(pkg, base, suffix, getname, rdepends, d): | 806 | def pkg_addrrecs(pkg, base, suffix, getname, rdepends, d): |
| 805 | #def packaged(pkg, d): | 807 | #bb.note('rdepends for %s is %s' % (base, rdepends)) |
| 806 | # return os.access(bb.data.expand('${PKGDATA_DIR}/runtime/%s.packaged' % pkg, d), os.R_OK) | ||
| 807 | |||
| 808 | #bb.note('rdepends for %s is %s' % (base, rdepends)) | ||
| 809 | 808 | ||
| 810 | rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "") | 809 | rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "") |
| 811 | 810 | ||
