[oe] Why PREFERRED_VERSION setting of <distro>.conf overrules local.conf setting ?

Graham Gower graham.gower at gmail.com
Wed Aug 11 02:43:08 UTC 2010


On 11 August 2010 11:12, Denys Dmytriyenko <denis at denix.org> wrote:
> On Wed, Aug 11, 2010 at 09:14:41AM +0930, Graham Gower wrote:
>> On 11 August 2010 06:26, Chris Larson <clarson at kergoth.com> wrote:
>> > On Tue, Aug 10, 2010 at 1:50 PM, Koen Kooi <k.kooi at student.utwente.nl>wrote:
>> >> What's the point of setting a preferred version at all if you make it a
>> >> weak assignment?
>> >> The distro nearly always knows better and if you want to use a different
>> >> version, sending a patch to change that version for review isn't exactly
>> >> rocket science.
>> >
>> >
>> > How about having decent usability?  The user asking for something and not
>> > getting it is completely unintuitive.  If the user doesn't know what they
>> > want, they won't request a specific version.  If they do request it, they
>> > should get it, anything else is an OE usability issue.
>>
>> Precisely. The user shouldn't have to understand the details of
>> parsing order, weak assignments, etc. in order to write a local.conf
>> which works for them.
>
> Yeah, and then distro maintainers are blamed for the breakage when users unpin
> and change specific dependency for a package.
>
> It's not just the parsing order problem. It's not clear for users that if they
> change anything in local.conf, it can break. I.e. you break it - you fix it.


Ok, I'm not so passionate about this change... But I'd like to
highlight why this is not particularly intuitive.
My experience has been that only certain image targets will build
without overrides in a local.conf.

E.g.
In order to get gpe-image to build, i needed to set
PREFERRED_VERSION_gpsd = "2.39", because prismstumbler doesn't work
with the API of newer gpsd versions and prismstumbler is included in
the gpe-image.

Since no gpsd version was pinned in the distro i was using, this
override worked.

But then i determined that udev 151 didn't like my old kernel, so I
set  PREFERRED_VERSION_udev = "141". Only this doesn't work because
the (angstrom) distro pins it and the 151 version is silently picked
up. I now understand why, but I didn't at the time.

So PREFERRED_VERSION_foo="123" might work, or it might not. And the
same goes for PREFERRED_PROVIDER_foo, which is actually less
consistent because some use a weak assignment in the conf files and
others don't.

Oh, and where is the ?= operator documented? I would have expected to
find it here: http://bitbake.berlios.de/manual/ch02.html

-Graham




More information about the Openembedded-devel mailing list