#
44505adb |
| 23-Sep-2024 |
Viktor Szakats |
GHA/linux: improve cmake use, switch to Ninja - cmake: allow easy switching of generator (= make tool). - merge autotools/cmake job steps. - cmake: switch to Ninja. (build was
GHA/linux: improve cmake use, switch to Ninja - cmake: allow easy switching of generator (= make tool). - merge autotools/cmake job steps. - cmake: switch to Ninja. (build was already fast, Ninja doesn't make it noticeably faster) Closes #15023
show more ...
|
#
d82f9f96 |
| 23-Sep-2024 |
Viktor Szakats |
build: add pytest targets It enables running pytests in cmake jobs, regardless of underlying build tool choice (= makes it work with ninja.) Also: - drop pytest logic l
build: add pytest targets It enables running pytests in cmake jobs, regardless of underlying build tool choice (= makes it work with ninja.) Also: - drop pytest logic launching `make` and exiting in case of failure. Maybe there is a better way and keep this functionality somehow, bind it to a command-line option? make it fail softly? - GHA/linux: invoke pytest via the build, not directly. - autotools: add missing dummy runtests targets when cross-compiling. Closes #15034
show more ...
|
#
ed766751 |
| 23-Sep-2024 |
Viktor Szakats |
GHA/linux: tidy up msh3 build step Ninja does not improve msh3 build speed on GHA/linux: https://github.com/curl/curl/actions/runs/11020206432/job/30604509300 Cherry-picked from
GHA/linux: tidy up msh3 build step Ninja does not improve msh3 build speed on GHA/linux: https://github.com/curl/curl/actions/runs/11020206432/job/30604509300 Cherry-picked from #15023
show more ...
|
#
73ea09b9 |
| 23-Sep-2024 |
Viktor Szakats |
GHA/linux: review and prune valgrind use Valgrind jobs are slow, drop it from jobs where its use is redundant and/or has limited impact: - BearSSL: deprecated. - LibreSSL he
GHA/linux: review and prune valgrind use Valgrind jobs are slow, drop it from jobs where its use is redundant and/or has limited impact: - BearSSL: deprecated. - LibreSSL heimdal with autotools. Keep valgrind for the same job with cmake. - msh3. - IntelC no-SSL. Keep valgrind for IntelC OpenSSL. - OpenSSL 3. All OpenSSL jobs are v3 now, keep valgrind for the `-O3`, and libssh2 + sync-resolver variants. Closes #15020
show more ...
|
#
336b8ca5 |
| 24-Sep-2024 |
Viktor Szakats |
GHA/linux: merge AWS-LC workflow Closes #15031
|
#
820afa2b |
| 24-Sep-2024 |
Viktor Szakats |
GHA/linux: merge wolfSSL workflow Add wolfSSL builds to cache. Also apply -j4 for the valgrind job (was: -j2). Closes #15030
|
#
9b3a7d1e |
| 23-Sep-2024 |
Viktor Szakats |
GHA/linux: enable test bundles for cmake jobs Test build step speed-up (3x): 18s -> 6s Follow-up to 71cf0d1fca9e1f53524e1545ef0c08d174458d80 #14772 Closes #15022
|
#
1b844967 |
| 21-Sep-2024 |
Viktor Szakats |
GHA: use more ninja, build examples in the last step, and more - linux: bump up test parallelism for valgrind tests to `-j4` (from `-j2`). (EXPERIMENTAL) - linux: drop `apt-get upd
GHA: use more ninja, build examples in the last step, and more - linux: bump up test parallelism for valgrind tests to `-j4` (from `-j2`). (EXPERIMENTAL) - linux: drop `apt-get update` for the default architecture on the GHA native runner. It makes prereq install steps complete faster. The runner image gets weekly updates, and that should be enough to guarantee fresh packages in most cases: https://github.com/actions/runner-images/commits/main/images/ubuntu/Ubuntu2204-Readme.md - aws-lc: use ninja with cmake. - aws-lc: build examples with cmake. - aws-lc: drop `apt update`. - aws-lc, wolfssl, linux32, http3-linux: move building examples to the last step. Follow-up to 45202cbba4bb3d12b4469063864b57d2f8765d9c #14906 - windows: formatting. Closes #14992
show more ...
|
#
71cf0d1f |
| 02-Sep-2024 |
Viktor Szakats |
tests: speed up builds with single-binary test bundles Add support for single-block binaries that contain all libtests and unit tests respectively. Enable with: - autotools:
tests: speed up builds with single-binary test bundles Add support for single-block binaries that contain all libtests and unit tests respectively. Enable with: - autotools: `--enable-test-bundles` - cmake: `-DCURL_TEST_BUNDLES=ON` (They are compatible with `--enable-unity` and `-DCMAKE_UNITY_BUILD=ON` options, for further speed-up.) Makes libtests and unit tests build _fast_, needing little disk space even in static mode. Similar to CMake unity mode, but with a custom script, also supporting autotools builds. The price is having to deal with symbols/macros colliding between `lib*.c` and `unit*.c` sources. Maybe with naming conventions or other solutions this can be improved gradually and reduce the need for manual intervention by `mk-bundle.mk`. I've included a script that does the bulk of detecting name collisions. Also: - CI: enable test bundles. - CI: build tests in more jobs. - lib2305: fix FILE handle leak. - unit1661: fix memleak found by torture test by releasing the `bufref` structure in `unit_stop()` that was allocated in `unit_setup()`. ``` test 1661...[bufref unit tests] Leak detected: memory still allocated: 13 bytes allocated by /home/runner/work/curl/curl/tests/unit/unit1661.c:70 1661: torture FAILED: function number 1 in test. ``` Ref: https://github.com/curl/curl/actions/runs/10967279334/job/30456745290?pr=14772#step:8:41 Similar test suite builds with autotools default and cmake+bundle+unity: - GHA/Linux: 33s vs 7s https://github.com/curl/curl/actions/runs/10705668823/job/29681617374 - GHA/macOS 34s vs 2s https://github.com/curl/curl/actions/runs/10705668813/job/29681632885 - GHA/FreeBSD: 15m25 vs 6m21 (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10705668811/job/29681607915 - GHA/Cygwin: 9m52 vs 32s https://github.com/curl/curl/actions/runs/10705668809/job/29681609965 - GHA/MSYS2: 3m52 vs 14s https://github.com/curl/curl/actions/runs/10705668808/job/29681624295 - GHA/mingw-w64: 5m45 vs 30s https://github.com/curl/curl/actions/runs/10705668808/job/29681628787 Autotools test suite builds compared between master -> `--enable-test-bundles`: - GHA/Linux: 33s -> 9s (run tests: 22m23 -> 20m44) https://github.com/curl/curl/actions/runs/10710030193/job/29695932185 https://github.com/curl/curl/actions/runs/10967831456/job/30458220344 - GHA/macOS: 25s -> 4s (run tests: 2m58 -> 2m24) https://github.com/curl/curl/actions/runs/10710030195/job/29695938444 https://github.com/curl/curl/actions/runs/10967831452/job/30458225762 - GHA/non-native (FreeBSD): 4m8 -> 3m12 (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10710030198/job/29695928401 https://github.com/curl/curl/actions/runs/10967831458/job/30458212692 - GHA/Cygwin: 9m25 -> 1m9 (run tests: 9m19 -> 3m28) https://github.com/curl/curl/actions/runs/10710030212/job/29695928213 https://github.com/curl/curl/actions/runs/10967831453/job/30458213268 - GHA/MSYS2: 3m54 -> 32s (run tests: 6m3 -> 3m59) https://github.com/curl/curl/actions/runs/10710030190/job/29704850591 https://github.com/curl/curl/actions/runs/10967831449/job/30459280005 - GHA/mingw-w64: 5m42 -> 1m5 (run tests: 7m41 -> 5m36) https://github.com/curl/curl/actions/runs/10710030190/job/29704852058 https://github.com/curl/curl/actions/runs/10967831449/job/30459280862 - Azure MSYS2 mingw64 openssl: 38m55 -> 11m58 https://dev.azure.com/daniel0244/curl/_build/results?buildId=25546&view=logs&j=b58b8c59-0f61-52e9-0f9e-fad562a1e77f&t=0f9230a7-3b10-53ca-9938-700ece377c5e https://dev.azure.com/daniel0244/curl/_build/results?buildId=25547&view=logs&jobId=39473db1-3945-55d5-deb5-c218fad88dce&j=b58b8c59-0f61-52e9-0f9e-fad562a1e77f&t=0f9230a7-3b10-53ca-9938-700ece377c5e - Azure Ubuntu default: 2m15 -> 55s (all build) https://dev.azure.com/daniel0244/curl/_build/results?buildId=25546&view=logs&j=9d58b9ac-e1e6-53b6-f83a-1f9f1d912522&t=a6b38d83-e7cf-5a9b-c762-a178412717b7 https://dev.azure.com/daniel0244/curl/_build/results?buildId=25547&view=logs&jobId=39473db1-3945-55d5-deb5-c218fad88dce&j=9d58b9ac-e1e6-53b6-f83a-1f9f1d912522&t=a6b38d83-e7cf-5a9b-c762-a178412717b7 Cmake test suite builds compared between master -> `-DCURL_TEST_BUNDLES=ON` + unity: - GHA/Linux: 29s -> 7s (run tests: 4m50 -> 4m57, 20m43 -> 20m45) https://github.com/curl/curl/actions/runs/10710030193/job/29695941814 https://github.com/curl/curl/actions/runs/10705668823/job/29681622201 - GHA/Linux old: 44s -> 13s (bundle+no unity) (run tests: 5m5 -> 5m6) https://github.com/curl/curl/actions/runs/10718264094/job/29719794727 https://github.com/curl/curl/actions/runs/10718653175/job/29721009613 - GHA/macOS: 32s -> 2s (run tests: 2m43 -> 2m40) https://github.com/curl/curl/actions/runs/10710030195/job/29695931956 https://github.com/curl/curl/actions/runs/10705668813/job/29681638937 - GHA/non-native (*BSD): inconclusive (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10710030198 https://github.com/curl/curl/actions/runs/10705668811 - GHA/Cygwin: 3m9 -> 32s https://github.com/curl/curl/actions/runs/10710030212/job/29695929075 https://github.com/curl/curl/actions/runs/10705668809/job/29681609965 - GHA/MSYS2: 2m24 -> 14s https://github.com/curl/curl/actions/runs/10710030190/job/29704850996 https://github.com/curl/curl/actions/runs/10705668808/job/29681624295 - GHA/mingw-w64: 3m56 -> 30s (run tests: 4m2 -> 3m52) https://github.com/curl/curl/actions/runs/10710030190/job/29704852219 https://github.com/curl/curl/actions/runs/10705668808/job/29681631393 - GHA/mingw-w64-old: 7m19 -> 1m44 (run tests: 3m30 -> 2m53) https://github.com/curl/curl/actions/runs/10710030190/job/29704849763 https://github.com/curl/curl/actions/runs/10705668808/job/29681622329 - GHA/MSVC: 3m22 -> 13s (run tests: 9m43 -> 4m22) https://github.com/curl/curl/actions/runs/10710030190/job/29704850411 https://github.com/curl/curl/actions/runs/10705668808/job/29681623313 - AppVeyor CI MSVC 2008: 4m3 -> 45s (full build) - AppVeyor CI MSVC 2010: 2m56 -> 1m8 (full build) - AppVeyor CI MSVC 2022: 10m19 -> 2m23 (full build) https://ci.appveyor.com/project/curlorg/curl/builds/50538455 https://ci.appveyor.com/project/curlorg/curl/builds/50536558 - AppVeyor CI total build time: 10m30 (master) -> 6m48 (unity) -> 4m5 (bundle) -> 3m24 (bundle+unity) -> 5m7 (bundle+unity+all jobs building tests) Closes #14772
show more ...
|
#
c34aaca5 |
| 20-Sep-2024 |
Viktor Szakats |
GHA/linux: disable unity build for fix scanbuild job Unity mode seems to defeat the scanner and miss issues. before, miss: https://github.com/curl/curl/actions/runs/10967056702/job/
GHA/linux: disable unity build for fix scanbuild job Unity mode seems to defeat the scanner and miss issues. before, miss: https://github.com/curl/curl/actions/runs/10967056702/job/30456136390 after, OK: https://github.com/curl/curl/actions/runs/10967128744/job/30456330732#step:35:1232 Tested with PR commit: https://github.com/curl/curl/pull/14880/commits/32854bb30861e757d4f8d61d303c1b1f0e55bd26 Follow-up to 60c3d0446546332e1645541f2dc2c072cd019fe9 #14815 Closes #14987
show more ...
|
#
60c3d044 |
| 06-Sep-2024 |
Viktor Szakats |
autotools: add support for 'unity' builds, enable in CI Implement the "unity" builds as known from CMake, but for autotools. It's limited to `lib` and `src` (CMake also supports it in `t
autotools: add support for 'unity' builds, enable in CI Implement the "unity" builds as known from CMake, but for autotools. It's limited to `lib` and `src` (CMake also supports it in `tests`). Enable with: `--enable-unity` (disabled by default) Unity builds speed up builds significantly. Cygwin and Windows builds in particular, but the effect is noticeable on most systems. It also allows discovering unity issues with autotools, benefitting also CMake when building the same combination. In CI it makes turnaround times quicker. This closes build performance with CMake. autotools still lags behind because it builds shared and static libcurl in two, separate passes. CMake does it in one. Manpage compilation isn't batched, it is in CMake. After unity and test bundle support the slowest parts of the build are the configuration phase (which is effectively a tedious, non-parallel, compilation and/or linking of 300+ tiny programs. The next bottleneck is compiling individual examples and finally test servers (only slow with autotools). The autotools implementation is slightly less efficient than CMake, because 3 sources are permanently excluded while in CMake this isn't necessary and solved more efficiently while building libtests. There is also no 'unity' support for tests, making them a less efficient also. Enable it in CI for most `configure` jobs. Except in GHA/dist (though it works fine there too), to use the default config there. Also skip for the Linux AWC-LC job where it made builds time a few seconds longer (reason undiscovered.) Autotools test suite builds compared between master -> `--enable-unity`: - GHA/Linux: 32s -> 12s https://github.com/curl/curl/actions/runs/10705668823/job/29681617374 https://github.com/curl/curl/actions/runs/10742978889/job/29796766297 - GHA/macOS: 37s -> 10s https://github.com/curl/curl/actions/runs/10705668813/job/29681632885 https://github.com/curl/curl/actions/runs/10742978699/job/29796768875 - GHA/FreeBSD: 15m25 -> 10m58 (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10705668811/job/29681607915 https://github.com/curl/curl/actions/runs/10742978937/job/29796766115 - GHA/Cygwin: 3m32 -> 1m21 https://github.com/curl/curl/actions/runs/10705668809/job/29681609965 https://github.com/curl/curl/actions/runs/10742978645/job/29796756933 - GHA/MSYS2: 2m42 -> 50s https://github.com/curl/curl/actions/runs/10705668808/job/29681621166 https://github.com/curl/curl/actions/runs/10742978662/job/29799739289 - GHA/mingw-w64: 5m32 -> 1m23 https://github.com/curl/curl/actions/runs/10705668808/job/29681628787 https://github.com/curl/curl/actions/runs/10742978662/job/29799741568 Closes #14815
show more ...
|
#
45202cbb |
| 14-Sep-2024 |
Viktor Szakats |
cmake: separate target for examples, optimize CI, fix fallouts - Move `docs/examples` builds under a separate target. - Make `BUILD_EXAMPLES` default to `ON`. It means to generate t
cmake: separate target for examples, optimize CI, fix fallouts - Move `docs/examples` builds under a separate target. - Make `BUILD_EXAMPLES` default to `ON`. It means to generate the rules for `docs/examples` by default, but not build them. To build them, an explicit `make curl-examples` (or ninja, etc) command is necessary. This syncs behaviour with autotools, and also how both cmake and autotools are building tests. - GHA: update cmake jobs to use the new way of building examples. - GHA: move examples build step at the end of the job, after building and running tests. This allows to have build and test run results faster, and leave the seldom-changing examples build to the end. Building examples is the slowest build step with no practical way to make them fast. - appveyor: enable building examples in two old-MSVC jobs. - examples: fix examples to build cleanly with old MSVC versions. - GHA/non-native: move example build log under a GHA foldable section. - GHA/windows: move building examples into separate step for Linux cross jobs. Follow-up to dfdd978f7c60224dffe2aac25b436dc0a5cd0186 #13491 Closes #14906
show more ...
|
#
df5ad100 |
| 20-Sep-2024 |
Viktor Szakats |
GHA/linux: fix installing valgrind, libpsl for rustls job, other cleanups Move them from `install_steps` to `install_packages`. Also: - stop installing valgrind for the event-ba
GHA/linux: fix installing valgrind, libpsl for rustls job, other cleanups Move them from `install_steps` to `install_packages`. Also: - stop installing valgrind for the event-based job where valgrind is explicitly disabled with tflags `-n`. - stop installing valgrind for the hyper job. It wasn't enabled (by accident) before, and when actually enabled, it fails to pass tests: ``` TESTFAIL: These test cases failed: 11 25 28 30 36 37 43 45 69 78 88 90 94 129 153 154 155 158 160 170 176 178 187 193 207 217 233 234 243 257 262 276 287 302 309 317 318 330 376 379 388 394 395 398 415 427 440 441 493 497 498 547 548 551 552 555 590 599 644 650 1031 1067 1071 1079 1089 1090 1104 1127 1128 1141 1142 1168 1172 1174 1197 1239 1244 1261 1297 1314 1412 1416 1424 1430 1431 1432 1433 1434 1473 1479 1480 1511 1531 1909 2081 2306 3015 3102 ``` Ref: https://github.com/curl/curl/actions/runs/10957987291/job/30427294361?pr=14979#step:41:50381 Hyper is also scheduled for removal in February 2025. Closes #14979
show more ...
|
#
8439007f |
| 19-Sep-2024 |
Viktor Szakats |
GHA: keep default pkgconf, do not replace with pkg-config on Linux Ubuntu has the `pkgconf` package installed by default that implements the `pkg-config` command. Switch CI `apt` command
GHA: keep default pkgconf, do not replace with pkg-config on Linux Ubuntu has the `pkgconf` package installed by default that implements the `pkg-config` command. Switch CI `apt` commands over to `pkgconf` to avoid replacing it in every job run. Avoids: ``` The following packages will be REMOVED: pkgconf r-base-dev The following NEW packages will be installed: [...] pkg-config [...] ``` https://github.com/curl/curl/actions/runs/10949915766/job/30404126342?pr=14972#step:2:20 Closes #14974
show more ...
|
#
8a7efdb8 |
| 16-Sep-2024 |
Viktor Szakats |
GHA: misc updates: impacket, timeouts, mingw-w64 32-bit - NetBSD: enable impacket. Debatable if this hefty package is worth it for the single SMB test (1451) run curl uses it for.
GHA: misc updates: impacket, timeouts, mingw-w64 32-bit - NetBSD: enable impacket. Debatable if this hefty package is worth it for the single SMB test (1451) run curl uses it for. (on the upside, it seems to install instantly on NetBSD) It's also a versioned package name that requires active maintenance. The unversioned name doesn't work, though that's what the package search returns: https://pkgsrc.se/net/py-impacket - FreeBSD: stop installing impacket deps explicitly. They are automatically installed via the impacket package. - Linux: put time limit on test runs. Started hanging yesterday: linux: https://github.com/curl/curl/actions/runs/10875011573/job/30172946986#step:41:3731 awslc: https://github.com/curl/curl/actions/runs/10879782864/job/30185188509 wolfssl: https://github.com/curl/curl/actions/runs/10879782864/job/30185188509 - distcheck: reduce time limit to 15m (was 30m) Linux tests started to hang, so reduce the timeout from 30 minutes to 15. These jobs normally take 3 to 6 minutes to finish. https://github.com/curl/curl/actions/runs/10879479914 - Windows: add 32-bit MSYS2/mingw-w64 job. Follow-up to e53523fef07894991c69d907a7c7794c7ada4ff4 #14859 Closes #14929
show more ...
|
#
e53523fe |
| 11-Sep-2024 |
Viktor Szakats |
CI: move Azure jobs to GHA, fix fallouts, sshserver, runtests tweaks CI: - GHA/windows: enable OpenSSH server, SysInternals `handle`, `impacket`. Skip `impacket` on MSYS2 due
CI: move Azure jobs to GHA, fix fallouts, sshserver, runtests tweaks CI: - GHA/windows: enable OpenSSH server, SysInternals `handle`, `impacket`. Skip `impacket` on MSYS2 due to install failure. Skip OpenSSH server for old/standalone mingw-w64 (building curl without SSH there.) - GHA/windows: make test tool installs a separate step. - GHA/cygwin: enable OpenSSH server. Skip `impacket`: it's compiling for 7 minutes then breaks. Skip `stunnel` due to sluggish test run performance. (This update is unrelated to Azure jobs.) - GHA/linux: migrate Linux jobs from Azure CI. - GHA/linux: migrate scanbuild job from Azure CI. - GHA/linux: enable libssh2 in a job. Also enable valgrind. - CI/windows: enable SSPI in two jobs. - CI/windows: disable zlib in one more job. - CI/windows: improve `if` condition checking GnuTLS. - CI/windows: ignore SFTP/SCP tests as necessary. - universally ignore SCP tests, they fail everywhere. - ignore test 612. - ignore test 613 616 618 with MSYS2 mingw-w64. - ignore test 614 with libssh. - ignore all SFTP with MSYS2 native. - ignore all SFTP with vcpkg with `libssh2[core,zlib]`. - ignore a couple of SFTP tests with MSYS2 mingw-w64. (This matches settings on Azure CI.) - GHA/windows: ignore failing 1451 'Basic SMB request' test for old mingw-w64 7.3.0 (but not for 9.5.0!): ``` 2024-09-11 21:45:59,738 ERROR smbComNegotiate: b'NT LM 0.12\x00' is not in list [...] curl: (7) Could not connect to server [...] FAIL 1451: 'Basic SMB request' SMB ``` Ref: https://github.com/curl/curl/actions/runs/10816280746/job/30007130770#step:13:3546 - CI/Azure: delete, now moved to GHA. sshserver: - sshserver: fix permissions for SSH host key on Windows, allowing sshd to launch. - sshserver: fix initializing config paths with Cygwin/MSYS2 sshd. - sshserver: fix initializing config paths in parallel builds. - sshserver: delete redundant `DenyUsers`. This also opens the way to allow multiple usernames. - sshserver: fix `AllowUsers` for GHA/windows, by allowing the domainless username again. Follow-up to 3ee7c676ec8ef32e3a9cb4d0fb2929a8335d58db #5721 - sshserver: fix `Deprecated option` warnings in `sshd_config`: ``` D:/a/curl/curl/bld/tests/log/2/server/curl_sshd_config line 7: Deprecated option AuthorizedKeysFile2 D:/a/curl/curl/bld/tests/log/2/server/curl_sshd_config line 25: Deprecated option KeyRegenerationInterval D:/a/curl/curl/bld/tests/log/2/server/curl_sshd_config line 35: Deprecated option RhostsRSAAuthentication D:/a/curl/curl/bld/tests/log/2/server/curl_sshd_config line 36: Deprecated option RSAAuthentication D:/a/curl/curl/bld/tests/log/2/server/curl_sshd_config line 37: Deprecated option ServerKeyBits D:/a/curl/curl/bld/tests/log/2/server/curl_sshd_config line 41: Deprecated option UseLogin ``` - sshserver: fix `Deprecated option` warnings in `ssh_config` with Cygwin/MSYS2. - sshserver: fix dumping config files due to the filenames missing their full paths. - sshserver: add workaround to make `logmsg` messages visible. Before this patch they only went to a file and never shown. runtests: - runtests: log details when these Windows commands are called: `handle`, `taskkill`, `tasklist`. - runtests: add documentation links to Windows tools: `handle`, `taskkill`, `tasklist`, `icacls`. - runtests: add `-t` (kill whole tree) option to `taskkill` in `servers.pm`, syncing it with the other `taskkill` call. Follow-up to bc72a78a11764558639131d51fa8e7c81ee1e113 #14488 - runtests: show warning if Sysinternals `handle` tool is missing. - runtests: drop Windows XP Home compatibility `tskill` call. The call was made on all Windows versions. It's possibly overkill to do this, because XP Home is probably rarely used for running curl tests these days. In case it's needed, it'd be better to put it under an explicit option. - runtests: show Perl version and path. Fix/silence fallouts: - unit2603: fix building with disabled HTTP support. - unit2604: silence `-Woverlength-strings` warnings in C89 mode. - test437, test1614: fix to pass with no-IPv6 builds. Closes #14859
show more ...
|
#
8f5d73af |
| 10-Sep-2024 |
Viktor Szakats |
GHA: add `valgrind` to the job titles using it, and tidy-ups There is a 4-5x difference in test run times. Make the reason more obvious by adding valgrind to the job names. Also
GHA: add `valgrind` to the job titles using it, and tidy-ups There is a 4-5x difference in test run times. Make the reason more obvious by adding valgrind to the job names. Also: - tidy up job names. Closes #14853
show more ...
|
#
f09adc3a |
| 12-Sep-2024 |
Daniel McCarney |
vtls/rustls: rustls-ffi 0.14.0 update * Documentation is updated to describe new required version, and to link to the upstream README about cryptography providers. * GitHub workflo
vtls/rustls: rustls-ffi 0.14.0 update * Documentation is updated to describe new required version, and to link to the upstream README about cryptography providers. * GitHub workflow is updated to fetch 0.14.0. * Breaking changes in`lib/vtls/rustls.c` are addressed: * The `rustls_client_config_builder_build()` function now uses an out parameter for the built config instead of returning it directly. This allows the building process to fail if the default crypto provider state isn't appropriate, or another error condition occurs. * Default ciphersuites are collected using renamed functions named to make it clear the ciphersuites are associated with the default crypto provider. * Customization of ciphersuites is now done via a `rustls_crypto_provider_builder` used to instantiate a `rustls_crypto_provider`. The customized provider can then can be used with `rustls_client_config_builder_new_custom` in place of providing ciphersuites directly. * `rustls_connection_get_negotiated_ciphersuite()` now returns the ciphersuite ID directly. Closes #14889
show more ...
|
#
a2bcec0e |
| 31-Aug-2024 |
Aki Sakurai <75532970+AkiSakurai@users.noreply.github.com> |
openssl: fix the data race when sharing an SSL session between threads The SSL_Session object is mutated during connection inside openssl, and it might not be thread-safe. Besides, accor
openssl: fix the data race when sharing an SSL session between threads The SSL_Session object is mutated during connection inside openssl, and it might not be thread-safe. Besides, according to documentation of openssl: ``` SSL_SESSION objects keep internal link information about the session cache list, when being inserted into one SSL_CTX object's session cache. One SSL_SESSION object, regardless of its reference count, must therefore only be used with one SSL_CTX object (and the SSL objects created from this SSL_CTX object). ``` If I understand correctly, it is not safe to share it even in a single thread. Instead, serialize the SSL_SESSION before adding it to the cache, and deserialize it after retrieving it from the cache, so that no concurrent write to the same object is infeasible. Also - add a ci test for thread sanitizer - add a test for sharing ssl sessions concurrently - avoid redefining memory functions when not building libcurl, but including the soruce in libtest - increase the concurrent connections limit in sws Notice that there are fix for a global data race for openssl which is not yet release. The fix is cherry pick for the ci test with thread sanitizer. https://github.com/openssl/openssl/commit/d8def79838cd0d5e7c21d217aa26edb5229f0ab4 Closes #14751
show more ...
|
#
f73f6bf9 |
| 22-Aug-2024 |
Viktor Szakats |
GHA: add yamlcheck Uses `yamllint`. Also: - fix warning for existing YAML files: ``` [truthy] truthy value should be one of [false, true] ``` Closes #
GHA: add yamlcheck Uses `yamllint`. Also: - fix warning for existing YAML files: ``` [truthy] truthy value should be one of [false, true] ``` Closes #14650
show more ...
|
#
a4152864 |
| 21-Aug-2024 |
Jan Venekamp <1422460+jan2000@users.noreply.github.com> |
tests: constrain http pytest to tests/http directory Running the http pytest had to be done from tests directory or above, because the repeat argument fixture was defined in tests/confte
tests: constrain http pytest to tests/http directory Running the http pytest had to be done from tests directory or above, because the repeat argument fixture was defined in tests/conftest.py. However, the repeat argument is not needed because its functionality can be provided by pytest-repeat as documented in the test's README.md. So, removed the pytest_addoption function for the repeat argument and the pytest_report_header function is moved to tests/http/conftest.py. TODO: Remove repeat argument from all tests. As a stopgap, a one-element list is defined for it for now. Closes #14611
show more ...
|
#
551baf7d |
| 15-Aug-2024 |
Daniel Stenberg |
tests: move the disabling of 500 for hyper from CI to DISABLED Follow-up to 136504195ae63 Closes #14551
|
#
13650419 |
| 15-Jul-2024 |
Alex Snast |
getinfo: add CURLINFO_POSTTRANSFER_TIME_T Returns the time, in microseconds, from the start until the last byte is sent by libcurl (i.e. the request is sent off). Closes #14189
|
#
d3f6b2ff |
| 07-Aug-2024 |
Viktor Szakats |
krb5: add Linux/macOS CI tests, fix cmake GSS detection - GHA/macos: enable GSS krb5 in a cmake job. Uses CMake-native detection. - GHA/linux: enable GSS krb5 in autotools job
krb5: add Linux/macOS CI tests, fix cmake GSS detection - GHA/macos: enable GSS krb5 in a cmake job. Uses CMake-native detection. - GHA/linux: enable GSS krb5 in autotools job and add a cmake job to match. CMake uses `pkg-config`-based detection. - GHA/linux: add step to dump configure logs. - fix and simplify logic digesting FindGSS output. - cmake: add `heimdal-gssapi` to `libcurl.pc`. Closes #14447
show more ...
|
#
14675971 |
| 06-Aug-2024 |
Viktor Szakats |
cmake: fix `pkg-config`-based detection in `FindGSS.cmake` Before this patch `pkg-config`-based detection was ignored, and used solely as a path hint for native detection. - fix
cmake: fix `pkg-config`-based detection in `FindGSS.cmake` Before this patch `pkg-config`-based detection was ignored, and used solely as a path hint for native detection. - fix `pkg_search_module()` result prefix to match what code expects: `_GSS` (was: `_GSS_PKG`). Update variable that were in sync with old prefix. - update the pkg-config codepath to use `_GSS_MODULE_NAME` to detect GSS flavour. This requires CMake 3.16. Otherwise fall back to the old method. (The old method doesn't seem to work anymore (?) as of CMake 3.30.1. Documented `<prefix>_<modulename>_VERSION` variable is defined, but empty.) - update the pkg-config codepath to use `_GSS_VERSION` set by CMake. Resort to the old code when this variable is empty. (The old code doesn't seem to work anymore (?) as of CMake 3.30.1) - fix pkg-config codepath to set the documented result variables. - align native detection variable names with those generated by `pkg_search_module()` in the pkg-config codepath. - GHA/macos: enable GSS Heimdal in a cmake job. Uses the native detection. - GHA/linux: enable GSS Heimdal in cmake and autotools jobs. CMake uses `pkg-config`-based detection. - suppress test 2077 and 2078 results on Linux + Heimdal. ``` FAIL-IGNORED 2077: 'curl --fail --negotiate to unauthenticated service fails' HTTP, HTTP GET, GSS-API FAIL-IGNORED 2078: 'curl --negotiate should not send empty POST request only' HTTP, HTTP GET, GSS-API ``` Failing with valgrind errors in both autotools and cmake builds: https://github.com/curl/curl/actions/runs/10282222581/job/28453472068?pr=14430#step:38:3638 https://github.com/curl/curl/actions/runs/10282222581/job/28453473398?pr=14430#step:38:7831 Closes #14430
show more ...
|