Should ubus be marked as target-specific "nonshared"? (broken 21.02 rc2 imagebuilder)

Hannu Nyman hannu.nyman at iki.fi
Sat Jun 5 03:40:21 PDT 2021


I think that it might be wise to mark ubus as target-specific "nonshared" 
(PKG_FLAGS:=nonshared)

Based on forum discussion, we have currently a broken 21.02.0-rc2 
imagebuilder, as libiwinfo can't find the correct libubus version.

https://forum.openwrt.org/t/21-02-0-rc2-build-error-on-libubus20210215/98373


My reasoning:

* ubus is a normal (shared) package in the packages/ downloads dir

* the nonshared libiwinfo depends on libubus with ABI specification.

* ubus has been updated since rc2, so new ubus and libubus versions are now 
offered for download

* The nonshared libiwinfo is located in the target/ download directory of 
rc2, and it still depends on the older libubus with the old ABI version. And 
that old libubus version has already been replaced by the newer libubus 
version in the normal packages download dir.


The libubus dependency difference is visible in the libiwinfo package metadata:


libiwinfo from 21.02-SNAPSHOT:
   Package: libiwinfo20210106
   Version: 2021-01-31-4a32b33e-1
   Depends: libc, libnl-tiny1, libuci20130104, libubus20210603

 From rc2:
   Package: libiwinfo20210106
   Version: 2021-01-31-4a32b33e-1
   Depends: libc, libnl-tiny1, libuci20130104, libubus20210215


I propose that ubus is marked to be nonshared, as it is an ABI versioned 
dependency of some nonshared packages.

This is not the first time when we have seen the iwinfo/libubus version 
syncing problems for users when ubus versions change. The problem usually 
hits master, but this time it is visible in the release branch, which 
highlights the issue.


We should consider doing the same for other ABI versioned packages that are 
dependencies of nonshared packages (like iwinfo).

I haven't investigated what other packages currently have similar nonshared 
target package --> shared generic ABI package dependencies, but I am sure 
that there are some others. (ubox/libubox and uci/libuci might be two 
obvious ABI versioned core packages that might be changed)





More information about the openwrt-devel mailing list