#
3a35901a |
| 04-Nov-2024 |
Stefan Eissing |
wolfssl: coexist with openssl, further work Build wolfSSL master with ./configure --prefix=/path --enable-ip-alt-name --enable-quic --enable-earlydata --enable-psk --enable-open
wolfssl: coexist with openssl, further work Build wolfSSL master with ./configure --prefix=/path --enable-ip-alt-name --enable-quic --enable-earlydata --enable-psk --enable-opensslcoexist and configure curl with openssl + wolfssl. Normal tests run. pytest session resumption fails, as wolfssl does not handle the new_session callback without opensslextra right now. Closes #15481
show more ...
|
#
0cececef |
| 30-Oct-2024 |
Daniel Stenberg |
config: rename the OS define to CURL_OS to reduce collision risk Reported-by: Jon Rumsey Fixes #15455 Closes #15457
|
#
f66af623 |
| 24-Oct-2024 |
Viktor Szakats |
cmake: document `-D` and env build options Extend `INSTALL-CMAKE` document with the list of available options, a short description and default values. The list may not be 100% c
cmake: document `-D` and env build options Extend `INSTALL-CMAKE` document with the list of available options, a short description and default values. The list may not be 100% complete. There are no component boundaries in CMake, so the line is blurry between curl options, CMake options, CMake Find modules options. I included certain CMake options that seemed useful, and/or have dedicated use withing curl's CMake source. But, all CMake built-in options are usable, as documented upstream in CMake. The naming of the options has a heritage and the inconsistencies with it, including a lack of clear namespace. This may be subject to future updates, also after figuring out which name has special meaning within CMake and/or CMake projects out of unwritten convention or something more tangible. CMake allows to initialize any internal variable via `-D`. This may be useful to pre-initialize/override feature check results. The list doesn't contain these, and they remain officially undocumented. Also: - make adjustments to keep the spellchecker happy. - retrofit description changes to the cmake sources. - stop documenting deprecated `Find*` variables. Reported-by: Daniel Stenberg Fixes https://github.com/curl/curl/discussions/14885 Closes #15388
show more ...
|
#
a79f20d3 |
| 07-Oct-2024 |
Viktor Szakats |
cmake: do not propagate unused `HAVE_GSSAPI_GSSAPI_KRB5_H` to C Closes #15174
|
#
e888069f |
| 06-Oct-2024 |
Viktor Szakats |
cmake: detect `HAVE_NETINET_IN6_H`, `HAVE_CLOSESOCKET_CAMEL`, `HAVE_PROTO_BSDSOCKET_H` To sync with `./configure`. - `HAVE_NETINET_IN6_H` is needed by HPE NonStop NSE and NSX
cmake: detect `HAVE_NETINET_IN6_H`, `HAVE_CLOSESOCKET_CAMEL`, `HAVE_PROTO_BSDSOCKET_H` To sync with `./configure`. - `HAVE_NETINET_IN6_H` is needed by HPE NonStop NSE and NSX systems. Follow-up to 76ebd54175bad02b29769d797adf72fdf3df119f #2155 - `HAVE_CLOSESOCKET_CAMEL`, `HAVE_PROTO_BSDSOCKET_H` are for AmigaOS. (Note: `./configure` tries to detect these for all targets, cmake does it only for AmigaOS, to not inflate configure time.) Closes #15172
show more ...
|
#
5e705660 |
| 06-Oct-2024 |
Viktor Szakats |
build: detect and use `_setmode()` with Cygwin/MSYS, also use on Windows Before this patch `setmode()` was not detected with Cygwin/MSYS, because it's a macro, not a function, and detect
build: detect and use `_setmode()` with Cygwin/MSYS, also use on Windows Before this patch `setmode()` was not detected with Cygwin/MSYS, because it's a macro, not a function, and detection is looking for a function. Switching to symbol detection doesn't work because it mis-detects it on BSD systems which features a function with the same name but different functionality and arguments. Fix it by looking for a `_setmode()` function on Cygwin/MSYS, and use it if available. `_setmode()` is recommended over `setmode()` by Windows documentation so use that on Windows too. It seems to be available on all supported compilers, so omit detection. https://learn.microsoft.com/cpp/c-runtime-library/reference/posix-setmode https://learn.microsoft.com/cpp/c-runtime-library/reference/setmode Officially Windows requires argument `_O_BINARY` with an underscore. `O_BINARY` is also supported but bound to conditions. Continue to use it for simplicity. Cygwin supports `O_BINARY` (no underscore). Closes #15169
show more ...
|
#
c72cefea |
| 30-Sep-2024 |
Daniel Stenberg |
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 f
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
show more ...
|
#
97c0f89b |
| 12-Sep-2024 |
Stefan Eissing |
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
|
#
d78e129d |
| 27-Sep-2024 |
Daniel Stenberg |
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.
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
show more ...
|
#
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 ...
|
#
1064dfa8 |
| 26-Aug-2024 |
Viktor Szakats |
tidy-up: indent, whitespace, comment in sources Cherry-picked from #14692 Closes #14995
|
#
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
|
#
8d32e878 |
| 26-Aug-2024 |
Viktor Szakats |
cmake: delete unused `NEED_LBER_H`, `HAVE_LDAP_H` Both are used by `./configure` internally, not by curl C code. CMake adds `NEED_LBER_H` to `CURL_TEST_DEFINES`, which is used by `cu
cmake: delete unused `NEED_LBER_H`, `HAVE_LDAP_H` Both are used by `./configure` internally, not by curl C code. CMake adds `NEED_LBER_H` to `CURL_TEST_DEFINES`, which is used by `curl_internal_test()`, but there is no LDAP-related test made with that call. Thus, stop detecting and publishing these from CMake. `NEED_LBER_H` added in 7320e53d9e17b22cacea77a89ecaa8348513f0e1. `HAVE_LDAP_H` added in 4c5307b45655ba75ab066564afdc0c111a8b9291 (initial CMake commit). Closes #14690
show more ...
|
#
269fdd4c |
| 31-Aug-2024 |
Daniel Stenberg |
lib: remove use of RANDOM_FILE It could previously be set with configure/cmake and used in rare cases for reading randomness: with ancient mbedTLS or rustls without arc4random.
lib: remove use of RANDOM_FILE It could previously be set with configure/cmake and used in rare cases for reading randomness: with ancient mbedTLS or rustls without arc4random. We now get randomness in this order: 1. The TLS library's way to provide random 2. On Windows: Curl_win32_random 3. if arc4random exists, use that 4. weak non-crytographically strong pseudo-random Closes #14749
show more ...
|
#
33629949 |
| 01-Sep-2024 |
Viktor Szakats |
build: add options to disable SHA-512/256 hash algo Existing C macro lacked build-level counterparts. Add them in this patch. - cmake: `-DCURL_DISABLE_SHA512_256=ON` - autot
build: add options to disable SHA-512/256 hash algo Existing C macro lacked build-level counterparts. Add them in this patch. - cmake: `-DCURL_DISABLE_SHA512_256=ON` - autotools: `--disable-sha512-256` Also drop the checker exception from `test1165.pl`. Follow-up to cbe41d151d6a100c1f045eaf37ff06b2b2a7b382 #12897 Closes #14753
show more ...
|
#
83bcd335 |
| 01-Sep-2024 |
Viktor Szakats |
test1165: check if `curl_config.h.cmake` lists all `DISABLED` options Also fix issues: - cmake: fix `CURL_DISABLE_HTTP_AUTH` option - cmake: fix `CURL_DISABLE_SHUFFLE_DNS` option
test1165: check if `curl_config.h.cmake` lists all `DISABLED` options Also fix issues: - cmake: fix `CURL_DISABLE_HTTP_AUTH` option - cmake: fix `CURL_DISABLE_SHUFFLE_DNS` option Fixes: ``` Present in CMakeLists.txt, not propagated via curl_config.h.cmake: CURL_DISABLE_HTTP_AUTH Present in CMakeLists.txt, not propagated via curl_config.h.cmake: CURL_DISABLE_SHUFFLE_DNS ``` Ref: https://github.com/curl/curl/actions/runs/10655027540/job/29532054141?pr=14754#step:11:2090 Closes #14754
show more ...
|
#
c5cb8e7c |
| 19-Aug-2024 |
Viktor Szakats |
tidy-up: spelling quiche and Rustls Closes #14605
|
#
0d8fdd1c |
| 15-Aug-2024 |
Viktor Szakats |
cmake: add wolfSSH support Enable with CMake option `-DCURL_USE_WOLFSSH=ON`. Customize with `-DWOLFSSH_INCLUDE_DIR=<path-to-wolfssh>/include`, `-DWOLFSSH_LIBRARY=<path-to-wolfssh>/li
cmake: add wolfSSH support Enable with CMake option `-DCURL_USE_WOLFSSH=ON`. Customize with `-DWOLFSSH_INCLUDE_DIR=<path-to-wolfssh>/include`, `-DWOLFSSH_LIBRARY=<path-to-wolfssh>/lib/libwolfssh.a`. It requires the wolfSSL TLS backend. Closes #14568
show more ...
|
#
ed76a23f |
| 13-Aug-2024 |
Jan Venekamp <1422460+jan2000@users.noreply.github.com> |
cmake: add rustls Closes #14534
|
#
919394ee |
| 07-Aug-2024 |
Viktor Szakats |
cmake: more small tidy-ups and fixes - tidy up two `MATCHES` expression by avoiding macros expansion and adding quotes. Then convert then to `STREQUAL` to match other places in t
cmake: more small tidy-ups and fixes - tidy up two `MATCHES` expression by avoiding macros expansion and adding quotes. Then convert then to `STREQUAL` to match other places in the code doing the same checks. - fix setting `_ALL_SOURCE` for AIX to match what autotools does. - delete stray `_ALL_SOURCE` reference from `lib/config_riscos.h` - simplify/fix two `STREQUAL ""` checks. The one in the `openssl_check_symbol_exists()` macro succeeded regardless of the value. The other could return TRUE when `CMAKE_OSX_SYSROOT` was undefined. - delete code for CMake versions (<3.7) we no longer support. - prefer `LIST(APPEND ...)` to extend `CURL_LIBS`. - use `CURL_LIBS` to add the `network` lib for Haiku. Before this patch it was done via raw C flags. I could not test this. - move `_WIN32_WINNT`-related code next to each other. It also moves detection to the top, allowing more code to use the result. - merge two `WIN32` blocks. - rename internal variables to underscore + lowercase. - unwrap a line, indent, whitespace. Closes #14450
show more ...
|
#
ea3dfcb3 |
| 06-Aug-2024 |
Viktor Szakats |
cmake: drop unused `HAVE_IDNA_STRERROR` Unused since 9c91ec778104ae3b744b39444d544e82d5ee9ece Closes #14420
|
#
f7d5f470 |
| 05-Aug-2024 |
Viktor Szakats |
cmake: add support for `CURL_USE_LIBUV` option Also use an `#undef` hack for CMake Unity builds to avoid the previously included `memdebug.h` header messing up the declarations pulled in
cmake: add support for `CURL_USE_LIBUV` option Also use an `#undef` hack for CMake Unity builds to avoid the previously included `memdebug.h` header messing up the declarations pulled in by `uv.h`: ``` In file included from ~/curl/bld/src/CMakeFiles/curl.dir/Unity/unity_0_c.c:88: In file included from ~/curl/src/tool_operate.c:54: In file included from /usr/local/Cellar/libuv/1.48.0/include/uv.h:71: In file included from /usr/local/Cellar/libuv/1.48.0/include/uv/unix.h:34: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/include/netdb.h:269:7: error: expected parameter declarator void freeaddrinfo(struct addrinfo *); ^ ~/curl/lib/memdebug.h:167:31: note: expanded from macro 'freeaddrinfo' curl_dbg_freeaddrinfo(data, __LINE__, __FILE__) ^ ``` Follow-up to 38d334e3e17f16107921299a6d7b6654f6ec553b #14298 Closes #14399
show more ...
|
#
f81f351b |
| 02-Aug-2024 |
Viktor Szakats |
tidy-up: OS names Use these words and casing more consistently across text, comments and one curl tool output: AIX, ALPN, ANSI, BSD, Cygwin, Darwin, FreeBSD, GitHub, HP-UX, Linux,
tidy-up: OS names Use these words and casing more consistently across text, comments and one curl tool output: AIX, ALPN, ANSI, BSD, Cygwin, Darwin, FreeBSD, GitHub, HP-UX, Linux, macOS, MS-DOS, MSYS, MinGW, NTLM, POSIX, Solaris, UNIX, Unix, Unicode, WINE, WebDAV, Win32, winbind, WinIDN, Windows, Windows CE, Winsock. Mostly OS names and a few more. Also a couple of other minor text fixups. Closes #14360
show more ...
|
#
09cdf7e5 |
| 13-Jul-2024 |
Viktor Szakats |
cmake: delete unused `HAVE_LIBSSH2`, `HAVE_LIBSOCKET` macros - `HAVE_LIBSSH2`: unused in source. Not defined in CMake. - `HAVE_LIBSOCKET`: unused in source. Used internally in CMake
cmake: delete unused `HAVE_LIBSSH2`, `HAVE_LIBSOCKET` macros - `HAVE_LIBSSH2`: unused in source. Not defined in CMake. - `HAVE_LIBSOCKET`: unused in source. Used internally in CMake. autotools sets them implicitly, so add them to the flag comparison ignore-list. Closes #14178
show more ...
|
#
6343034d |
| 12-Jul-2024 |
Viktor Szakats |
tidy-up: adjust casing of project names Mostly TLS/SSH project name. Closes #14160
|