diff options
Diffstat (limited to 'classes')
-rw-r--r-- | classes/package.bbclass | 40 | ||||
-rw-r--r-- | classes/package_ipk.bbclass | 18 |
2 files changed, 37 insertions, 21 deletions
diff --git a/classes/package.bbclass b/classes/package.bbclass index cbd772cd9f..4ca34a3d05 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -358,7 +358,7 @@ python package_do_shlibs() { shlib_provider = {} list_re = re.compile('^(.*)\.list$') - for dir in [shlibs_dir, old_shlibs_dir]: + for dir in [old_shlibs_dir, shlibs_dir]: if not os.path.exists(dir): continue for file in os.listdir(dir): @@ -381,11 +381,16 @@ python package_do_shlibs() { for pkg in packages.split(): bb.debug(2, "calculating shlib requirements for %s" % pkg) + p_pkg = bb.data.getVar("PKG_%s" % pkg, d, 1) or pkg + deps = list() for n in needed[pkg]: if n in shlib_provider.keys(): (dep_pkg, ver_needed) = shlib_provider[n] + if dep_pkg == p_pkg: + continue + if ver_needed: dep = "%s (>= %s)" % (dep_pkg, ver_needed) else: @@ -424,6 +429,15 @@ python package_do_pkgconfig () { bb.error("STAGING_DIR not defined") return + target_sys = bb.data.getVar('TARGET_SYS', d, 1) + if not target_sys: + bb.error("TARGET_SYS not defined") + return + + shlibs_dir = os.path.join(staging, target_sys, "shlibs") + old_shlibs_dir = os.path.join(staging, "shlibs") + bb.mkdirhier(shlibs_dir) + pc_re = re.compile('(.*)\.pc$') var_re = re.compile('(.*)=(.*)') field_re = re.compile('(.*): (.*)') @@ -461,9 +475,6 @@ python package_do_pkgconfig () { if hdr == 'Requires': pkgconfig_needed[pkg] += exp.replace(',', ' ').split() - shlibs_dir = os.path.join(staging, "shlibs") - bb.mkdirhier(shlibs_dir) - for pkg in packages.split(): pkgs_file = os.path.join(shlibs_dir, pkg + ".pclist") if os.path.exists(pkgs_file): @@ -474,16 +485,17 @@ python package_do_pkgconfig () { f.write('%s\n' % p) f.close() - for file in os.listdir(shlibs_dir): - m = re.match('^(.*)\.pclist$', file) - if m: - pkg = m.group(1) - fd = open(os.path.join(shlibs_dir, file)) - lines = fd.readlines() - fd.close() - pkgconfig_provided[pkg] = [] - for l in lines: - pkgconfig_provided[pkg].append(l.rstrip()) + for dir in [old_shlibs_dir, shlibs_dir]: + for file in os.listdir(dir): + m = re.match('^(.*)\.pclist$', file) + if m: + pkg = m.group(1) + fd = open(os.path.join(dir, file)) + lines = fd.readlines() + fd.close() + pkgconfig_provided[pkg] = [] + for l in lines: + pkgconfig_provided[pkg].append(l.rstrip()) for pkg in packages.split(): deps = [] diff --git a/classes/package_ipk.bbclass b/classes/package_ipk.bbclass index 513e4639b5..a029d088fb 100644 --- a/classes/package_ipk.bbclass +++ b/classes/package_ipk.bbclass @@ -63,6 +63,7 @@ python package_ipk_install () { python do_package_ipk () { import copy # to back up env data import sys + import re workdir = bb.data.getVar('WORKDIR', d, 1) if not workdir: @@ -145,7 +146,6 @@ python do_package_ipk () { fields.append(["Maintainer: %s\n", ['MAINTAINER']]) fields.append(["Architecture: %s\n", ['PACKAGE_ARCH']]) fields.append(["OE: %s\n", ['P']]) - fields.append(["Source: %s\n", ['SRC_URI']]) def pullData(l, d): l2 = [] @@ -173,17 +173,21 @@ python do_package_ipk () { rreplaces = (bb.data.getVar("RREPLACES", localdata, 1) or "").split() rconflicts = (bb.data.getVar("RCONFLICTS", localdata, 1) or "").split() if rdepends: - ctrlfile.write("Depends: " + ", ".join(rdepends) + "\n") + ctrlfile.write("Depends: %s\n" % ", ".join(rdepends)) if rsuggests: - ctrlfile.write("Suggests: " + ", ".join(rsuggests) + "\n") + ctrlfile.write("Suggests: %s\n" % ", ".join(rsuggests)) if rrecommends: - ctrlfile.write("Recommends: " + ", ".join(rrecommends) + "\n") + ctrlfile.write("Recommends: %s\n" % ", ".join(rrecommends)) if rprovides: - ctrlfile.write("Provides: " + ", ".join(rprovides) + "\n") + ctrlfile.write("Provides: %s\n" % ", ".join(rprovides)) if rreplaces: - ctrlfile.write("Replaces: " + ", ".join(rreplaces) + "\n") + ctrlfile.write("Replaces: %s\n" % ", ".join(rreplaces)) if rconflicts: - ctrlfile.write("Conflicts: " + ", ".join(rconflicts) + "\n") + ctrlfile.write("Conflicts: %s\n" % ", ".join(rconflicts)) + src_uri = bb.data.getVar("SRC_URI", localdata, 1) + if src_uri: + src_uri = re.sub("\s+", " ", src_uri) + ctrlfile.write("Source: %s\n" % src_uri) ctrlfile.close() for script in ["preinst", "postinst", "prerm", "postrm"]: |