Linking problems to curl

Hi,
I currently try to install hotspot from aur. Hotspot depends on a aur package called kddockwidgets-qt6. During the build process of the latter I get the following error:

[ 55%] Linking CXX executable ../../../bin/qtquick_dockwidgets
cd /home/mai65/Desktop/GitHub/KDDockWidgets/examples/qtquick/dockwidgets && /usr/bin/cmake -E cmake_link_script CMakeFiles/qtquick_dockwidgets.dir/link.txt --verbose=1
/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/qtquick_dockwidgets.dir/qtquick_dockwidgets_autogen/mocs_compilation.cpp.o CMakeFiles/qtquick_dockwidgets.dir/main.cpp.o CMakeFiles/qtquick_dockwidgets.dir/qtquick_dockwidgets_autogen/EWIEGA46WW/qrc_resources_qtquick_example.cpp.o CMakeFiles/qtquick_dockwidgets.dir/qtquick_dockwidgets_autogen/PBMXWPTGLO/qrc_resources_example.cpp.o -o ../../../bin/qtquick_dockwidgets  -Wl,-rpath,/home/mai65/Desktop/GitHub/KDDockWidgets/lib:/home/mai65/miniforge3/lib ../../../lib/libkddockwidgets-qt6.so.2.0.95 /usr/lib/libQt6Widgets.so.6.7.0 /usr/lib/libQt6QuickControls2.so.6.7.0 /usr/lib/libQt6Quick.so.6.7.0 /usr/lib/libQt6QmlModels.so.6.7.0 /usr/lib/libQt6Qml.so.6.7.0 /usr/lib/libQt6QmlBuiltins.a /usr/lib/libQt6Network.so.6.7.0 /usr/lib/libQt6OpenGL.so.6.7.0 /usr/lib/libQt6Gui.so.6.7.0 /usr/lib/libQt6Core.so.6.7.0 /usr/lib/libGLX.so /usr/lib/libOpenGL.so -Wl,-rpath-link,/home/mai65/miniforge3/lib
/usr/bin/ld: /usr/lib/libproxy/libpxbackend-1.0.so: undefined reference to `curl_easy_setopt@CURL_OPENSSL_4'
/usr/bin/ld: /usr/lib/libproxy/libpxbackend-1.0.so: undefined reference to `curl_easy_cleanup@CURL_OPENSSL_4'
/usr/bin/ld: /usr/lib/libproxy/libpxbackend-1.0.so: undefined reference to `curl_easy_perform@CURL_OPENSSL_4'
/usr/bin/ld: /usr/lib/libproxy/libpxbackend-1.0.so: undefined reference to `curl_easy_init@CURL_OPENSSL_4'
/usr/bin/ld: /usr/lib/libproxy/libpxbackend-1.0.so: undefined reference to `curl_easy_strerror@CURL_OPENSSL_4

I tried the same in fresh virtual box install of eos (with the new iso). Here the error does not occur. So I think, that this has nothing to do with the package itself.

What I “tried” so far:

  • reproduce the error in the git repo:

    cmake -DCMAKE_BUILD_TYPE=Release \
                -DCMAKE_INSTALL_PREFIX=/usr \
                -DKDDockWidgets_FRONTENDS='qtwidgets;qtquick' \
                -DKDDockWidgets_QT6=true \
                .
    cmake --build .
    

    Same error as in yay -S hotspot

  • pacman -Q | grep "curl\|libproxy":

    curl 8.7.1-6
    flickcurl 1.26-12
    lib32-curl 8.7.1-4
    libcurl-gnutls 8.7.1-6
    libproxy 0.5.6-1
    python-pycurl 7.45.2-4
    
  • ldd /path/to/libpxbackend-1.0.so:

    linux-vdso.so.1(0x00007ffe965af000)
    libcurl.so.4=>/usr/lib/libcurl.so.4(0x00007b7eec32d000)
    libgio-2.0.so.0=>/usr/lib/libgio-2.0.so.0(0x00007b7eec160000)
    libgobject-2.0.so.0=>/usr/lib/libgobject-2.0.so.0(0x00007b7eec100000)
    libglib-2.0.so.0=>/usr/lib/libglib-2.0.so.0(0x00007b7eebfb3000)
    libduktape.so.207=>/usr/lib/libduktape.so.207(0x00007b7eebf66000)
    libgcc_s.so.1=>/usr/lib/libgcc_s.so.1(0x00007b7eebf41000)
    libc.so.6=>/usr/lib/libc.so.6(0x00007b7eebd5d000)
    libnghttp3.so.9=>/usr/lib/libnghttp3.so.9(0x00007b7eebd3a000)
    libnghttp2.so.14=>/usr/lib/libnghttp2.so.14(0x00007b7eebd10000)
    libidn2.so.0=>/usr/lib/libidn2.so.0(0x00007b7eebcee000)
    libssh2.so.1=>/usr/lib/libssh2.so.1(0x00007b7eebca5000)
    libpsl.so.5=>/usr/lib/libpsl.so.5(0x00007b7eebc91000)
    libssl.so.3=>/usr/lib/libssl.so.3(0x00007b7eebbb6000)
    libcrypto.so.3=>/usr/lib/libcrypto.so.3(0x00007b7eeb600000)
    libgssapi_krb5.so.2=>/usr/lib/libgssapi_krb5.so.2(0x00007b7eebb62000)
    libzstd.so.1=>/usr/lib/libzstd.so.1(0x00007b7eeb52d000)
    libbrotlidec.so.1=>/usr/lib/libbrotlidec.so.1(0x00007b7eebb53000)
    libz.so.1=>/usr/lib/libz.so.1(0x00007b7eebb39000)
    libgmodule-2.0.so.0=>/usr/lib/libgmodule-2.0.so.0(0x00007b7eebb30000)
    libmount.so.1=>/usr/lib/libmount.so.1(0x00007b7eebae0000)
    libffi.so.8=>/usr/lib/libffi.so.8(0x00007b7eebad5000)
    libpcre2-8.so.0=>/usr/lib/libpcre2-8.so.0(0x00007b7eeb48f000)
    libm.so.6=>/usr/lib/libm.so.6(0x00007b7eeb3a3000)
    /usr/lib64/ld-linux-x86-64.so.2(0x00007b7eec430000)
    libunistring.so.5=>/usr/lib/libunistring.so.5(0x00007b7eeb1f3000)
    libkrb5.so.3=>/usr/lib/libkrb5.so.3(0x00007b7eeb11b000)
    libk5crypto.so.3=>/usr/lib/libk5crypto.so.3(0x00007b7eeb0ed000)
    libcom_err.so.2=>/usr/lib/libcom_err.so.2(0x00007b7eebacd000)
    libkrb5support.so.0=>/usr/lib/libkrb5support.so.0(0x00007b7eeb0df000)
    libkeyutils.so.1=>/usr/lib/libkeyutils.so.1(0x00007b7eeb0d8000)
    libresolv.so.2=>/usr/lib/libresolv.so.2(0x00007b7eeb0c7000)
    libbrotlicommon.so.1=>/usr/lib/libbrotlicommon.so.1(0x00007b7eeb0a4000)
    libblkid.so.1=>/usr/lib/libblkid.so.1(0x00007b7eeb06b000)
    
  • ldd /usr/lib/libcurl.so.4:

      linux-vdso.so.1 (0x00007ffc867ce000)
      libnghttp3.so.9 => /usr/lib/libnghttp3.so.9 (0x000076df2e324000)
      libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x000076df2e2fa000)
      libidn2.so.0 => /usr/lib/libidn2.so.0 (0x000076df2e2d8000)
      libssh2.so.1 => /usr/lib/libssh2.so.1 (0x000076df2e28f000)
      libpsl.so.5 => /usr/lib/libpsl.so.5 (0x000076df2e27b000)
      libssl.so.3 => /usr/lib/libssl.so.3 (0x000076df2e1a2000)
      libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x000076df2dc00000)
      libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x000076df2e14c000)
      libzstd.so.1 => /usr/lib/libzstd.so.1 (0x000076df2db2d000)
      libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x000076df2e13d000)
      libz.so.1 => /usr/lib/libz.so.1 (0x000076df2e123000)
      libc.so.6 => /usr/lib/libc.so.6 (0x000076df2d94b000)
      libunistring.so.5 => /usr/lib/libunistring.so.5 (0x000076df2d79b000)
      libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x000076df2d6c3000)
      libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x000076df2e0f3000)
      libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x000076df2e0ed000)
      libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x000076df2e0df000)
      libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x000076df2e0d6000)
      libresolv.so.2 => /usr/lib/libresolv.so.2 (0x000076df2d6b2000)
      libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x000076df2d68f000)
      /usr/lib64/ld-linux-x86-64.so.2 (0x000076df2e43b000)
    
  • ls -al /usr/lib/ | grep curl:

    lrwxrwxrwx   1 root root        19 26. Apr 19:52 libcurl-gnutls.so -> libcurl-gnutls.so.4
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.3 -> libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.4 -> libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.4.0.0 -> libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.4.1.0 -> libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.4.2.0 -> libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.4.3.0 -> libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.4.4.0 -> libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.4.5.0 -> libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.4.6.0 -> libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        23 26. Apr 19:52 libcurl-gnutls.so.4.7.0 -> libcurl-gnutls.so.4.8.0
    -rwxr-xr-x   1 root root    753384 26. Apr 19:52 libcurl-gnutls.so.4.8.0
    lrwxrwxrwx   1 root root        16 26. Apr 19:52 libcurl.so -> libcurl.so.4.8.0
    lrwxrwxrwx   1 root root        25 30. Apr 23:56 libcurl.so.4 -> /usr/lib/libcurl.so.4.8.0
    -rwxr-xr-x   1 root root    798792 26. Apr 19:52 libcurl.so.4.8.0
    lrwxrwxrwx   1 root root        21 17. Okt 2021  libflickcurl.so -> libflickcurl.so.0.0.0
    lrwxrwxrwx   1 root root        21 17. Okt 2021  libflickcurl.so.0 -> libflickcurl.so.0.0.0
    -rwxr-xr-x   1 root root    260976 17. Okt 2021  libflickcurl.so.0.0.0
    
  • sudo pacman -Scc & sudo pacman -S curl

  • nm -D /usr/lib/libcurl.so.4 | grep curl_easy_setopt:

    0000000000063340 T curl_easy_setopt@@CURL_OPENSSL_4
    

To me this all looks fine and I am out of things to try/look into. Would be nice if someone could help me.

Best,
Mai65

EDIT 2: ok I tried build kddockwidgets-qt6 (paru -S aur/kddockwidgets-qt6) and it builds fine here.

EDIT: nevermind this post; I was doing something totally different


My build failed at 99%. Had to remove qcustomplot for the linking to work.

I didn’t get link error with curl though.

ldd /usr/lib/libcurl.so.4

	linux-vdso.so.1 (0x00007ffd483ce000)
	libnghttp3.so.9 => /usr/lib/libnghttp3.so.9 (0x0000713024320000)
	libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x00007130242f6000)
	libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007130242d4000)
	libssh2.so.1 => /usr/lib/libssh2.so.1 (0x000071302428b000)
	libpsl.so.5 => /usr/lib/libpsl.so.5 (0x0000713024277000)
	libssl.so.3 => /usr/lib/libssl.so.3 (0x000071302419e000)
	libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x0000713023c00000)
	libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x0000713024148000)
	libzstd.so.1 => /usr/lib/libzstd.so.1 (0x0000713023b2d000)
	libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x0000713024139000)
	libz.so.1 => /usr/lib/libz.so.1 (0x000071302411f000)
	libc.so.6 => /usr/lib/libc.so.6 (0x000071302394b000)
	libunistring.so.5 => /usr/lib/libunistring.so.5 (0x000071302379b000)
	libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007130236c3000)
	libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007130240ef000)
	libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007130240e9000)
	libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007130240db000)
	libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007130240d2000)
	libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007130236b2000)
	libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x000071302368f000)
	/usr/lib64/ld-linux-x86-64.so.2 (0x000071302442a000)

ls -al /usr/lib/ | grep curl

lrwxrwxrwx   1 root root        16 Apr 26 23:22 libcurl.so -> libcurl.so.4.8.0
lrwxrwxrwx   1 root root        16 Apr 26 23:22 libcurl.so.4 -> libcurl.so.4.8.0
-rwxr-xr-x   1 root root    798792 Apr 26 23:22 libcurl.so.4.8.0

pacman -Q | grep "curl\|libproxy"

curl 8.7.1-6
libproxy 0.5.6-1
qemu-block-curl 9.0.0-1

Try building in a chroot as suggested on AUR page.

Setting up:

sudo pacman -S devtools
mkdir ~/chroot
export CHROOT=$HOME/chroot
mkarchroot $CHROOT/root base-devel

Building package:

Clone pkgbuild for kddockwidgets-qt6 and in the folder containing PKGBUILD, run this:

arch-nspawn $CHROOT/root pacman -Syu fmt nlohmann-json spdlog qt6-base qt6-declarative cmake qt6-tools --needed
makechrootpkg -c -r $CHROOT

Installing:

sudo pacman -U kddockwidgets-qt6-2.0.0-3-x86_64.pkg.tar.zst # change the package name as per version

Tried it here, working.

1 Like

I compared your output from ldd /usr/lib/libcurl.so.4 to mine and it is identical. Also the version of curl and libproxy are identical. Same is true for the links etc. displayed by ls -al /usr/lib/ | grep curl. From my point of view this only shows that the error is not in the part of the system I looked into so far.

This works. Thank you very much. Tough I will investigate what the difference is and why it would not build on “native” machine.

1 Like

I suspect there is some extra package on your system which is conflicting.

When I tried building hotspot, it failed without any reasonably clear reason.

Digging around, I had sqlitebrowser installed which pulls in qcustomplot as dependency. Both these packages are unrelated to hotspot, but upon removing qcustomplot, the build for hotspot was successful.

Something similar might be going on with kddockwidgets-qt6.

Just an observation. Even I have no clue why a seemingly unrelated package is causing build issue :sweat_smile:

1 Like

I did a system cleanup (pacman -Qtdq | sudo pacman -Rns -). This removed the following packages:

ayatana-ido              0.10.2-1           -0,28 MiB
colord                   1.4.7-2            -5,06 MiB
colord-gtk-common        0.3.0-2            -0,12 MiB
electron30               30.0.1-2         -229,01 MiB
graphicsmagick           1.3.43-1          -13,97 MiB
kparts5                  5.115.0-1          -2,05 MiB
lapack                   3.12.0-5           -7,48 MiB
libayatana-indicator     0.9.4-1            -0,11 MiB
opencv                   4.9.0-4           -95,99 MiB
python-annotated-types   0.6.0-3            -0,10 MiB
python-pydantic-core     1:2.18.2-2         -5,33 MiB
verdict                  1.4.2-1            -0,23 MiB
colord-gtk               0.3.0-2            -0,05 MiB
dotnet-runtime-7.0       7.0.18.sdk118-1   -66,65 MiB
electron                 1:30-1              0,00 MiB
extra-cmake-modules      6.1.0-1            -1,77 MiB
gmic                     3.3.5-1           -18,67 MiB
kgraphviewer             2.4.3-5            -3,13 MiB
lensfun                  1:0.3.4-4          -4,29 MiB
lib32-libunwind          1.8.1-1            -0,19 MiB
lib32-libxdamage         1.1.6-1            -0,01 MiB
libayatana-appindicator  0.5.93-1           -0,32 MiB
nlohmann-json            3.11.2-2           -0,98 MiB
osm-gps-map              1.2.0-1            -0,62 MiB
pugixml                  1.14-1             -0,30 MiB
python-pydantic          2.7.1-2            -4,68 MiB
sequoia-sqv              1.1.0-1            -2,33 MiB
spdlog                   1.13.0-1           -0,66 MiB

since then yay -S hotspot works for me on my native system. I can not say what the actual cause was though.

1 Like

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