Opened 2 years ago

Closed 2 years ago

#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) 2 years ago.

Download all attachments as: .zip

Change History (6)

Changed 2 years ago by daphnediane (Daphne Pfister)

comment:1 Changed 2 years ago by jmroot (Joshua Root)

Owner: changed from jerryyhom@… to jerryyhom

comment:2 Changed 2 years ago by jerryyhom

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

comment:3 Changed 2 years ago by neverpanic (Clemens Lang)

Cc: artkiver neverpanic added

Cc'ing new libressl maintainer.

comment:4 Changed 2 years 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 2 years 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.