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

Reply via email to