#
b4458185 |
| 09-Apr-2024 |
Viktor Szakats |
appveyor: make VS2010 job build-only, enable Schannel, fix compiler warnings Tests were consistently flaky for a while. Also fix compiler warnings in `CertOpenStore()` calls for old
appveyor: make VS2010 job build-only, enable Schannel, fix compiler warnings Tests were consistently flaky for a while. Also fix compiler warnings in `CertOpenStore()` calls for old MSVC compilers: ``` C:/projects/curl/lib/vtls/schannel.c(688): warning C4306: 'type cast' : conversion from 'int' to 'LPCSTR' of greater size C:/projects/curl/lib/vtls/schannel_verify.c(642): warning C4306: 'type cast' : conversion from 'int' to 'LPCSTR' of greater size ``` Ref: https://ci.appveyor.com/project/curlorg/curl/builds/49580310/job/ywu2y44kymgc0nif#L106 Closes #13330
show more ...
|
#
6389ba87 |
| 08-Apr-2024 |
Daniel Stenberg |
projects: drop MSVC project files for recent versions We encourage users to generate visual studio project files using CMake. We keep project files in git for ancient visual studio
projects: drop MSVC project files for recent versions We encourage users to generate visual studio project files using CMake. We keep project files in git for ancient visual studio versions that cmake cannot generate files for, but we no longer ship the project files in the tarballs. appveyor: switch VisualStudioSolution job to VC12 (Visual Studio 2013) Co-Authored-by: Viktor Szakats Co-Authored-by: Jay Satiro Closes #13311
show more ...
|
#
feb1a352 |
| 09-Apr-2024 |
Viktor Szakats |
appveyor: re-enable OpenSSL 3, bump to 3.2.1 Ref: b62454a875d70f93ab5347c050903596feb45a23 #13266 Closes #13329
|
#
29bfde9f |
| 28-Mar-2024 |
Viktor Szakats |
appveyor: enable cmake unity mode by default Leave one non-unity cmake job. This makes the jobs finish slightly quicker, while giving more coverage for unity issues. Before:
appveyor: enable cmake unity mode by default Leave one non-unity cmake job. This makes the jobs finish slightly quicker, while giving more coverage for unity issues. Before: https://ci.appveyor.com/project/curlorg/curl/builds/49496977 https://ci.appveyor.com/project/curlorg/curl/builds/49500372 After: https://ci.appveyor.com/project/curlorg/curl/builds/49500338 Also fixup unrelated whitespace. Reviewed-by: Daniel Stenberg Closes #13217
show more ...
|
#
5023ffad |
| 27-Mar-2024 |
Viktor Szakats |
cmake: generate misc manpages and install `mk-ca-bundle.pl` - install `mk-ca-bundle.pl` like autotools does. - generate and install `mk-ca-bundle.1` and `curl-config.1` like a
cmake: generate misc manpages and install `mk-ca-bundle.pl` - install `mk-ca-bundle.pl` like autotools does. - generate and install `mk-ca-bundle.1` and `curl-config.1` like autotools. This fixes tests 1140 and 1173. Reported-by: Dan Fandrich Fixes #13194 - add option `BUILD_MISC_DOCS` to control building the above two manpages. Enabled by default. - appveyor: stop disabling tests 1140 and 1173. Reviewed-by: Daniel Stenberg Closes #13197
show more ...
|
#
b62454a8 |
| 03-Apr-2024 |
Viktor Szakats |
appveyor: OpenSSL 3 no longer found by CMake, revert to 1.1.1 OpenSSL moved directories, and bumped versions in AppVeyor CI. Downgrading is not an ideal solution, but however trivia
appveyor: OpenSSL 3 no longer found by CMake, revert to 1.1.1 OpenSSL moved directories, and bumped versions in AppVeyor CI. Downgrading is not an ideal solution, but however trivial the solution may be, I failed to come with anything that made CMake recognize either OpenSSL 3.1 or 3.2. Possibly caused by: https://github.com/appveyor/build-images/commit/702e8cdca01f28f6a40687783f493c786cebbe2c https://github.com/appveyor/build-images/pull/149 Closes #13266
show more ...
|
#
dff74ae8 |
| 01-Mar-2024 |
Dan Fandrich |
appveyor: Properly skip if only CircleCI is changed
|
#
eefcc1bd |
| 17-Jan-2024 |
Daniel Stenberg |
docs: introduce "curldown" for libcurl man page format curldown is this new file format for libcurl man pages. It is markdown inspired with differences: - Each file has a set of
docs: introduce "curldown" for libcurl man page format curldown is this new file format for libcurl man pages. It is markdown inspired with differences: - Each file has a set of leading headers with meta-data - Supports a small subset of markdown - Uses .md file extensions for editors/IDE/GitHub to treat them nicely - Generates man pages very similar to the previous ones - Generates man pages that still convert nicely to HTML on the website - Detects and highlights mentions of curl symbols automatically (when their man page section is specified) tools: - cd2nroff: converts from curldown to nroff man page - nroff2cd: convert an (old) nroff man page to curldown - cdall: convert many nroff pages to curldown versions - cd2cd: verifies and updates a curldown to latest curldown This setup generates .3 versions of all the curldown versions at build time. CI: Since the documentation is now technically markdown in the eyes of many things, the CI runs many more tests and checks on this documentation, including proselint, link checkers and tests that make sure we capitalize the first letter after a period... Closes #12730
show more ...
|
#
e2fbe566 |
| 09-Jan-2024 |
Daniel Stenberg |
CI: spellcheck/appveyor: invoke configure --without-libpsl Follow-up to 2998874bb61ac6
|
#
2d4d0c1f |
| 21-Dec-2023 |
Viktor Szakats |
appveyor: replace PowerShell with bash + parallel autotools PowerShell works (after a steep development curve), but one property of it stuck and kept causing unresolvable usability issue
appveyor: replace PowerShell with bash + parallel autotools PowerShell works (after a steep development curve), but one property of it stuck and kept causing unresolvable usability issues: With `$ErrorActionPreference=Stop`, it does abort on failures, but shows only the first line of the error message. In `Continue` mode, it shows the full error message, but doesn't stop on all errors. Another issue is PowerShell considering any stderr output as if the command failed (this has been improved in 7.2 (2021-Nov), but fixed versions aren't running in CI and will not be for a long time in all test images.) Thus, we're going with bash. Also: - use `-j2` with autotools tests, making them finish 5-15 minutes per job faster. - omit `POSIX_PATH_PREFIX`. - use `WINDIR`. - prefer forward slashes. Follow-up to: 75078a415d9c769419aed4153d3d525a8eba95af #11999 Ref: #12444 Fixes #12560 Closes #12572
show more ...
|
#
a91746b4 |
| 18-Dec-2023 |
Viktor Szakats |
appveyor: switch to out-of-tree builds With cmake and autotools. Closes #12550
|
#
026122ef |
| 03-Nov-2023 |
Viktor Szakats |
appveyor: make VS2008-built curl tool runnable By linking the CRT statically. This avoids the error about missing runtime DLL `MSVCR90.dll` when running the freshly built `curl.exe`.
appveyor: make VS2008-built curl tool runnable By linking the CRT statically. This avoids the error about missing runtime DLL `MSVCR90.dll` when running the freshly built `curl.exe`. Closes #12263
show more ...
|
#
4f591db4 |
| 29-Oct-2023 |
Viktor Szakats |
appveyor: bump one job to OpenSSL 3.1 (was 1.1.1) Use 3.1 with the modern runner image. We still use 1.1.1 in 8 jobs. 1.1.1 is EOL since 2023-09-11: https://www.openssl
appveyor: bump one job to OpenSSL 3.1 (was 1.1.1) Use 3.1 with the modern runner image. We still use 1.1.1 in 8 jobs. 1.1.1 is EOL since 2023-09-11: https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/ Also: - add missing SSL-backend to job descriptions. - tidy up CPU in job descriptions. Closes #12226
show more ...
|
#
2100d9fd |
| 05-Oct-2023 |
Viktor Szakats |
cmake: pre-fill rest of detection values for Windows The goal of this patch is to avoid unnecessary feature detection work when doing Windows builds with CMake. Do this by pre-filling we
cmake: pre-fill rest of detection values for Windows The goal of this patch is to avoid unnecessary feature detection work when doing Windows builds with CMake. Do this by pre-filling well-known detection results for Windows and specifically for mingw-w64 and MSVC compilers. Also limit feature checks to platforms where the results are actually used. Drop a few redundant ones. And some tidying up. - pre-fill remaining detection values in Windows CMake builds. Based on actual detection results observed in CI runs, preceding similar work over libssh2 and matching up values with `lib/config-win32.h`. This brings down CMake configuration time from 58 to 14 seconds on the same local machine. On AppVeyor CI this translates to: - 128 seconds -> 50 seconds VS2022 MSVC with OpenSSL (per CMake job): https://ci.appveyor.com/project/curlorg/curl/builds/48208419/job/4gw66ecrjpy7necb#L296 https://ci.appveyor.com/project/curlorg/curl/builds/48217440/job/8m4fwrr2fe249uo8#L186 - 62 seconds -> 16 seconds VS2017 MINGW (per CMake job): https://ci.appveyor.com/project/curlorg/curl/builds/48208419/job/s1y8q5ivlcs7ub29?fullLog=true#L290 https://ci.appveyor.com/project/curlorg/curl/builds/48217440/job/pchpxyjsyc9kl13a?fullLog=true#L194 The formula is about 1-3 seconds delay for each detection. Almost all of these trigger a full compile-link cycle behind the scenes, slow even today, both cross and native, mingw-w64 and apparently MSVC too. Enabling .map files or other custom build features slows it down further. (Similar is expected for autotools configure.) - stop detecting `idn2.h` if idn2 was deselected. autotools does this. - stop detecting `idn2.h` if idn2 was not found. This deviates from autotools. Source code requires both header and lib, so this is still correct, but faster. - limit `ADDRESS_FAMILY` detection to Windows. - normalize `HAVE_WIN32_WINNT` value to lowercase `0x0a12` format. - pre-fill `HAVE_WIN32_WINNT`-dependent detection results. Saving 4 (slow) feature-detections in most builds: `getaddrinfo`, `freeaddrinfo`, `inet_ntop`, `inet_pton` - fix pre-filled `HAVE_SYS_TIME_H`, `HAVE_SYS_PARAM_H`, `HAVE_GETTIMEOFDAY` for mingw-w64. Luckily this do not change build results, as `WIN32` took priority over `HAVE_GETTIMEOFDAY` with the current source code. - limit `HAVE_CLOCK_GETTIME_MONOTONIC_RAW` and `HAVE_CLOCK_GETTIME_MONOTONIC` detections to non-Windows. We're not using these in the source code for Windows. - reduce compiler warning noise in CMake internal logs: - fix to include `winsock2.h` before `windows.h`. Apply it to autotools test snippets too. - delete previous `-D_WINSOCKAPI_=` hack that aimed to fix the above. - cleanup `CMake/CurlTests.c` to emit less warnings. - delete redundant `HAVE_MACRO_SIGSETJMP` feature check. It was the same check as `HAVE_SIGSETJMP`. - delete 'experimental' marking from `CURL_USE_OPENSSL`. - show CMake version via `CMakeLists.txt`. Credit to the `zlib-ng` project for the idea: https://github.com/zlib-ng/zlib-ng/blob/61e181c8ae93dbf56040336179c9954078bd1399/CMakeLists.txt#L7 - make `CMake/CurlTests.c` pass `checksrc`. - `CMake/WindowsCache.cmake` tidy-ups. - replace `WIN32` guard with `_WIN32` in `CMake/CurlTests.c`. Closes #12044
show more ...
|
#
f1e05a6e |
| 13-Oct-2023 |
Dan Fandrich |
CI: ignore test 286 on Appveyor gcc 9 build This test fails sometimes with a super fast retry loop due to what may just be a compiler bug. The test results are ignored on the one CI job
CI: ignore test 286 on Appveyor gcc 9 build This test fails sometimes with a super fast retry loop due to what may just be a compiler bug. The test results are ignored on the one CI job where it occurs because there seems to be nothing we can do to fix it. Fixes #12040 Closes #12106
show more ...
|
#
500f28f4 |
| 07-Oct-2023 |
Viktor Szakats |
appveyor: bump mingw-w64 job to gcc 13 (was: 8) This sets gcc 6, 7, 9, 13 in our test mix (was: 6, 7, 8, 9). Adding a modern gcc version to the tests. (The gcc 8 job used to tak
appveyor: bump mingw-w64 job to gcc 13 (was: 8) This sets gcc 6, 7, 9, 13 in our test mix (was: 6, 7, 8, 9). Adding a modern gcc version to the tests. (The gcc 8 job used to take around 50 minutes. The new image with gcc 13 finished in 32, 35, 34 minutes in the 3 test runs so far.) It also adds a modern CMake version and OS env to our mingw-w64 builds. Closes #12051
show more ...
|
#
7c8efbfd |
| 29-Sep-2023 |
Dan Fandrich |
CI: ignore the "flaky" and "timing-dependent" test results in CMake This was already done for automake builds but CMake builds were missed. Test 1086 actually causes the test harness to
CI: ignore the "flaky" and "timing-dependent" test results in CMake This was already done for automake builds but CMake builds were missed. Test 1086 actually causes the test harness to crash with: Warning: unable to close filehandle DWRITE properly: Broken pipe at C:/projects/curl/tests/ftpserver.pl line 527 Rather than fix it now, this change leaves test 1086 entirely skipped on those builds that show this problem. Follow-up to 589dca761 Ref: #11865
show more ...
|
#
8064a071 |
| 03-Oct-2023 |
Daniel Stenberg |
appveyor: enable test 571 Follow-up from 8a940fd55c175f7 / #12013 Closes #12017
|
#
f42a279e |
| 03-Oct-2023 |
Viktor Szakats |
cmake: fix unity with Windows Unicode + TrackMemory Found the root cause of the startup crash in unity builds with Unicode and TrackMemory enabled at the same time. We must make
cmake: fix unity with Windows Unicode + TrackMemory Found the root cause of the startup crash in unity builds with Unicode and TrackMemory enabled at the same time. We must make sure that the `memdebug.h` header doesn't apply to `lib/curl_multibyte.c` (as even noted in a comment there.) In unity builds all headers apply to all sources, including `curl_multibyte.c`. This probably resulted in an infinite loop on startup. Exclude this source from unity compilation with TrackMemory enabled, in both libcurl and curl tool. Enable unity mode for a debug Unicode CI job to keep it tested. Also delete the earlier workaround that fully disabled unity for affected builds. Follow-up to d82b080f6374433ce7c98241329189ad2d3976f8 #12005 Follow-up to 3f8fc25720900b14b7432f4bd93407ca15311719 #11095 Closes #11928
show more ...
|
#
75078a41 |
| 01-Oct-2023 |
Viktor Szakats |
appveyor: rewrite batch in PowerShell + CI improvements 1. Rewrite in PowerShell: - rewrite MS-DOS batch build script in PowerShell. - move some bash operations into native Powe
appveyor: rewrite batch in PowerShell + CI improvements 1. Rewrite in PowerShell: - rewrite MS-DOS batch build script in PowerShell. - move some bash operations into native PowerShell. - fixups for PowerShell insisting on failure when a command outputs something to stderr. - fix to actually run `curl -V` after every build. (and exclude ARM64 builds.) - also say why we skipped `curl -V` if we had to skip. - fix CMake warnings about unused configuration variables, by adapting these dynamically for build cases. - dedupe OpenSSL path into a variable. - disable `test1451` failing with a warning anyway due to missing python impacket. (after trying and failing to install impacket) PowerShell promotes these warnings to errors by PowerShell. We can also suppress they wholesale if they start causing issues in the future, like we already to with `autoreconf` and `./configure`. PowerShell is better than MS-DOS batches, so the hope is this makes it easier to extend and maintain the AppVeyor build logic. POSIX/bash isn't supported inline by AppVeyor on Windows build machines, but we are okay to keep it in an external script, so it's also an option. 2. CI improvements: - enable tests for a "unity" build job. - speed-up CI initialization by using shallow clones of the curl repo. - speed-up CMake MSVC jobs with `TrackFileAccess=false`. - enable parallelism in `VisualStudioSolution` builds. - display CMake version before builds. - always show the CPU in job names. - tell which jobs are build-only in job names. - move `TESTING:` value next to `DISABLED_TESTS:` in two jobs. - add `config.log` (autotools) to dumped logs (need to enable manually). 3. Style: - use single-quotes in YAML like we do in other CI YAML files. It also allows to drop quoting characters and lighter to write/read. (keep double quotes for PowerShell strings needing expansion.) Closes #11999
show more ...
|
#
a1d73a6b |
| 29-Sep-2023 |
Viktor Szakats |
appveyor: fix yamlint issues, indent Also: - use double quotes in all batch if statements. Closes #11994
|
#
69aa8f6d |
| 28-Sep-2023 |
Viktor Szakats |
appveyor: minor improvements - run `curl -V` after builds to see if they run and with what features. Except for one job where a CRT DLL is missing. And ARM64 which should fail, b
appveyor: minor improvements - run `curl -V` after builds to see if they run and with what features. Except for one job where a CRT DLL is missing. And ARM64 which should fail, but is silently not launched instead. - copy libcurl DLL next to curl tool and tests binaries in shared mode. This makes it possible to run the tests. (We don't run tests after these builds yet.) - list the DLLs and EXEs present after the builds. - add `DEBUG` variable for CMake builds to allow disabling it, for testing non-debug builds. (currently enabled for all) - add commented lines that dump CMake configuration logs for debugging build/auto-detection issues. - add gcc version to jobs where missing. - switch a job to the native MSYS2 mingw-w64 toolchain. This adds gcc 9 to the build mix. - make `SHARED=OFF` and `OPENSSL=OFF` defaults global. - delete a duplicate backslash. Closes #11976
show more ...
|
#
781242ff |
| 27-Sep-2023 |
Viktor Szakats |
cmake: detect TLS-SRP in OpenSSL/wolfSSL/GnuTLS With new option `CURL_DISABLE_SRP=ON` to force-disable it. To match existing option and detection logic in autotools. Also: -
cmake: detect TLS-SRP in OpenSSL/wolfSSL/GnuTLS With new option `CURL_DISABLE_SRP=ON` to force-disable it. To match existing option and detection logic in autotools. Also: - fix detecting GnuTLS. We assume `nettle` as a GnuTLS dependency. - add CMake GnuTLS CI job. - bump AppVeyor CMake OpenSSL MSVC job to OpenSSL 1.1.1 (from 1.0.2) TLS-SRP fails to detect with 1.0.2 due to an OpenSSL header bug. - fix compiler warning when building with GnuTLS and disabled TLS-SRP. - fix comment typos, whitespace. Ref: #11964 Closes #11967
show more ...
|
#
38029101 |
| 08-Aug-2023 |
Viktor Szakats |
mingw: delete support for legacy mingw.org toolchain Drop support for "old" / "legacy" / "classic" / "v1" / "mingw32" MinGW: https://en.wikipedia.org/wiki/MinGW, https://osdn.net/proje
mingw: delete support for legacy mingw.org toolchain Drop support for "old" / "legacy" / "classic" / "v1" / "mingw32" MinGW: https://en.wikipedia.org/wiki/MinGW, https://osdn.net/projects/mingw/ Its homepage used to be http://mingw.org/ [no HTTPS], and broken now. It supported the x86 CPU only and used a old Windows API header and implib set, often causing issues. It also misses most modern Windows features, offering old versions of both binutils and gcc (no llvm/clang support). It was last updated 2 years ago. curl now relies on toolchains based on the mingw-w64 project: https://www.mingw-w64.org/ https://sourceforge.net/projects/mingw-w64/ https://www.msys2.org/ https://github.com/msys2/msys2 https://github.com/mstorsjo/llvm-mingw (Also available via Linux and macOS package managers.) Closes #11625
show more ...
|
#
223f601c |
| 12-Sep-2023 |
Dan Fandrich |
test1056: disable on Windows This test relies on the IPv6 scope field being ignored when connecting to ipv6-localhost (i.e. [::1%259999] is treated as [::1]). Maybe this is a bit dod
test1056: disable on Windows This test relies on the IPv6 scope field being ignored when connecting to ipv6-localhost (i.e. [::1%259999] is treated as [::1]). Maybe this is a bit dodgy, but it works on all our test platforms except Windows. This test was disabled manually on all Windows CI builds already, so instead add an incompatible feature and precheck so it's skipped on Windows everywhere automatically.
show more ...
|