Skip to contentSkip to conversation

Misc fixes for multilib

PATCH Applied Lianhao Lu 3 participants 7 messages May 17, 2012 – May 18, 2012

lore
Share & tools
lore

Lianhao Lu

author
#0 lore raw

cover Misc fixes for multilib

This patch set added a package QA function to detect the potential incorrected package dependencies for multilib packages.

It also fixed the locale related package name in multilib case reported by the new package QA function.

The following changes since commit 2cf6e7cf81c0b864b5d51be60094a6eb3e584383:
Andrei Gherzan (1):
fotowall: Add #include ui_wizard.h to ExportWizard.cpp

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib llu/multilib2
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=llu/multilib2

Lianhao Lu (3):
(libc-)package.bbclass: Added MLPREFIX to locale packages. multilib.conf: Added multilib support for kmod. multilib.bbclass: Added multilib specific package QA.

 meta/classes/libc-package.bbclass |    4 ++--
 meta/classes/multilib.bbclass     |   31 +++++++++++++++++++++++++++++++
 meta/classes/package.bbclass      |    5 +++--
 meta/conf/multilib.conf           |    1 +
 4 files changed, 37 insertions(+), 4 deletions(-)
author
#1 lore raw

PATCH 1/3 (libc-)package.bbclass: Added MLPREFIX to locale packages.

Added multilib prefix to the locale related package names/dependencies.

---
 meta/classes/libc-package.bbclass |    4 ++--
 meta/classes/package.bbclass      |    5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)
meta/classes/libc-package.bbclass +2 -2
index 57b6fd9..10f5f87 100644
@@ -308,10 +308,10 @@ python package_do_split_gconvs () {
 		pkgname = d.getVar('MLPREFIX') + 'locale-base-' + legitimize_package_name(name)
 		d.setVar('ALLOW_EMPTY_%s' % pkgname, '1')
 		d.setVar('PACKAGES', '%s %s' % (pkgname, d.getVar('PACKAGES', True)))
-		rprovides = ' virtual-locale-%s' % legitimize_package_name(name)
+		rprovides = ' %svirtual-locale-%s' % (mlprefix, legitimize_package_name(name))
 		m = re.match("(.*)_(.*)", name)
 		if m:
-			rprovides += ' virtual-locale-%s' % m.group(1)
+			rprovides += ' %svirtual-locale-%s' % (mlprefix, m.group(1))
 		d.setVar('RPROVIDES_%s' % pkgname, rprovides)
 
 		if use_bin == "compile":
meta/classes/package.bbclass +3 -2
index 99836e9..6fba5b6 100644
@@ -400,13 +400,14 @@ python package_do_split_locales() {
 	summary = d.getVar('SUMMARY', True) or pn
 	description = d.getVar('DESCRIPTION', True) or "" 
         locale_section = d.getVar('LOCALE_SECTION', True)
+	mlprefix = d.getVar('MLPREFIX', True) or ""
 	for l in sorted(locales):
 		ln = legitimize_package_name(l)
 		pkg = pn + '-locale-' + ln
 		packages.append(pkg)
 		d.setVar('FILES_' + pkg, os.path.join(datadir, 'locale', l))
-		d.setVar('RDEPENDS_' + pkg, '%s virtual-locale-%s' % (pn, ln))
-		d.setVar('RPROVIDES_' + pkg, '%s-locale %s-translation' % (pn, ln))
+		d.setVar('RDEPENDS_' + pkg, '%s %svirtual-locale-%s' % (pn, mlprefix, ln))
+		d.setVar('RPROVIDES_' + pkg, '%s-locale %s%s-translation' % (pn, mlprefix, ln))
 		d.setVar('SUMMARY_' + pkg, '%s - %s translations' % (summary, l))
 		d.setVar('DESCRIPTION_' + pkg, '%s  This package contains language translation files for the %s locale.' % (description, l))
 		if locale_section:
Signature · 1 line
1.7.0.4
author
#2 lore raw

PATCH 2/3 multilib.conf: Added multilib support for kmod.

---
 meta/conf/multilib.conf |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
meta/conf/multilib.conf +1 -0
index f60a890..9fc5a90 100644
@@ -470,6 +470,7 @@ BBCLASSEXTEND_append_pn-mktemp = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-mobile-broadband-provider-info = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-module-init-tools-cross = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-module-init-tools = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-kmod = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-modutils-initscripts = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-mpeg2dec = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-mpfr = " ${MULTILIBS}"
Signature · 1 line
1.7.0.4
author
#3 lore raw

PATCH 3/3 multilib.bbclass: Added multilib specific package QA.

In reply to Lianhao Lu

Added a new PACKAGEFUNCS function to check the multilib packages' dependency.

---
 meta/classes/multilib.bbclass |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)
meta/classes/multilib.bbclass +31 -0
index c2d2f85..f3e7618 100644
@@ -66,3 +66,34 @@ python __anonymous () {
     clsextend.map_variable("PACKAGE_INSTALL")
     clsextend.map_variable("INITSCRIPT_PACKAGES")
 }
+
+PACKAGEFUNCS_append = "do_package_qa_multilib"
+
+python do_package_qa_multilib() {
+
+    def check_mlprefix(pkg, var, mlprefix):
+        values = bb.utils.explode_dep_versions(d.getVar('%s_%s' % (var, pkg), True) or d.getVar(var, True) or "")
+        candidates = []
+        for i in values.keys():
+            if i.startswith('virtual/'):
+                i = i[len('virtual/'):]
+            if (not i.startswith('kernel-module')) and (not i.startswith(mlprefix)):
+                candidates.append(i)
+        if len(candidates) > 0:
+            bb.warn("Multilib QA Issue: %s package %s - suspicious values '%s' in %s" 
+                   % (d.getVar('PN', True), pkg, ' '.join(candidates), var))
+
+    ml = d.getVar('MLPREFIX', True)
+    if not ml:
+        return
+
+    packages = d.getVar('PACKAGES', True)
+    for pkg in packages.split():
+        check_mlprefix(pkg, 'RDEPENDS', ml)
+        check_mlprefix(pkg, 'RPROVIDES', ml)
+        check_mlprefix(pkg, 'RRECOMMENDS', ml)
+        check_mlprefix(pkg, 'RSUGGESTS', ml)
+        check_mlprefix(pkg, 'RREPLACES', ml)
+        check_mlprefix(pkg, 'RCONFLICTS', ml)
+}
+
Signature · 1 line
1.7.0.4
#4 lore raw

Re: [PATCH 1/3] (libc-)package.bbclass: Added MLPREFIX to locale packages.

In reply to Lianhao Lu
Quoted 3 lines · Lianhao Lu

Added multilib prefix to the locale related package names/dependencies.

Does mlprefix already has a leading '-' ? otherwise I think adding a - would make is more readable.

Quoted 51 lines

---
 meta/classes/libc-package.bbclass |    4 ++--
 meta/classes/package.bbclass      |    5 +++--

 2 files changed, 5 insertions(+), 4 deletions(-)
meta/classes/libc-package.bbclass +1 -1
index 57b6fd9..10f5f87 100644
@@ -308,10 +308,10 @@ python package_do_split_gconvs () {
                pkgname = d.getVar('MLPREFIX') + 'locale-base-' + legitimize_package_name(name)
                d.setVar('ALLOW_EMPTY_%s' % pkgname, '1')
                d.setVar('PACKAGES', '%s %s' % (pkgname, d.getVar('PACKAGES', True)))
-               rprovides = ' virtual-locale-%s' % legitimize_package_name(name)
+               rprovides = ' %svirtual-locale-%s' % (mlprefix, legitimize_package_name(name))
                m = re.match("(.*)_(.*)", name)

               if m:
-                       rprovides += ' virtual-locale-%s' % m.group(1)
+                       rprovides += ' %svirtual-locale-%s' % (mlprefix, m.group(1)) d.setVar('RPROVIDES_%s' % pkgname, rprovides)

               if use_bin == "compile":

meta/classes/package.bbclass +0 -0
index 99836e9..6fba5b6 100644
@@ -400,13 +400,14 @@ python package_do_split_locales() {

       summary = d.getVar('SUMMARY', True) or pn
       description = d.getVar('DESCRIPTION', True) or ""
        locale_section = d.getVar('LOCALE_SECTION', True)
+       mlprefix = d.getVar('MLPREFIX', True) or ""
       for l in sorted(locales):
               ln = legitimize_package_name(l)
               pkg = pn + '-locale-' + ln
               packages.append(pkg)
               d.setVar('FILES_' + pkg, os.path.join(datadir, 'locale', l))
-               d.setVar('RDEPENDS_' + pkg, '%s virtual-locale-%s' % (pn, ln))
-               d.setVar('RPROVIDES_' + pkg, '%s-locale %s-translation' % (pn, ln))
+               d.setVar('RDEPENDS_' + pkg, '%s %svirtual-locale-%s' % (pn, mlprefix, ln))
+               d.setVar('RPROVIDES_' + pkg, '%s-locale %s%s-translation' % (pn, mlprefix, ln))
               d.setVar('SUMMARY_' + pkg, '%s - %s translations' % (summary, l))
               d.setVar('DESCRIPTION_' + pkg, '%s  This package contains language translation files for the %s locale.' % (description, l)) if locale_section:
--
1.7.0.4

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

#5 lore raw

Re: [PATCH 1/3] (libc-)package.bbclass: Added MLPREFIX to locale packages.

Quoted 7 lines · Khem Raj
Quoted 3 lines · Lianhao Lu

Added multilib prefix to the locale related package names/dependencies.

Does mlprefix already has a leading '-' ? otherwise I think adding a - would make is more readable.

mlprefix adds this. Trying to do this the other way makes things too difficult and potentially inconsistent.

Cheers,

Richard

#6 lore raw
In reply to Lianhao Lu
Quoted 12 lines · Lianhao Lu

This patch set added a package QA function to detect the potential incorrected package dependencies for multilib packages.

It also fixed the locale related package name in multilib case reported by the new package QA function.

The following changes since commit 2cf6e7cf81c0b864b5d51be60094a6eb3e584383:
Andrei Gherzan (1):
fotowall: Add #include ui_wizard.h to ExportWizard.cpp

are available in the git repository at:

Quoted 7 lines

git://git.yoctoproject.org/poky-contrib llu/multilib2
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=llu/multilib2

Lianhao Lu (3):
(libc-)package.bbclass: Added MLPREFIX to locale packages. multilib.conf: Added multilib support for kmod. multilib.bbclass: Added multilib specific package QA.

Merged to master, thanks.

Richard