From patchwork Fri Jan 18 23:13:38 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [2/2] update-alternatives: Add a build-time dependency Date: Fri, 18 Jan 2013 23:13:38 -0000 From: Mark Hatle X-Patchwork-Id: 42903 Message-Id: <392a0740fdf2e435aef68924757d3372015380a9.1358550581.git.mark.hatle@windriver.com> To: 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 Tested-by: Khem Raj --- meta/classes/update-alternatives.bbclass | 13 +++++++++++++ meta/conf/distro/include/default-providers.inc | 2 +- 2 files changed, 14 insertions(+), 1 deletions(-) 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"