#
c90c7833 |
| 11-Aug-2023 |
Viktor Szakats |
build: streamline non-UWP wincrypt detections - with CMake, use the variable `WINDOWS_STORE` to detect an UWP build and disable our non-UWP-compatible use the Windows crypto API. This
build: streamline non-UWP wincrypt detections - with CMake, use the variable `WINDOWS_STORE` to detect an UWP build and disable our non-UWP-compatible use the Windows crypto API. This allows to drop two dynamic feature checks. `WINDOWS_STORE` is true when invoking CMake with `CMAKE_SYSTEM_NAME` == `WindowsStore`. Introduced in CMake v3.1. Ref: https://cmake.org/cmake/help/latest/variable/WINDOWS_STORE.html - with autotools, drop the separate feature check for `wincrypt.h`. On one hand this header has been present for long (even Borland C 5.5 had it from year 2000), on the other we used the check result solely to enable another check for certain crypto functions. This fails anyway with the header not present. We save one dynamic feature check at the configure stage. Reviewed-by: Marcel Raad Closes #11657
show more ...
|
#
00f8f9c2 |
| 30-Jul-2023 |
Viktor Szakats |
cmake: cache more config and delete unused ones - cache more Windows config results for faster initialization. - delete unused config macros `HAVE_SYS_UTSNAME_H`, `HAVE_SSL_H`.
cmake: cache more config and delete unused ones - cache more Windows config results for faster initialization. - delete unused config macros `HAVE_SYS_UTSNAME_H`, `HAVE_SSL_H`. - delete dead references to `sys/utsname.h`. Closes #11551
show more ...
|
#
c09466ab |
| 31-Jul-2023 |
Viktor Szakats |
egd: delete feature detection and related source code EGD is Entropy Gathering Daemon, a socket-based entropy source supported by pre-OpenSSL v1.1 versions and now deprecated. curl also
egd: delete feature detection and related source code EGD is Entropy Gathering Daemon, a socket-based entropy source supported by pre-OpenSSL v1.1 versions and now deprecated. curl also deprecated it a while ago. Its detection in CMake was broken all along because OpenSSL libs were not linked at the point of feature check. Delete detection from both cmake and autotools, along with the related source snippet, and the `--with-egd-socket=` `./configure` option. Closes #11556
show more ...
|
#
db073c9d |
| 13-Mar-2023 |
Viktor Szakats |
build: fix stdint/inttypes detection with non-autotools Fix `stdint.h` and `inttypes.h` detection with non-autotools builds on Windows. (autotools already auto-detected them accurately.)
build: fix stdint/inttypes detection with non-autotools Fix `stdint.h` and `inttypes.h` detection with non-autotools builds on Windows. (autotools already auto-detected them accurately.) `lib/config-win32.h` builds (e.g. `Makefile.mk`): - set `HAVE_STDINT_H` where supported. - set `HAVE_INTTYPES_H` for MinGW. CMake: - auto-detect them on Windows. (They were both force-disabled.) - delete unused `CURL_PULL_STDINT_H`. - delete unused `CURL_PULL_INTTYPES_H`. - stop detecting `HAVE_STDINT_H` twice. Present since the initial CMake commit: 4c5307b45655ba75ab066564afdc0c111a8b9291 curl doesn't use these C99 headers, we need them now to workaround broken wolfSSL builds. Ref: #10739 Once that clears up, we can delete these detections and macros (unless we want to keep them for future us.) Reviewed-by: Daniel Stenberg Closes #10745
show more ...
|
#
2bc1d775 |
| 02-Jan-2023 |
Daniel Stenberg |
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - save
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - saves us from pointless churn - git keeps history for us - the year range is kept in COPYING checksrc is updated to allow non-year using copyright statements Closes #10205
show more ...
|
#
edae6c66 |
| 01-Nov-2022 |
Viktor Szakats |
lib: sync guard for Curl_getaddrinfo_ex() definition and use `Curl_getaddrinfo_ex()` gets _defined_ with `HAVE_GETADDRINFO` set. But, `hostip4.c` _used_ it with `HAVE_GETADDRINFO_THREADS
lib: sync guard for Curl_getaddrinfo_ex() definition and use `Curl_getaddrinfo_ex()` gets _defined_ with `HAVE_GETADDRINFO` set. But, `hostip4.c` _used_ it with `HAVE_GETADDRINFO_THREADSAFE` set alone. It meant a build with the latter, but without the former flag could result in calling this function but not defining it, and failing to link. Patch this by adding an extra check for `HAVE_GETATTRINFO` around the call. Before this patch, build systems prevented this condition. Now they don't need to. While here, simplify the related CMake logic on Windows by setting `HAVE_GETADDRINFO_THREADSAFE` to the detection result of `HAVE_GETADDRINFO`. This expresses the following intent clearer than the previous patch and keeps the logic in a single block of code: When we have `getaddrinfo()` on Windows, it's always threadsafe. Follow-up to 67d88626d44ec04b9e11dca4cfbf62cd29fe9781 Reviewed-by: Jay Satiro Closes #9734
show more ...
|
#
b563a92c |
| 01-Nov-2022 |
Viktor Szakats |
tidy-up: process.h detection and use This patch aims to cleanup the use of `process.h` header and the macro `HAVE_PROCESS_H` associated with it. - `process.h` is always availabl
tidy-up: process.h detection and use This patch aims to cleanup the use of `process.h` header and the macro `HAVE_PROCESS_H` associated with it. - `process.h` is always available on Windows. In curl, it is required only for `_beginthreadex()` in `lib/curl_threads.c`. - `process.h` is also available in MS-DOS. In curl, its only use was in `lib/smb.c` for `getpid()`. But `getpid()` is in fact declared by `unistd.h`, which is always enabled via `lib/config-dos.h`. So the header is not necessary. - `HAVE_PROCESS_H` was detected by CMake, forced to 1 on Windows and left to real detection for other platforms. It was also set to always-on in `lib/config-win32.h` and `lib/config-dos.h`. In autotools builds, there was no detection and the macro was never set. Based on these observations, in this patch we: - Rework Windows `getpid` logic in `lib/smb.c` to always use the equivalent direct Win32 API function `GetCurrentProcessId()`, as we already did for Windows UWP apps. This makes `process.h` unnecessary here on Windows. - Stop #including `process.h` into files where it was not necessary. This is everywhere, except `lib/curl_threads.c`. > Strangely enough, `lib/curl_threads.c` compiled fine with autotools > because `process.h` is also indirecty included via `unistd.h`. This > might have been broken in autotools MSVC builds, where the latter > header is missing. - Delete all remaining `HAVE_PROCESS_H` feature guards, for they were unnecessary. - Delete `HAVE_PROCESS_H` detection from CMake and predefined values from `lib/config-*.h` headers. Reviewed-by: Jay Satiro Closes #9703
show more ...
|
#
86f2d8f6 |
| 14-Oct-2022 |
Viktor Szakats |
cmake: set HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID on Windows `lib/config-win32.h` enables this configuration option unconditionally. Make it apply to CMake builds as well. While here,
cmake: set HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID on Windows `lib/config-win32.h` enables this configuration option unconditionally. Make it apply to CMake builds as well. While here, delete a broken check for `HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID` from `CMakeLists.txt`. This came with the initial commit [1], but did not include the actual verification code inside `CMake/CurlTests.c`, so it always failed. A later commit [2] added a second test, for non-Windows platforms. Enabling this flag causes test 1056 to fail with CMake builds, as they do with autotools builds. Let's apply the same solution and ignore the results here as well. [1] 4c5307b45655ba75ab066564afdc0c111a8b9291 [2] aec7c5a87c8482b6ddffa352d7d220698652262e Reviewed-by: Daniel Stenberg Assisted-by: Marcel Raad Closes #9726
show more ...
|
#
67d88626 |
| 14-Oct-2022 |
Viktor Szakats |
cmake: set HAVE_GETADDRINFO_THREADSAFE on Windows autotools enables this configuration option unconditionally for Windows [^1]. Do the same in CMake. The above will make this wo
cmake: set HAVE_GETADDRINFO_THREADSAFE on Windows autotools enables this configuration option unconditionally for Windows [^1]. Do the same in CMake. The above will make this work for all reasonably recent environments. The logic present in `lib/config-win32.h` [^2] has the following exceptions which we did not cover in this CMake update: - Builds targeting Windows 2000 and earlier - MS Visual C++ 5.0 (1997) and earlier Also make sure to disable this feature when `HAVE_GETADDRINFO` isn't set, to avoid a broken build. We might want to handle that in the C sources in a future commit. [^1]: https://github.com/curl/curl/blob/68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6/m4/curl-functions.m4#L2067-L2070 [^2]: https://github.com/curl/curl/blob/68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6/lib/config-win32.h#L511-L528 Closes #9727
show more ...
|
#
790779fc |
| 14-Oct-2022 |
Viktor Szakats |
cmake: sync HAVE_SIGNAL detection with autotools `HAVE_SIGNAL` means the availability of the `signal()` function in autotools, while in CMake it meant the availability of that function
cmake: sync HAVE_SIGNAL detection with autotools `HAVE_SIGNAL` means the availability of the `signal()` function in autotools, while in CMake it meant the availability of that function _and_ the symbol `SIGALRM`. The latter is not available on Windows, but the function is, which means on Windows, autotools did define `HAVE_SIGNAL`, but CMake did not, introducing a slight difference into the binaries. This patch syncs CMake behaviour with autotools to look for the function only. The logic came with the initial commit adding CMake support to curl, so the commit history doesn't reveal the reason behind it. In any case, it's best to check the existence of `SIGALRM` directly in the source before use. For now, curl builds fine with `HAVE_SIGNAL` enabled and `SIGALRM` missing. Follow-up to 68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6 Closes #9725
show more ...
|
#
474a947e |
| 11-Oct-2022 |
Viktor Szakats |
cmake: enable more detection on Windows Enable `HAVE_UNISTD_H`, `HAVE_STRTOK_R` and `HAVE_STRCASECMP` detection on Windows, instead of having predefined values. With these featu
cmake: enable more detection on Windows Enable `HAVE_UNISTD_H`, `HAVE_STRTOK_R` and `HAVE_STRCASECMP` detection on Windows, instead of having predefined values. With these features detected correctly, CMake Windows builds get closer to the autotools and `config-win32.h` ones. This also fixes detecting `HAVE_FTRUNCATE` correctly, which required `unistd.h`. Fixing `ftruncate()` in turn causes a build warning/error with legacy MinGW/MSYS1 due to an offset type size mismatch. This env misses to detect `HAVE_FILE_OFFSET_BITS`, which may be a reason. This patch force-disables `HAVE_FTRUNCATE` for this platform. Reviewed-by: Daniel Stenberg Closes #9687
show more ...
|
#
0c327464 |
| 06-Oct-2022 |
Viktor Szakats |
tidy-up: delete parallel/unused feature flags Detecting headers and lib separately makes sense when headers come in variations or with extra ones, but this wasn't the case here. These we
tidy-up: delete parallel/unused feature flags Detecting headers and lib separately makes sense when headers come in variations or with extra ones, but this wasn't the case here. These were duplicate/parallel macros that we had to keep in sync with each other for a working build. This patch leaves a single macro for each of these dependencies: - Rely on `HAVE_LIBZ`, delete parallel `HAVE_ZLIB_H`. Also delete CMake logic making sure these two were in sync, along with a toggle to turn off that logic, called `CURL_SPECIAL_LIBZ`. Also delete stray `HAVE_ZLIB` defines. There is also a `USE_ZLIB` variant in `lib/config-dos.h`. This patch retains it for compatibility and deprecates it. - Rely on `USE_LIBSSH2`, delete parallel `HAVE_LIBSSH2_H`. Also delete `LIBSSH2_WIN32`, `LIBSSH2_LIBRARY` from `winbuild/MakefileBuild.vc`, these have a role when building libssh2 itself. And `CURL_USE_LIBSSH`, which had no use at all. Also delete stray `HAVE_LIBSSH2` defines. - Rely on `USE_LIBSSH`, delete parallel `HAVE_LIBSSH_LIBSSH_H`. Also delete `LIBSSH_WIN32`, `LIBSSH_LIBRARY` and `HAVE_LIBSSH` from `winbuild/MakefileBuild.vc`, these were the result of copy-pasting the libssh2 line, and were not having any use. - Delete unused `HAVE_LIBPSL_H` and `HAVE_LIBPSL`. Reviewed-by: Daniel Stenberg Closes #9652
show more ...
|
#
7cd400a4 |
| 31-Aug-2022 |
Viktor Szakats |
cmake: fix original MinGW builds 1. Re-enable `HAVE_GETADDRINFO` detection on Windows Commit d08ee3c83d6bd416aef62ff844c98e47c4682429 (in 2013) added logic that automatica
cmake: fix original MinGW builds 1. Re-enable `HAVE_GETADDRINFO` detection on Windows Commit d08ee3c83d6bd416aef62ff844c98e47c4682429 (in 2013) added logic that automatically assumed `getaddrinfo()` to be present for builds with IPv6 enabled. As it turns out, certain toolchains (e.g. original MinGW) by default target older Windows versions, and thus do not support `getaddrinfo()` out of the box. The issue was masked for a while by CMake builds forcing a newer Windows version, but that logic got deleted in commit 8ba22ffb2030ed91312fc8634e29516cdf0a9761. Since then, some CI builds started failing due to IPv6 enabled, `HAVE_GETADDRINFO` set, but `getaddrinfo()` in fact missing. It also turns out that IPv6 works without `getaddrinfo()` since commit 67a08dca27a6a07b36c7f97252e284ca957ff1a5 (from 2019, via #4662). So, to resolve all this, we can now revert the initial commit, thus restoring `getaddrinfo()` detection and support IPv6 regardless of its outcome. Reported-by: Daniel Stenberg 2. Omit `bcrypt` with original MinGW Original (aka legacy/old) MinGW versions do not support `bcrypt` (introduced with Vista). We already have logic to handle that in `lib/rand.c` and autotools builds, where we do not call the unsupported API and do not link `bcrypt`, respectively, when using original MinGW. This patch ports that logic to CMake, fixing the link error: `c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -lbcrypt` Ref: https://ci.appveyor.com/project/curlorg/curl/builds/44624888/job/40vle84cn4vle7s0#L508 Regression since 76172511e7adcf720f4c77bd91f49278300ec97e Fixes #9214 Fixes #9393 Fixes #9395 Closes #9396
show more ...
|
#
4d738544 |
| 19-Jul-2022 |
Viktor Szakats |
tidy-up: delete unused build configuration macros Most of them feature guards: - `CURL_INCLUDES_SYS_UIO` [1] - `HAVE_ALLOCA_H` [2] - `HAVE_CRYPTO_CLEANUP_ALL_EX_DATA` (unuse
tidy-up: delete unused build configuration macros Most of them feature guards: - `CURL_INCLUDES_SYS_UIO` [1] - `HAVE_ALLOCA_H` [2] - `HAVE_CRYPTO_CLEANUP_ALL_EX_DATA` (unused since de71e68000c8624ea13f90b136f8734dd0fb1bdc) - `HAVE_DLFCN_H` - `HAVE_DLOPEN` - `HAVE_DOPRNT` - `HAVE_FCNTL` - `HAVE_GETHOSTBYNAME` [3] - `HAVE_GETOPT_H` - `HAVE_GETPASS` - `HAVE_GETPROTOBYNAME` - `HAVE_GETSERVBYNAME` - `HAVE_IDN_FREE*` - `HAVE_INET_ADDR` - `HAVE_IOCTL` - `HAVE_KRB4` - `HAVE_KRB_GET_OUR_IP_FOR_REALM` - `HAVE_KRB_H` - `HAVE_LDAPSSL_H` - `HAVE_LDAP_INIT_FD` - `HAVE_LIBDL` - `HAVE_LIBNSL` - `HAVE_LIBRESOLV*` - `HAVE_LIBUCB` - `HAVE_LL` - `HAVE_LOCALTIME_R` - `HAVE_MALLOC_H` - `HAVE_MEMCPY` - `HAVE_MEMORY_H` - `HAVE_NETINET_IF_ETHER_H` - `HAVE_NI_WITHSCOPEID` - `HAVE_OPENSSL_CRYPTO_H` - `HAVE_OPENSSL_ERR_H` - `HAVE_OPENSSL_PEM_H` - `HAVE_OPENSSL_PKCS12_H` - `HAVE_OPENSSL_RAND_H` - `HAVE_OPENSSL_RSA_H` - `HAVE_OPENSSL_SSL_H` - `HAVE_OPENSSL_X509_H` - `HAVE_PEM_H` - `HAVE_POLL` - `HAVE_RAND_SCREEN` - `HAVE_RAND_STATUS` - `HAVE_RECVFROM` - `HAVE_SETSOCKOPT` - `HAVE_SETVBUF` - `HAVE_SIZEOF_LONG_DOUBLE` - `HAVE_SOCKIO_H` - `HAVE_SOCK_OPTS` - `HAVE_STDIO_H` - `HAVE_STRCASESTR` - `HAVE_STRFTIME` - `HAVE_STRLCAT` - `HAVE_STRNCMPI` - `HAVE_STRNICMP` - `HAVE_STRSTR` - `HAVE_STRUCT_IN6_ADDR` - `HAVE_TLD_H` - `HAVE_TLD_STRERROR` - `HAVE_UNAME` - `HAVE_USLEEP` - `HAVE_WINBER_H` - `HAVE_WRITEV` - `HAVE_X509_H` - `LT_OBJDIR` - `NEED_BASENAME_PROTO` - `NOT_NEED_LIBNSL` - `OPENSSL_NO_KRB5` - `RECVFROM_TYPE*` - `SIZEOF_LONG_DOUBLE` - `STRERROR_R_TYPE_ARG3` - `USE_YASSLEMUL` - `_USRDLL` (from CMake) [4] [1] Related parts in `m4/curl-functions.m4` and `configure.ac` might also be deleted. [2] Related comment can possibly be deleted in `packages/vms/generate_config_vms_h_curl.com`. [3] There are more instances of this in autotools, but I did not dare to touch those. Looked like it's used to detect socket support. [4] This is necessary for MFC (Microsoft Foundation Class) DLLs to force linking MFC components statically to the DLL. `libcurl.dll` does not use MFC, so we can delete this define. Ref: https://docs.microsoft.com/cpp/build/regular-dlls-statically-linked-to-mfc Script that can help finding unused settings like above: ```shell autoheader configure.ac # generate lib/curl_config.h.in { grep -o -E 'set\([A-Z][A-Z0-9_]{3,}' CMake/Platforms/WindowsCache.cmake | sed -E 's|set\(||g' grep -o -E -h '#define +[A-Z][A-Z0-9_]{3,}' lib/config-*.h | sed -E 's|#define +||g' grep -o -E '#cmakedefine +[A-Z][A-Z0-9_]{3,}' lib/curl_config.h.cmake | sed -E 's|#cmakedefine +||g' grep -o -E '#undef +[A-Z][A-Z0-9_]{3,}' lib/curl_config.h.in | sed -E 's|#undef +||g' } | sort -u | grep -v -F 'HEADER_CURL_' | while read -r def; do c="$(git grep -w -F "${def}" | grep -v -E -c '(/libcurl\.tmpl|^lib/config-|^lib/curl_config\.h\.cmake|^CMakeLists\.txt|^CMake/Platforms/WindowsCache\.cmake|^packages/vms/config_h\.com|^m4/curl-functions\.m4|^acinclude\.m4|^configure\.ac)')" if [ "${c}" = '0' ]; then echo "${def}" fi done ``` Reviewed-by: Daniel Stenberg Closes #9044
show more ...
|
#
ad9bc597 |
| 17-May-2022 |
max.mehl |
copyright: make repository REUSE compliant Add licensing and copyright information for all files in this repository. This either happens in the file itself as a comment header or in the
copyright: make repository REUSE compliant Add licensing and copyright information for all files in this repository. This either happens in the file itself as a comment header or in the file `.reuse/dep5`. This commit also adds a Github workflow to check pull requests and adapts copyright.pl to the changes. Closes #8869
show more ...
|
#
6f5ff0ee |
| 18-Jun-2021 |
Gergely Nagy |
configure/cmake: remove checks for unused gethostbyaddr and gethostbyaddr_r Closes #7276
|
#
f471efa7 |
| 18-Jun-2021 |
Gergely Nagy |
configure/cmake: remove checks for unused inet_ntoa and inet_ntoa_r Closes #7276
|
#
e9260328 |
| 18-Jun-2021 |
Gergely Nagy |
configure/cmake: remove unused define HAVE_PERROR Closes #7276
|
#
a407a82d |
| 18-Jun-2021 |
Gergely Nagy |
configure/cmake: remove checks for unused sgtty.h Closes #7276
|
Revision tags: curl-7_76_1 |
|
#
812fce9d |
| 07-Apr-2021 |
Michael Forney |
configure: remove use of RETSIGTYPE This was previously defined by the obsolete AC_TYPE_SIGNAL macro, which was removed in 2682e5f5. The deprecation text says > Your code may sa
configure: remove use of RETSIGTYPE This was previously defined by the obsolete AC_TYPE_SIGNAL macro, which was removed in 2682e5f5. The deprecation text says > Your code may safely assume C89 semantics that RETSIGTYPE is void. So, remove it and just use void instead. Closes #6861
show more ...
|
Revision tags: curl-7_76_0 |
|
#
95014b0a |
| 23-Feb-2021 |
Viktor Szakats |
build: delete unused feature guards - `HAVE_STRNCASECMP` - `HAVE_TCGETATTR` - `HAVE_TCSETATTR` Reviewed-by: Jay Satiro Reviewed-by: Daniel Stenberg Closes #6645
|
Revision tags: curl-7_75_0, curl-7_74_0 |
|
#
4d2f8006 |
| 04-Nov-2020 |
Daniel Stenberg |
curl.se: new home Closes #6172
|
Revision tags: curl-7_73_0, tiny-curl-7_72_0, curl-7_72_0, curl-7_71_1, curl-7_71_0, curl-7_70_0 |
|
#
9a8b3b3e |
| 23-Mar-2020 |
Daniel Stenberg |
copyright: fix out-of-date copyright ranges and missing headers Reported by the new script 'scripts/copyright.pl'. The script has a regex whitelist for the files that don't need copyrigh
copyright: fix out-of-date copyright ranges and missing headers Reported by the new script 'scripts/copyright.pl'. The script has a regex whitelist for the files that don't need copyright headers. Removed three (mostly usesless) README files from docs/ Closes #5141
show more ...
|
Revision tags: curl-7_69_1, curl-7_69_0, curl-7_68_0, curl-7_67_0 |
|
#
df85b86a |
| 04-Oct-2019 |
Paul B. Omta |
build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines Closes https://github.com/curl/curl/pull/4460
|
Revision tags: curl-7_66_0, curl-7_65_3, curl-7_65_2, curl-7_65_1, curl-7_65_0, curl-7_64_1, curl-7_64_0, curl-7_63_0, curl-7_62_0, curl-7_61_1, curl-7_61_0 |
|
#
e0a4bba7 |
| 05-Jul-2018 |
Ruslan Baratov |
CMake: remove redundant and old end-of-block syntax Reviewed-by: Jakub Zakrzewski Closes #2715
|