summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
Diffstat (limited to 'classes')
-rw-r--r--classes/package.bbclass40
-rw-r--r--classes/package_ipk.bbclass18
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"]: