[OE-core] How do I change the "Architecture" of a package?

Mike Looijmans mike.looijmans at topic.nl
Wed Dec 31 19:13:32 UTC 2014


On 30-12-2014 18:59, Paul Barker wrote:
> On Tue, Dec 30, 2014 at 04:24:34PM +0100, Mike Looijmans wrote:
>> What if the architecture of a package was accidentally left at its
>> default, but it should have been "all" for example?
>>
>> Just putting "inherit allarch" or simply PACKAGE_ARCH="all" into the
>> recipe is not enough. You get stuck with a "more specific" older
>> version, so that no device wants to upgrade to the newer version
>> that's "all" architecture compatible.
>>
>
> What package manager are you using on the device? If you're using opkg it should
> prioritise by version not arch unless the command line option
> '--prefer-arch-to-version' is passed. If you're using opkg and it's not doing
> that, let me know and I'll look into it when I get chance to.

It's opkg.

But on closer inspection I noticed that the "git" version is also 
mysteriously reset to 0, so that the package also gets a lower version 
number instead of a higher one. Seems to be the PR server borking things 
again or so, I'll have to investigate that next year...

>> Only way to fix this was to manually remove the old version from the
>> feeds and also manually remove it from the device, and then
>> reinstall it. This works for me personally, but what if I want to
>> apply this to about a million devices that are already in the field?
>>
>> What can I do to get them to upgrade from the (in this case)
>> "mipsel32" to "all" package?
>
> As an absolute hack, you could rename the package and set it to
> replace/conflict/provide the old package name. I think there should be better
> solutions though.

I don't think so, I've never seen one in the wild. I'll send a free 
Linux TV satellite settopbox to whomever provides a solution ;)



More information about the Openembedded-core mailing list