]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
GHA/http3-linux: bump to ngtcp2 1.14.0, fix local build
authorViktor Szakats <commit@vsz.me>
Fri, 25 Jul 2025 19:35:57 +0000 (21:35 +0200)
committerViktor Szakats <commit@vsz.me>
Sat, 26 Jul 2025 11:42:10 +0000 (13:42 +0200)
ngtcp2 1.14.0 added crypto dependencies to the ngtcp2 crypto `.pc`
files. It broke GHA builds, because how curl's `configure` is setting up
the per-dependency custom prefixes for pkg-config.

`configure` uses `PKG_CONFIG_LIBDIR` to set per-dependency custom
prefixes, as specified via `--with-ngtcp2=<custom-dir>`. In classic
`pkg-config` this overrides any previously configured `PKG_CONFIG_DIR`.
This in turn break detecting transitive pkg-config modules unless they
are found at locations `pkg-config` is searching by default. This
doesn't affect `pkgconf` because it appends `PKG_CONFIG_LIBDIR` to
the custom `PKG_CONFIG_DIR`, according to its man page.

It may make sense to fix this in`acinclude.m4`, to make sure to honor
global custom pkg-config paths while detecting components at custom
locations, regardless of pkg-config implementation. But this PR doesn't
do this.

Instead it drops the ngtcp2 custom path and lets detection rely on
`PKG_CONFIG_DIR` that's already set up for all custom-built dependencies
anyway.

Also:
- fix `openssl-quic` job to use the custom-built nghttp2 (like other
  jobs do) instead of the system default.
- configure nghttp3 via `PKG_CONFIG_DIR` in the `openssl-quic` job,
  to sync with other jobs. And drop `--with-nghttp3` option.

https://github.com/curl/curl/blob/cb9b1a4c4e875ac4eac2209d8686acef3114abdf/acinclude.m4#L1376-L1381
https://manpages.debian.org/unstable/pkg-config/pkg-config.1.en.html
https://man.archlinux.org/man/pkgconf.1.en

Ref: https://github.com/ngtcp2/ngtcp2/pull/1689#issuecomment-3121576712
Closes #18022
Closes #18028

.github/workflows/http3-linux.yml

index 6345faacbbc2e9b8778b2c9bf4a17cad2b05c782..d6d4692d39c61bfdb7c69cd2d831b9bfedab117e 100644 (file)
@@ -52,7 +52,7 @@ env:
   # renovate: datasource=github-tags depName=ngtcp2/nghttp3 versioning=semver registryUrl=https://github.com
   NGHTTP3_VERSION: 1.10.1
   # renovate: datasource=github-tags depName=ngtcp2/ngtcp2 versioning=semver registryUrl=https://github.com
-  NGTCP2_VERSION: 1.13.0
+  NGTCP2_VERSION: 1.14.0
   # renovate: datasource=github-tags depName=nghttp2/nghttp2 versioning=semver registryUrl=https://github.com
   NGHTTP2_VERSION: 1.66.0
   # renovate: datasource=github-tags depName=cloudflare/quiche versioning=semver registryUrl=https://github.com
@@ -260,7 +260,7 @@ jobs:
             PKG_CONFIG_PATH: /home/runner/openssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/openssl/build/lib
-              --with-ngtcp2=/home/runner/ngtcp2/build --enable-warnings --enable-werror --enable-debug --disable-ntlm
+              --with-ngtcp2 --enable-warnings --enable-werror --enable-debug --disable-ntlm
               --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
               --with-openssl=/home/runner/openssl/build --enable-ssls-export
               --with-libuv
@@ -269,7 +269,7 @@ jobs:
             PKG_CONFIG_PATH: /home/runner/quictls/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/quictls/build/lib
-              --with-ngtcp2=/home/runner/ngtcp2/build --enable-warnings --enable-werror --enable-debug --disable-ntlm
+              --with-ngtcp2 --enable-warnings --enable-werror --enable-debug --disable-ntlm
               --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
               --with-openssl=/home/runner/quictls/build --enable-ssls-export
               --with-libuv
@@ -278,7 +278,7 @@ jobs:
             PKG_CONFIG_PATH: /home/runner/gnutls/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/gnutls/build/lib
-              --with-ngtcp2=/home/runner/ngtcp2/build --enable-warnings --enable-werror --enable-debug
+              --with-ngtcp2 --enable-warnings --enable-werror --enable-debug
               --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
               --with-gnutls=/home/runner/gnutls/build --enable-ssls-export
               --with-libuv
@@ -287,7 +287,7 @@ jobs:
             PKG_CONFIG_PATH: /home/runner/wolfssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/wolfssl/build/lib
-              --with-ngtcp2=/home/runner/ngtcp2/build --enable-warnings --enable-werror --enable-debug
+              --with-ngtcp2 --enable-warnings --enable-werror --enable-debug
               --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
               --with-wolfssl=/home/runner/wolfssl/build
               --enable-ech --enable-ssls-export
@@ -303,13 +303,12 @@ jobs:
               -DCURL_USE_LIBUV=ON
 
           - name: 'openssl-quic'
-            PKG_CONFIG_PATH: /home/runner/openssl/build/lib/pkgconfig
+            PKG_CONFIG_PATH: /home/runner/openssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/openssl/build/lib
               --enable-warnings --enable-werror --enable-debug --disable-ntlm
               --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
               --with-openssl=/home/runner/openssl/build --with-openssl-quic
-              --with-nghttp3=/home/runner/nghttp3/build
               --with-libuv
 
           - name: 'quiche'