#66096 closed defect (fixed)

libevent @2.12.12_1: Fails when libressl @3.6.0 installed, due to BIO_get_init

Reported by: daphnediane (Daphne Pfister) Owned by: jerryyhom
Priority: Normal Milestone:
Component: ports Version: 2.8.0
Keywords: haspatch Cc: artkiver (グレェ), neverpanic (Clemens Lang)
Port: libevent, libressl

Description

libevent fails to build with newer versions of libressl. Cause is related to BIO_get_init() becoming an opaque interface in 3.5+.

The attached patch file based on this upstream commit: https://github.com/libevent/libevent/pull/1227/commits/883630f76cbf512003b81de25cd96cb75c6cf0f9 fixes the problem.

Example error seen without the patch

:info:build libtool: compile:  /usr/bin/clang -DHAVE_CONFIG_H -I. -I./compat -I./include -I./include -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch x86_64 -Wall -fno-strict-aliasing -Wno-deprecated-declarations -D_THREAD_SAFE -W -Wfloat-equal -Wundef -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wredundant-decls -Wmissing-declarations -Wnested-externs -Wbad-function-cast -Wno-unused-parameter -Wstrict-aliasing -Winit-self -Wmissing-field-initializers -Wdeclaration-after-statement -Waddress -Wno-unused-function -Qunused-arguments -MT libevent_openssl_la-bufferevent_openssl.lo -MD -MP -MF .deps/libevent_openssl_la-bufferevent_openssl.Tpo -c bufferevent_openssl.c  -fno-common -DPIC -o .libs/libevent_openssl_la-bufferevent_openssl.o
:info:build bufferevent_openssl.c:124:7: error: incomplete definition of type 'struct bio_st'
:info:build                 if (BIO_get_init(b) && BIO_get_data(b))
:info:build                     ^~~~~~~~~~~~~~~
:info:build ./openssl-compat.h:44:28: note: expanded from macro 'BIO_get_init'
:info:build #define BIO_get_init(b) (b)->init
:info:build                         ~~~^
:info:build /opt/local/include/openssl/ossl_typ.h:111:16: note: forward declaration of 'struct bio_st'
:info:build typedef struct bio_st BIO;
:info:build                ^
:info:build 1 error generated.

Attachments (1)

BIO_get_init_libressl3.5.patch (1023 bytes) - added by daphnediane (Daphne Pfister) 18 months ago.

Download all attachments as: .zip

Change History (6)

Changed 18 months ago by daphnediane (Daphne Pfister)

comment:1 Changed 18 months ago by jmroot (Joshua Root)

Owner: changed from jerryyhom@… to jerryyhom

comment:2 Changed 18 months ago by jerryyhom

Thanks for the patch file. I will look into it.

comment:3 Changed 18 months ago by neverpanic (Clemens Lang)

Cc: artkiver neverpanic added

Cc'ing new libressl maintainer.

comment:4 Changed 17 months ago by artkiver (グレェ)

Tested the patch locally and it seems to function OK.

Added notes to: https://github.com/macports/macports-ports/pull/16681/files but I do not have commit access, so someone else will need to merge this PR.

Regardless, it looks OK to me!

Thank you for your contributions and sorry for the delay in replying.

comment:5 Changed 17 months ago by jerryyhom

Resolution: fixed
Status: assignedclosed

In 44b21041dfac212bafeebd2b06db4f9779e76bf4/macports-ports (master):

libevent: Add upstream patch for libressl (https://github.com/macports/macports-ports/pull/16681)

  • libevent: Add upstream patch for libressl

close: #66096

  • Include full upstream patch (comment) for context.

Co-authored-by: Eric A. Borisch <eborisch@…>

Note: See TracTickets for help on using tickets.