Thanks for the report. I've been meaning to push an update to fix some other issues with Caml Crush and recent Ocaml versions.
On Sun, Jun 27, 2021 at 11:45 AM Kurt Roeckx <[email protected]> wrote: > Package: caml-crush > Version: 1.0.10-4 > > Hi, > > Your package is failing to build against OpenSSL 3.0 beta 1. The > log file show: > configure:6589: checking for SSL_get_peer_certificate in -lssl > configure:6614: gcc -o conftest -g -O2 > -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat > -Werror=format-security -I/usr/lib/ocaml -Wdate-time -D_FORTIFY_SOURCE=2 > -I/usr/lib/ocaml -Wl,-z,relro conftest.c -lssl -lc >&5 > /usr/bin/ld: /tmp/cc4uEWWT.o: in function `main': > ./build-SERVER/conftest.c:38: undefined reference to > `SSL_get_peer_certificate' > collect2: error: ld returned 1 exit status > configure:6614: $? = 1 > configure: failed program was: > | /* confdefs.h */ > | #define PACKAGE_NAME "cam-crush" > | #define PACKAGE_TARNAME "cam-crush" > | #define PACKAGE_VERSION "1.0.10" > | #define PACKAGE_STRING "cam-crush 1.0.10" > | #define PACKAGE_BUGREPORT "" > | #define PACKAGE_URL "" > | #define STDC_HEADERS 1 > | #define HAVE_SYS_TYPES_H 1 > | #define HAVE_SYS_STAT_H 1 > | #define HAVE_STDLIB_H 1 > | #define HAVE_STRING_H 1 > | #define HAVE_MEMORY_H 1 > | #define HAVE_STRINGS_H 1 > | #define HAVE_INTTYPES_H 1 > | #define HAVE_STDINT_H 1 > | #define HAVE_UNISTD_H 1 > | #define HAVE_CAML_MLVALUES_H 1 > | #define HAVE_CAML_CAMLIDLRUNTIME_H 1 > | #define HAVE_DLFCN_H 1 > | #define HAVE_PTHREAD_H 1 > | #define HAVE_RPC_RPC_H 1 > | #define HAVE_RPC_CLNT_H 1 > | #define HAVE_LIBC 1 > | #define HAVE_OPENSSL_SSL_H 1 > | /* end confdefs.h. */ > | > | /* Override any GCC internal prototype to avoid an error. > | Use char because int might match the return type of a GCC > | builtin and then its argument prototype would still apply. */ > | #ifdef __cplusplus > | extern "C" > | #endif > | char SSL_get_peer_certificate (); > | int > | main () > | { > | return SSL_get_peer_certificate (); > | ; > | return 0; > | } > configure:6623: result: no > configure:6628: error: Cannot find symbol in openssl library. > > The function has been renamed, and the old name deprecated in 3.0. > The header file actually has a define from the old name to the new > name: > # ifndef OPENSSL_NO_DEPRECATED_3_0 > # define SSL_get_peer_certificate SSL_get1_peer_certificate > # endif > > The easy fix is to actually include ssl.h when looking for > symbol, so that you actually look for the renamed symbol. > > > Kurt >

