diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 519d43d3..261661ac 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -112,7 +112,7 @@ jobs: id: ngtcp2 if: steps.libressl.outcome == 'success' continue-on-error: true - run: ./vcpkg.exe install ngtcp2[libressl] --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} + run: ./vcpkg.exe install ngtcp2[libressl] --triplet ${{ matrix.triplet }} - name: Read ngtcp2 config if: steps.ngtcp2.outcome == 'success' || steps.ngtcp2.outcome == 'failure' continue-on-error: true diff --git a/README.md b/README.md index ae3b1211..fbff2ebc 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,6 @@ | [icu](http://site.icu-project.org) | 76.1 | 2024-10-24 | | [zlib](https://github.com/zlib-ng/zlib-ng) | 2.2.2 | 2024-09-17 | | [nghttp3](https://github.com/ngtcp2/nghttp3) | 1.6.0 | 2024-10-05 | -| [ngtcp2](https://github.com/ngtcp2/ngtcp2) | 1.8.1 | 2024-10-17 | | [curl](https://curl.se) | 8.11.0 | 2024-11-05 | | [libxml2](http://xmlsoft.org) | 2.13.5 | 2024-11-12 | | [libxslt](http://xmlsoft.org/libxslt) | 1.1.42 | 2024-07-04 | diff --git a/ports/ngtcp2/patches/0001-Use-REQUIRED-when-finding-a-package.patch b/ports/ngtcp2/patches/0001-Use-REQUIRED-when-finding-a-package.patch deleted file mode 100644 index 505e281a..00000000 --- a/ports/ngtcp2/patches/0001-Use-REQUIRED-when-finding-a-package.patch +++ /dev/null @@ -1,126 +0,0 @@ -From bc5996d0abe310a551690052b8a721b404a4846e Mon Sep 17 00:00:00 2001 -From: Don Olmstead -Date: Wed, 16 Oct 2024 14:46:31 -0700 -Subject: [PATCH] Use REQUIRED when finding a package - -If an `ENABLE` option is `ON` and requires a package to be present it should fail the build if its not found. OpenSSL is still detected for the picotls backend but the OpenSSL backend will not be compiled out unless it was explicitly requested. - -Update the Windows GitHub Action build to set `ENABLE_OPENSSL` to `OFF` since an appropriate OpenSSL installation is not present. ---- - CMakeLists.txt | 48 +++++++++++++++++++------------------ - 2 files changed, 26 insertions(+), 24 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b6e1faf2..cbfaa5ff 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -117,16 +117,16 @@ if(NOT CMAKE_C_COMPILER_ID MATCHES "MSVC") - endif() - - if(ENABLE_GNUTLS) -- find_package(GnuTLS 3.7.2) -+ find_package(GnuTLS 3.7.2 REQUIRED) - endif() --if(ENABLE_OPENSSL) -- find_package(OpenSSL 1.1.1) -+if(ENABLE_OPENSSL OR ENABLE_PICOTLS) -+ find_package(OpenSSL 1.1.1 REQUIRED) - endif() - if(ENABLE_WOLFSSL) -- find_package(wolfssl 5.5.0) -+ find_package(wolfssl 5.5.0 REQUIRED) - endif() - if(ENABLE_JEMALLOC) -- find_package(Jemalloc) -+ find_package(Jemalloc REQUIRED) - endif() - find_package(Libev 4.11) - find_package(Libnghttp3 1.0.0) -@@ -138,25 +138,27 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) - # OpenSSL (required for libngtcp2_crypto_quictls, - # libngtcp2_crypto_picotls and examples) - include(CheckSymbolExists) --if(ENABLE_OPENSSL AND OPENSSL_FOUND) -+if(OPENSSL_FOUND) - set(VANILLA_OPENSSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR}) - set(VANILLA_OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES}) - set(HAVE_VANILLA_OPENSSL TRUE) - - # Until OpenSSL gains mainline support for QUIC, check for a patched version. -- cmake_push_check_state() -- set(CMAKE_REQUIRED_INCLUDES "${OPENSSL_INCLUDE_DIR}") -- set(CMAKE_REQUIRED_LIBRARIES "${OPENSSL_LIBRARIES}") -- if(WIN32) -- set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}" "ws2_32" "bcrypt") -- endif() -- check_symbol_exists(SSL_provide_quic_data "openssl/ssl.h" HAVE_SSL_PROVIDE_QUIC_DATA) -- if(NOT HAVE_SSL_PROVIDE_QUIC_DATA) -- message(WARNING "Disabling OpenSSL due to lack of QUIC support in ${OPENSSL_LIBRARIES}") -+ if(ENABLE_OPENSSL) -+ cmake_push_check_state() -+ set(CMAKE_REQUIRED_INCLUDES "${OPENSSL_INCLUDE_DIR}") -+ set(CMAKE_REQUIRED_LIBRARIES "${OPENSSL_LIBRARIES}") -+ if(WIN32) -+ set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}" "ws2_32" "bcrypt") -+ endif() -+ check_symbol_exists(SSL_provide_quic_data "openssl/ssl.h" HAVE_SSL_PROVIDE_QUIC_DATA) -+ if(NOT HAVE_SSL_PROVIDE_QUIC_DATA) -+ message(FATAL_ERROR "Unable to build OpenSSL backend due to lack of QUIC support in ${OPENSSL_LIBRARIES}") -+ endif() -+ cmake_pop_check_state() - endif() -- cmake_pop_check_state() - endif() --if(ENABLE_OPENSSL AND HAVE_SSL_PROVIDE_QUIC_DATA) -+if(ENABLE_OPENSSL) - set(OPENSSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR}) - set(HAVE_OPENSSL TRUE) - set(HAVE_CRYPTO TRUE) -@@ -174,11 +176,11 @@ if(ENABLE_BORINGSSL) - set(CMAKE_REQUIRED_LIBRARIES "${BORINGSSL_LIBRARIES}") - check_cxx_symbol_exists(SSL_set_quic_early_data_context "openssl/ssl.h" HAVE_SSL_SET_QUIC_EARLY_DATA_CONTEXT) - if(NOT HAVE_SSL_SET_QUIC_EARLY_DATA_CONTEXT) -- message(WARNING "Disabling BoringSSL due to lack of QUIC support in ${BORINGSSL_LIBRARIES}") -+ message(FATAL_ERROR "Unable to build BoringSSL backend due to lack of QUIC support in ${BORINGSSL_LIBRARIES}") - endif() - cmake_pop_check_state() - endif() --if(ENABLE_BORINGSSL AND HAVE_SSL_SET_QUIC_EARLY_DATA_CONTEXT) -+if(ENABLE_BORINGSSL) - set(BORINGSSL_INCLUDE_DIRS ${BORINGSSL_INCLUDE_DIR}) - set(HAVE_BORINGSSL TRUE) - set(HAVE_CRYPTO TRUE) -@@ -196,7 +198,7 @@ set(HAVE_LIBEV ${LIBEV_FOUND}) - set(HAVE_LIBNGHTTP3 ${LIBNGHTTP3_FOUND}) - - # GnuTLS (required for libngtcp2_crypto_gnutls) --if(ENABLE_GNUTLS AND GNUTLS_FOUND) -+if(ENABLE_GNUTLS) - set(GNUTLS_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR}) - set(HAVE_GNUTLS TRUE) - set(HAVE_CRYPTO TRUE) -@@ -214,11 +216,11 @@ if(ENABLE_PICOTLS) - check_symbol_exists(ptls_openssl_random_bytes "picotls.h;picotls/openssl.h" - HAVE_PTLS_OPENSSL_RANDOM_BYTES) - if(NOT HAVE_PTLS_OPENSSL_RANDOM_BYTES) -- message(WARNING "Disabling Picotls because ptls_openssl_random_bytes not found in ${CMAKE_REQUIRED_LIBRARIES}") -+ message(FATAL_ERROR "Unable to build Picotls backend because ptls_openssl_random_bytes not found in ${CMAKE_REQUIRED_LIBRARIES}") - endif() - cmake_pop_check_state() - endif() --if(ENABLE_PICOTLS AND HAVE_PTLS_OPENSSL_RANDOM_BYTES) -+if(ENABLE_PICOTLS) - set(PICOTLS_INCLUDE_DIRS ${PICOTLS_INCLUDE_DIR}) - set(HAVE_PICOTLS TRUE) - set(HAVE_CRYPTO TRUE) -@@ -229,7 +231,7 @@ else() - endif() - - # wolfSSL (required for libngtcp2_crypto_wolfssl) --if(ENABLE_WOLFSSL AND WOLFSSL_FOUND) -+if(ENABLE_WOLFSSL) - set(WOLFSSL_INCLUDE_DIRS ${WOLFSSL_INCLUDE_DIR}) - set(HAVE_WOLFSSL TRUE) - set(HAVE_CRYPTO TRUE) --- -2.47.0.windows.1 diff --git a/ports/ngtcp2/portfile.cmake b/ports/ngtcp2/portfile.cmake deleted file mode 100644 index 280bfb62..00000000 --- a/ports/ngtcp2/portfile.cmake +++ /dev/null @@ -1,67 +0,0 @@ -set(VERSION 1.8.1) - -set(FILENAME "ngtcp2-${VERSION}.tar.xz") -set(URLS "https://github.com/ngtcp2/ngtcp2/releases/download/v${VERSION}/${FILENAME}") - -# Get archive -vcpkg_download_distfile(ARCHIVE - URLS ${URLS} - FILENAME ${FILENAME} - SHA512 18728ee0376de319a99c3c5a294a7250a8fefa82fd530f0f2882540da2bada2451644898561be6bb6d95e6c8b7e129337edefe3e71d5ca820beb67db0db7d331 -) - -# Patches -set(PATCHES - # Remove after next release - ${CMAKE_CURRENT_LIST_DIR}/patches/0001-Use-REQUIRED-when-finding-a-package.patch -) - -# Extract archive -vcpkg_extract_source_archive_ex( - OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} - REF ${VERSION} - PATCHES ${PATCHES} -) - -# Run CMake build -if (VCPKG_LIBRARY_LINKAGE MATCHES static) - set(NGTCP2_SHARED_LIB OFF) - set(NGTCP2_STATIC_LIB ON) -else () - set(NGTCP2_SHARED_LIB ON) - set(NGTCP2_STATIC_LIB OFF) -endif () - -# Each port of an OpenSSL equivalent checks to see that no other variant is installed so -# just check to see if any OpenSSL variants are requested and if not use the system one -set(USE_OPENSSL ON) -if (NOT libressl IN_LIST FEATURES) - if (EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h") - message(FATAL_ERROR "Can't build with system SSL library if OpenSSL is installed. Please remove OpenSSL and try to install again") - endif() - - message(STATUS "Using system SSL library") -endif () - -vcpkg_cmake_configure( - SOURCE_PATH ${SOURCE_PATH} - OPTIONS - -DBUILD_TESTING=OFF - -DENABLE_OPENSSL=ON - -DENABLE_SHARED_LIB=${NGTCP2_SHARED_LIB} - -DENABLE_STATIC_LIB=${NGTCP2_STATIC_LIB} -) - -vcpkg_cmake_install() -vcpkg_copy_pdbs() -vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ngtcp2) -vcpkg_fixup_pkgconfig() - -# Prepare distribution -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/man) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc) -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ngtcp2 RENAME copyright) -file(WRITE ${CURRENT_PACKAGES_DIR}/share/ngtcp2/version ${VERSION}) diff --git a/ports/ngtcp2/vcpkg.json b/ports/ngtcp2/vcpkg.json deleted file mode 100644 index 74844dac..00000000 --- a/ports/ngtcp2/vcpkg.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "ngtcp2", - "version": "1.8.1", - "description": "An effort to implement RFC9000 QUIC protocol.", - "homepage": "https://github.com/ngtcp2/ngtcp2", - "license": "MIT", - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ], - "features": { - "libressl": { - "description": "SSL support through libressl. If no SSL libraries are specified then the system SSL library will be used.", - "dependencies": [ - "libressl" - ] - } - } -}