Patchwork [2/2] update-alternatives: Add a build-time dependency

login
register
mail settings
Submitter Mark Hatle
Date Jan. 18, 2013, 11:13 p.m.
Message ID <392a0740fdf2e435aef68924757d3372015380a9.1358550581.git.mark.hatle@windriver.com>
Download mbox | patch
Permalink /patch/42903/
State Accepted
Commit 59e15f671222077db57d394b1f022549fa3509ff
Headers show

Comments

Mark Hatle - Jan. 18, 2013, 11:13 p.m.
We need to add a build time dependency on virtual/update-alternatives,
however we can't just do DEPENDS +=, or we end up with various problems.  To
work around this, in the anonymous python space we ensure we only do the
addition when the package does not provide virtual/update-alternatives and
it is a target package.

Also the system wide PREFERRED_PROVIDER was incorrect.  It references a
runtime package, and not the recipe it should have.  This has been corrected.

[YOCTO #3691]

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Tested-by: Khem Raj <raj.khem@gmail.com>
---
 meta/classes/update-alternatives.bbclass       |   13 +++++++++++++
 meta/conf/distro/include/default-providers.inc |    2 +-
 2 files changed, 14 insertions(+), 1 deletions(-)

Patch

diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass
index 556ee7c..a75e282 100644
--- a/meta/classes/update-alternatives.bbclass
+++ b/meta/classes/update-alternatives.bbclass
@@ -167,12 +167,25 @@  def gen_updatealternativesvardeps(d):
                     continue
                 d.appendVar('%s_VARDEPS_%s' % (v,p), ' %s:%s' % (flag, d.getVarFlag('%s_%s' % (v,p), flag, False)))
 
+def ua_extend_depends(d):
+    if not 'virtual/update-alternatives' in d.getVar('PROVIDES', True):
+        d.appendVar('DEPENDS', ' virtual/update-alternatives')
+
 python __anonymous() {
+    # Update Alternatives only works on target packages...
+    if bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d) or \
+       bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d) or \
+       bb.data.inherits_class('cross-canadian', d):
+        return
+
     # deprecated stuff...
     update_alternatives_after_parse(d)
 
     # compute special vardeps
     gen_updatealternativesvardeps(d)
+
+    # extend the depends to include virtual/update-alternatives
+    ua_extend_depends(d)
 }
 
 def gen_updatealternativesvars(d):
diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc
index 8ed703c..93752b3 100644
--- a/meta/conf/distro/include/default-providers.inc
+++ b/meta/conf/distro/include/default-providers.inc
@@ -8,7 +8,7 @@  PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg"
 PREFERRED_PROVIDER_virtual/libgl ?= "mesa-dri"
 PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa-dri"
 PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa-dri"
-PREFERRED_PROVIDER_virtual/update-alternatives ?= "update-alternatives-cworth"
+PREFERRED_PROVIDER_virtual/update-alternatives ?= "opkg"
 PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-native"
 PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"
 PREFERRED_PROVIDER_xf86-video-intel ?= "xf86-video-intel"