#
825a800e |
| 22-Oct-2024 |
Viktor Szakats |
cmake: use the `BSD` variable - use `BSD` in addition to backwards-compatible method. - add `BSD` to the configuration log and `buildinfo.txt` if detected. - add `BSD` tag to `buildi
cmake: use the `BSD` variable - use `BSD` in addition to backwards-compatible method. - add `BSD` to the configuration log and `buildinfo.txt` if detected. - add `BSD` tag to `buildinfo.txt` also via `./configure`. The `BSD` variable is supported by CMake 3.25.0 and upper. Ref: https://cmake.org/cmake/help/latest/variable/BSD.html Closes #15367
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 ...
|
#
1d960672 |
| 04-Oct-2024 |
Viktor Szakats |
build: add `ldap` to `libcurl.pc` `Requires:` Closes #15163
|
#
b4cf21b4 |
| 24-Sep-2024 |
Viktor Szakats |
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 word
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
show more ...
|
#
68a224c2 |
| 28-Aug-2024 |
Viktor Szakats |
tidy-up: indentation in autotools sources Indentation in `configure.ac` and `.m4` files. Closes #14692
|
#
635253ca |
| 24-Sep-2024 |
Ian Spence |
configure: improve help string for some options Closes #15033
|
#
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
|
#
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 ...
|
#
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 ...
|
#
50e2cb58 |
| 07-Sep-2024 |
Viktor Szakats |
build: `buildinfo.txt` improvements - cmake: drop `configure.os`. This also includes OS version, but thus far it's not important enough to include it. - autotools: drop redun
build: `buildinfo.txt` improvements - cmake: drop `configure.os`. This also includes OS version, but thus far it's not important enough to include it. - autotools: drop redundant, autotools-only `{target|host}.vendor`. (it's part of the triplet in `{target|host}`.) - swap order to `*.cpu` -> `*.os` to match triplet-order. - cmake: drop redundant `target`. It's manually filled and only in a (so far) few CI jobs. Let's revisit when this becomes useful. - move `buildinfo.txt` to build root. - dist: add `buildinfo.txt` to `DISTCLEANFILES`. - autotools: detect human readable compiler version. - autotools: replace `XXYY` `compiler.version` with "X.Y"-style. (also to match cmake.) - autotools: use distinct `compiler_id` for Apple clang: `APPLECLANG`. To match cmake and also because the the "X.Y"-style version number is the Apple version, while `XXYY` was a value roughly translated to mainline llvm/clang version. - show buildinfo at the end of the configure stage, when run in CI, or when `CURL_BUILDINFO` or `CURL_CI` env is set. Follow-up to 1fdea1684602a1ae2870c67b5f3e8fd34f63da95 #14802 Assisted-by: Dan Fandrich Ref: https://github.com/curl/curl/pull/14802#issuecomment-2334942991 Closes #14822
show more ...
|
#
28fa417b |
| 12-Sep-2024 |
Viktor Szakats |
autotools: fix `--with-ca-embed` build rule Add missing rule dependency on the user-specified CA bundle. This fixes including it when using the curl distro tarball, and other cases.
autotools: fix `--with-ca-embed` build rule Add missing rule dependency on the user-specified CA bundle. This fixes including it when using the curl distro tarball, and other cases. Also: - fix the internal name of the CA bundle to avoid nested quotes. It broke broke the rule dependency for the make tool. - exclude the generated (empty) `tool_ca_embed.c` file from the distro tarball. Patch-by: Daniel Stenberg Follow-up to 8a3740bc8e558b9a9d4a652b74cf27a0961d7010 #14059 Reported-by: rampageX on github Fixes #14879 Closes #14882
show more ...
|
#
1fdea168 |
| 05-Sep-2024 |
Viktor Szakats |
build: generate `buildinfo.txt` for test logs Also: - read `buildinfo.txt` from `runtests.pl` and dump it to the log. - cmake: show `CROSS` target flag for cross-builds. - cmake:
build: generate `buildinfo.txt` for test logs Also: - read `buildinfo.txt` from `runtests.pl` and dump it to the log. - cmake: show `CROSS` target flag for cross-builds. - cmake: add logic to detect arguments passed via the command-line. It is meant to help filling out missing datapoints in the testclutch matrix. Closes #14802
show more ...
|
#
3307b981 |
| 24-Aug-2024 |
Viktor Szakats |
configure: delete unused `CURL_DEFINE_UNQUOTED` function Unused since ee6992c66a3dd7a1a1e2fbf66ba8d446a28acc8c #12502 Closes #14673
|
#
0052b4b5 |
| 21-Aug-2024 |
Viktor Szakats |
configure: fix indentation Also: - move `then`s and an `in` inline. - whitespace. Closes #14628
|
#
440d00d1 |
| 20-Aug-2024 |
Viktor Szakats |
tidy-up: spelling 'built-in' Closes #14613
|
#
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 ...
|
#
8a3740bc |
| 29-Jun-2024 |
Viktor Szakats |
curl: support embedding a CA bundle Add the ability to embed a CA bundle into the curl binary. It is used when no other runtime or build-time option set one. This helps curl-for
curl: support embedding a CA bundle Add the ability to embed a CA bundle into the curl binary. It is used when no other runtime or build-time option set one. This helps curl-for-win macOS and Linux builds to run standalone, and also helps Windows builds to avoid picking up the CA bundle from an arbitrary (possibly world-writable) location (though this behaviour is not currently disablable). Usage: - cmake: `-DCURL_CA_EMBED=/path/to/curl-ca-bundle.crt` - autotools: `--with-ca-embed=/path/to/curl-ca-bundle.crt` - Makefile.mk: `CURL_CA_EMBED=/path/to/curl-ca-bundle.crt` Also add new command-line option `--dump-ca-embed` to dump the embedded CA bundle to standard output. Closes #14059
show more ...
|
#
d3595c74 |
| 14-Jul-2024 |
Viktor Szakats |
configure: CA bundle/path detection fixes - fix to not auto-detect CA bundle/path on Windows. - two checks missed BearSSL, but they were only run for supported TLS backends an
configure: CA bundle/path detection fixes - fix to not auto-detect CA bundle/path on Windows. - two checks missed BearSSL, but they were only run for supported TLS backends anyway. Delete these redundant checks. - fix typos in a comment nearby. Follow-up to 082bb41311a832ae1b83bb8fe1dfdefcf4e68ea5 #2545 Closes #14186
show more ...
|
#
4c22d97b |
| 13-Jul-2024 |
Viktor Szakats |
build: use `#error` instead of invalid syntax It reduces configure log noise. Follow-up to 20c1b2d75ee38189ffa75d21ed04108e1e0630ae #13287 Closes #14181
|
#
cfd6f43d |
| 06-Jul-2024 |
Viktor Szakats |
build: tidy up `__builtin_available` feature checks (Apple) - sync detection snippet between autotools and cmake It wasn't causing issues, but it's useful to avoid unnecessary di
build: tidy up `__builtin_available` feature checks (Apple) - sync detection snippet between autotools and cmake It wasn't causing issues, but it's useful to avoid unnecessary differences while debugging. - cmake: limit check to `APPLE`. Ref: b05dc7eb3592305de9fa85640767f3dd2a8d4c93 #14122 Cherry-picked from #14097 Closes #14127
show more ...
|
#
03e7dff8 |
| 12-Dec-2023 |
Viktor Szakats |
windows: delete redundant headers `winsock2.h` pulls in `windows.h`. `ws2tcpip.h` pulls in `winsock2.h`. `winsock2.h` and `ws2tcpip.h` are also pulled by `curl/curl.h`. Keep onl
windows: delete redundant headers `winsock2.h` pulls in `windows.h`. `ws2tcpip.h` pulls in `winsock2.h`. `winsock2.h` and `ws2tcpip.h` are also pulled by `curl/curl.h`. Keep only those headers that are not already included, or the code under it uses something from that specific header. Closes #12539
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 ...
|
#
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 ...
|
#
a426b505 |
| 13-Oct-2023 |
Viktor Szakats |
build: variadic macro tidy-ups - delete unused `HAVE_VARIADIC_MACROS_C99/GCC` feature checks. (both autotools and CMake.) - delete duplicate `NULL` check in `Curl_trc_cf_infof()`.
build: variadic macro tidy-ups - delete unused `HAVE_VARIADIC_MACROS_C99/GCC` feature checks. (both autotools and CMake.) - delete duplicate `NULL` check in `Curl_trc_cf_infof()`. - fix compiler warning in `CURL_DISABLE_VERBOSE_STRINGS` builds. ``` ./lib/cf-socket.c:122:41: warning: unused parameter 'data' [-Wunused-parameter] static void nosigpipe(struct Curl_easy *data, ^ ``` - fix `#ifdef` comments in `lib/curl_trc.{c,h}`. - fix indentation in some `infof()` calls. Follow-up to dac293cfb7026b1ca4175d88b80f1432d3d3c684 #12167 Cherry-picked from #12105 Closes #12210
show more ...
|