Commit graph

277 commits

Author SHA1 Message Date
Viktor Szakats
943ac04fc4
CI: dump libcurl.pc (and curl-config) to log, verify .pc with pccritic tool
`pccritic` is available on the latest macOS runner revision (not every
job runs get it yet), Cygwin, MSYS2/mingw-w64 (one job, others will
follow on the next msys2/setup-msys2 Action bump). It will be
automatically used on BSDs, once they start offering it. Missing from
Linux jobs.

Also:
- GHA/windows: convert `libcurl.pc` to Unix newlines to bump score
  96 to 100 in mingw-w64 jobs.
  CMake-specific fix pending in: #22556
- GHA: verify with minimum `pccritic` score 94 to 100 (depending on CI
  job).
- build: fill `Maintainer:` `libcurl.pc` property when run curl CI.

Issues remaining:

macOS:
```
[info    ] Cflags adds an include path already on the default search path (pkgconf strips it): -I/usr/local/include (cflags/PC031)
[info    ] Libs adds a library path already on the default search path (pkgconf strips it): -L/usr/local/lib (libs/PC040)
[minor   ] Libs.private contains an unexpected flag: /Applications/Xcode_26.6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk/System/Library/Frameworks/GSS.framework (libs/PC041)
```

Windows:
```
[minor   ] file uses CRLF line endings (style/PC061)
```

Ref: #22556
Follow-up to b9254da617 #22548
Follow-up to 852f5d34da #22553
Follow-up to 4d9ba9fef4 #22545
Follow-up to 6c7993d4d9 #22536
Follow-up to 3f1c033afe #22519

Closes #22543
2026-08-12 12:53:06 +02:00
renovate[bot]
b5ab518ea5
GHA: Update awslabs/aws-lc to v5.5.0
Closes #22526
2026-08-10 08:29:48 +02:00
Viktor Szakats
a368fbe968
curl_ed25519: add GnuTLS support (via nettle, hogweed)
The necessary cryptography API is provided by nettle 3.1+, via its
'hogweed' library. The minimum GnuTLS version required by curl is 3.6.5,
which requires nettle 3.4.1+, so the API is always available.

Also:
- autotools: detect and use nettle's hogweed library.
- cmake/FindNettle: add support for the hogweed library.
- GHA/http3-linux: enable in the autotools/cmake GnuTLS jobs.

Ref: 4353ea025a

Closes #22456
2026-08-03 16:48:08 +02:00
dependabot[bot]
d2ea63b17c
GHA: bump GitHub Actions and pips
- update `actions/checkout` from 7.0.0 to 7.0.1
- update `actions/labeler` from 6.1.0 to 7.0.0
- update `github/codeql-action/analyze` from 4.36.2 to 4.37.3
- update `github/codeql-action/init` from 4.36.2 to 4.37.3

- update `cryptography` from 48.0.1 to 49.0.0
- update `filelock` from 3.29.0 to 3.32.0
- update `impacket` from 0.13.0 to 0.13.1
- update `pytest` from 9.0.3 to 9.1.1
- update `websockets` from 16.0 to 16.1.1

Closes #22458
Closes #22459
2026-08-02 00:02:10 +02:00
Viktor Szakats
527573490e
GHA/http3-linux: enable HTTPSIG in jobs running tests
To test HTTPSIG with all supported OpenSSL forks.

Follow-up to a55731050e #22386 #21239

Closes #22453
2026-07-31 13:02:10 +02:00
renovate[bot]
83216878e4
GHA: update dependency google/boringssl to v0.20260730.0
Closes #22442
2026-07-30 11:26:22 +02:00
renovate[bot]
a7f82509e4
GHA: update dependency nghttp2/nghttp2 to v1.70.0
Closes #22434
2026-07-29 19:26:19 +02:00
renovate[bot]
c7245578c3
GHA: update dependency google/boringssl to v0.20260728.0
Closes #22425
2026-07-29 11:19:28 +02:00
renovate[bot]
ed3508b1ee
GHA: update dependency ngtcp2/ngtcp2 to v1.25.0
Closes #22398
2026-07-27 10:26:59 +02:00
renovate[bot]
6b1ff5407e
GHA/http3-linux: update dependency ngtcp2/nghttp3 to v1.18.0
Closes #22397
2026-07-26 16:43:35 +02:00
renovate[bot]
8b5f1809bd
GHA: update dependency cloudflare/quiche to v0.29.3
Follow-up to f369c7ba43 #22331
Follow-up to 899e2edec9 #22333

Closes #22325
2026-07-15 22:00:26 +02:00
renovate[bot]
87704c45e8
GHA: update dependency google/boringssl to v0.20260713.0
Closes #22311
2026-07-14 03:07:21 +02:00
renovate[bot]
5c5334f831
GHA: update dependency awslabs/aws-lc to v5.1.0
Closes #22288
2026-07-10 12:14:20 +02:00
Viktor Szakats
50c244c74d
tests: skip test 311 for wolfSSL 5.9.2
To fix this for everyone running curl tests.

Also: drop workarounds for CI.

Refs:
https://github.com/wolfSSL/wolfssl/pull/10793
7dd269fc52

Ref: https://github.com/curl/curl/pull/22269#issuecomment-4892203666
Follow-up to 7183bec8fe #22269
Follow-up to 03f9751585 #22204

Closes #22286
2026-07-09 21:09:34 +02:00
Viktor Szakats
03f9751585
GHA: update dependency wolfSSL/wolfssl to v5.9.2, apply upstream patch
Apply upstream patch to fix a regression in 5.9.2.

Refs:
https://github.com/wolfSSL/wolfssl/issues/10790
https://github.com/wolfSSL/wolfssl/pull/10793
7dd269fc52

Ref: #22175 (local mitigation attempt)
Fixes #22160

Closes #22204
2026-07-02 03:20:22 +02:00
dependabot[bot]
0e7030f0e1
GHA: bump GitHub Actions
- updates `actions/cache` from 5.0.5 to 6.1.0
- updates `actions/checkout` from 6.0.2 to 7.0.0
- updates `github/codeql-action/analyze` from 4.36.0 to 4.36.2
- updates `github/codeql-action/init` from 4.36.0 to 4.36.2
- updates `msys2/setup-msys2` from 2.31.1 to 2.32.0

Closes #22239
2026-07-01 17:19:14 +02:00
Viktor Szakats
99859ecca8
cf-ngtcp2-cmn: initialize new callback ptr for ngtcp2 1.24.0+, bump in CI
Fixes #22205

Closes #22207
2026-06-28 13:57:31 +02:00
renovate[bot]
c253a96296
GHA: update dependency ngtcp2/nghttp3 to v1.17.0
Closes #22202
2026-06-28 13:57:08 +02:00
Viktor Szakats
84c5dcdb05
tidy-up: syntax and code nits
- cmp-pkg-config.sh: replace `-r -f` with `-rf` to match rest of repo.
- configure.ac: add double quotes for robustness (not a bug).
- curl-openssl.m4: merge nested `if`s.
- CurlTests.c: drop `!= 0`, also to sync with m4.
- CurlTests.c: replace `example.com` with `localhost` in
  `gethostbyname()` feature test code. (compile-only, not a bug)
- GHA/http3-linux: drop literal `true` from bool expression.
- lib650: drop redundant `&`.
- move variable/call to left-hand side of equality checks, where
  missing.
- perl: detach `<`/`>` from filename in `open()`, where missing.
- schannel: apply two nit fixes lost in rebase.
- scripts/verify-release: drop redundant double quotes.
- scripts/verify-release: exit with error code on error.
- synctime: replace magic numbers with `sizeof()`.
- telnet: add missing parentheses to macro value.
- tests/Makefile.am: use single quotes.
- tool_operate: drop redundant `break` after `return` in VMS code.
- unit2413: drop unused NULL pointer + free call.
- unit2413: fix duplicate test case name.
- urlapi: drop redundant parentheses.
- urlapi: drop `CURL_UNCONST()` that became redundant.

Closes #22186
2026-06-26 15:45:24 +02:00
renovate[bot]
94962a9b82
GHA: update dependency cloudflare/quiche to v0.29.2
Closes #22106
2026-06-19 15:26:18 +02:00
Viktor Szakats
2a993e2a4a
GHA: re-sync Linux CMake triplet with autotools builds
Follow-up to 8f5e4f020e #22097
2026-06-19 01:09:53 +02:00
Viktor Szakats
8f5e4f020e
GHA: fix Linux triplet passed to CMAKE_C_COMPILER_TARGET
Before this patch it broke clang 20/21 cmake builds on ubuntu-26.04-arm
runner, failing at the beginning of the configure stage while probing
the compiler.

Seen in the 'CM openssl clang krb5 LTO' job:
```
: && /usr/bin/clang --target=aarch64-pc-linux-gnu   CMakeFiles/cmTC_3d9ae.dir/testCCompiler.c.o -o cmTC_3d9ae   && :
    /usr/bin/aarch64-linux-gnu-ld.bfd: cannot find crtbeginS.o: No such file or directory
    /usr/bin/aarch64-linux-gnu-ld.bfd: cannot find -lgcc: No such file or directory
    /usr/bin/aarch64-linux-gnu-ld.bfd: cannot find -lgcc_s: No such file or directory
```
Ref: https://github.com/curl/curl/actions/runs/27778098314/job/82195462687#step:38:66

Follow-up to 36bd807475 #15242
Follow-up to 232302f88a #14382
Cherry-picked from #22092

Closes #22097
2026-06-19 00:53:04 +02:00
Viktor Szakats
950a30d762
GHA/http3-linux: bump to ubuntu-26.04
Before: https://github.com/curl/curl/actions/runs/27772068909
After: https://github.com/curl/curl/actions/runs/27772321661?pr=22089

Closes #22089
2026-06-18 19:27:15 +02:00
Viktor Szakats
2d70c815e4
GHA/linux: use default GCC compiler, drop CC/CXX envs
At the time of the original commit, the runner was ubuntu-22.04 with
a default GCC 11. It made sense to bump to 12 manually. Since 2025,
the default is ubuntu-24.04 with GCC 13, when this became a downgrade.

Drop manual envs and bump to GCC 13 with it. Other options available are
14, 15 and 16.

Refs:
https://packages.ubuntu.com/jammy/gcc (ubuntu-22.04)
https://packages.ubuntu.com/noble/gcc (ubuntu-24.04)

Follow-up to 6079ff314b #22075
Follow-up to a8174176b5 #13841

Closes #22077
2026-06-18 10:56:12 +02:00
Viktor Szakats
6079ff314b
GHA/http3-linux: simplify setting CC/CXX envs
Replace `GITHUB_ENV` method by defining these envs at workflow-level.

Follow-up to a8174176b5 #13841

Closes #22075
2026-06-18 10:42:17 +02:00
renovate[bot]
1bb75af8e9
GHA: update google/boringssl to v0.20260616.0
Closes #22046
2026-06-16 16:28:02 +02:00
renovate[bot]
a6cece52e4
GHA: update awslabs/aws-lc from v1.73.0 to v5.0.0
Closes #21941
2026-06-10 13:38:42 +02:00
renovate[bot]
d8c97b021b
GHA: update dependency openssl/openssl to v4.0.1
Closes #21934
2026-06-09 14:34:57 +02:00
renovate[bot]
621696d98c
GHA: update dependency ngtcp2/ngtcp2 to v1.23.0
Closes #21815
2026-05-31 18:40:25 +02:00
renovate[bot]
722b59b3ab
GHA: update dependency ngtcp2/nghttp3 to v1.16.0
Closes #21814
2026-05-31 14:17:14 +02:00
Viktor Szakats
59213f8248
GHA: enable H3 proxy in CI, also enable h2o tests on Linux
Also:
- GHA/http3-linux: enable deprecated APIs in openssl-prev local
  OpenSSL builds. Required by h2o and its vendored dependencies.
  Tried OpenSSL 4, LibreSSL 4.x, BoringSSL: all failed at one point.
- GHA/http3-linux: build h2o from source.
  libuv1-dev may not be stricly required.
  Tried installing libwslay-dev, but it wasn't recognized.
  Also disable building h2o libs for a much smaller dist directory and
  slightly faster build.
  Sadly, h2o is not versioned, so I pinned to the current latest commit
  at the master branch. It advertises itself as 2.3.0-DEV in pytest.
- drop redundant `libnghttp3` installs. Remains of openssl-quic builds.
  Follow-up to 6aaac9dd38 #20226

Note GHA/macos pytests may or not not be stable with the H3 proxy tests.

Follow-up to e78b1b3ecc #21153

Closes #21789
2026-05-28 14:31:32 +02:00
renovate[bot]
de9bb509d1
GHA: update dependency google/boringssl to v0.20260526.0
Closes #21790
2026-05-28 09:59:58 +02:00
renovate[bot]
1c302362e0
GHA: update dependency cloudflare/quiche to v0.29.1
Closes #21783
2026-05-27 22:38:29 +02:00
Viktor Szakats
500820682c
GHA: require HTTPS protocol in redirections (where missing)
Also:
- drop following redirects on `openldap.org`.

Closes #21757
2026-05-26 21:59:48 +02:00
Viktor Szakats
01d8191b25
GHA: bump LibreSSL to 4.3.2
Also switch back to ftp.openbsd.org download server. More often than not
the GitHub release entry is missing the download artifacts at the time
of detecting a new version, breaking automatic bumps. We cache the
download so it does not bang the origin server with many requests.

Follow-up to 800b0bec18 #19082
Closes #21742
Closes #21754
2026-05-26 15:23:43 +02:00
Viktor Szakats
4102400028
GHA/http3-linux: fixup quiche cache
Closes #21740
2026-05-24 15:20:35 +02:00
Viktor Szakats
252b82f693
quiche: bump cloudflare/quiche to v0.29.0, update pytest workaround
Also:
- drop no longer necessary quiche build workaround.
- update build for boringssl's new location (since v0.29.0, it's no
  longer vendored) within the quiche tree.
- move boringssl install dir out of quiche tree, and shorten it.

Ref: https://github.com/cloudflare/quiche/issues/2277
Ref: https://github.com/cloudflare/quiche/pull/2278
Ref: #21620

Closes #21730
2026-05-24 14:16:38 +02:00
Viktor Szakats
c583e825f7
GHA: simplify boolean if comparisons
Closes #21709
2026-05-21 14:13:52 +02:00
Viktor Szakats
4815070794
tidy-up: sort TLS backends, distros, alphabetically
Also:
- replace stray [Rr]ustls-ffi with Rustls for consistency.
- add AWS-LC to a couple of lists where missing.

Closes #21481
2026-05-11 11:57:25 +02:00
renovate[bot]
67ce672842
GHA: update awslabs/aws-lc to v1.73.0
Closes #21542
2026-05-10 23:22:45 +02:00
renovate[bot]
1698a3f857
GHA: update google/boringssl to v0.20260508.0
Closes #21537
2026-05-08 16:46:42 +02:00
dependabot[bot]
47755c4e69
GHA: bump actions and pips
- update action `actions/cache` from 5.0.4 to 5.0.5
- update action `actions/upload-artifact` from 7.0.0 to 7.0.1
- update action `github/codeql-action` from 4.32.4 to 4.35.2
- update action `msys2/setup-msys2` from 2.31.0 to 2.31.1

- update pip `filelock` from 3.25.2 to 3.29.0
- update pip `impacket` to 0.13.0
- update pip `ruff` from 0.15.10 to 0.15.12

Closes #21483
Closes #21482
2026-05-01 21:19:22 +02:00
Viktor Szakats
701cd4cfc3
tidy-up: git options, ECH, HTTP/3 documentation
- prefer `--branch` over `-b`, where missing.
- add `--depth 1` where missing.
- sync option order between docs and GHA.
- bump quiche and rustls-ffi versions in documentation.
- ECH.md: update for OpenSSL 4.

Closes #21447
2026-04-25 13:59:20 +02:00
Viktor Szakats
e418b42c82
CI: set DO_NOT_TRACK=1
Closes #21420
2026-04-23 11:22:35 +02:00
Viktor Szakats
50ff4f2927
GHA: deprioritize Azure Ubuntu mirror
Due to year-long unreliability.

The default Ubuntu mirror works as fast as the Azure one when it's
working at its normal speed. And has HTTPS.

Also:
- replac the retry hack that turn out to not solve the problem.
- add timeouts to each download step to catch slowness early.

Follow-up to a5838847c4 #21181
Follow-up to 5172ba5475 #21107

Closes #21414
2026-04-22 19:38:56 +02:00
Viktor Szakats
ed3fea6087
GHA: delete all apt sources except ubuntu.sources
GitHub runners are getting new 3rd-party sources frequntly now, last
week `docker.list`, this week: `google-chrome.sources`. To avoid
playing catch up, allowlist the only one we use: `ubuntu.sources`. If
this is renamed, CI would break. Let's hope this happens much less
often than new sources.

Bug: https://github.com/curl/curl/pull/21414#issuecomment-4297788640

Follow-up to 3e0e2cc1ab #21344

Closes #21416
2026-04-22 18:22:33 +02:00
Viktor Szakats
85e825770a
GHA: bump test minimums (more)
Follow-up to 701a8319ec96c0b73c39e16c5db68dd758419c2 #21353

Closes #21382
2026-04-20 10:47:19 +02:00
Viktor Szakats
9e38e06769
GHA: keep testing 3 as openssl-prev, bump mainline to 4
Ref: #21317
Ref: #21316

Closes #21376
2026-04-19 14:05:46 +02:00
renovate[bot]
23a06e1fb9
GHA: update dependency libressl/portable to v4.3.1
Closes #21365
2026-04-19 11:54:47 +02:00
renovate[bot]
fc7bd0704e
GHA: update dependency nghttp2/nghttp2 to v1.69.0
Closes #21375
2026-04-19 11:52:11 +02:00