Updating my experimental generic x86 with auc this morning failed with an error.
Collected errors:
* check_data_file_clashes: Package libustream-mbedtls20201210 wants to install file /home/aparcar/asu/worker1/cache/SNAPSHOT/x86/64/build_dir/target-x86_64_musl/root-x86/lib/libustream-ssl.so
But that file is already provided by package * libustream-wolfssl20201210
* opkg_install_cmd: Cannot install package luci-ssl.
I think I saw something about mbedtls on the dev email list in the last week or two, but I can't find it now. Can this be resolved with a simple opkg remove libustream-wolfssl20201210 or is there more I need to do?
your error is due to auc including all current packages in your current firmware image, while OpenWrt changed the default SSL from wolfssl to mbedtls. Auc includes the old/present wolfssl things and simultaneously the new defaults cause mbedtls variants of some packages to be included.
So, you should tell auc to exclude the wolfssl variant of libustream.
The same goes also for px5g-wolfssl etc. wolfssl related stuff.
EDIT: Note that you must run (and verify) the opkg downloadbefore you do the remove, as remove kills your certs and you won't be able to do any downloads again until you've installed the new ones with the subsequent opkg install ....
cat .config | grep libustream
CONFIG_DEFAULT_libustream-wolfssl=y
CONFIG_PACKAGE_libustream-mbedtls=y
# CONFIG_PACKAGE_libustream-openssl is not set
CONFIG_PACKAGE_libustream-wolfssl=y
Error message
* check_data_file_clashes: Package libustream-wolfssl20201210 wants to install file ******/openwrt/build_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/root-mvebu/lib/libustream-ssl.so
But that file is already provided by package * libustream-mbedtls20201210
* opkg_install_cmd: Cannot install package libustream-wolfssl20201210.
Ok, so apprently this line adds in CONFIG_DEFAULT_libustream-wolfssl=y
I had to manually set CONFIG_PACKAGE_libustream-wolfssl=n to resolve this, but is this intended?
luci-ssl brings in mbedtls, but doesn't disable wolfssl
It doesn't.
Here is the proof with the up-to-date master r22063-f490295bf2
perus@ub2210:/Openwrt/wrt3200$ ./scripts/getver.sh
r22063-f490295bf2
perus@ub2210:/Openwrt/wrt3200$ cat .config
# Use "make defconfig" to expand this to a full .config
CONFIG_TARGET_mvebu=y
CONFIG_TARGET_mvebu_cortexa9=y
CONFIG_TARGET_mvebu_cortexa9_DEVICE_linksys_wrt3200acm=y
perus@ub2210:/Openwrt/wrt3200$ make defconfig
#
# configuration written to .config
#
perus@ub2210:/Openwrt/wrt3200$ grep -E "mbedtls|wolfssl" .config
CONFIG_DEFAULT_libustream-mbedtls=y
CONFIG_DEFAULT_wpad-basic-mbedtls=y
# CONFIG_PACKAGE_micropython-mbedtls is not set
# CONFIG_PACKAGE_libzip-mbedtls is not set
# CONFIG_PACKAGE_libuhttpd-mbedtls is not set
# CONFIG_PACKAGE_libuhttpd-wolfssl is not set
# CONFIG_PACKAGE_libuwsc-mbedtls is not set
# CONFIG_PACKAGE_libuwsc-wolfssl is not set
CONFIG_PACKAGE_libmbedtls=y
# Option details in source code: include/mbedtls/mbedtls_config.h
# CONFIG_PACKAGE_libwolfssl is not set
CONFIG_PACKAGE_libustream-mbedtls=y
# CONFIG_PACKAGE_libustream-wolfssl is not set
# CONFIG_PACKAGE_libwebsockets-mbedtls is not set
# CONFIG_PACKAGE_umurmur-mbedtls is not set
# CONFIG_PACKAGE_openvpn-mbedtls is not set
# CONFIG_PACKAGE_openvpn-wolfssl is not set
# CONFIG_PACKAGE_eapol-test-mbedtls is not set
# CONFIG_PACKAGE_eapol-test-wolfssl is not set
# CONFIG_PACKAGE_hostapd-basic-mbedtls is not set
# CONFIG_PACKAGE_hostapd-basic-wolfssl is not set
# CONFIG_PACKAGE_hostapd-mbedtls is not set
# CONFIG_PACKAGE_hostapd-wolfssl is not set
# CONFIG_PACKAGE_wpa-supplicant-mbedtls is not set
# CONFIG_PACKAGE_wpa-supplicant-mesh-mbedtls is not set
# CONFIG_PACKAGE_wpa-supplicant-mesh-wolfssl is not set
# CONFIG_PACKAGE_wpa-supplicant-wolfssl is not set
CONFIG_PACKAGE_wpad-basic-mbedtls=y
# CONFIG_PACKAGE_wpad-basic-wolfssl is not set
# CONFIG_PACKAGE_wpad-mbedtls is not set
# CONFIG_PACKAGE_wpad-mesh-mbedtls is not set
# CONFIG_PACKAGE_wpad-mesh-wolfssl is not set
# CONFIG_PACKAGE_wpad-wolfssl is not set
# CONFIG_PACKAGE_shairport-sync-mbedtls is not set
# CONFIG_PACKAGE_px5g-mbedtls is not set
# CONFIG_PACKAGE_px5g-wolfssl is not set
# CONFIG_PACKAGE_rtty-mbedtls is not set
# CONFIG_PACKAGE_rtty-wolfssl is not set
# CONFIG_PACKAGE_cache-domains-mbedtls is not set
# CONFIG_PACKAGE_cache-domains-wolfssl is not set
# CONFIG_PACKAGE_mbedtls-util is not set
There is exactly the same problem with Dynalink /openwrt image. I know that you are also active in Dynalink thread. I get exactly the same error message when trying to install luci-ssl-openssl on a freshly upgraded snapshot image without any additional packages. Do you know how to fix this issue just by using the master snapshot build?
Is there anyway to cleanup the image, so it does not result in the same error when installing luci-ssl-openssl?
Thanks
Sure:
just opkg remove the libustream-mbedtls (or libustream-wolfssl) package before installing the luci-ssl-openssl.
(note that removing the old SSL capability prevents new downloads, so first install openssl, then download the libustream-openssl .ipk package, then opkg remove libustream-mbedtls, and then opkg install libustream-openssl.
Then you should be able to install luci-ssl-openssl.
Or use opkg force options to force the libustream-openssl installation from SSH console.
(or just force luci-ssl-openssl)
opkg install --force-overwrite luci-ssl-openssl
Ps.
I normally build with toolchain from sources, so it is about this:
CONFIG_PACKAGE_wpad-openssl=y
# CONFIG_PACKAGE_wpad-basic-mbedtls is not set
# CONFIG_PACKAGE_libustream-mbedtls is not set
CONFIG_PACKAGE_luci-ssl-openssl=y
For Dynalink, I have used imagebuilder, and there you need similar actions of disabling/removing mbedtls stuff from the image and selecting openssl variants of all components: