Commit graph

1169 commits

Author SHA1 Message Date
Viktor Szakats
1d2873e77d
tweak 2025-09-12 00:19:50 +02:00
Viktor Szakats
acd12d46ef
tweak 2025-09-12 00:19:14 +02:00
Viktor Szakats
0da1eb8f53
drop verbose 1 2025-09-12 00:13:32 +02:00
Viktor Szakats
66372be9bd
prefer manual build 2025-09-12 00:13:17 +02:00
Viktor Szakats
9d47718982
avoid build libtests 2025-09-12 00:12:39 +02:00
Viktor Szakats
71e50ff311
show curl -V 2025-09-12 00:09:51 +02:00
Viktor Szakats
dbdf5739c9
avoid build units 2025-09-12 00:06:56 +02:00
Viktor Szakats
5b82b17066
enable more components 2025-09-12 00:06:49 +02:00
Viktor Szakats
9360f60b5e
add time limits 2025-09-11 23:47:17 +02:00
Viktor Szakats
10ab9d7289
try manual build for core
testdeps build hung at:
```
[...]
Certificate generated: CA=test 300days prime256v1 test-client-cert
Certificate generated: CA=test 300days prime256v1 test-client-eku-only
[427/430] Building C object tests/unit/CMakeFiles/units.dir/units.c.o
[428/430] Linking C executable tests/unit/units
```
https://github.com/curl/curl/actions/runs/17657602508/job/50184080741?pr=18528#step:5:833
2025-09-11 23:34:01 +02:00
Viktor Szakats
865d954b8b
try manual build for testdeps 2025-09-11 23:18:51 +02:00
Viktor Szakats
9f65e67d0d
re-add to docs 2025-09-11 20:16:25 +02:00
Viktor Szakats
4e79564bf3
Revert "try expicit default"
This reverts commit 95cdfcd277.

nope:
```
A fatal error occurred: Query pack default cannot be found. Check the spelling of the pack.
```
2025-09-11 20:13:27 +02:00
Viktor Szakats
95cdfcd277
try expicit default 2025-09-11 20:08:35 +02:00
Viktor Szakats
72c1a3ba36
drop query pack name 2025-09-11 19:54:34 +02:00
Viktor Szakats
0a02c15866
zizmor 2025-09-11 19:51:40 +02:00
Viktor Szakats
a1d903e3a8
GHA/codeql: try C with basic query set 2025-09-11 19:50:40 +02:00
Viktor Szakats
53f90cb3b5
GHA/http3-linux: fix nghttpx build and other tweaks
- fix `nghttp2` build to also build the `nghttpx` application.
  Restore required `libc-ares-dev`. Also confirm that `libev-dev` is
  required too. Document these requirements.
  Follow-up to 0455d8772a #18509

- explicitly enable `nghttpx` for the `nghttp2` build to make it fail if
  requirements aren't met:
  ```
  configure: error: applications were requested (--enable-app) but dependencies are not met.
  ```

- explicitly install brotli, zstd, zlib for the dependency builds.
  Of these, zstd and zlib are preinstalled. zlib is required for
  `nghttpx`. zstd and brotli doesn't seem to be used, but keep them
  there just in case and to match the test env.
  Follow-up to 0455d8772a #18509

- enable brotli for `nghttpx`. It doesn't change the tests, and also
  cost almost nothing, so I figure why not.

Closes #18522
2025-09-11 17:03:33 +02:00
Viktor Szakats
bf6ae59ab1
GHA/windows: drop repeated word from comment 2025-09-11 15:02:57 +02:00
Viktor Szakats
aa8a44ecfa
GHA: fix and tweak installed packages for http3-linux and Windows-cross
- explicitly install `libldap-dev` to not rely on test-specific packages
  installing it implicitly, to have the same `curl -V` output for each
  TLS backend build pair.
  Follow-up to 0455d8772a #18509

- install `libev-dev` for tests. It's a runtime dependency for
  the local build of `nghttpx`. Missing it made pytest skip 178 tests.
  Also skewing the 'Gain' time. I estimate it to account for 3 minutes,
  making the total gain ~20 minutes.
  Follow-up to 0455d8772a #18509
  (It may be a better solution to disable libev for the local nghttp2
  build, to avoid this hidden dependency.)

- fix quiche jobs to use the local build of `libnghttp2`.

- stop installing the `clang` package for Windows-cross. `clang` and
  `clang-tidy` tools are preinstalled on the Ubuntu 24.04 runner.

Closes #18519
2025-09-11 12:53:54 +02:00
renovate[bot]
39c2d4b543
GHA: update github/codeql-action digest to 192325c
Closes #18516
2025-09-11 08:40:57 +02:00
renovate[bot]
7417f14b93
GHA: update rojopolis/spellcheck-github-actions digest to 739a1e3
Closes #18515
2025-09-11 08:40:09 +02:00
Viktor Szakats
0455d8772a
GHA: minimize installed packages in http3-linux and Windows cross-builds
In the last couple of months some jobs started taking a lot of time and
often timing out due to slow `apt install` from the Azure Ubuntu mirror.

The jobs affected were those that installed large packages:
GHA/http3-linux and the 3 cross-build jobs in GHA/windows.

This patch reduces the installed packaged to the minimum required
to complete the jobs. Saving a minute+ for each http3-linux job (a total
of 20+ minutes for the workflow.) Also saving bandwidth and reducing
the chance for long downloads or timeouts with slow Azure repos.

Details:
- http3: delete redundant packages from the `build-cache` job.
- http3: install gnutls dependencies for gnutls jobs only.
- http3: do not install test dependencies in jobs not running tests.
- http3: drop redundant packages from the curl jobs.
- Windows-cross: replace `mingw-w64` with `gcc-mingw-w64-x86-64-win32`
  for the 3 Windows cross-build job. Dropping C++, 32-bit, and 64-bit
  POSIX-threaded parts. Saving time and significant bandwidth for each
  of the 3 jobs:
  Download size: 277 MB -> 65 MB (installed: 1300 MB -> 400 MB)
- Windows-cross: restore previous job time limit of 15m (from 45m)
  Follow-up to ff5140a25f #18163

Before:
https://github.com/curl/curl/actions/runs/17611514207 (http3)
https://github.com/curl/curl/actions/runs/17611514185/job/50034354923 (Windows cross)

After:
https://github.com/curl/curl/actions/runs/17628406362?pr=18509 (http3)
https://github.com/curl/curl/actions/runs/17627562551/job/50088055529?pr=18509 (Windows cross)

http3 job           |    Bef. |    Aft. |
:------------------ | ------: | ------: |
Build caches (hot)  |     10s |     12s |
AM awslc            |  3m  0s |  1m 54s |
CM awslc            |  4m 32s |  3m  4s |
AM boringssl        |  3m  9s |  1m 48s |
CM boringssl        |  3m 43s |  3m  2s |
AM gnutls           |  3m  9s |  2m 18s |
CM gnutls           |  4m 19s |  2m 55s |
AM libressl         |  2m 14s |  1m 24s |
CM libressl         |  5m 30s |  2m 57s |
AM openssl          |  5m 16s |  4m 17s |
CM openssl          |  1m 50s |  1m 47s |
AM openssl-quic     |  2m 58s |  1m  7s |
CM openssl-quic     |  4m 16s |  2m 43s |
AM quiche           |  2m 54s |  1m 34s |
CM quiche           |  5m  0s |  3m 15s |
AM quictls          |  2m 34s |  1m 13s |
CM quictls          |  4m 20s |  3m 17s |
AM wolfssl          |  2m 48s |  1m 30s |
CM wolfssl          |  4m 49s |  3m 22s |
Total:              | 66m 21s | 43m 27s |
Gain:               |         | 22m 54s |

Out of curiousity, build times as seen in the http3 build-cache job:
- TLS backends:
  - openssl: 2m25s
  - libressl: 27s
  - aws-lc: 41s
  - boringssl: 1m8s
  - quictls: 1m46s
  - gnutls: 6m30s
  - wolfssl: 51s
  - quiche + boringssl: 1m9s
- ng* libs (not yet optimized for build speed):
  - nghttp3: 13s
  - ngtcp2: 52s (with 6 backends, 3 runs)
  - ngtcp2: 19s (boringssl)
  - nghttp2: 21s
Ref: https://github.com/curl/curl/actions/runs/17626120054/job/50083344805

A similar effort in curl-for-win, affecting 2 GHA/curl-for-win Windows
jobs (though they use the default Debian repo, with no issues):
- with llvm/clang:
  Download size: 648 MB -> 430 MB (installed: 3344 MB -> 2333 MB)
- with gcc:
  Download size: 550 MB -> 328 MB (installed: 2815 MB -> 1804 MB)
Ref: e19665d948
Ref: 6b14c3946a

Bug: https://github.com/curl/curl/pull/18502#issuecomment-3270259744

Closes #18509
2025-09-11 03:07:19 +02:00
renovate[bot]
82449d4d91
GHA: update github/codeql-action digest to d3678e2
Closes #18507
2025-09-09 23:47:41 +02:00
Viktor Szakats
c70f7b7a7c
GHA/codeql: scan GHA workflows and Python
Closes #18504
2025-09-09 21:51:09 +02:00
Viktor Szakats
93bc523541
GHA/linux: run on .md file changes
To execute runtests on Markdown files. E.g. test 1275.

Bug: https://github.com/curl/curl/pull/18486#issuecomment-3263681032

Closes #18487
2025-09-07 22:21:04 +02:00
renovate[bot]
4c0da28231 gha: Update actions/labeler action to v6 2025-09-04 13:03:47 -07:00
Viktor Szakats
ec9cb618a0
spacecheck: warn for 3+ empty lines in a row, fix fallouts
Closes #18478
2025-09-04 20:37:51 +02:00
renovate[bot]
2ebb966e08
GHA: update nghttp2/nghttp2 to v1.67.0
Closes #18456
2025-09-03 15:51:43 +02:00
renovate[bot]
5e6bc73570
GHA: Update cloudflare/quiche to v0.24.6
Closes #18464
2025-09-03 12:52:04 +02:00
renovate[bot]
8603d5262b
GHA: update awslabs/aws-lc to v1.60.0
Closes #18458
2025-09-03 11:37:42 +02:00
renovate[bot]
db32083f4a
GHA/http3-linux: update dependency ngtcp2/ngtcp2 to v1.15.1
Closes #18439
2025-08-31 11:55:07 +02:00
renovate[bot]
5249b99a70
GHA/windows: update msys2/setup-msys2 digest to fb197b7
https://github.com/msys2/setup-msys2/releases/tag/v2.29.0

Includes perl 5.40.3.

Ref: 5bb49a485c #18425

Closes #18438
2025-08-31 11:28:10 +02:00
Viktor Szakats
5bb49a485c
GHA/windows: fix perl 5.40.3 bump fallout with custom-built modules
Perl got bumped from 5.38.4 to 5.40.3. The new version crashes when
loading the `Win32::Process*` modules built and cached in CI. The build
job uses Perl 5.38.4.

To avoid the crash, include the Perl version (hashed) in the cache key,
so that it's only loaded when the Perl version matches.

This solution is imperfect, because some of the jobs will not use the
Perl modules in transition periods, when different jobs use different
Perl versions. Anyway, can't think of a better one for now. Another
option is to drop the effort with these modules. After all they did not
help with crashes and hangs, nor with performance. While adding quite
a bit of CI complexity.

Also:
- test early if the modules load and log the result.

Follow-up to 52775a7fb4 #18296

Closes #18425
2025-08-29 15:26:55 +02:00
Viktor Szakats
7ceb9c54aa
clang-tidy: disable clang-analyzer-security.ArrayBound
It's causing false-positives with clang-tidy v21, in cases in system
headers (seen in `FD_ISSET()` with macOS SDK). In some cases in
tests/server, there was no distinct source line that was triggering it.

Example:
```
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/include/sys/_types/_fd_def.h:83:10: error: Potential out of bound access to 'fds_read.fds_bits' with tainted index [clang-analyzer-security.ArrayBound,-warnings-as-errors]
   83 |                 return _p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] & ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS)));
      |                        ^
[...]
/Users/runner/work/curl/curl/tests/server/socksd.c:679:5: note: Taking false branch
  679 |     if(rc < 0) {
      |     ^
```

Closes #18422
2025-08-29 03:07:42 +02:00
Viktor Szakats
0a96b878f7
GHA/linux: build -O3 job with unity batches to save 10-15s
Before (build, test run):
https://github.com/curl/curl/actions/runs/16974205126/job/48118716664 25s, 12m56
https://github.com/curl/curl/actions/runs/16973102133/job/48114977897 24s, 12m51

After, with batch size 50 (build, test run):
https://github.com/curl/curl/actions/runs/17250901063/job/48952645881?pr=18293 16s, 12m51
https://github.com/curl/curl/actions/runs/17250901063/job/48953665204?pr=18293 17s, 12m42

Closes #18293
2025-08-27 00:15:30 +02:00
Viktor Szakats
455cd07410
GHA/http3-linux: add AWS-LC and BoringSSL jobs
Closes #18391
2025-08-26 12:01:39 +02:00
Viktor Szakats
e2c747bb5d
GHA/curl-for-win: drop x86, fix zlib-classic, switch back to libssh
- switch x86 job to x64. x86 is not longer actively maintained in
  curl-for-win.
  Ref: https://github.com/curl/curl-for-win/discussions/68

- switch back from libssh2 to libssh.
  Reverts af8e1aa4b0 #18257

- fix to really build with zlib-classic.
  Follow-up to 8076824870 #17357

Closes #18400
2025-08-26 11:59:23 +02:00
Viktor Szakats
cda243d053
projects: drop unused logic from generate.bat
Follow-up to 5a0644fae8 #8442

Closes #18397
2025-08-25 19:19:48 +02:00
Viktor Szakats
4c40f8b8e0
GHA/linux: add BoringSSL job, with runtests, pytests and cache
Ref: cff4c16b83 #18385
Cherry-picked from #18384
Closes #18386
2025-08-23 23:40:16 +02:00
Simon Dalvai
a855bdee90
docs: fix link CONTRIBUTE.md link
Closes #18372
2025-08-23 23:14:04 +02:00
Viktor Szakats
41923af5fc
GHA/http3-linux: build ngtcp2 for LibreSSL too, add LibreSSL jobs
Also: Build LibreSSL with cmake. It's 3x faster (90s -> 30s).

Follow-up to e724259bcb #18379
Follow-up to 31e6798544 #18377
Cherry-picked from #18377
Closes #18381
2025-08-23 16:11:00 +02:00
renovate[bot]
e724259bcb
GHA: update ngtcp2/ngtcp2 to v1.15.0
Closes #18379
2025-08-23 13:44:50 +02:00
Viktor Szakats
3298a43133
spelling: file system
Closes #18348
2025-08-22 15:53:41 +02:00
Viktor Szakats
7956a2a756
gnutls: fix building with older supported GnuTLS versions
Also:
- GHA/linux-old: switch jobs from OpenSSL 1.0.2 to GnuTLS 3.5.8.

Ref: https://gitlab.com/gnutls/gnutls/blob/master/NEWS
Follow-up to fa0ccd9f1f #15774
Follow-up to 68bd759c2b #15667
Cherry-picked from #18330
Closes #18335
2025-08-21 18:04:25 +02:00
Viktor Szakats
0630e66cb4
GHA/non-native: drop MS-DOS jobs, requires OpenSSL 1.0.2
Cherry-picked from #18330
Closes #18338
2025-08-21 16:58:55 +02:00
Viktor Szakats
29608d694e
GHA/http3-linux: test non-unity, and more cmake
Reshuffle HTTP/3 jobs to:
- test all backends with cmake too. Adding 4 jobs.
- build all backends in non-unity mode too.
  Either with autotools or cmake.
- run tests once for each backend
  Either with autotools or cmake, with a preference for cmake to finish
  faster.
- drop building examples. There is nothing HTTP/3-specific in examples,
  and they are already built in GHA/linux.
- de-dupe some shared settings.

Ref: https://github.com/curl/curl/issues/17857#issuecomment-3047999309
Ref: 8cef6b5e6e #18321 #18320
Ref: d79269166e #18211 #18212
Ref: 454395ba1e #17857 #17864
Ref: b270fec68d #17857 #17858

Closes #18325
2025-08-21 13:11:31 +02:00
Viktor Szakats
52775a7fb4
GHA/windows: install Win32::Process* perl modules
To make the CI jobs use native Win32 API calls instead of calling
external tools to look up and kill PIDs of native Windows test server
processes.

Follow-up to 2388b0e587 #18308
Closes #18296
2025-08-19 10:07:25 +02:00
Viktor Szakats
b48997ba7b
GHA/non-native: delete OmniOS job
It's somewhat flaky, slow (6-8 minutes), needs maintenance, and did not
turn up real issues to justify keeping.

Notably it did not help catch a regression seen on Solaris OS: #16915

Follow-up to 90e644f944 #13583
Closes #18314
2025-08-19 09:47:33 +02:00
renovate[bot]
0ea1e50d00
GHA: update vmactions/omnios-vm digest to c31844c
Closes #18302
2025-08-18 16:02:40 +02:00