[OE-core] opkg refactoring

Paul Barker paul at paulbarker.me.uk
Sat Feb 7 11:55:59 UTC 2015


On Sat, Feb 07, 2015 at 09:47:32PM +1100, Peter Urbanec wrote:
> On 17/01/15 09:15, Paul Barker wrote:
> >      All these changes work locally in qemuarm and the on-target upgrade path is
> >      mostly clean. opkg-collateral does get left behind on the target filesystem
> >      after an upgrade but it's effectively an empty package. I don't think this
> >      poses any problems.
> > 
> > V2 changes:
> >    - Add RCONFLICTS and RPROVIDES where RREPLACES is specified
> > 
> >    - opkg-collateral is no longer left behind on the target filesystem after an
> >      upgrade.
> 
> I'm running into problems on a few thousand deployed systems where opkg upgrades are "stuck".
> 
> I see this:
> 
> root at beyonwizt4:~# opkg list-upgradable
> opkg-collateral - 1.0-r2 - 1:0.2.4-r0
> 
> root at beyonwizt4:~# opkg upgrade
> Multiple replacers for opkg-config-base, using first one (opkg-arch-config).
> Multiple replacers for opkg-config-base, using first one (opkg-arch-config).
> Package opkg is already installed on root.
> 
> root at beyonwizt4:~# opkg status opkg-config-base
> 
> root at beyonwizt4:~# opkg status opkg-arch-config
> Package: opkg-arch-config
> Version: 1.0-r1
> Provides: opkg-config-base
> Replaces: opkg-config-base
> Conflicts: opkg-config-base
> Status: install ok installed
> Architecture: beyonwizt4
> Conffiles:
>  /etc/opkg/arch.conf 913f790674d06e2bd0c2a45971fe7002
> Installed-Time: 1423281805
> 
> root at beyonwizt4:~# opkg status opkg
> Package: opkg
> Version: 1:0.2.4-r0
> Depends: opkg-config-base, update-alternatives-opkg, libopkg1 (>= 0.2.4), run-postinsts, libc6 (>= 2.20)
> Provides: opkg-collateral
> Replaces: opkg-nogpg
> Conflicts: opkg-collateral
> Status: install user installed
> Architecture: mips32el
> Installed-Time: 1422327765
> 
> Unfortunately the user visible interface to opkg is limited to an option that will run "opkg update ; opkg upgrade".
> 
> I know I can clean up manually by running "opkg remove opkg-collateral". Any ideas on how to get this cleaned up automatically?
> 
> Thanks,
> 
> 	Peter
> 

I didn't realise people were following oe-core master on deployments of a few
thousand systems! This is definitely a use-case for the stable branches.

Are you just seeing opkg-collateral left behind or are you seeing some other
upgrades "stuck"?

"opkg status opkg" should show that opkg now replaces opkg-collateral. As it is
it's only showing provides and conflicts. In commit e8879cd, RREPLACES is
modified to include opkg-collateral but that doesn't seem to have been
propagated to the opkg package on your devices. If we can fix this you should be
able to 'opkg upgrade' again and have the replacement properly handled.

Could you check whether "Replaces" for opkg includes opkg-collateral in your
"Packages" file? And could you also check whether RREPLACES in
"meta/recipes-devtools/opkg/opkg_0.2.4.bb" includes opkg-collateral? That should
narrow down where the error is introduced.

I'm also surprised your opkg version is "1:0.2.4-r0". Are you using the PR
Service to ensure that version numbers increase each time a package is rebuilt?
If not, this could contribute to the issue you're seeing.

Thanks,

-- 
Paul Barker

Email: paul at paulbarker.me.uk
http://www.paulbarker.me.uk
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20150207/0656808b/attachment-0002.sig>


More information about the Openembedded-core mailing list