a4703dac | 19-Sep-2024 |
Gabriel Marin |
checksrc: fixed typo Closes #14968 |
1f1fc27c | 22-Sep-2024 |
Viktor Szakats |
cmake: require quictls (or fork) when using msh3 on non-Windows Syncing behavior with `./configure`. Closes #15003 |
95a87a0e | 22-Sep-2024 |
renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
ci: update rojopolis/spellcheck-github-actions digest to b83ca7c Closes #15004 |
22652a5a | 18-Aug-2024 |
Viktor Szakats |
curl: add options for safe/no CA bundle search (Windows) Add `CURL_CA_SEARCH_SAFE` build-time option to enable CA bundle search in the `curl` tool directory. The lookup method was alread
curl: add options for safe/no CA bundle search (Windows) Add `CURL_CA_SEARCH_SAFE` build-time option to enable CA bundle search in the `curl` tool directory. The lookup method was already used to find `.curlrc` and `_curlrc` (on Windows). On Windows it overrides the unsafe default `SearchPath()` method. Enable with: - cmake: `-DCURL_CA_SEARCH_SAFE=ON` - autotools: `--enable-ca-search-safe` - raw: `CPPFLAGS=-DCURL_CA_SEARCH_SAFE` On Windows, before this patch the whole `PATH` was searched for a CA bundle. `PATH` may contain unwanted or world-writable locations, including the current directory. Searching them all is convenient to pick up any CA bundle, but not secure. The Muldersoft curl distro implements such CA search via a custom patch for Windows: https://github.com/lordmulder/cURL-build-win32/blob/cd652d4792c177c98b08b4309d3cac2b8dbbf9b0/patch/curl_tool_doswin.diff#L50 MSYS2/mingw-w64 distro has also been rolling a patch solving this: https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-curl/0001-Make-cURL-relocatable.patch https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-curl/pathtools.c Also add option to fully disable Windows CA search: - cmake: `-DCURL_DISABLE_CA_SEARCH=ON` - autotools: `--disable-ca-search` - raw: `CPPFLAGS=-DCURL_DISABLE_CA_SEARCH`. Both options are considered EXPERIMENTAL, with possible incompatible changes or even (partial) removal in the future, depending on feedback. An alternative, secure option is to embed the CA bundle into the binary. Safe search can be extended to other platforms if necessary or useful, by using `_NSGetExecutablePath()` (macOS), `/proc/self/exe` (Linux/Cygwin), or `argv[0]`. Closes #14582
show more ...
|
668584a9 | 22-Sep-2024 |
Viktor Szakats |
build: drop exclamation marks, use "msh3/msquic" where incomplete Closes #15002 |
11241704 | 22-Sep-2024 |
Viktor Szakats |
GHA/windows: formatting Follow-up to 1b8449674adb57ee0f60e761d654c69b20ee8fcf #14992 |
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 ...
|
4b378ea4 | 21-Sep-2024 |
Viktor Szakats |
GHA: revert some build test steps added by #14772 They are still slow in these jobs/combinations. - non-native/FreeBSD/arm64 autotools +36s - non-native/FreeBSD/arm64 cmake +1m
GHA: revert some build test steps added by #14772 They are still slow in these jobs/combinations. - non-native/FreeBSD/arm64 autotools +36s - non-native/FreeBSD/arm64 cmake +1m - windows/linux-cross-mingw-w64 autotools +33s These ones remain: - linux/aws-lc cmake +6s - windows/linux-cross-mingw-w64 cmake +12s Follow-up to 71cf0d1fca9e1f53524e1545ef0c08d174458d80 #14772
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 ...
|
6a1dcdc5 | 26-Aug-2024 |
Viktor Szakats |
cmake: tidy up - unroll two short loops. - unfold lines. - merge lines with their comments. - add missing quotes. - tidy up grammar in error/warning messages. Cherry
cmake: tidy up - unroll two short loops. - unfold lines. - merge lines with their comments. - add missing quotes. - tidy up grammar in error/warning messages. Cherry-picked from #14692 Closes #14998
show more ...
|
0aece8f6 | 26-Aug-2024 |
Viktor Szakats |
tidy-up: indent, whitespace, `#error` in make files Replace invalid C with `#error`. Cherry-picked from #14692 Closes #14997 |
d83b528a | 10-Sep-2024 |
Viktor Szakats |
tidy-up: spelling C89, Schannel, Secure Transport, contractions. Cherry-picked from #14692 Closes #14996 |
1064dfa8 | 26-Aug-2024 |
Viktor Szakats |
tidy-up: indent, whitespace, comment in sources Cherry-picked from #14692 Closes #14995 |
8afdf8dc | 21-Sep-2024 |
Daniel Stenberg |
RELEASE-NOTES: synced |
867c187f | 06-Sep-2024 |
Viktor Szakats |
build: use `configurehelp.pm.in` with autotools and cmake Before this patch, each build tool generated `tests/configurehelp.pm` manually. Ref: https://github.com/curl/curl/pull/
build: use `configurehelp.pm.in` with autotools and cmake Before this patch, each build tool generated `tests/configurehelp.pm` manually. Ref: https://github.com/curl/curl/pull/14802#issuecomment-2332734326 Closes #14819
show more ...
|
7100c5bc | 06-Sep-2024 |
Viktor Szakats |
build: tidy up and improve versioned-symbols options - autotools: add support for custom prefix. Usage: `--enable-versioned-symbols=MYPREFIX_` Catching up with cmake. -
build: tidy up and improve versioned-symbols options - autotools: add support for custom prefix. Usage: `--enable-versioned-symbols=MYPREFIX_` Catching up with cmake. - add default versioned prefix for Rustls builds. - delete `HIDDEN` entry from version script `lib/libcurl.vers.in`. It referred to symbol names that never existed in libcurl. - cmake: use `lib/libcurl.vers.in` as a template instead of generating it from scratch. Adapt `./configure` accordingly, and add comments to keep hard-wired soname in sync with `lib/Makefile.soname`. - autotools: delete Schannel and Secure Transport version prefixes. Windows and macOS don't support the versioned symbols option. Follow-up to 7b1444979094a365c82c665cce0e2ebc6b69467b #14378 Closes #14818
show more ...
|
30ab1133 | 29-Aug-2024 |
Viktor Szakats |
configure: catch Apple in more target triplets Before this patch, only these triplets were considered Apple: `<cpu>-apple-darwin` After this patch, these are also considered App
configure: catch Apple in more target triplets Before this patch, only these triplets were considered Apple: `<cpu>-apple-darwin` After this patch, these are also considered Apple: `<cpu>-apple-(ios*|tvos*|visionos*|watchos*|<ETC>)` `$host_os` (the last third of the triplet) still has a valid use to differentiate between OS flavours, though for now this isn't used, aligning with CMake. Closes #14728
show more ...
|
9f56bb60 | 25-Aug-2024 |
Viktor Szakats |
GHA/configure-vs-cmake: check `libcurl.pc`/`curl-config`, fix issues Add CI checker to compare `libcurl.pc` and `curl-config` files generated by autotools and cmake builds. Fix
GHA/configure-vs-cmake: check `libcurl.pc`/`curl-config`, fix issues Add CI checker to compare `libcurl.pc` and `curl-config` files generated by autotools and cmake builds. Fix differences and apply tiny cleanups: - curl-config: use single-quotes for literals. - curl-config: quote all variables. - curl-config: replace double with single quotes in a substituted value that's always literal (`@prefix@`). - libcurl.pc: spelling in `Description:`. - libcurl.pc: avoid substitution in a comment. - cmake: fill `libdir` with `${exec_prefix}` instead of a literal. To sync with './configure'. - configure: fix `CURL_CA_BUNDLE` value to not generate nested quotes in `curl-config`. - configure: add missing `LDFLAGS` to `Libs.private` in `libcurl.pc`. To sync with CMake. - cmake: skip adding `CMAKE_C_IMPLICIT_LINK_LIBRARIES` for MINGW and UNIX. They added these values as seen in CI: MINGW: `-lmingw32 -lgcc -lmoldname -lmingwex -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc -lmoldname -lmingwex` Linux: `-lgcc -lgcc_s -lc -lgcc -lgcc_s` - cmake: delete FIXME about enabling libssh2 by default. `./configure` has special defaults for these packages (called: "off"): brotli, zstd, libpsl, libssh2, libssh, wolfssl, librtmp It looks for them, but only at system locations, which makes them never detected e.g. on macOS. CMake doesn't offer such default mode for now. - GHA/macos: drop now redundant `-DCURL_DISABLE_LDAPS=ON`. - cmake: use `CMAKE_INSTALL_INCLUDEDIR` and `CMAKE_INSTALL_LIBDIR` instead of hardcoded `include`/`lib` when generating `libcurl.pc`. Updates to the GHA workflow: - move autotools out-of-tree and rename cmake out-of-tree directory to `bld_cm` to tell it's cmake. - disable static libcurl for `./configure` to match cmake. - enable `pkg-config` debug output with `./configure`. - dump list of Homebrew packages on macOS. - dump `./configure` detailed logs. - disable zstd and brotli for Linux, to match cmake. There remain differences, mostly due to detection order and method. Also some values are inherently different when using CMake and autotools, such as `--cc`, `--configure`. autotools also generates duplicates for `-lssl` and `-lcrypto`. macOS LDAP wants to link `-lber` while autotools doesn't. Some build defaults are also different in autotools and cmake. These differences are smoothened out for now by the checker script, or via build options. Notice that lib order (a dupes) _can_ be significant in some cases. E.g. the binutils linker is infamous for that on Windows. Closes #14681
show more ...
|
ce7d0d41 | 08-Sep-2024 |
Viktor Szakats |
ipfs: add options to disable - CPPFLAGS: `-DCURL_DISABLE_IPFS` - configure: `--disable-ipfs` - cmake: `-DCURL_DISABLE_IPFS=ON` Fixes #14824 Closes #14827 |
8b42df3e | 10-Sep-2024 |
Viktor Szakats |
src: tidy-up conditions for CA bundle search - delete redundant Schannel check. - move `feature_ssl` check one level up from `FindWin32CACert()`. - check `feature_ssl` earl
src: tidy-up conditions for CA bundle search - delete redundant Schannel check. - move `feature_ssl` check one level up from `FindWin32CACert()`. - check `feature_ssl` early to skip a bunch of CA bundle search logic for no-ssl configurations. Reviewed-by: Jay Satiro Closes #14841
show more ...
|
fb35a5fe | 21-Sep-2024 |
Dan Fandrich |
CI: enable RTMP and WebSockets in old Linux build Try to enable as much as possible to check for compatibility with old dependencies. |
28d1d71f | 20-Sep-2024 |
Viktor Szakats |
lib: memdebug comment fixup [ci skip] Follow-up to 3efba94f773db5d8ae19e33aa749ab7914cafeea #14765 |
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 ...
|
496da69a | 12-Sep-2024 |
Viktor Szakats |
cmake: fix broken dependency chain for cmdline-opts, tidy-ups - make `curl.1` and `curl.txt` depend on `DPAGES`. To trigger a rebuild when an individual manpage is updated. -
cmake: fix broken dependency chain for cmdline-opts, tidy-ups - make `curl.1` and `curl.txt` depend on `DPAGES`. To trigger a rebuild when an individual manpage is updated. - tell CMake that the cmdline-opts command also creates `curl.txt`. - make `tool_hugehelp.c` depend on `curl.txt` (was: `curl.1`), to match what it actually uses for input. - stop using `generate-curl.1` as an indirect way to create `curl.txt` in time for `tool_hugehelp.c`. After the fixes above there is a direct depedency chain between them. - move `ASCIIPAGE` and `MANPAGE` variables to top-level, re-use them in `src` and prefix them with `CURL_` to avoid clashing with other projects. - drop double quotes from `generate-curl.1` as a hint that it is not a filename, but a target name. - src: tidy up order of dependency lists. Closes #14883
show more ...
|
5cefda1b | 05-Sep-2024 |
Viktor Szakats |
build: tidy up deprecation suppression, enable warnings for clang Suppress deprecation warnings the closest to the deprecated code, using `CURL_IGNORE_DEPRECATION()`. Then drop build-spe
build: tidy up deprecation suppression, enable warnings for clang Suppress deprecation warnings the closest to the deprecated code, using `CURL_IGNORE_DEPRECATION()`. Then drop build-specific suppressions, and file-wide ones. The latter is not compatible with Unity mode. Also replace manual suppressions with a macro to apply to all compilers with deprecation warning support. Also enable deprecation warnings for clang. - curl/curl.h: enable deprecation warnings for clang. - docs/examples: stop setting `CURL_DISABLE_DEPRECATION` with autotools. Suppression moved to C-level earlier. Syncs with cmake. Follow-up to 5fc61a37c1b177cefbc11dc9f5eef7b2a14538da #14123 - tests/http/clients: stop setting `CURL_DISABLE_DEPRECATION` in autotools. If it becomes necessary in the future, it can be done in C via the macro. Syncs with cmake. - lib1545: stop setting `CURL_DISABLE_DEPRECATION` in autotools. Drop guard from test source. Follow-up to 0f103600731f7e08637017ef4df67a194e0d6711 #12444 - libtest, unit: replace `CURL_DISABLE_DEPRECATION` with `CURL_IGNORE_DEPRECATION()`. - docs/examples: replace pragmas with `CURL_IGNORE_DEPRECATION()`. Closes #14789
show more ...
|