[OE-core] Schizophrenic package management

Gary Thomas gary at mlbassoc.com
Tue Apr 3 18:23:37 UTC 2012


On 2012-04-03 12:17, Mark Hatle wrote:
> On 4/3/12 1:07 PM, Gary Thomas wrote:
>> On 2012-04-03 12:03, Mark Hatle wrote:
>>> On 4/3/12 12:52 PM, Gary Thomas wrote:
>>>> Why are both opkg-native and rpm-native needed to build images?
>>>> When I asked this previously, I was told that rpm was used because
>>>> it has superior dependency tracking. Fair enough (I guess), but
>>>> then why is opkg required if I build an image using
>>>> PACKAGE_CLASSES = "package_rpm"
>>>>
>>>
>>> rpm-native is used for internal dependency scanning. The exact tool is "rpmdeps". These dependencies may or may not be rolled up into package level dependencies by the packaging
>>> tool (which may be opkg, deb or rpm). (see package.bbclass)
>>>
>>> opkg-native is used for handling alternatives and similar during packaging and image creation. So it's also needed.
>>
>> Why? Surely one or the other should be useful for this. I'm sure
>> that RedHat doesn't need opkg to build their images...
>
> (repeating Paul for the sake of threads when someone searches)
>
> OE uses the update-alternatives method of handing multiple packages that provide the same functionality. Packaging systems themselves don't do this, the helpers do.
>
> opkg-native provides update-alternatives-cworth (according to Paul E) and that is needed by the other components in the system to determine which version of a particular piece of
> functionality is needed during image creation.
>
> There is an "alternative" update-alternatives package, but I don't believe there is a native version. If anything that is all that should be required...
>
> (And RedHat based linux distributions don't have any concept of alternatives. They generally decide which binary package will provide the functionality and that is the defacto
> standard for a given release. OE on the other hand is closer to Debian based systems in that regard. We can build multiple packages that may provide the same functionality, then
> it's up to the package install time to determine which version of the functionality is used as the default.)

Thanks for the explanation.  Sorry to be stubborn on this, it just seems
really convoluted that neither opkg nor rpm are sufficient to complete
the build, but I'll accept it as so.

>>>
>>> I don't believe opkg, or rpm are needed on the target image though, unless of course you select one of them as the packaging type and you want target package management.
>>
>> Yes, of course. I just don't see the need to have to build both
>> just to create my image.

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------




More information about the Openembedded-core mailing list