aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/package.bbclass1
-rw-r--r--meta/classes/package_deb.bbclass16
2 files changed, 15 insertions, 2 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 732aeff92e..f3cbe2452c 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1392,6 +1392,7 @@ python emit_pkgdata() {
write_if_exists(sf, pkg, 'PACKAGE_ADD_METADATA_DEB')
write_if_exists(sf, pkg, 'PACKAGE_ADD_METADATA_IPK')
write_if_exists(sf, pkg, 'PACKAGE_ADD_METADATA_RPM')
+ write_if_exists(sf, pkg, 'MULTI_ARCH')
for dfile in (d.getVar('FILERPROVIDESFLIST_' + pkg) or "").split():
write_if_exists(sf, pkg, 'FILERPROVIDES_' + dfile)
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
index eb879e48a6..69363db7f4 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -162,9 +162,21 @@ python do_package_deb () {
l2.append(data)
return l2
+
+ def multi_arch_flag(d):
+ flag = d.getVar('MULTI_ARCH')
+ if flag:
+ return flag
+ if d.getVar('PACKAGE_ARCH') == "all":
+ return 'foreign'
+ if bb.data.inherits_class('kernel', d) or bb.data.inherits_class('module-base', d):
+ return 'foreign'
+ return 'no'
+
+
ctrlfile.write("Package: %s\n" % pkgname)
- if d.getVar('PACKAGE_ARCH') == "all":
- ctrlfile.write("Multi-Arch: foreign\n")
+ ctrlfile.write("Multi-Arch: %s\n" % multi_arch_flag(localdata))
+
# check for required fields
for (c, fs) in fields:
# Special behavior for description...