[bitbake-devel] trying to clarify PREFERRED_VERSION processing

Robert P. J. Day rpjday at crashcourse.ca
Wed Jun 18 14:16:09 UTC 2014


  still working my way through the bitbake user manual, currently in
section 2.3, "Preferences and Providers", and i think this section is
unnecessarily confusing as it tries to discuss both preferences and
providers at the same time, which i think are two separate concepts
that should be covered independently, so let me ask some questions
about just PREFERRED_VERSION processing using an actual example ripped
from the oe/poky codebase.

  (side note: i'm writing up a bunch of examples of bitbake processing
for my courses and, rather than use generic labels like "foo" and
"bar", i want to use actual examples from the codebase so i can show
the results with things like "bitbake -s".)

  consider (from my poky checkout) the two possibilities for the
busybox recipe:

  busybox_1.22.1.bb
  busybox_git.bb

obviously, there are two versions available to me and, if i examine
the respective .bb files, i can see in the git version:

  DEFAULT_PREFERENCE = "-1"

making that the *unpreferred* version. let's verify that with "bitbake
-s" (using my build for beaglebone/core-image-minimal):

$ bitbake -s
...
busybox                                           :1.22.1-r32
...
$

  good, that's what i expected -- the fixed version recipe is the one
that would be selected. now say i wanted to use the other (git)
version, what would be the appropriate line i would add to local.conf?
it seems i can just use wildcarding, as in:

  PREFERRED_VERSION_busybox = "1.22.1+git%"

at which point i can see:

$ bitbake -s
...
busybox                                           :1.22.1-r32 :1.22.1+gitAUTOINC+d9e0c438e1-r0
...
$

  from what i read from "bitbake -h", what is being printed is the
"current" version, followed by the "preferred" version, so i'm
interpreting that as the first value would be the version selected if
i didn't override it, and the second value is the version that will
actually be used given that i've explicitly preferred a version for
that recipe. is that the proper way to describe that?

  also, what would be the proper PREFERRED_VERSION line in my
local.conf if i wanted to prefer *precisely* that git version of
busybox? i know wildcarding works, as in:

  PREFERRED_VERSION_busybox = "1.22.1+git%"

but what value would i use to match *precisely* that git-based
version? something involving SRCREV or SRCPV or something like that?

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================



More information about the bitbake-devel mailing list