Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GAP_pkg_curlinterface] new package #9999

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

fingolfin
Copy link
Member

No description provided.

@fingolfin
Copy link
Member Author

And another failure on x86-linux-musl... Looking at config.log:

configure:3541: checking for curl-config
configure:3564: found /workspace/destdir/bin/curl-config
configure:3577: result: /workspace/destdir/bin/curl-config
configure:3635: checking for the version of libcurl
configure:3644: result: 8.11.1
configure:3707: checking whether libcurl is usable
configure:3742: cc -o conftest -g -O2 -I/workspace/destdir/include -I/workspace/destdir/incl
ude  conftest.c -L/workspace/destdir/lib -lcurl  >&5
/workspace/destdir/lib/libcurl.so: undefined reference to `nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation'
collect2: error: ld returned 1 exit status
configure:3742: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "curlInterface"
| #define PACKAGE_TARNAME "curlinterface"
| #define PACKAGE_VERSION "GAP package"
| #define PACKAGE_STRING "curlInterface GAP package"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| #include <curl/curl.h>
| int
| main (void)
| {
|
| /* Try and use a few common options to force a failure if we are
|    missing symbols or can't link. */
| int x;
| curl_easy_setopt(NULL,CURLOPT_URL,NULL);
| x=CURL_ERROR_SIZE;
| x=CURLOPT_WRITEFUNCTION;
| x=CURLOPT_WRITEDATA;
| x=CURLOPT_ERRORBUFFER;
| x=CURLOPT_STDERR;
| x=CURLOPT_VERBOSE;
| if (x) {;}
|
|   ;
|   return 0;
| }
configure:3759: result: no
configure:3852: error: libcurl development files required

@giordano
Copy link
Member

You want to try to compile the same file with

cc -o conftest -g -O2 -I/workspace/destdir/include -I/workspace/destdir/include  conftest.c -L/workspace/destdir/lib -lcurl -Wl,--trace

to see what library is being linked to. It's possible that you're picking up a system library.

@fingolfin
Copy link
Member Author

It definitely is picking up the right libcurl.so. I did apk del curl and also added -L$libdir to LDFLAGS. Now seeing this:

configure:3644: result: 8.11.1
configure:3707: checking whether libcurl is usable
configure:3742: cc -o conftest -g -O2 -I/workspace/destdir/include   conftest.c -L/workspace/destdir/lib -lcurl  >&5
/workspace/destdir/lib/libcurl.so: undefined reference to `nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation'

Also:

sandbox:${WORKSPACE}/srcdir/curlInterface-2.4.0 # find / -name libcurl.so
find: ‘/proc/tty/driver’: Permission denied
/workspace/x86_64-linux-musl-libgfortran4-cxx11/artifacts/50b0a37e3c68111eaf6a18eb9c31d9a63e4ad407/lib/libcurl.so
/workspace/x86_64-linux-musl-libgfortran4-cxx11/destdir/lib/libcurl.so
sandbox:${WORKSPACE}/srcdir/curlInterface-2.4.0 # find / -name curl.h
find: ‘/proc/tty/driver’: Permission denied
/workspace/x86_64-linux-musl-libgfortran4-cxx11/artifacts/50b0a37e3c68111eaf6a18eb9c31d9a63e4ad407/include/curl/curl.h
/workspace/x86_64-linux-musl-libgfortran4-cxx11/destdir/include/curl/curl.h

@fingolfin
Copy link
Member Author

Investigated the libcurl artifacts at https://github.com/JuliaBinaryWrappers/LibCURL_jll.jl/releases for x86-linux-musl and x86-linux-gnu. Both actually reference nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation, i.e.:

$ nm libcurl.so.4.8.0 | fgrep nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation
                 U nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation

for both of them.

For both ldd shows the same list of libs:

$ ldd libcurl.so.4.8.0
	linux-vdso.so.1 (0x00007ffe1f5f2000)
	libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f8c5c029000)
	libssh2.so.1 => /lib/x86_64-linux-gnu/libssh2.so.1 (0x00007f8c5bffa000)
	libssl.so.3 => not found
	libcrypto.so.3 => not found
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8c5bfde000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8c5bfd4000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8c5bfaf000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8c5bdbd000)
	libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f8c5bc9f000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f8c5c330000)
	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f8c5bc7c000)

On curl/curl#11065 someone mentions this:

This is not a curl bug. This is libcurl having been built with an nghttp2 version >= 1.50.0 (which has that function) and then at run-time it uses an older nghttp2 library that doesn't have the function.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants