Arch Linux Installation Issue

When running haxelib install hmm on Linux, it errors, both in and out of sudo, set up either way.

`Error: Failed with error: load.c(237) : Failed to load library : /usr/lib/neko/ssl.ndll (/usr/lib/neko/ssl.ndll: undefined symbol: mbedtls_ssl_get_verify_result)`

I have found no fix at all for this anywhere, please help if you can.

Did you install neko? https://nekovm.org/

Welcome to the community @LinuxLoverLarry :waving_hand::smiley:

I can confirm the issue (Arch). The system is fully up-to-date.

$ haxelib install hmm
Error: Failed with error: load.c(237) : Failed to load library : /usr/lib/neko/ssl.ndll (/usr/lib/neko/ssl.ndll: undefined symbol: mbedtls_ssl_get_verify_result)
$ yay -Q | grep -E 'neko|haxe|mbedtls'
haxe 4.3.7-6
mbedtls 4.2.0-1
mbedtls3 3.6.7-1
neko 2.4.1-6

Installing the latest git version produces the same result:

$ haxelib git hmm https://github.com/andywhite37/hmm.git
Installing hmm from https://github.com/andywhite37/hmm.git
Cloning Git from https://github.com/andywhite37/hmm.git
Syncing submodules for Git
Downloading/updating submodules for Git
  Current version is now git
Done
Error: Failed installing dependencies for hmm:
Failed with error: load.c(237) : Failed to load library : /usr/lib/neko/ssl.ndll (/usr/lib/neko/ssl.ndll: undefined symbol: mbedtls_ssl_get_verify_result)

The issue is actually neko’s linking (from the Extra repo) against mbedtls. It looks to be finding mbedtls 4.3.7 and not mbedtls3, hence the issue.

I was able to successfully install the hmm library after rebuilding neko, pointing explicitly to my installed mbedtls3 libs.

To grab the neko package’s source, I used yay to pull it down into neko/:

yay -G neko
cd neko

Or if you don’t have yay or prefer to use git:

git clone https://gitlab.archlinux.org/archlinux/packaging/packages/neko.git
cd neko

Then I modified the PKGBUILD by adding these flags within the cmake section:

-D MBEDTLS_LIBRARY="/usr/lib/libmbedtls.so.21" \
-D MBEDX509_LIBRARY="/usr/lib/libmbedx509.so.3.6.7" \
-D MBEDCRYPTO_LIBRARY="/usr/lib/libmbedcrypto.so.3.6.7" \

I then built and installed the modified neko PKGBUILD using:

makepkg -fsri

Someone has already provided a bug report for this so it’ll hopefully be fixed soon:

Here is also a slightly simpler patch to get it working:

diff --git a/PKGBUILD b/PKGBUILD
index d904671..4daab91 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -31,6 +31,7 @@ build() {
     -D CMAKE_C_FLAGS="$CFLAGS -w" \
     -D CMAKE_INSTALL_PREFIX=/usr \
     -D MBEDTLS_INCLUDE_DIR="/usr/include/mbedtls3" \
+    -D MBEDTLS_ROOT="/usr/lib/mbedtls3" \
     -D RUN_LDCONFIG=OFF \
     -S $pkgname
   make -C build