]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
10 months agotests: simplify `pathhelp.pm`, avoid using external tools
Viktor Szakats [Sat, 28 Sep 2024 18:26:44 +0000 (20:26 +0200)] 
tests: simplify `pathhelp.pm`, avoid using external tools

Instead of calling the shell and external tools, rely on Perl functions
like `Cwd::getcwd()`, `Cwd::abs_path()`, `Cygwin::posix_to_win_path()`,
`Cygwin::win_to_posix_path()` to retrieve the current directory and
convert between POSIX and Windows formats.

This adds native Windows Perl support, avoids most failure modes and
makes format guessing and other internal functions unnecessary.

Also:
- delete unused `sys_native_path()`.
- delete redundant `normalize_path()` because Perl `abs_path()` already
  does it.

Cherry-picked from #14949
Closes #15111

10 months agowolfssl: convert malloc + memcpys to dynbuf for cipher string
Daniel Stenberg [Wed, 2 Oct 2024 12:00:56 +0000 (14:00 +0200)] 
wolfssl: convert malloc + memcpys to dynbuf for cipher string

Closes #15124

10 months agolib: avoid assigning 'result' temporarily
Daniel Stenberg [Wed, 2 Oct 2024 09:45:19 +0000 (11:45 +0200)] 
lib: avoid assigning 'result' temporarily

Closes #15122

10 months agomulti: make multi_handle_timeout use the connect timeout
Daniel Stenberg [Wed, 2 Oct 2024 07:01:56 +0000 (09:01 +0200)] 
multi: make multi_handle_timeout use the connect timeout

For all states before MSTATE_DO the connect timeout needs to be
considered.

Regression since #13371 (be659030ba078d6) shipped in 8.8.0

Reported-by: Deniz Sökmen
Fixes #15100
Closes #15119

10 months agoGHA/labeler: adjust some docs patterns
Daniel Stenberg [Wed, 2 Oct 2024 08:50:22 +0000 (10:50 +0200)] 
GHA/labeler: adjust some docs patterns

Follow-up to 20aa8d8f31527 and 0e06603b23183 that moved and removed some
docs.

Closes #15121

10 months agotests: remove debug requirement on 38 tests
Daniel Stenberg [Tue, 1 Oct 2024 22:01:27 +0000 (00:01 +0200)] 
tests: remove debug requirement on 38 tests

For all tests using -O that were previously relying on a debug build and
the CURL_TESTDIR environment variable, use the plain --output-dir option
instead so that they can run proper in non-debug builds.

Closes #15114

10 months agovtls: skip a "useless assignment"
Daniel Stenberg [Wed, 2 Oct 2024 05:41:47 +0000 (07:41 +0200)] 
vtls: skip a "useless assignment"

Pointed out by CodeSonar

Closes #15117

10 months agotool: support --show-headers AND --remote-header-name
Daniel Stenberg [Mon, 30 Sep 2024 13:38:56 +0000 (15:38 +0200)] 
tool: support --show-headers AND --remote-header-name

By keeping the headers in memory until we know the target file name,
then output them all.

Previously this option combination would cause an error.

Add test 1310 and 1492 to verify. Adjusted test 1460 to work in the new
conditions.

Closes #15110

10 months agoGHA/macos: update comment with new Xcode default for macos-13 [ci skip]
Viktor Szakats [Wed, 2 Oct 2024 00:16:59 +0000 (02:16 +0200)] 
GHA/macos: update comment with new Xcode default for macos-13 [ci skip]

10 months agoGHA/macos: drop unsupported Xcode version references
Viktor Szakats [Tue, 1 Oct 2024 23:31:53 +0000 (01:31 +0200)] 
GHA/macos: drop unsupported Xcode version references

Closes #15115

10 months agoGHA/macos: delete `macos-12` jobs, update matrix for `macos-14`
Viktor Szakats [Tue, 1 Oct 2024 20:16:25 +0000 (22:16 +0200)] 
GHA/macos: delete `macos-12` jobs, update matrix for `macos-14`

- Days of `macos-12` are numbered:
  https://github.com/actions/runner-images/issues/10721
  Drop 5 affected jobs, replaced by `macos-15` ones added earlier today.

- Drop Xcode 14 and 16 from `macos-14` jobs.
  Following up upstream announcement:
  https://github.com/actions/runner-images/issues/10703
  (No active jobs are affected by this.)

Follow-up to 4b4ff444dd68308e8938a1e5c33e0c8b9390d1da #15108
Closes #15113

10 months agoGHA/macos: Sequoia chores, fixes for llvm 18
Viktor Szakats [Tue, 1 Oct 2024 11:20:09 +0000 (13:20 +0200)] 
GHA/macos: Sequoia chores, fixes for llvm 18

- add `macos-15` Sequoia to combinations jobs.

- add `llvm@18` to combinations jobs for `macos-15`.

- fix cmake, autotools configurations for llvm 18.
  It requires `CMAKE_OSX_SYSROOT` for cmake, and `--sysroot` within `CC`
  for both cmake and autotools.
  (Also add `--target` to `CC` for all jobs.)

- stop `brew update` on `macos-12`.
  `macos-12` is Monterey. Homebrew stopped providing binaries for it
  after the latest macOS was out. It means newer versions of packages
  have to be built from source, which is slow and undesired. Try to
  avoid it using this trick. If it doesn't work, `macos-12` jobs will
  have to be dropped.

- update Xcode support matrix.

Ref: https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md
Closes #15108

10 months agotests: fixup `checkcmd` `PATH` on non-unixy platforms
Viktor Szakats [Tue, 1 Oct 2024 10:25:21 +0000 (12:25 +0200)] 
tests: fixup `checkcmd` `PATH` on non-unixy platforms

Do not add unixy system directories to `PATH` when looking up commands
on Windows, MS-DOS or OS/2.

Cherry-picked from #14949
Closes #15106

10 months agotests: fix shell quoting on native Windows Perl
Viktor Szakats [Fri, 20 Sep 2024 13:10:42 +0000 (15:10 +0200)] 
tests: fix shell quoting on native Windows Perl

Cherry-picked from #14949
Closes #15105

10 months agotests: fix `%POSIX_PWD` on native Windows Perl
Viktor Szakats [Tue, 1 Oct 2024 10:16:50 +0000 (12:16 +0200)] 
tests: fix `%POSIX_PWD` on native Windows Perl

Though this variable isn't used in any of the current tests.

Cherry-picked from #14949
Closes #15104

10 months agotests: replace `%PWD` with `%SSH_PWD` in SCP/SFTP tests
Viktor Szakats [Sun, 29 Sep 2024 11:20:51 +0000 (13:20 +0200)] 
tests: replace `%PWD` with `%SSH_PWD` in SCP/SFTP tests

Cherry-picked from #14949
Closes #15103

10 months agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 1 Oct 2024 13:48:16 +0000 (15:48 +0200)] 
RELEASE-NOTES: synced

10 months agoCI: bump actions/checkout from 4.1.7 to 4.2.0
dependabot[bot] [Mon, 30 Sep 2024 14:45:57 +0000 (14:45 +0000)] 
CI: bump actions/checkout from 4.1.7 to 4.2.0

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/692973e3d937129bcbf40652eb9f2f61becf3332...d632683dd7b4114ad314bca15554477dd762a938)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Closes #15095

10 months agoCI: bump github/codeql-action from 3.26.8 to 3.26.10
dependabot[bot] [Mon, 30 Sep 2024 14:45:46 +0000 (14:45 +0000)] 
CI: bump github/codeql-action from 3.26.8 to 3.26.10

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.8 to 3.26.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/294a9d92911152fe08befb9ec03e240add280cb3...e2b3eafc8d227b0241d48be5f425d47c2d750a13)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Closes #15094

10 months agodocs/libcurl: expand multi documentation
Daniel Stenberg [Tue, 1 Oct 2024 13:01:52 +0000 (15:01 +0200)] 
docs/libcurl: expand multi documentation

curl_multi_init - mention the caches held by the handle

curl_multi_cleanup - mention that the socket callback might be invoked
by this function

Closes #15109

10 months agoselect: use poll() if existing, avoid poll() with no sockets
Daniel Stenberg [Mon, 30 Sep 2024 21:43:58 +0000 (23:43 +0200)] 
select: use poll() if existing, avoid poll() with no sockets

poll() on macOS 10.12 was deemed broken in 2016 when we discovered that
it misbehaves when provided with no sockets to wait for. The
HAVE_POLL_FINE is used to mark a poll() implementation that behaves
correctly: it *should* still wait the timeout time.

curl has therefore opted to use select() on Apple operating systems ever
since. To avoid the risk that this or other breakage cause problems.

However, using select() internally is also bad because it suffers from
problems when using file descriptors beyond 1024.

This change makes poll() used if it is present, but if there is no
sockets to wait for it avoids using poll() and instead falls back to
select() - but without any sockets to wait for there is no 1024 problem.

This removes all previous special-handling involving HAVE_POLL_FINE.

ref: https://daniel.haxx.se/blog/2016/10/11/poll-on-mac-10-12-is-broken/

Closes #15096

10 months agoftp: fix 0-length last write on upload from stdin
Stefan Eissing [Tue, 1 Oct 2024 09:59:37 +0000 (11:59 +0200)] 
ftp: fix 0-length last write on upload from stdin

When uploading FTP with unknown length, we write a last 0-length chunk
with the EOS flag set. OpenSSL's SSL_write() errors on such a write.
Skip writing 0-length data to TLS backends instead.

Add test in FTPS for such uploads to verify.

Fixes #15101
Reported-by: Denis Goleshchikhin
Closes #15102

10 months agotests: replace hard-coded `/dev/null` with variable
Viktor Szakats [Mon, 30 Sep 2024 22:41:43 +0000 (00:41 +0200)] 
tests: replace hard-coded `/dev/null` with variable

- add variable for the null device filename and use that in Perl code.
- initialize this variable with `NUL` on native Windows.
- add `%DEV_NULL` variable and use it in tests.

Fixes `The system cannot find the path specified.` messages seen when
running `runtests.pl` with native Windows Perl.

Also adjust code to not break mcedit syntax highlighting.

Cherry-picked from #14949
Closes #15098

10 months agotests: add and use `%PERL` variable to refer to the Perl binary
Viktor Szakats [Mon, 30 Sep 2024 21:58:35 +0000 (23:58 +0200)] 
tests: add and use `%PERL` variable to refer to the Perl binary

To ensure Perl invocations within tests call the same Perl binary used
for running the tests, as specified or auto-detected via `PERL` env
(autotools) or `PERL_EXECUTABLE` setting (cmake). Instead of the first
`perl` executable found in `PATH`.)

Cherry-picked from #14949
Closes #15097

10 months agotests: replace `%PWD` with `%FILE_PWD` for `file://`
Viktor Szakats [Sun, 29 Sep 2024 10:01:37 +0000 (12:01 +0200)] 
tests: replace `%PWD` with `%FILE_PWD` for `file://`

Before this patch not all tests used `%FILE_PWD` with the `file://`
protocol.

Keep `%PWD` for test1145, to keep it fail on Windows like the test
expects.

Cherry-picked from #14949

Closes #15090

10 months agocmake: readd `generate-curl.1` dependency for `src` just in case
Viktor Szakats [Mon, 30 Sep 2024 11:06:06 +0000 (13:06 +0200)] 
cmake: readd `generate-curl.1` dependency for `src` just in case

Trying to fix intermittent build failures with MSVC 2008:
```
unity_0.obj : error LNK2019: unresolved external symbol _showhelp referenced in function _tool_help
unity_0.obj : error LNK2019: unresolved external symbol _hugehelp referenced in function _operate
```
https://ci.appveyor.com/project/curlorg/curl/builds/50700212/job/h3ekljnbccosej5k#L154
https://ci.appveyor.com/project/curlorg/curl/builds/50701615/job/61mkg9og1eooqli8#L155

Follow-up to 496da69aa0eb988ac92eb815742eb89b975ad83e #14883

Closes #15088

10 months agoruntests: drop unused code for old/classic-mingw support
Viktor Szakats [Sun, 29 Sep 2024 01:25:23 +0000 (03:25 +0200)] 
runtests: drop unused code for old/classic-mingw support

Follow-up to 38029101e2d78ba125732b3bab6ec267b80a0e72 #11625

Closes #15087

10 months agoGHA: move Cygwin jobs back into the Windows workflow
Viktor Szakats [Mon, 30 Sep 2024 09:11:49 +0000 (11:11 +0200)] 
GHA: move Cygwin jobs back into the Windows workflow

Cygwin jobs took 30 minutes and was the reason for moving them to their
own workflow. After recent changes, they finish in 8 minutes, which is
on par or lower than the longest Windows jobs. Thus, Cygwin can now be
moved back to the Windows workflow without causing extra wait for all
the workflow jobs to complete (and allowing a manual retry for the
remaining flaky jobs).

Notice that Cygwin still uses the cygwin/cygwin-install-action action to
install Cygwin itself. This action uses no caching and the time it takes
fluctuates widely depending on mirror speed, congestion and other
things. If Cygwin tends to hold up jobs again for this or other reasons,
this patch may be reverted.

Follow-up to 80a8e24956ff652e865113231649cb0c14f1e7c2 #15083
Follow-up to 2d8464c4cb9736144946701c5e632c817888eaec #14366

Closes #15086

10 months agoappveyor: bump to OpenSSL 3.3
Viktor Szakats [Mon, 30 Sep 2024 08:39:06 +0000 (10:39 +0200)] 
appveyor: bump to OpenSSL 3.3

Closes #15085

10 months agoappveyor: delete unused WebSockets option remains [ci skip]
Viktor Szakats [Mon, 30 Sep 2024 08:37:00 +0000 (10:37 +0200)] 
appveyor: delete unused WebSockets option remains [ci skip]

10 months agoCI: bump vmactions/omnios-vm from 1.0.6 to 1.0.7
dependabot[bot] [Mon, 23 Sep 2024 14:41:06 +0000 (14:41 +0000)] 
CI: bump vmactions/omnios-vm from 1.0.6 to 1.0.7

Bumps [vmactions/omnios-vm](https://github.com/vmactions/omnios-vm) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/vmactions/omnios-vm/releases)
- [Commits](https://github.com/vmactions/omnios-vm/compare/2f97978b477e0a014767f65ecf3656b933541460...bc3c64398d10bd00ecd8b3ca72db91c5a03dea77)

---
updated-dependencies:
- dependency-name: vmactions/omnios-vm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Closes #15018

10 months agoquic: use send/recvmmsg when available
Stefan Eissing [Thu, 12 Sep 2024 10:24:42 +0000 (12:24 +0200)] 
quic: use send/recvmmsg when available

add checks for sendmmsg in configure and CmakeLists.txt for enabling use
of these functions in ngtcp2/quiche quic.

Closes #14880

10 months agoci: update dependency awslabs/aws-lc to v1.36.0
renovate[bot] [Sat, 28 Sep 2024 05:31:55 +0000 (05:31 +0000)] 
ci: update dependency awslabs/aws-lc to v1.36.0

Closes #14955

10 months agoCI: bump github/codeql-action from 3.26.6 to 3.26.8
dependabot[bot] [Mon, 23 Sep 2024 14:41:25 +0000 (14:41 +0000)] 
CI: bump github/codeql-action from 3.26.6 to 3.26.8

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.6 to 3.26.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/4dd16135b69a43b6c8efb853346f8437d92d3c93...294a9d92911152fe08befb9ec03e240add280cb3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Closes #15019

10 months agoCI/winbuild: remove enabling of websocket - done by default now
Daniel Stenberg [Fri, 27 Sep 2024 11:44:25 +0000 (13:44 +0200)] 
CI/winbuild: remove enabling of websocket - done by default now

Closes #15076

10 months agoruntests: fix indentation
Viktor Szakats [Sun, 29 Sep 2024 23:51:12 +0000 (01:51 +0200)] 
runtests: fix indentation

10 months agoGHA/cygwin, msys: move tests to cmake jobs, to finish faster
Viktor Szakats [Sun, 29 Sep 2024 10:23:01 +0000 (12:23 +0200)] 
GHA/cygwin, msys: move tests to cmake jobs, to finish faster

Move test runs from autotools jobs to cmake ones for Cygwin and MSYS.
This makes producing test results and finishing the workflows faster,
because the cmake build steps are much faster than autotools in these
envs.

Also:
- drop building examples with Cygwin autotools. It takes almost
  4 minutes. Keep building them with cmake, taking 20 seconds.
- drop building examples in MSYS autotools jobs that run tests.
  Keep building them in autotools jobs without tests. It makes
  the longest running job 2 minutes shorter.

After this patch Cygwin job times are on par with or lower than Windows
ones. It means Cygwin doesn't cause extra delay to finish the whole
workflow, allowing to re-merge these jobs into the Windows workflow.

Closes #15083

10 months agoGHA/windows: fix `find` in old-mingw-w64 `curl -V` step
Viktor Szakats [Sun, 29 Sep 2024 20:35:45 +0000 (22:35 +0200)] 
GHA/windows: fix `find` in old-mingw-w64 `curl -V` step

By default it runs the Windows `find` command and fails.
Tweak the `PATH` to find the MSYS shell implementation.

10 months agoci: tidy-ups
Viktor Szakats [Sat, 28 Sep 2024 10:23:48 +0000 (12:23 +0200)] 
ci: tidy-ups

- http3-linux: add newlines for readability.
- http3-linux: use `make pytest` to run pytest.
- checksrc: use `|` multiline to sync with other uses.
- checksrc: prefer `$()`.
- prefer `>-` over `>` for folded option lists.
- cygwin: drop a `grep` no longer necessary.

Closes #15081

10 months agocmake: websockets tidy-ups
Viktor Szakats [Fri, 27 Sep 2024 16:16:57 +0000 (18:16 +0200)] 
cmake: websockets tidy-ups

- restore change lost after websockets-default update.
  Ref: 6a1dcdc5d2f1b450de4d10739660b32d081c51a1 #14998
- delete unused line after websockets is on by default.
  Follow-up to d78e129d50b2d190f1c1bde2ad1f62f02f152db0 #14936

Closes #15078

10 months agoGHA linux: restore `apt-get update`
Viktor Szakats [Sat, 28 Sep 2024 18:42:38 +0000 (20:42 +0200)] 
GHA linux: restore `apt-get update`

It seems like the Ubuntu apt mirror list or other preloaded data on the
Linux runner can go stale (?) throughout a single week causing failures
like this, in some of the jobs:
```
Ign:16 http://security.ubuntu.com/ubuntu jammy-updates/main amd64 libapr1-dev amd64 1.7.0-8ubuntu0.22.04.1
Err:16 mirror+file:/etc/apt/apt-mirrors.txt jammy-updates/main amd64 libapr1-dev amd64 1.7.0-8ubuntu0.22.04.1
  404  Not Found [IP: 40.81.13.82 80]
Get:24 http://azure.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libnghttp2-dev amd64 1.43.0-1ubuntu0.2 [117 kB]
Get:25 http://azure.archive.ubuntu.com/ubuntu jammy-updates/main amd64 vsftpd amd64 3.0.5-0ubuntu1.1 [123 kB]
Fetched 4029 kB in 2s (1682 kB/s)
E: Failed to fetch mirror+file:/etc/apt/apt-mirrors.txt/pool/main/a/apr/libapr1-dev_1.7.0-8ubuntu0.22.04.1_amd64.deb  404  Not Found [IP: 40.81.13.82 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Error: Process completed with exit code 100.
```
https://github.com/curl/curl/actions/runs/11074211380/job/30772496037#step:32:63

Restore `apt update` to fix it.

Follow-up to 1b8449674adb57ee0f60e761d654c69b20ee8fcf #14992

Closes #15082

10 months agodocs/cmdline-opts: GnuTLS supports PKCS#11 URI in --cert option
Tatsuhiro Tsujikawa [Fri, 27 Sep 2024 08:30:06 +0000 (17:30 +0900)] 
docs/cmdline-opts: GnuTLS supports PKCS#11 URI in --cert option

Closes #15075

10 months agosingleuse: limit checks to non-unity jobs
Viktor Szakats [Thu, 26 Sep 2024 20:42:48 +0000 (22:42 +0200)] 
singleuse: limit checks to non-unity jobs

`singleuse.pl` requires non-unity builds. With unity builds, it remains
silent.

- make some jobs non-unity to allow singleuse to do its job.
- since all jobs used the `--unit` singleuse checker option, make this
  option permanent.

Closes #15065

10 months agoGHA/windows: formatting, adjust timeouts, tidy-ups
Viktor Szakats [Mon, 23 Sep 2024 11:58:51 +0000 (13:58 +0200)] 
GHA/windows: formatting, adjust timeouts, tidy-ups

- reduce job timeouts for msys2 and old-mingw-w64 jobs.
- fold long lines and reorder options in MSVC jobs.
- make some options default in MSVC jobs.

Closes #15017

10 months agoCI: update 32-bit CI to Ubuntu 24.04 and enable more
Dan Fandrich [Thu, 26 Sep 2024 20:42:09 +0000 (13:42 -0700)] 
CI: update 32-bit CI to Ubuntu 24.04 and enable more

Enable librtmp, libssh, libidn2 and c-ares support for broader 32-bit
test coverage. Bump the gcc version to 14.

Closes #15068

10 months agoCI: improvements in test reliability and performance
Stefan Eissing [Wed, 25 Sep 2024 13:14:50 +0000 (15:14 +0200)] 
CI: improvements in test reliability and performance

- CI default: raise parallelism to 20
- CI valgind: set parallelism to 6
- CI non-native: adapt parallelism for OS builds
- CI Windows: no longer ignore FTP, TFTP, MQTT and SMTP
- CI Windows: restrict test timeout to 10 minutes
- CI Windows: do not run tests for msh3 build
- tests, various: restrict curl invocation to ipv4 to avoid talking to
  any ipv6 test server running in parallel
- tests: requiring http/2 server no longer needs to mention http server
- test 190: use a fixed timeout of 10 seconds instead of %FTPTIME2, as
  that value rises under parallel load beyond what the server is waiting
  and then produces different results
- test 1540: add debug logging
- testrunner: add verify checks for http/2 and http/3 server

Closes #15040

10 months agolib: fix disabled-verbose-strings + enable-debug build warnings
Daniel Stenberg [Fri, 27 Sep 2024 11:19:55 +0000 (13:19 +0200)] 
lib: fix disabled-verbose-strings + enable-debug build warnings

10 months agoWebSockets: make support official (non-experimental)
Daniel Stenberg [Fri, 27 Sep 2024 11:19:55 +0000 (13:19 +0200)] 
WebSockets: make support official (non-experimental)

Inverts the configure/cmake options to instead provide options that
disable WebSockets and have them (ws + wss) enabled by default.

Closes #14936

10 months agocodespell: extend checks to more subdirs
Viktor Szakats [Thu, 26 Sep 2024 23:16:38 +0000 (01:16 +0200)] 
codespell: extend checks to more subdirs

- fix issues found.
- fix a few more found locally.

Closes #15072

10 months agoGHA/torture: prefer pip `--break-system-packages` for speed
Viktor Szakats [Thu, 26 Sep 2024 22:46:26 +0000 (00:46 +0200)] 
GHA/torture: prefer pip `--break-system-packages` for speed

Follow-up to c5e3d8ba94791dbc51f98a56ce07b3ba6b0aa446 #14972

Closes #15071

10 months agosingleuse: make `git grep` faster, add Apple `nm` support
Viktor Szakats [Thu, 26 Sep 2024 19:16:21 +0000 (21:16 +0200)] 
singleuse: make `git grep` faster, add Apple `nm` support

- avoid regexp in grep to make it run faster.
- add support for parsing Apple `nm` output:
  - skip leading underscore from function names.
  - pick object name from output.

Closes #15070

10 months agoGHA/http3-linux: add name to align with other Linux workflows
Viktor Szakats [Thu, 26 Sep 2024 19:38:38 +0000 (21:38 +0200)] 
GHA/http3-linux: add name to align with other Linux workflows

Closes #15069

10 months agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 26 Sep 2024 21:52:47 +0000 (23:52 +0200)] 
RELEASE-NOTES: synced

10 months agoGHA/linux: improve cmake use, switch to Ninja
Viktor Szakats [Mon, 23 Sep 2024 22:14:55 +0000 (00:14 +0200)] 
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

10 months agomulti: avoid reading whole struct pointer from pointer
Daniel Stenberg [Thu, 26 Sep 2024 14:05:20 +0000 (16:05 +0200)] 
multi: avoid reading whole struct pointer from pointer

The proper alignment is not guaranteed. This function now instead uses
only the first and last byte of the key since they are the ones likely
to change most (one of them, depending on CPU endian) and the hash is
tiny anyway.

Closes #15063

10 months agotests: use '-4' where needed
Stefan Eissing [Thu, 26 Sep 2024 13:20:43 +0000 (15:20 +0200)] 
tests: use '-4' where needed

Our test servers run either on ipv4 *or* on ipv6, as requested.
A test case using 'localhost' or '*.local' in the url needs to
run with the specific version of the server started.

Otherwise, curl's "happy eyeball"ing will connect to another
server that may be running due to parallel testing or for some
other reasons.

Note that port reuse here depends on the OS strategy and it
seems netbsd is especially likely to hit this.

Closes #15060

10 months agotests: improve mqtt server handling
Stefan Eissing [Thu, 26 Sep 2024 13:00:27 +0000 (15:00 +0200)] 
tests: improve mqtt server handling

Check that the mqtt server process actually is running.
Handle its port number similar to other servers.

Closes #15059

10 months agotests: check http/2 and http/3 server responsiveness
Stefan Eissing [Thu, 26 Sep 2024 12:55:56 +0000 (14:55 +0200)] 
tests: check http/2 and http/3 server responsiveness

Check responsiveness of http/3 server when running.

Also, a test case with http/2 or http/3 server requirement
now implicitly drags in a 'http' server and we need no longer
mention that in testdata.

Closes #15058

10 months agotest190: replace %FTPTIME2 with a fixed value
Stefan Eissing [Thu, 26 Sep 2024 12:48:42 +0000 (14:48 +0200)] 
test190: replace %FTPTIME2 with a fixed value

The variable FTPTIME2 may, on a loaded test server, become so
large that the timeout does not happen before the fixed 60 seconds
the server waits.

Closes #15056

10 months agotests: remove the %FTPTIME3 variable
Daniel Stenberg [Thu, 26 Sep 2024 14:46:49 +0000 (16:46 +0200)] 
tests: remove the %FTPTIME3 variable

Nothing uses it.

Ref: #15056
Closes #15064

10 months agosocks_gssapi: switch to dynbuf from buffer with strcpy
Daniel Stenberg [Thu, 26 Sep 2024 12:52:33 +0000 (14:52 +0200)] 
socks_gssapi: switch to dynbuf from buffer with strcpy

Closes #15057

10 months agotests: add file: tests with existing files
Dan Fandrich [Wed, 25 Sep 2024 20:30:29 +0000 (13:30 -0700)] 
tests: add file: tests with existing files

Windows sometimes has issues when opening the same file twice, so these
test two situations where that could potentially occur.

Reported-by: ralfjunker on github
Ref: #15043
Closes #15045

10 months agotest518: restore valgrind disable
Daniel Stenberg [Thu, 26 Sep 2024 14:08:12 +0000 (16:08 +0200)] 
test518: restore valgrind disable

Follow-up to c91c37b6e87c

The test does not work well when run with valgrind

Closes #15062

10 months agoopenssl: convert a memcpy to dynbuf use
Daniel Stenberg [Thu, 26 Sep 2024 11:22:57 +0000 (13:22 +0200)] 
openssl: convert a memcpy to dynbuf use

and avoid an alloc for CN handling unless necessary

Closes #15049

10 months agotest1540: add debug logging
Stefan Eissing [Thu, 26 Sep 2024 12:46:18 +0000 (14:46 +0200)] 
test1540: add debug logging

Closes #15055

10 months agotest504: fix handling on pending connect
Stefan Eissing [Thu, 26 Sep 2024 12:43:54 +0000 (14:43 +0200)] 
test504: fix handling on pending connect

Test expected a connect to a port no one is listening to immediately
fail. But Windows has its internal retry logic that may fail this.

As fix, multi_perform()/multi_wait() until transfer is done.

Closes #15054

10 months agotest2502: add libtest debug tracing
Stefan Eissing [Thu, 26 Sep 2024 12:40:48 +0000 (14:40 +0200)] 
test2502: add libtest debug tracing

Closes #15053

10 months agotestrun: explicitly set proper IP address for stunnel listen/connect
Stefan Eissing [Thu, 26 Sep 2024 08:28:38 +0000 (10:28 +0200)] 
testrun: explicitly set proper IP address for stunnel listen/connect

Closes #15051

10 months agolib/cw-out: initialize 'flush_all' directly
Gabriel Marin [Wed, 25 Sep 2024 20:00:36 +0000 (23:00 +0300)] 
lib/cw-out: initialize 'flush_all' directly

Closes #15044

10 months agotest1035: convert host name back to utf8 as should be
Stefan Eissing [Thu, 26 Sep 2024 12:34:20 +0000 (14:34 +0200)] 
test1035: convert host name back to utf8 as should be

Follow-up to 0b70b23ef4d00

Closes #15050

10 months agoopenssl: remove two strcpy() calls
Daniel Stenberg [Thu, 26 Sep 2024 12:39:04 +0000 (14:39 +0200)] 
openssl: remove two strcpy() calls

Closes #15052

10 months agotool_doswin: simplify; remove unused options and strncpy calls 15047/head
Daniel Stenberg [Thu, 26 Sep 2024 06:26:11 +0000 (08:26 +0200)] 
tool_doswin: simplify; remove unused options and strncpy calls

SANITIZE_ALLOW_TRUNCATE and SANITIZE_ALLOW_COLONS were never used by
code, thus only making the code complicated for no good use.

Since nothing should truncate, using strncpy() is wrong.

Two cases of malloc + copy replaced with proper strdup() calls.

Fixup unit test 1604 accordingly.

Closes #15047

10 months agotests: add codeset-utf8 as a feature
Daniel Stenberg [Wed, 25 Sep 2024 12:25:55 +0000 (14:25 +0200)] 
tests: add codeset-utf8 as a feature

To avoid having to use <precheck> for tests that require UTF-8 support.

Closes #15039

10 months agotests: introduce %CLIENT6IP-NB
Daniel Stenberg [Wed, 25 Sep 2024 12:11:01 +0000 (14:11 +0200)] 
tests: introduce %CLIENT6IP-NB

This is the %CLIENT6IP variable - but without outmost brackets since
some commmand lines need the address without the brackets. With this
variable we can run three more tests without prechecks.

Closes #15039

10 months agotests: make precheck for HTTP on 127.0.0.1 into a feature
Daniel Stenberg [Wed, 25 Sep 2024 11:53:17 +0000 (13:53 +0200)] 
tests: make precheck for HTTP on 127.0.0.1 into a feature

It can now be required easily in <features> instead of having perl code
in a <precheck>.

Closes #15039

10 months agotests: postcheck is now in verify
Daniel Stenberg [Wed, 25 Sep 2024 21:36:05 +0000 (23:36 +0200)] 
tests: postcheck is now in verify

Also introduce 'notexists' for verifying that directory entries do not
exist after a test. Now an explicit supported feature instead of using
"funny" perl in postcheck.

Closes #15046

10 months agobuild: fix cross-compile check for poll with bionic
Daniel Stenberg [Wed, 25 Sep 2024 07:38:07 +0000 (09:38 +0200)] 
build: fix cross-compile check for poll with bionic

Since it seems the _POSIX_C_SOURCE "trick" does not work there, the
check does not find poll().

Fixes #15013
Reported-by: vvb2060 on github
Closes #15037

10 months agoTHANKS: cleanup duplicates
Daniel Stenberg [Wed, 25 Sep 2024 07:54:09 +0000 (09:54 +0200)] 
THANKS: cleanup duplicates

10 months agobuild: add pytest targets
Viktor Szakats [Mon, 23 Sep 2024 23:53:27 +0000 (01:53 +0200)] 
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

10 months agoGHA/linux: tidy up msh3 build step
Viktor Szakats [Mon, 23 Sep 2024 20:26:45 +0000 (22:26 +0200)] 
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

10 months agobuild: clarify CA embed is for curl tool, mark default, improve summary
Viktor Szakats [Tue, 24 Sep 2024 19:07:30 +0000 (21:07 +0200)] 
build: clarify CA embed is for curl tool, mark default, improve summary

- say that CA embed is for the curl tool.
- show "no" in summary when there is no CA embed.
- cmake: sync wording.

Closes #15035

10 months agoGHA/linux: review and prune valgrind use
Viktor Szakats [Mon, 23 Sep 2024 19:05:37 +0000 (21:05 +0200)] 
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

10 months agotidy-up: indentation in autotools sources
Viktor Szakats [Wed, 28 Aug 2024 16:01:27 +0000 (18:01 +0200)] 
tidy-up: indentation in autotools sources

Indentation in `configure.ac` and `.m4` files.

Closes #14692

10 months agocleanup: added space around ternary expressions
Gabriel Marin [Sun, 22 Sep 2024 21:32:44 +0000 (00:32 +0300)] 
cleanup: added space around ternary expressions

Closes #14990

10 months agotest1185: Updated test data with NOSPACEC rule
Gabriel Marin [Sun, 22 Sep 2024 21:23:37 +0000 (00:23 +0300)] 
test1185: Updated test data with NOSPACEC rule

Closes #14990

10 months agochecksrc: Added checks for colon operator in ternary expressions
Gabriel Marin [Fri, 20 Sep 2024 22:53:34 +0000 (01:53 +0300)] 
checksrc: Added checks for colon operator in ternary expressions

Closes #14990

10 months agoconfigure: improve help string for some options
Ian Spence [Tue, 24 Sep 2024 17:48:59 +0000 (10:48 -0700)] 
configure: improve help string for some options

Closes #15033

10 months agocurl_trc: fix build with verbose messages disabled
Baruch Siach [Tue, 24 Sep 2024 04:52:13 +0000 (07:52 +0300)] 
curl_trc: fix build with verbose messages disabled

Add empty definition of Curl_trc_ws() to fix this following build error:

In file included from sendf.h:29,
                 from ws.c:35:
ws.c: In function 'Curl_ws_accept':
curl_trc.h:100:10: error: implicit declaration of function 'Curl_trc_ws'; did you mean 'Curl_trc_ftp'? [-Wimplicit-function-declaration]
  100 |          Curl_trc_ws(data, __VA_ARGS__); } while(0)
      |          ^~~~~~~~~~~
ws.c:779:5: note: in expansion of macro 'CURL_TRC_WS'
  779 |     CURL_TRC_WS(data, "WS, using chunk size %zu", chunk_size);
      |     ^~~~~~~~~~~

Closes #15026

10 months agomulti.c: warn/assert on stall only without timer
Stefan Eissing [Tue, 24 Sep 2024 11:06:03 +0000 (13:06 +0200)] 
multi.c: warn/assert on stall only without timer

Warn/assert about a possibly stalling transfer only when it
has no timeout set.

The assertion triggered in test 1540 on loaded CI sometimes.

Closes #15028

10 months agoGHA/linux: merge AWS-LC workflow
Viktor Szakats [Tue, 24 Sep 2024 13:01:26 +0000 (15:01 +0200)] 
GHA/linux: merge AWS-LC workflow

Closes #15031

10 months agoGHA/linux: merge wolfSSL workflow
Viktor Szakats [Tue, 24 Sep 2024 12:26:20 +0000 (14:26 +0200)] 
GHA/linux: merge wolfSSL workflow

Add wolfSSL builds to cache.

Also apply -j4 for the valgrind job (was: -j2).

Closes #15030

10 months agobuild: show if CA bundle to embed was found
Viktor Szakats [Tue, 24 Sep 2024 09:51:02 +0000 (11:51 +0200)] 
build: show if CA bundle to embed was found

Follow-up to 8a3740bc8e558b9a9d4a652b74cf27a0961d7010 #14059
Closes #15027

10 months agoGHA/linux: enable test bundles for cmake jobs
Viktor Szakats [Mon, 23 Sep 2024 22:02:38 +0000 (00:02 +0200)] 
GHA/linux: enable test bundles for cmake jobs

Test build step speed-up (3x): 18s -> 6s

Follow-up to 71cf0d1fca9e1f53524e1545ef0c08d174458d80 #14772
Closes #15022

10 months agobuild: fix possible `-Wformat-overflow` in lib557 with test bundle builds
Viktor Szakats [Sun, 22 Sep 2024 23:22:36 +0000 (01:22 +0200)] 
build: fix possible `-Wformat-overflow` in lib557 with test bundle builds

- lib557: suppress `-Wformat-overflow` warning in source.
  Fixes:
  ```
  lib557.c: In function ‘test_float_formatting’:
  lib557.c:1408:37: error: ‘%*f’ directive output of 2147483648 bytes exceeds ‘INT_MAX’ [-Werror=format-overflow=]
   1408 |   curl_msnprintf(buf, sizeof(buf), "%*f", INT_MIN, 9.1);
        |                                     ^~~
  lib557.c:1408:3: note: ‘curl_msnprintf’ output 2147483649 bytes
   1408 |   curl_msnprintf(buf, sizeof(buf), "%*f", INT_MIN, 9.1);
        |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ```
  Ref: https://app.circleci.com/pipelines/github/curl/curl/10226/workflows/87642ee9-cda6-4916-8206-c82aac5f595e/jobs/107669?invite=true#step-106-40996_46

  The root cause of why this option gets enabled remains undiscovered.

Reported-by: Daniel Stenberg
  Fixes #15008
  Follow-up to 71cf0d1fca9e1f53524e1545ef0c08d174458d80 #14772

- build: drop `-Wno-format-overflow` from picky warning list.
  These options only get used with picky warnings enabled.
  Follow-up to 145f87b9e89f3a5e287233fe7d3cf57aca23dd8c #14598

- unit1652: suppress in source (and not rely on picky warnings anymore.)

Closes #15012

10 months agoCI: improve readability of Circle CI config
Viktor Szakats [Sun, 22 Sep 2024 23:10:37 +0000 (01:10 +0200)] 
CI: improve readability of Circle CI config

- move curl configure commands next to each other.
- re-order configure options to improve readability.
- fold long configure commands.

Closes #15011

10 months agoGHA/windows: mark 3023, 3024 flaky for mingw-w64 7.3.0 job
Viktor Szakats [Sun, 22 Sep 2024 18:15:51 +0000 (20:15 +0200)] 
GHA/windows: mark 3023, 3024 flaky for mingw-w64 7.3.0 job

They became flaky recently as reported by Testclutch and firsthand
observations. It's curious because it only seems to happen in 7.3.0,
but not in the very similar (except non-Unicode) 9.5.0 job.

We've found no explanation or reason for them so far.

```
test 3023...[HTTPS GET to localhost, first subject alt name matches, CN does not match (Schannel variant)]

 3023: protocol FAILED!
 There was no content at all in the file log/14/server.input.
 Server glitch? Total curl failure? Returned: 7
```
Ref: https://github.com/curl/curl/actions/runs/10871191391/job/30164710777?pr=14918#step:13:4849

```
test 3024...[HTTPS GET to localhost, last subject alt name matches, CN does not match (Schannel variant)]

 3024: protocol FAILED!
 There was no content at all in the file log/8/server.input.
 Server glitch? Total curl failure? Returned: 7
```
Ref: https://github.com/curl/curl/actions/runs/10871191391/job/30164710777?pr=14918#step:13:4713

```
FAIL 3023: 'HTTPS GET to localhost, first subject alt name matches, CN does not match (Schannel variant)' HTTPS, HTTP GET, PEM certificate
FAIL 3024: 'HTTPS GET to localhost, last subject alt name matches, CN does not match (Schannel variant)' HTTPS, HTTP GET, PEM certificate
```
https://github.com/curl/curl/actions/runs/10982991876/job/30491895264?pr=14930#step:14:4914
https://github.com/curl/curl/actions/runs/10871191391/job/30164710777?pr=14918
https://github.com/curl/curl/actions/runs/10841065505/job/30084573629?pr=14859#step:13:5484
https://github.com/curl/curl/actions/runs/10858001821/job/30135376138?pr=14906#step:13:4841

Reported-by: Testclutch
Fixes https://github.com/curl/curl/pull/14905#issuecomment-2350772804
Ref: https://github.com/curl/curl/discussions/14854#discussioncomment-10652044

Closes #15006

10 months agocmake: make `test-ci` target skip building dependencies
Viktor Szakats [Sun, 22 Sep 2024 10:01:36 +0000 (12:01 +0200)] 
cmake: make `test-ci` target skip building dependencies

Make `test-ci` not depend on the `testdeps` target.

`test-ci` is designed to run curl tests in CI. In CI we build all
necessary dependencies explicitly beforehand, and they are always ready
when calling the `test-ci` step. Thus, it isn't necessary to enforce
them via a dependency rule. Dropping it saves redundant work and delay
in CI jobs.

The `testdeps` dependency should not normally be a problem. It's
supposed to be a no-op if those targets are already built. In practice
however, it causes a delay and/or an actual rebuild of those
dependencies depending on generator (= build tool) used and other
factors.

As observed in the GHA/windows workflow, the `testdeps` dependency:

- with Ninja, causes no delay, and no extra work:
  https://github.com/curl/curl/actions/runs/10980099984/job/30485440389#step:25:18

- with GNU Make, caused a re-evaluation of `testdeps` targets,
  but did not actually rebuild them. This re-evaluation took a
  noticeable time (esp. with non-bundled tests):
  https://github.com/curl/curl/actions/runs/10980099984/job/30485440155#step:14:11 (with bundles)
  https://github.com/curl/curl/actions/runs/10973851013/job/30471690331#step:14:11 (w/o bundles)
  verbose: https://github.com/curl/curl/actions/runs/10980506956/job/30486434629#step:14:13

- with MSBuild, caused a re-evaluation of `testdeps` targets, and
  triggered a _rebuild_:
  https://github.com/curl/curl/actions/runs/10980099984/job/30485435968#step:14:19 (with bundles)
  https://github.com/curl/curl/actions/runs/10973851013/job/30471689714#step:14:19 (w/o bundles)
  verbose: https://github.com/curl/curl/actions/runs/10980506956/job/30486436368#step:14:48
  It's suspected that our use of
  `-DCMAKE_VS_GLOBALS=TrackFileAccess=false` in CI is contributing to
  this. This option is supposed to affect incremental builds only. For
  some reason it affects CI builds too, even though they are not
  incremental, and no sources are changed between build steps.
Reported-by: Aki Sakurai
  Ref: #14999

Notice that `test-*` targets depending on `testdeps` is NOT sufficient
to build everything to run tests, e.g. it misses to build the curl tool,
which is essential. This is also true for autotools' `test-ci` target
which misses to build libcurl and the curl tool.

Perhaps it'd be best to drop `testdeps` as a dependency for _all_
`test-*` targets and make it official to require building dependencies
manually. Alternatively these targets could be fixed to rebuild
everything necessary to run tests.

Closes #15001

10 months agoCI: add missed updates to the `configure-libssh` job
Viktor Szakats [Sun, 22 Sep 2024 23:02:05 +0000 (01:02 +0200)] 
CI: add missed updates to the `configure-libssh` job

Disable dependency tracking and enable unity + test bundles for
the `configure-libssh` job that was missed in earlier commits.

Follow-up to 71cf0d1fca9e1f53524e1545ef0c08d174458d80 #14772
Follow-up to dff66196d0bc52b53a91f59d3972769412f9639b #14975

Closes #15010

10 months agoRELEASE-NOTES: synced
Daniel Stenberg [Sun, 22 Sep 2024 19:35:44 +0000 (21:35 +0200)] 
RELEASE-NOTES: synced

bump the pending curl version to 8.11.0

10 months agotool_operate: let --create-dirs work for --dump-header as well
Daniel Stenberg [Thu, 19 Sep 2024 08:43:58 +0000 (10:43 +0200)] 
tool_operate: let --create-dirs work for --dump-header as well

Add test 3011 to verify

Proposed-by: Montg0mery on github
Fixes #14941
Closes #14965