Building error (libustream-openssl & libubox version dependency conflict)

Hi everyone,

I tried building a new image from snapshot today and ran into a conflict between the current libustream-openssl version and its dependency on libubox.

Target is the TP-Link Archer AX23v1 (MT7621)

The following error occurred:

Configuring libgcCollected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for libustream-openssl20201210:
 * 	libubox20230523
 * opkg_install_cmd: Cannot install package libustream-openssl20201210.
c1.

The following libustream-openssl versions are available as packages:

libustream-openssl20201210_2023-02-25-498f6e26-1_mipsel_24kc.ipk
libustream-openssl20201210_2023-11-26-263b9a97-1_mipsel_24kc.ipk

The latter one is used per:

Multiple packages (libustream-openssl20201210 and libustream-openssl20201210) providing same name marked HOLD or PREFER. Using latest.
Installing libustream-openssl20201210 (2023-02-25-498f6e26-1) to root...
Multiple packages (libustream-openssl20201210 and libustream-openssl20201210) providing same name marked HOLD or PREFER. Using latest.
Installing libustream-openssl20201210 (2023-02-25-498f6e26-1) to root...

First version was pulled on 24.11.2023, the later one today on 24.01.2024.

Latest Libubox version was pulled today as well:

libubox202312041_2023-12-04.1-ca3f6d0c-1_mipsel_24kc.ipk

Can I simply change the ustream-ssl Makefile that holds the dependency or would that create further issues? Removing the already build newer libustream-openssl package from the bin/targets/ramips/mt7621/packages/ directory results in the same error.

There can only be one provider for libustream, if you want openssl, you need to disable the mbedtls variant (there are different luci-*ssl meta-packages).

Yes, the feeds for LuCI and Telephony are commented in my feeds.conf file anyways and over the course of all previous builds openssl has been exclusively selected. There have been no changes to menuconfig after pulling the latest Git status, except increasing the self declared versioning.

Well, your config is unknown to us and crystal balls are caught up in the supply chain shortage…

I can build images (including mt7621, but not AX23v1, don't own that device) with openssl (only, without any traces of mbedtls), but this does require checking the dependencies and selected config symbols carefully - so it does (can) work.

mbedtls has been deselected when first setting up the build directory/environment. The following excerpts show openssl exclusively being used.

cat bin/targets/ramips/mt7621/config.buildinfo | grep tls
# CONFIG_PACKAGE_libmbedtls is not set
# CONFIG_PACKAGE_libustream-mbedtls is not set
# CONFIG_PACKAGE_wpad-basic-mbedtls is not set
cat bin/targets/ramips/mt7621/config.buildinfo | grep ssl
CONFIG_PACKAGE_libopenssl=y
CONFIG_PACKAGE_libopenssl-conf=y
CONFIG_PACKAGE_libopenssl-legacy=y
CONFIG_PACKAGE_libustream-openssl=y
CONFIG_PACKAGE_wpad-basic-openssl=y

Are there any other settings that I didn't catch with those checks related to the ssl libraries?

I am not sure how the aforementioned error would be related to the wrong ssl library being selected. From my understanding, it refers to a conflict between libustream-openssl and the used libubox version.

I revert my statement about the Makefile content of ustream-ssl though, as it does not specify being dependend on a specific version of libubox but lists DEPENDS:=+libubox only.

e.g. luci-ssl (mbedtls), there is luci-openssl instead.

The LuCI feed is not pulled, therefor there are no settings related to LuCI in the config file. This is the feeds.conf file:

src-git-full packages https://git.openwrt.org/feed/packages.git
#src-git-full luci https://git.openwrt.org/project/luci.git
src-git-full routing https://git.openwrt.org/feed/routing.git
#src-git-full telephony https://git.openwrt.org/feed/telephony.git

This is feeds.buildinfo file:

src-git-full packages https://git.openwrt.org/feed/packages.git^995825f417448f6f1e742207f1b0d8b6ba95b734
src-git-full routing https://git.openwrt.org/feed/routing.git^6f74738b725f8365c4c126b90f8f49f11e676720

If I remember correctly, the error related to having selected a wrong ssl library at one point specifically lists the conflict and does not substitute the expected library with libubox in its message. So I fail to grasp how there might be mbedtls selected instead of openssl, leading to a dependency error on libubox.

Your error is likely related to mismatched ABI versions, as ubox & libubox versions have recently been updated. Simplest reason might just be a missing "make clean".

If you are building with full toolchain, you should do "make clean", then git pull newest sources and update also feeds.
If you then build, you will build all components. And the built packages should have no ABI version dependency errors, as all packages are built on the same run.

Ps. If you are building with imagebuilder, you may need to wait 2-3 days to have the 2-phase buildbot to have built everything correctly.

2 Likes

I am building locally with full toolchain. Thanks for the headsup with make clean. Usually everything builds perfectly well over the course of several git pull commands, but it might very well be the cause here. I will start building again and mark your answer as solution in case everything goes as expected. Thank you.

If you have not done "make clean", then it is pretty certainly the reason.
Ubox/libubox is one of most diffcult one regarding ABI version interdependecies, and it has been updated twice in the past two days.

2 Likes

It has worked, solution is marked, thank your for the help!

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.