Merge pull request #1724 from nghttp2/compile-with-libressl-3.5

Compile with libressl 3.5
This commit is contained in:
Tatsuhiro Tsujikawa 2022-06-08 21:28:03 +09:00 committed by GitHub
commit 8d48686cec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 16 deletions

View File

@ -150,8 +150,18 @@ jobs:
run: |
autoreconf -i
./configure
- name: Configure cmake
if: matrix.buildtool == 'cmake'
- name: Configure cmake (Linux)
if: matrix.buildtool == 'cmake' && runner.os == 'Linux'
run: |
make dist
VERSION=$(grep PACKAGE_VERSION config.h | cut -d' ' -f3 | tr -d '"')
tar xf nghttp2-$VERSION.tar.gz
cd nghttp2-$VERSION
echo 'NGHTTP2_CMAKE_DIR='"$PWD" >> $GITHUB_ENV
cmake -DENABLE_WERROR=1 -DWITH_MRUBY=1 -DWITH_NEVERBLEED=1 -DENABLE_APP=1 $EXTRA_CMAKE_OPTS -DCPPFLAGS="$CPPFLAGS" -DLDFLAGS="$LDFLAGS" .
- name: Configure cmake (MacOS)
if: matrix.buildtool == 'cmake' && runner.os == 'macOS'
run: |
make dist
VERSION=$(grep PACKAGE_VERSION config.h | cut -d' ' -f3 | tr -d '"')
@ -162,12 +172,17 @@ jobs:
# This fixes infamous 'stdio.h not found' error.
echo 'SDKROOT='"$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
cmake -DENABLE_WERROR=1 -DWITH_MRUBY=1 -DWITH_NEVERBLEED=1 -DENABLE_APP=1 $EXTRA_CMAKE_OPTS -DCPPFLAGS="$CPPFLAGS" -DLDFLAGS="$LDFLAGS" .
- name: Build nghttp2 with autotools
if: matrix.buildtool == 'autotools'
cmake -DENABLE_WERROR=1 -DWITH_MRUBY=1 -DENABLE_APP=1 $EXTRA_CMAKE_OPTS -DCPPFLAGS="$CPPFLAGS" -DLDFLAGS="$LDFLAGS" .
- name: Build nghttp2 with autotools (Linux)
if: matrix.buildtool == 'autotools' && runner.os == 'Linux'
run: |
make -j"$(nproc 2> /dev/null || sysctl -n hw.ncpu)" distcheck \
make -j"$(nproc)" distcheck \
DISTCHECK_CONFIGURE_FLAGS="--with-mruby --with-neverbleed --with-libev --enable-werror $EXTRA_AUTOTOOLS_OPTS CPPFLAGS=\"$CPPFLAGS\" LDFLAGS=\"$LDFLAGS\""
- name: Build nghttp2 with autotools (MacOS)
if: matrix.buildtool == 'autotools' && runner.os == 'macOS'
run: |
make -j"$(sysctl -n hw.ncpu)" distcheck \
DISTCHECK_CONFIGURE_FLAGS="--with-mruby --with-libev --enable-werror $EXTRA_AUTOTOOLS_OPTS CPPFLAGS=\"$CPPFLAGS\" LDFLAGS=\"$LDFLAGS\""
- name: Build nghttp2 with cmake
if: matrix.buildtool == 'cmake'
run: |

View File

@ -44,13 +44,13 @@ using namespace nghttp2;
namespace shrpx {
#if !LIBRESSL_2_7_API && !OPENSSL_1_1_API
#if !LIBRESSL_3_5_API && !LIBRESSL_2_7_API && !OPENSSL_1_1_API
void *BIO_get_data(BIO *bio) { return bio->ptr; }
void BIO_set_data(BIO *bio, void *ptr) { bio->ptr = ptr; }
void BIO_set_init(BIO *bio, int init) { bio->init = init; }
#endif // !LIBRESSL_2_7_API && !OPENSSL_1_1_API
#endif // !LIBRESSL_3_5_API && !LIBRESSL_2_7_API && !OPENSSL_1_1_API
Connection::Connection(struct ev_loop *loop, int fd, SSL *ssl,
MemchunkPool *mcpool, ev_tstamp write_timeout,
@ -259,14 +259,14 @@ long shrpx_bio_ctrl(BIO *b, int cmd, long num, void *ptr) {
namespace {
int shrpx_bio_create(BIO *b) {
#if OPENSSL_1_1_API
#if OPENSSL_1_1_API || LIBRESSL_3_5_API
BIO_set_init(b, 1);
#else // !OPENSSL_1_1_API
#else // !OPENSSL_1_1_API && !LIBRESSL_3_5_API
b->init = 1;
b->num = 0;
b->ptr = nullptr;
b->flags = 0;
#endif // !OPENSSL_1_1_API
#endif // !OPENSSL_1_1_API && !LIBRESSL_3_5_API
return 1;
}
} // namespace
@ -277,17 +277,17 @@ int shrpx_bio_destroy(BIO *b) {
return 0;
}
#if !OPENSSL_1_1_API
#if !OPENSSL_1_1_API && !LIBRESSL_3_5_API
b->ptr = nullptr;
b->init = 0;
b->flags = 0;
#endif // !OPENSSL_1_1_API
#endif // !OPENSSL_1_1_API && !LIBRESSL_3_5_API
return 1;
}
} // namespace
#if OPENSSL_1_1_API
#if OPENSSL_1_1_API || LIBRESSL_3_5_API
BIO_METHOD *create_bio_method() {
auto meth = BIO_meth_new(BIO_TYPE_FD, "nghttpx-bio");
@ -302,7 +302,7 @@ BIO_METHOD *create_bio_method() {
return meth;
}
#else // !OPENSSL_1_1_API
#else // !OPENSSL_1_1_API && !LIBRESSL_3_5_API
BIO_METHOD *create_bio_method() {
static auto meth = new BIO_METHOD{
@ -314,7 +314,7 @@ BIO_METHOD *create_bio_method() {
return meth;
}
#endif // !OPENSSL_1_1_API
#endif // !OPENSSL_1_1_API && !LIBRESSL_3_5_API
void Connection::set_ssl(SSL *ssl) {
tls.ssl = ssl;

View File

@ -33,6 +33,7 @@
# define LIBRESSL_IN_USE 1
# define LIBRESSL_LEGACY_API (LIBRESSL_VERSION_NUMBER < 0x20700000L)
# define LIBRESSL_2_7_API (LIBRESSL_VERSION_NUMBER >= 0x20700000L)
# define LIBRESSL_3_5_API (LIBRESSL_VERSION_NUMBER >= 0x30500000L)
# else // !LIBRESSL_VERSION_NUMBER
# define OPENSSL_1_1_API (OPENSSL_VERSION_NUMBER >= 0x1010000fL)
# define OPENSSL_1_1_1_API (OPENSSL_VERSION_NUMBER >= 0x10101000L)
@ -40,6 +41,7 @@
# define LIBRESSL_IN_USE 0
# define LIBRESSL_LEGACY_API 0
# define LIBRESSL_2_7_API 0
# define LIBRESSL_3_5_API 0
# endif // !LIBRESSL_VERSION_NUMBER
#endif // OPENSSL_COMPAT_H