<div dir="ltr">Add item (package name) to list that is searched for possible<br>PREFERRED_PROVIDER&#39;s.<br><br>The WARNING from bitbake suggested specifying a PREFERRED_PROVIDER for the<br>package name, but setting it did nothing because the filterRunTimeProviders<br>searched only for the recipe names.<br><br>For the example case in bug #6149, bitbake looks for PREFERRED_PROVIDER_openssh<br>and PREFERRED_provider_dropbear. This change allows<br>PREFERRED_PROVIDER_sshd=&quot;dropbear&quot;.<br><br>Signed-off-by: Jate Sujjavanich &lt;<a href="mailto:jatedev@gmail.com">jatedev@gmail.com</a>&gt;<br>----<br>The following changes since commit efe5b0940a6abc7348d8c60c456d93f5de8dda89:<br><br>  providers.py: Add package name to PREFERRED_PROVIDER search (2015-05-07 19:07:18 -0400)<br><br>are available in the git repository at:<br><br>  git://<a href="http://github.com/jatedev/poky.git">github.com/jatedev/poky.git</a> oe-core-image-rdepend-alt<br><br>for you to fetch changes up to 60e7c872713ec2bef97a8bd5090d72e5e713ef31:<br><br>  image.bbclass/rootfs.py: PREFERRED_PROVIDER for rdepends (2015-05-07 19:07:45 -0400)<br><br>----------------------------------------------------------------<br>Jate Sujjavanich (1):<br>      image.bbclass/rootfs.py: PREFERRED_PROVIDER for rdepends<br><br> meta/classes/image.bbclass |   14 ++++++++++++++<br> meta/lib/oe/rootfs.py      |    2 +-<br> 2 files changed, 15 insertions(+), 1 deletion(-)<br><br>diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass<br>index 01f8b3f..9bcc369 100644<br>--- a/meta/classes/image.bbclass<br>+++ b/meta/classes/image.bbclass<br>@@ -283,6 +283,20 @@ python rootfs_process_ignore() {<br> }<br> do_rootfs[prefuncs] += &quot;rootfs_process_ignore&quot;<br><br>+python rootfs_process_preferred_providers() {<br>+    inst_pkgs = d.getVar(&quot;PACKAGE_INSTALL&quot;, True).split()<br>+    pref_pkgs = list()<br>+    for pkg in inst_pkgs:<br>+        prefervar = d.getVar(&quot;PREFERRED_PROVIDER_%s&quot; % pkg, True)<br>+        if prefervar:<br>+            inst_pkgs.remove(pkg)<br>+            pref_pkgs.append(prefervar)<br>+            bb.note(&quot;Selecting %s to provide %s due to PREFERRED_PROVIDER&quot; % (prefervar, pkg))<br>+    inst_pkgs.extend(pref_pkgs)<br>+    d.setVar(&quot;PACKAGE_INSTALL&quot;, &#39; &#39;.join(inst_pkgs))<br>+}<br>+do_rootfs[prefuncs] += &quot;rootfs_process_preferred_providers&quot;<br>+<br> # We have to delay the runtime_mapping_rename until just before rootfs runs<br> # otherwise, the multilib renaming could step in and squash any fixups that<br> # may have occurred.<br>diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py<br>index 6fb749f..64fa153 100644<br>--- a/meta/lib/oe/rootfs.py<br>+++ b/meta/lib/oe/rootfs.py<br>@@ -393,7 +393,7 @@ class RpmRootfs(Rootfs):<br>         pass<br><br>     def _log_check_error(self):<br>-        r = re.compile(&#39;(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)&#39;)<br>+        r = re.compile(&#39;(unpacking of archive failed|Cannot find package|exit 1|ERR(?!ED_PROVIDER)|Fail)&#39;)<br>         log_path = self.d.expand(&quot;${T}/log.do_rootfs&quot;)<br>         with open(log_path, &#39;r&#39;) as log:<br>             found_error = 0<br><br></div>