[bitbake-devel] [2/2] image.bbclass/rootfs.py: PREFERRED_PROVIDER for rdepends

Jate Sujjavanich jatedev at gmail.com
Thu May 7 23:50:47 UTC 2015


Add item (package name) to list that is searched for possible
PREFERRED_PROVIDER's.

The WARNING from bitbake suggested specifying a PREFERRED_PROVIDER for the
package name, but setting it did nothing because the filterRunTimeProviders
searched only for the recipe names.

For the example case in bug #6149, bitbake looks for
PREFERRED_PROVIDER_openssh
and PREFERRED_provider_dropbear. This change allows
PREFERRED_PROVIDER_sshd="dropbear".

Signed-off-by: Jate Sujjavanich <jatedev at gmail.com>
----
The following changes since commit efe5b0940a6abc7348d8c60c456d93f5de8dda89:

  providers.py: Add package name to PREFERRED_PROVIDER search (2015-05-07
19:07:18 -0400)

are available in the git repository at:

  git://github.com/jatedev/poky.git oe-core-image-rdepend-alt

for you to fetch changes up to 60e7c872713ec2bef97a8bd5090d72e5e713ef31:

  image.bbclass/rootfs.py: PREFERRED_PROVIDER for rdepends (2015-05-07
19:07:45 -0400)

----------------------------------------------------------------
Jate Sujjavanich (1):
      image.bbclass/rootfs.py: PREFERRED_PROVIDER for rdepends

 meta/classes/image.bbclass |   14 ++++++++++++++
 meta/lib/oe/rootfs.py      |    2 +-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 01f8b3f..9bcc369 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -283,6 +283,20 @@ python rootfs_process_ignore() {
 }
 do_rootfs[prefuncs] += "rootfs_process_ignore"

+python rootfs_process_preferred_providers() {
+    inst_pkgs = d.getVar("PACKAGE_INSTALL", True).split()
+    pref_pkgs = list()
+    for pkg in inst_pkgs:
+        prefervar = d.getVar("PREFERRED_PROVIDER_%s" % pkg, True)
+        if prefervar:
+            inst_pkgs.remove(pkg)
+            pref_pkgs.append(prefervar)
+            bb.note("Selecting %s to provide %s due to PREFERRED_PROVIDER"
% (prefervar, pkg))
+    inst_pkgs.extend(pref_pkgs)
+    d.setVar("PACKAGE_INSTALL", ' '.join(inst_pkgs))
+}
+do_rootfs[prefuncs] += "rootfs_process_preferred_providers"
+
 # We have to delay the runtime_mapping_rename until just before rootfs runs
 # otherwise, the multilib renaming could step in and squash any fixups that
 # may have occurred.
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index 6fb749f..64fa153 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -393,7 +393,7 @@ class RpmRootfs(Rootfs):
         pass

     def _log_check_error(self):
-        r = re.compile('(unpacking of archive failed|Cannot find
package|exit 1|ERR|Fail)')
+        r = re.compile('(unpacking of archive failed|Cannot find
package|exit 1|ERR(?!ED_PROVIDER)|Fail)')
         log_path = self.d.expand("${T}/log.do_rootfs")
         with open(log_path, 'r') as log:
             found_error = 0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/bitbake-devel/attachments/20150507/76597f55/attachment-0002.html>


More information about the bitbake-devel mailing list