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
This commit is contained in:
Richard Purdie 2007-12-19 11:07:14 +00:00
parent 6480e3a2f6
commit bbb0b8bba7
1 changed files with 21 additions and 22 deletions

View File

@ -385,8 +385,9 @@ python populate_packages () {
if file in seen:
continue
seen.append(file)
if os.path.isdir(file):
if os.path.isdir(file) and not os.path.islink(file):
bb.mkdirhier(os.path.join(root,file))
os.chmod(os.path.join(root,file), os.stat(file).st_mode)
continue
fpath = os.path.join(root,file)
dpath = os.path.dirname(fpath)
@ -501,11 +502,14 @@ python emit_pkgdata() {
sf.close()
allow_empty = bb.data.getVar('ALLOW_EMPTY_%s' % pkg, d, 1)
if not allow_empty:
allow_empty = bb.data.getVar('ALLOW_EMPTY', d, 1)
root = "%s/install/%s" % (workdir, pkg)
os.chdir(root)
g = glob('*')
if g or allow_empty == "1":
file(bb.data.expand('${PKGDATA_DIR}/runtime/%s.packaged' % pkg, d), 'w').close()
packagedfile = bb.data.expand('${PKGDATA_DIR}/runtime/%s.packaged' % pkg, d)
file(packagedfile, 'w').close()
}
emit_pkgdata[dirs] = "${PKGDATA_DIR}/runtime"
@ -555,6 +559,7 @@ python package_do_shlibs() {
bb.mkdirhier(shlibs_dir)
needed = {}
private_libs = bb.data.getVar('PRIVATE_LIBS', d, 1)
for pkg in packages.split():
needs_ldconfig = False
bb.debug(2, "calculating shlib provides for %s" % pkg)
@ -567,7 +572,8 @@ python package_do_shlibs() {
soname = None
path = os.path.join(root, file)
if os.access(path, os.X_OK) or lib_re.match(file):
cmd = (bb.data.getVar('BUILD_PREFIX', d, 1) or "") + "objdump -p " + path + " 2>/dev/null"
cmd = bb.data.getVar('OBJDUMP', d, 1) + " -p " + path + " 2>/dev/null"
cmd = "PATH=\"%s\" %s" % (bb.data.getVar('PATH', d, 1), cmd)
fd = os.popen(cmd)
lines = fd.readlines()
fd.close()
@ -577,7 +583,9 @@ python package_do_shlibs() {
needed[pkg].append(m.group(1))
m = re.match("\s+SONAME\s+([^\s]*)", l)
if m and not m.group(1) in sonames:
sonames.append(m.group(1))
# 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
shlibs_file = os.path.join(shlibs_dir, pkg + ".list")
@ -766,20 +774,14 @@ python read_shlibdeps () {
packages = bb.data.getVar('PACKAGES', d, 1).split()
for pkg in packages:
rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "")
shlibsfile = bb.data.expand("${PKGDEST}/" + pkg + ".shlibdeps", d)
if os.access(shlibsfile, os.R_OK):
fd = file(shlibsfile)
lines = fd.readlines()
fd.close()
for l in lines:
rdepends.append(l.rstrip())
pcfile = bb.data.expand("${PKGDEST}/" + pkg + ".pcdeps", d)
if os.access(pcfile, os.R_OK):
fd = file(pcfile)
lines = fd.readlines()
fd.close()
for l in lines:
rdepends.append(l.rstrip())
for extension in ".shlibdeps", ".pcdeps", ".clilibdeps":
depsfile = bb.data.expand("${PKGDEST}/" + pkg + extension, d)
if os.access(depsfile, os.R_OK):
fd = file(depsfile)
lines = fd.readlines()
fd.close()
for l in lines:
rdepends.append(l.rstrip())
bb.data.setVar('RDEPENDS_' + pkg, " " + " ".join(rdepends), d)
}
@ -802,10 +804,7 @@ python package_depchains() {
prefixes = (bb.data.getVar('DEPCHAIN_PRE', d, 1) or '').split()
def pkg_addrrecs(pkg, base, suffix, getname, rdepends, d):
#def packaged(pkg, d):
# return os.access(bb.data.expand('${PKGDATA_DIR}/runtime/%s.packaged' % pkg, d), os.R_OK)
#bb.note('rdepends for %s is %s' % (base, rdepends))
#bb.note('rdepends for %s is %s' % (base, rdepends))
rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "")