#
add22fee |
| 31-Mar-2024 |
Christian Schmitz |
idn: add native AppleIDN (icucore) support for macOS/iOS I implemented the IDN functions for macOS and iOS using Unicode libraries coming with macOS and iOS. Builds and runs her
idn: add native AppleIDN (icucore) support for macOS/iOS I implemented the IDN functions for macOS and iOS using Unicode libraries coming with macOS and iOS. Builds and runs here on macOS 14.2.1. Also verified to load and run on older macOS version 10.13. Build requires macOS SDK 13 or equivalent. Set `-DUSE_APPLE_IDN=ON` CMake option to enable it. With autotools and other build tools, set these manual options: ``` CPPFLAGS=-DUSE_APPLE_IDN LIBS=-licucore ``` Completes TODO 1.6. TODO: add autotools option and feature-detection. Refs: #5330 #5371 Co-authored-by: Viktor Szakats Closes #13246
show more ...
|
#
dad126b8 |
| 16-Apr-2024 |
Viktor Szakats |
cmake: update ECH code and minor fixups - `openssl_check_symbol_exists()` expects a 4th argument now. Follow-up to edc2702a1fe3a4a5386ffd9aa4f240f0c0197fa2 #13373 - minor comm
cmake: update ECH code and minor fixups - `openssl_check_symbol_exists()` expects a 4th argument now. Follow-up to edc2702a1fe3a4a5386ffd9aa4f240f0c0197fa2 #13373 - minor comment/script touch-ups. Follow-up to a362962b7289ec02b412890c9515657cf0ed50ac #11922 - fix indentation. Closes #13383
show more ...
|
#
edc2702a |
| 15-Apr-2024 |
Viktor Szakats |
cmake: add librtmp/rtmpdump option and detection Add CMake option `USE_LIBRTMP`. Disabled by default. This library requires OpenSSL TLS-backend when linked statically. Foll
cmake: add librtmp/rtmpdump option and detection Add CMake option `USE_LIBRTMP`. Disabled by default. This library requires OpenSSL TLS-backend when linked statically. Follow-up to 6eb9e65781fa1fd8a0bcfe0715187a3a35f09ae4 #13364 Closes #13373
show more ...
|
#
a362962b |
| 04-Apr-2024 |
Stephen Farrell |
TLS: add support for ECH (Encrypted Client Hello) An EXPERIMENTAL feature used with CURLOPT_ECH and --ech. Closes #11922
|
#
e411c98f |
| 11-Apr-2024 |
Viktor Szakats |
build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`) Before this patch, two macros were used to guard IPv6 features in curl sources: `ENABLE_IPV6` and `USE_IPV6`. This patch ma
build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`) Before this patch, two macros were used to guard IPv6 features in curl sources: `ENABLE_IPV6` and `USE_IPV6`. This patch makes the source use the latter for consistency with other similar switches. `-DENABLE_IPV6` remains accepted for compatibility as a synonym for `-DUSE_IPV6`, when passed to the compiler. `ENABLE_IPV6` also remains the name of the CMake and `Makefile.vc` options to control this feature. Closes #13349
show more ...
|
#
bfe54b0e |
| 16-Mar-2024 |
Colin Leroy-Mira |
file: add support for getting basic directory listings Not supported on Windows (yet) Closes #13137
|
#
6b86471f |
| 02-Apr-2024 |
Jérôme Leclercq |
CMake: check fseeko after detecting HAVE_FILE_OFFSET_BITS Closes #13264
|
#
50def7c8 |
| 31-Mar-2024 |
Daniel Stenberg |
NTLM_WB: drop support The feature has not worked for months and has been marked as DEPRECATED for six+ months. Closes #13249
|
#
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 ...
|
#
9b81f1be |
| 06-Mar-2024 |
Viktor Szakats |
cmake: enable `ENABLE_CURL_MANUAL` by default Meaning `curl.1` and `src/tool_hugehelp.c` are built by default, and `--manual` in curl tool is also enabled by default. This syncs
cmake: enable `ENABLE_CURL_MANUAL` by default Meaning `curl.1` and `src/tool_hugehelp.c` are built by default, and `--manual` in curl tool is also enabled by default. This syncs behaviour with autotools. For a reproducible `curl.1`, `SOURCE_DATE_EPOCH` needs to be set to a consistent date, e.g. the timestamp of `CHANGES`. A pre-built manual (e.g. the one distributed in the official source tarball) will be ignored and rebuilt after this patch, unless explicitly disabling this option. Fixes #13028 Closes #13069
show more ...
|
#
296e855d |
| 13-Feb-2024 |
Richard Levitte |
cmake: fix libcurl.pc and curl-config library specifications Letting CMake figure out where libraries are located gives you full paths. When generating libcurl.pc and curl-config, gettin
cmake: fix libcurl.pc and curl-config library specifications Letting CMake figure out where libraries are located gives you full paths. When generating libcurl.pc and curl-config, getting libraries as full paths is unusual when one expects to get a list of -l<libname>. To meet expectations, an effort is made to convert the full paths into -l<libname>, possibly with -L<libdir> before it. Fixes #6169 Fixes #12748 Closes #12930
show more ...
|
#
ed97fe06 |
| 06-Mar-2024 |
Viktor Szakats |
cmake: fix `CURL_WINDOWS_SSPI=ON` with Schannel disabled Prior to this change `CURL_WINDOWS_SSPI` was accidentally forced `OFF` when building without the Schannel TLS backend. T
cmake: fix `CURL_WINDOWS_SSPI=ON` with Schannel disabled Prior to this change `CURL_WINDOWS_SSPI` was accidentally forced `OFF` when building without the Schannel TLS backend. This in turn may have caused Kerberos, SPNEGO and SSPI features disappearing even with `CURL_WINDOWS_SSPI=ON` set. This patch fixes it by using the `CURL_USE_SCHANNEL` setting as a default for `CURL_WINDOWS_SSPI`, but allowing a manual override. Also update the option text to better tell its purpose. Thanks-to: Andreas Loew Reviewed-by: Daniel Stenberg Ref: #13056 Closes #13061
show more ...
|
#
f03c8563 |
| 04-Mar-2024 |
Daniel Stenberg |
docs: ascii version of manpage without nroff Create ASCII version of manpage without nroff - build src/tool_hugegelp.c from the ascii manpage - move the the manpage and the as
docs: ascii version of manpage without nroff Create ASCII version of manpage without nroff - build src/tool_hugegelp.c from the ascii manpage - move the the manpage and the ascii version build to docs/cmdline-opts - remove all use of nroff from the build process - should make the build entirely reproducible (by avoiding nroff) - partly reverts 2620aa9 to build libcurl option man pages one by one in cmake because the appveyor builds got all crazy until I did The ASCII version of the manpage - is built with gen.pl, just like the manpage is - has a right-justified column making the appearance similar to the previous version - uses a 4-space indent per level (instead of the old version's 7) - does not do hyphenation of words (which nroff does) History We first made the curl build use nroff for building the hugehelp file in December 1998, for curl 5.2. Closes #13047
show more ...
|
#
8e741644 |
| 03-Mar-2024 |
Tal Regev |
cmake: add USE_OPENSSL_QUIC support Closes #13034
|
#
f8513ee6 |
| 08-Feb-2024 |
Viktor Szakats |
cmake: add warning for using TLS libraries without 1.3 support Closes #12900
|
#
011325ff |
| 26-Jan-2024 |
Daniel Stenberg |
lib: error out on multissl + http3 Since the QUIC/h3 code has no knowledge or handling of multissl it might bring unintended consequences if we allow it. configure, cmake and cu
lib: error out on multissl + http3 Since the QUIC/h3 code has no knowledge or handling of multissl it might bring unintended consequences if we allow it. configure, cmake and curl_setup.h all now reject this combination. Assisted-by: Viktor Szakats Assisted-by: Gisle Vanem Ref: #12806 Closes #12807
show more ...
|
#
a808aab0 |
| 24-Jan-2024 |
Viktor Szakats |
cmake: rework options to enable curl and libcurl docs Rework CMake options for building/using curl tool and libcurl manuals. - rename `ENABLE_MANUAL` to `ENABLE_CURL_MANUAL`, meanin
cmake: rework options to enable curl and libcurl docs Rework CMake options for building/using curl tool and libcurl manuals. - rename `ENABLE_MANUAL` to `ENABLE_CURL_MANUAL`, meaning: to build man page and built-in manual for curl tool. - rename `BUILD_DOCS` to `BUILD_LIBCURL_DOCS`, meaning: to build man pages for libcurl. - `BUILD_LIBCURL_DOCS` now works without having to enable `ENABLE_CURL_MANUAL` too. - drop support for existing CMake-level `USE_MANUAL` option to avoid confusion. (It used to work with the effect of current `ENABLE_CURL_MANUAL`, but only by accident.) Assisted-by: Richard Levitte Ref: #12771 Closes #12773
show more ...
|
#
2620aa93 |
| 23-Jan-2024 |
Viktor Szakats |
cmake: speed up curldown processing, enable by default - cmake: enable `BUILD_DOCS` by default (this controls converting and installing `.3` files from `.md` sources) - cmake:
cmake: speed up curldown processing, enable by default - cmake: enable `BUILD_DOCS` by default (this controls converting and installing `.3` files from `.md` sources) - cmake: speed up generating `.3` files by using a single command per directory, instead of a single command per file. This reduces external commands by about a thousand. (There remains some CMake logic kicking in resulting in 500 -one per file- external `-E touch_nocreate` calls.) - cd2nroff: add ability to process multiple input files. - cd2nroff: add `-k` option to use the source filename to form the output filename. (instead of the default in-file `Title:` line.) Follow-up to 3f08d80b2244524646ce86915c585509ac54fb4c Follow-up to ea0b575dab86a3c44dd1d547dc500276266aa382 #12753 Follow-up to eefcc1bda4bccd800f5a56a0fe17a2f44a96e88b #12730 Closes #12762
show more ...
|
#
f81a335e |
| 21-Jan-2024 |
Viktor Szakats |
cmake: fix `ENABLE_MANUAL` option Fix the `ENABLE_MANUAL` option. Set it to default to `OFF`. Before this patch `ENABLE_MANUAL=ON` was a no-op, even though it was the option des
cmake: fix `ENABLE_MANUAL` option Fix the `ENABLE_MANUAL` option. Set it to default to `OFF`. Before this patch `ENABLE_MANUAL=ON` was a no-op, even though it was the option designed to enable building and using the built-in curl manual. (`USE_MANUAL=ON` option worked for this instead, by accident). Ref: https://github.com/curl/curl/pull/12730#issuecomment-1902572409 Closes #12749
show more ...
|
#
423645a1 |
| 07-Nov-2023 |
Viktor Szakats |
build: delete unused `HAVE_{GSSHEIMDAL,GSSMIT,HEIMDAL}` Stop setting `HAVE_GSSHEIMDAL`, `HAVE_GSSMIT` and `HAVE_HEIMDAL`. There was no place in the build system or source code that used
build: delete unused `HAVE_{GSSHEIMDAL,GSSMIT,HEIMDAL}` Stop setting `HAVE_GSSHEIMDAL`, `HAVE_GSSMIT` and `HAVE_HEIMDAL`. There was no place in the build system or source code that used them. Reviewed-by: Daniel Stenberg Closes #12506
show more ...
|
#
ee6992c6 |
| 11-Dec-2023 |
Viktor Szakats |
build: remove redundant `CURL_PULL_*` settings These macros were not propagated to the source code from CMake. autotools set only one of them (`CURL_PULL_SYS_POLL_H`), initially to
build: remove redundant `CURL_PULL_*` settings These macros were not propagated to the source code from CMake. autotools set only one of them (`CURL_PULL_SYS_POLL_H`), initially to address an AIX issue [1]. This later broke when introducing `system.h` [2] without the logic it enabled. A subsequent fix [3] re-added the logic, and also enabled it for AIX before its use, directly in `system.h`. [1] 2012-11-23: 665adcd4b7bcdb7deb638cdc499fbe71f8d777f2 [2] 2017-03-29: 9506d01ee50d5908138ebad0fd9fbd39b66bd64d #1373 [3] 2017-08-25: 8a84fcc4b59e8b78d2acc6febf44a43d6bc81b59 #1828 #1833 Reviewed-by: Daniel Stenberg Closes #12502
show more ...
|
#
6265718c |
| 10-Dec-2023 |
Viktor Szakats |
system.h: sync mingw `CURL_TYPEOF_CURL_SOCKLEN_T` with other compilers Align mingw with the other Windows compilers and use the `int` type for `CURL_TYPEOF_CURL_SOCKLEN_T` (and thus for
system.h: sync mingw `CURL_TYPEOF_CURL_SOCKLEN_T` with other compilers Align mingw with the other Windows compilers and use the `int` type for `CURL_TYPEOF_CURL_SOCKLEN_T` (and thus for `curl_socklent_t`). This makes it unnecessary to make a mingw-specific trick and pull all Windows headers early just for this type definition. This type is specific to Windows, not to the compiler. mingw-w64's Windows header maps it to `int` too. With this we also delete all remaining uses of `CURL_PULL_WS2TCPIP_H`. [ The official solution is to use `socklen_t` for all Windows compilers. In this case we may want to update `curl/curl.h` to pull in Windows headers before `system.h`. ] Reviewed-by: Daniel Stenberg Reviewed-by: Jay Satiro Closes #12501
show more ...
|
#
c1bc090d |
| 09-Dec-2023 |
Viktor Szakats |
windows: simplify detecting and using system headers - autotools, cmake: assume that if we detect Windows, `windows.h`, `winsock2.h` and `ws2tcpip.h` do exist. - lib: fix 3 outlier
windows: simplify detecting and using system headers - autotools, cmake: assume that if we detect Windows, `windows.h`, `winsock2.h` and `ws2tcpip.h` do exist. - lib: fix 3 outlier `#if` conditions to use `USE_WINSOCK` instead of looking for `winsock2.h`. - autotools: merge 3 Windows check methods into one. - move Watt-32 and lwIP socket support to `setup-win32.h` from `config-win32.h`. It opens up using these with all build tools. Also merge logic with Windows Sockets. - fix to assume Windows sockets with the mingw32ce toolchain. Follow-up to: 2748c64d605b19fb419ae56810ad8da36487a2d4 - cmake: delete unused variable `signature_call_conv` since eb33ccd5332435fa50f1758e5debb869c6942b7f. - autotools: simplify `CURL_CHECK_WIN32_LARGEFILE` detection. - examples/externalsocket: fix header order. - cmake/OtherTests.cmake: delete Windows-specific `_source_epilogue` that wasn't used anymore. - cmake/OtherTests.cmake: set `WIN32_LEAN_AND_MEAN` for test `SIZEOF_STRUCT_SOCKADDR_STORAGE`. After this patch curl universally uses `_WIN32` to guard Windows-specific logic. It guards Windows Sockets-specific logic with `USE_WINSOCK` (this might need further work). Reviewed-by: Jay Satiro Closes #12495
show more ...
|
#
102de7aa |
| 12-Dec-2023 |
Daniel Stenberg |
curl: show ipfs and ipns as supported "protocols" They are accepted schemes in URLs passed to curl (the tool, not the library). Also makes curl-config show the same list.
curl: show ipfs and ipns as supported "protocols" They are accepted schemes in URLs passed to curl (the tool, not the library). Also makes curl-config show the same list. Co-Authored-by: Jay Satiro Reported-by: Chara White Bug: https://curl.se/mail/archive-2023-12/0026.html Closes #12508
show more ...
|
#
043523a8 |
| 12-Dec-2023 |
Viktor Szakats |
cmake: delete obsolete TODOs more [ci skip] - manual completed: 898b012a9bf388590c4be7f526815b5ab74feca1 #1288 - soname completed: 5de6848f104d7cb0017080e31216265ac19d0dde #10023 - b
cmake: delete obsolete TODOs more [ci skip] - manual completed: 898b012a9bf388590c4be7f526815b5ab74feca1 #1288 - soname completed: 5de6848f104d7cb0017080e31216265ac19d0dde #10023 - bunch of others that are completed - `NTLM_WB_ENABLED` is implemented in a basic form, and now also scheduled for removal, so a TODO at this point isn't useful. And this 'to-check' item: Q: "The cmake build selected to run gcc with -fPIC on my box while the plain configure script did not." A: With CMake, since 2ebc74c36a19a1700af394c16855ce144d9878e3 #11546 and fc9bfb14520712672b4784e8b48256fb29204011 #11627, we explicitly enable PIC for libcurl shared lib. Or when building libcurl for shared and static lib in a single pass. We do this by default for Windows or when enabled by the user via `SHARE_LIB_OBJECT`. Otherwise we don't touch this setting. Meaning the default set by CMake (if any) or the toolchain is used. On Debian Bookworm, this means that PIC is disabled for static libs by default. Some platforms (like macOS), has PIC enabled by default. autotools supports the double-pass mode only, and in that case CMake seems to match PIC behaviour now (as tested on Linux with gcc.) Follow-up to 5d5dfdbd1a6c40bd75e982b66f49e1fa3a7eeae7 #12500 Reviewed-by: Jay Satiro Closes #12509
show more ...
|