[OE-core] [PATCH 1/1] opkg 0.1.8: respect to the arch when choose the alternatives

Robert Yang liezhi.yang at windriver.com
Sat May 26 02:25:32 UTC 2012



On 05/25/2012 07:19 PM, Koen Kooi wrote:
>
> Op 25 mei 2012, om 12:02 heeft Robert Yang het volgende geschreven:
>
>> There is a bug if we:
>> 1) bitbake core-image-sato-sdk MACHINE=qemux86
>> 2) bitbake core-image-sato with MACHINE=crownbay
>>
>> Then several pkgs in deploy/ipk/i586 would be installed to crownbay's
>> image even if there is one in deploy/ipk/core2 and we have set the
>> core2's priority higher than i586, when the version in deploy/ipk/i586 is
>> higher. This doesn't work for us, for example, what the crownbay need is
>> xserver-xorg-1.9.3, but it installs xserver-xorg-1.11.2.
>>
>> This is caused by opkg's selecting mechanism, if there are more than one
>> candidates which have the same pkg name in the candidate list, for
>> example, the same pkg with different versions, then it will use the last
>> one which is the highest version in the list, this doesn't work for us,
>> it should respect to the arch priorities in such a case.
>
> This is a serious break with the current opkg behaviour and I don't think it's an improvement.
> Needing different versions for non machine specific packages indicates a more serious bug elsewhere.

Hi Koen,

Thanks for your reply, here are more explanations.

I think that this patch only affects it's good_pkg_by_name behaviour,
and I don't think that it would introduce other bugs. Here are its
selecting priorities: (From high to low)

1, The pkg set manually
2, The good_pkg_by_name
3, The held pkg
4, Choose the higher arch one
5, Use the latest one

If of them is matched, then the left ones would be ignored, for example,
if the first one matches, others would be ignored.
	
What this patch affects is only the second one(good_by_pkg_name), and doesn't
affects the other four. What it did in the past: If there are both
core2/pkg-1.0.apk and i586/pkg-1.1.apk match, it would use i586/pkg-1.1.apk
since its version is higher and ignore the arch priorities, but we have set the
arch priorities in opkg.conf clearly:

arch i586 31
arch core2 41

What we need is core2/pkg-1.0.apk since we may set the specific pkg version for
the board (for example, the xorg-server for crown-bay), I just let it respect
to the arch priorities in such a case.

For your concerns about the "non machine specific packages", I think what you
mean are the "arch all", "arch any" and "arch noarch", I don't think it would
affect such pkgs, because if a pkg is "arch all", then it should appear in
any arch specified directory, for example, it should not appear in arch i586 or
arch arm.

Please let me know if you have any concerns.

// Robert

> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>




More information about the Openembedded-core mailing list