Skip to content

Commit

Permalink
support for OpenSSL 3.2 QUIC stack
Browse files Browse the repository at this point in the history
  • Loading branch information
travislee89 committed Jan 24, 2024
1 parent 5cb41dd commit 869555d
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 89 deletions.
16 changes: 16 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ jobs:
- name: Use variables
env:
CURL_VERSION: ${{ vars.CURL_VERSION }}
TLS_LIB: ${{ vars.TLS_LIB }}
QUICTLS_VERSION: ${{ vars.QUICTLS_VERSION }}
OPENSSL_VERSION: ${{ vars.OPENSSL_VERSION }}
NGTCP2_VERSION: ${{ vars.NGTCP2_VERSION }}
NGHTTP3_VERSION: ${{ vars.NGHTTP3_VERSION }}
NGHTTP2_VERSION: ${{ vars.NGHTTP2_VERSION }}
Expand All @@ -27,7 +29,9 @@ jobs:
CONTAINER_IMAGE: ${{ vars.CONTAINER_IMAGE }}
run: |
echo "cURL version: ${CURL_VERSION}"
echo "TLS library: ${TLS_LIB}"
echo "QuicTLS version: ${QUICTLS_VERSION}"
echo "OpenSSL version: ${OPENSSL_VERSION}"
echo "ngtcp2 version: ${NGTCP2_VERSION}"
echo "nghttp3 version: ${NGHTTP3_VERSION}"
echo "nghttp2 version: ${NGHTTP2_VERSION}"
Expand All @@ -49,7 +53,9 @@ jobs:
- name: Cross Build Static cURL
env:
CURL_VERSION: ${{ vars.CURL_VERSION }}
TLS_LIB: ${{ vars.TLS_LIB }}
QUICTLS_VERSION: ${{ vars.QUICTLS_VERSION }}
OPENSSL_VERSION: ${{ vars.OPENSSL_VERSION }}
NGTCP2_VERSION: ${{ vars.NGTCP2_VERSION }}
NGHTTP3_VERSION: ${{ vars.NGHTTP3_VERSION }}
NGHTTP2_VERSION: ${{ vars.NGHTTP2_VERSION }}
Expand All @@ -68,7 +74,9 @@ jobs:
ARCH="${ARCH}"
ARCHS="${ARCHS}"
CURL_VERSION=${CURL_VERSION}
TLS_LIB=${TLS_LIB}
QUICTLS_VERSION=${QUICTLS_VERSION}
OPENSSL_VERSION=${OPENSSL_VERSION}
NGTCP2_VERSION=${NGTCP2_VERSION}
NGHTTP3_VERSION=${NGHTTP3_VERSION}
NGHTTP2_VERSION=${NGHTTP2_VERSION}
Expand Down Expand Up @@ -112,7 +120,9 @@ jobs:
- name: Use variables
env:
CURL_VERSION: ${{ vars.CURL_VERSION }}
TLS_LIB: ${{ vars.TLS_LIB }}
QUICTLS_VERSION: ${{ vars.QUICTLS_VERSION }}
OPENSSL_VERSION: ${{ vars.OPENSSL_VERSION }}
NGTCP2_VERSION: ${{ vars.NGTCP2_VERSION }}
NGHTTP3_VERSION: ${{ vars.NGHTTP3_VERSION }}
NGHTTP2_VERSION: ${{ vars.NGHTTP2_VERSION }}
Expand All @@ -125,7 +135,9 @@ jobs:
ARES_VERSION: ${{ vars.ARES_VERSION }}
run: |
echo "cURL version: ${CURL_VERSION}"
echo "TLS library: ${TLS_LIB}"
echo "QuicTLS version: ${QUICTLS_VERSION}"
echo "OpenSSL version: ${OPENSSL_VERSION}"
echo "ngtcp2 version: ${NGTCP2_VERSION}"
echo "nghttp3 version: ${NGHTTP3_VERSION}"
echo "nghttp2 version: ${NGHTTP2_VERSION}"
Expand All @@ -147,7 +159,9 @@ jobs:
- name: Build Static cURL on macOS
env:
CURL_VERSION: ${{ vars.CURL_VERSION }}
TLS_LIB: ${{ vars.TLS_LIB }}
QUICTLS_VERSION: ${{ vars.QUICTLS_VERSION }}
OPENSSL_VERSION: ${{ vars.OPENSSL_VERSION }}
NGTCP2_VERSION: ${{ vars.NGTCP2_VERSION }}
NGHTTP3_VERSION: ${{ vars.NGHTTP3_VERSION }}
NGHTTP2_VERSION: ${{ vars.NGHTTP2_VERSION }}
Expand All @@ -163,7 +177,9 @@ jobs:
run: |
ARCHS="${ARCHS}"
CURL_VERSION=${CURL_VERSION}
TLS_LIB=${TLS_LIB}
QUICTLS_VERSION=${QUICTLS_VERSION}
OPENSSL_VERSION=${OPENSSL_VERSION}
NGTCP2_VERSION=${NGTCP2_VERSION}
NGHTTP3_VERSION=${NGHTTP3_VERSION}
NGHTTP2_VERSION=${NGHTTP2_VERSION}
Expand Down
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Simply execute it to compile the most recent version.

**Included components**

- [openssl](https://www.openssl.org)
- [quictls](https://github.com/quictls/openssl)
- [libssh2](https://github.com/libssh2/libssh2)
- [nghttp3](https://github.com/ngtcp2/nghttp3)
Expand Down Expand Up @@ -64,8 +65,10 @@ script will create a container and compile the host architecture cURL only.
--name "build-curl-$(date +%Y%m%d-%H%M)" \
-e ARCH=all \
-e ARCHS="x86_64 aarch64 armv7l i686 riscv64 s390x mips64 mips64el mips mipsel powerpc64le powerpc" \
-e TLS_LIB="quictls" \
-e CURL_VERSION="" \
-e QUICTLS_VERSION="" \
-e OPENSSL_VERSION="" \
-e NGTCP2_VERSION="" \
-e NGHTTP3_VERSION="" \
-e NGHTTP2_VERSION="" \
Expand All @@ -83,8 +86,10 @@ Run the following command to compile:

```shell
ARCHS="x86_64 arm64" \
TLS_LIB=${TLS_LIB} \
CURL_VERSION=${CURL_VERSION} \
QUICTLS_VERSION=${QUICTLS_VERSION} \
OPENSSL_VERSION=${OPENSSL_VERSION} \
NGTCP2_VERSION=${NGTCP2_VERSION} \
NGHTTP3_VERSION=${NGHTTP3_VERSION} \
NGHTTP2_VERSION=${NGHTTP2_VERSION} \
Expand All @@ -106,8 +111,10 @@ For all `VERSION` variables, leaving them blank will automatically fetch the lat

- `ARCH`: The architecture to compile. The default is the host architecture. If set to `all`, all architectures listed in `ARCHS` will be compiled.
- `ARCHS`: The list of architectures to compile. You can set one or multiple architectures from the following options: `x86_64 aarch64 armv7l i686 riscv64 s390x mips64 mips64el mips mipsel powerpc64le powerpc`.
- `CURL_VERSION`: The version of cURL.
- `TLS_LIB`: The TLS library. `quictls`(default) or `openssl`(requires openssl 3.2.0 or later, and curl 8.5.0+).
- `CURL_VERSION`: The version of cURL. If set to `dev`, will clone the latest source code from GitHub.
- `QUICTLS_VERSION`: The version of quictls.
- `OPENSSL_VERSION`: The version of OpenSSL.
- `NGTCP2_VERSION`: The version of ngtcp2.
- `NGHTTP3_VERSION`: The version of nghttp3.
- `NGHTTP2_VERSION`: The version of nghttp2.
Expand Down
Loading

0 comments on commit 869555d

Please sign in to comment.