History log of /curl/ (Results 1051 – 1075 of 33757)
Revision (<<< Hide revision tags) (Show revision tags >>>)Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
fc27302726-Jul-2024 Stefan Eissing

transfer: speed limiting fix for 32bit systems

When checking if a speed limit on receives applies, compare the receive
sizes using the large int type to prevent an overflow on systems wh

transfer: speed limiting fix for 32bit systems

When checking if a speed limit on receives applies, compare the receive
sizes using the large int type to prevent an overflow on systems where
size_t is 32bit.

Fixes #14272
Reported-by: Mamoru Tasaka
Closes #14277

show more ...

11e248b724-Jul-2024 Anthony Hu

wolfSSL: allow wolfSSL's implementation of kyber to be used

Closes #14268

0795014c23-Jul-2024 Daniel Stenberg

lib: survive some NULL input args

The input string pointer to:

curl_escape
curl_easy_escape
curl_unescape
curl_easy_unescape

The running_handles pointer to:

lib: survive some NULL input args

The input string pointer to:

curl_escape
curl_easy_escape
curl_unescape
curl_easy_unescape

The running_handles pointer to:

curl_multi_perform
curl_multi_socket_action
curl_multi_socket_all
curl_multi_socket

Reported-by: icy17 on github
Fixes #14247
Closes #14262

show more ...

2a59c8d424-Jul-2024 Daniel Stenberg

RELEASE-PROCEDURE.md: restore next release date

Pointed-out-by: extrimexxx on github
Bug: https://github.com/curl/curl/pull/14267#issuecomment-2247062235

517f454724-Jul-2024 Daniel Stenberg

RELEASE-NOTES: synced

bumped to 8.9.1

cee3278223-Jul-2024 Daniel Stenberg

RELEASE-PROCEDURE.md: remove the initial build step

Because it is no longer needed to be done by a person as the dmaketgz
script does it by itself.

Removed two past release date

RELEASE-PROCEDURE.md: remove the initial build step

Because it is no longer needed to be done by a person as the dmaketgz
script does it by itself.

Removed two past release dates, added two new future ones

Closes #14267

show more ...

5040f7e920-Jul-2024 Daniel Stenberg

RELEASE-NOTES: synced

4997a44823-Jul-2024 Daniel Stenberg

THANKS: updates from the 8.9.0 release

340ef55d23-Jul-2024 Daniel Stenberg

curl_easy_escape.md: move historic details to HISTORY

Closes #14261

1e76952622-Jul-2024 Daniel Stenberg

docs/libcurl: add to cleanup docs that their inputs go invalid

Reported-by: icy17 on github
Fixes #14248
Closes #14258

b0c1d1e122-Jul-2024 dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

GHA: bump github/codeql-action from 3.25.11 to 3.25.13

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.11 to 3.25.13.
- [Release notes](https://github.com

GHA: bump github/codeql-action from 3.25.11 to 3.25.13

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.11 to 3.25.13.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/b611370bb5703a7efb587f9d136a52ea24c5c38c...2d790406f505036ef40ecba973cc774a50395aac)

---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-type: direct:production
update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Closes #14255

show more ...

ae620a7022-Jul-2024 Stefan Eissing

conncache: connection shutdown, multi_socket handling

- implement the socket hash user/reader/writer processing also
for connections that are being shut down by the connection cache.

conncache: connection shutdown, multi_socket handling

- implement the socket hash user/reader/writer processing also
for connections that are being shut down by the connection cache.
- split out handling of current vs. last pollset socket event handling
into a function available in other code parts
- add `shutdown_poll` pollset to `connectdata` struct so that changes
in the pollset can be recorded during shutdown. (The internal handle
cannot keep it since it might be used for many connections)

Reported-by: calvin2021y on github
Fixes #14252
Closes #14257

show more ...

8193ca5920-Jul-2024 Daniel Stenberg

tool_cb_prg: output "flying saucers" with leading carriage return

Because that is how the progress-bar is output, so when the progress-bar
has been shown at least once and the informatio

tool_cb_prg: output "flying saucers" with leading carriage return

Because that is how the progress-bar is output, so when the progress-bar
has been shown at least once and the information is reset, like for a
redirect, there might be a moment where the size goes from known to
unknown and then the flying saucerts are shown after a brief display of
the progress-bar.

It could previously cause accidental character leftovers on the right
side of the bar when using a narrow display.

Reported-by: Chris Webb
Fixes #14213
Closes #14246

show more ...

eef1755119-Jul-2024 Daniel Stenberg

lib: Curl_posttransfer => multi_posttransfer

Moved from transfer.c to multi.c as it was only used within multi.c

Made a void, as it returned a fixed return code nothing checked.

lib: Curl_posttransfer => multi_posttransfer

Moved from transfer.c to multi.c as it was only used within multi.c

Made a void, as it returned a fixed return code nothing checked.

Closes #14240

show more ...

bb639db619-Jul-2024 Daniel Stenberg

CURLOPT_SSL_VERIFYHOST.md: refresh

Move mentions of old behavior to the HISTORY section to make it easier
to read about modern behavior.

Added a MATCHING section.

Close

CURLOPT_SSL_VERIFYHOST.md: refresh

Move mentions of old behavior to the HISTORY section to make it easier
to read about modern behavior.

Added a MATCHING section.

Closes #14241

show more ...

56493eea19-Jul-2024 Daniel Stenberg

multi: do a final progress update on connect failure

To fix timing metric etc

Co-authored-by: Justin Maggard
Fixes #14204
Closes #14239

1f877b0f18-Jul-2024 Orgad Shaneh

md4: fix compilation with OpenSSL 1.x with md4 disabled

If OpenSSL 1.x is used, and it is configured with md4 disabled,
OPENSSL_NO_MD4 is defined in opensslconf.h, but this header was no

md4: fix compilation with OpenSSL 1.x with md4 disabled

If OpenSSL 1.x is used, and it is configured with md4 disabled,
OPENSSL_NO_MD4 is defined in opensslconf.h, but this header was not
included before checking for this define.

Later in md4.c, openssl/md4.h is included, and it includes that header
indirectly, leading to inconsistency within md4.c.

Since the md4.h branch was taken, wincrypt.h (or others) is not
included, and later below the USE_WIN32_CRYPTO branch is taken, but the
types are not defined.

Closes #14218

show more ...

8e13837e19-Jul-2024 martinevsky

ftp: remove redundant null pointer check in loop condition

Closes #14234

92e28f2818-Jul-2024 Justin Maggard

mbedtls: check version before getting tls version

mbedtls_ssl_get_version_number() was added in mbedtls 3.2.0. Check for
that version before using it.

Closes #14228

e22b509719-Jul-2024 martinevsky

urlapi: remove unused definition of HOST_BAD

Closes #14235

5a48825118-Jul-2024 Daniel Stenberg

curldown: fixups

- make DEFAULT sections less repetitive

- make historic mentions use HISTORY

- generate the protocols section on `# %PROTOCOLS%` instead of guessing

curldown: fixups

- make DEFAULT sections less repetitive

- make historic mentions use HISTORY

- generate the protocols section on `# %PROTOCOLS%` instead of guessing
where to put it

- generate the availability section on `# %AVAILABILITY%` instead of
guessing where to put it

- make the protocols section more verbose

Closes #14227

show more ...


docs/CURLDOWN.md
docs/libcurl/curl_easy_cleanup.md
docs/libcurl/curl_easy_duphandle.md
docs/libcurl/curl_easy_escape.md
docs/libcurl/curl_easy_getinfo.md
docs/libcurl/curl_easy_header.md
docs/libcurl/curl_easy_init.md
docs/libcurl/curl_easy_nextheader.md
docs/libcurl/curl_easy_option_by_id.md
docs/libcurl/curl_easy_option_by_name.md
docs/libcurl/curl_easy_option_next.md
docs/libcurl/curl_easy_pause.md
docs/libcurl/curl_easy_perform.md
docs/libcurl/curl_easy_recv.md
docs/libcurl/curl_easy_reset.md
docs/libcurl/curl_easy_send.md
docs/libcurl/curl_easy_setopt.md
docs/libcurl/curl_easy_strerror.md
docs/libcurl/curl_easy_unescape.md
docs/libcurl/curl_easy_upkeep.md
docs/libcurl/curl_escape.md
docs/libcurl/curl_formadd.md
docs/libcurl/curl_formfree.md
docs/libcurl/curl_formget.md
docs/libcurl/curl_free.md
docs/libcurl/curl_getdate.md
docs/libcurl/curl_getenv.md
docs/libcurl/curl_global_cleanup.md
docs/libcurl/curl_global_init.md
docs/libcurl/curl_global_init_mem.md
docs/libcurl/curl_global_sslset.md
docs/libcurl/curl_global_trace.md
docs/libcurl/curl_mime_addpart.md
docs/libcurl/curl_mime_data.md
docs/libcurl/curl_mime_data_cb.md
docs/libcurl/curl_mime_encoder.md
docs/libcurl/curl_mime_filedata.md
docs/libcurl/curl_mime_filename.md
docs/libcurl/curl_mime_free.md
docs/libcurl/curl_mime_headers.md
docs/libcurl/curl_mime_init.md
docs/libcurl/curl_mime_name.md
docs/libcurl/curl_mime_subparts.md
docs/libcurl/curl_mime_type.md
docs/libcurl/curl_mprintf.md
docs/libcurl/curl_multi_add_handle.md
docs/libcurl/curl_multi_assign.md
docs/libcurl/curl_multi_cleanup.md
docs/libcurl/curl_multi_fdset.md
docs/libcurl/curl_multi_get_handles.md
docs/libcurl/curl_multi_info_read.md
docs/libcurl/curl_multi_init.md
docs/libcurl/curl_multi_perform.md
docs/libcurl/curl_multi_poll.md
docs/libcurl/curl_multi_remove_handle.md
docs/libcurl/curl_multi_setopt.md
docs/libcurl/curl_multi_socket.md
docs/libcurl/curl_multi_socket_action.md
docs/libcurl/curl_multi_socket_all.md
docs/libcurl/curl_multi_strerror.md
docs/libcurl/curl_multi_timeout.md
docs/libcurl/curl_multi_wait.md
docs/libcurl/curl_multi_waitfds.md
docs/libcurl/curl_multi_wakeup.md
docs/libcurl/curl_pushheader_byname.md
docs/libcurl/curl_pushheader_bynum.md
docs/libcurl/curl_share_cleanup.md
docs/libcurl/curl_share_init.md
docs/libcurl/curl_share_setopt.md
docs/libcurl/curl_share_strerror.md
docs/libcurl/curl_slist_append.md
docs/libcurl/curl_slist_free_all.md
docs/libcurl/curl_strequal.md
docs/libcurl/curl_strnequal.md
docs/libcurl/curl_unescape.md
docs/libcurl/curl_url.md
docs/libcurl/curl_url_cleanup.md
docs/libcurl/curl_url_dup.md
docs/libcurl/curl_url_get.md
docs/libcurl/curl_url_set.md
docs/libcurl/curl_url_strerror.md
docs/libcurl/curl_version.md
docs/libcurl/curl_version_info.md
docs/libcurl/curl_ws_meta.md
docs/libcurl/curl_ws_recv.md
docs/libcurl/curl_ws_send.md
docs/libcurl/opts/CURLINFO_ACTIVESOCKET.md
docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.md
docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.md
docs/libcurl/opts/CURLINFO_CAINFO.md
docs/libcurl/opts/CURLINFO_CAPATH.md
docs/libcurl/opts/CURLINFO_CERTINFO.md
docs/libcurl/opts/CURLINFO_CONDITION_UNMET.md
docs/libcurl/opts/CURLINFO_CONNECT_TIME.md
docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.md
docs/libcurl/opts/CURLINFO_CONN_ID.md
docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.md
docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.md
docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.md
docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.md
docs/libcurl/opts/CURLINFO_CONTENT_TYPE.md
docs/libcurl/opts/CURLINFO_COOKIELIST.md
docs/libcurl/opts/CURLINFO_EFFECTIVE_METHOD.md
docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.md
docs/libcurl/opts/CURLINFO_FILETIME.md
docs/libcurl/opts/CURLINFO_FILETIME_T.md
docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.md
docs/libcurl/opts/CURLINFO_HEADER_SIZE.md
docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.md
docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.md
docs/libcurl/opts/CURLINFO_HTTP_VERSION.md
docs/libcurl/opts/CURLINFO_LASTSOCKET.md
docs/libcurl/opts/CURLINFO_LOCAL_IP.md
docs/libcurl/opts/CURLINFO_LOCAL_PORT.md
docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.md
docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.md
docs/libcurl/opts/CURLINFO_NUM_CONNECTS.md
docs/libcurl/opts/CURLINFO_OS_ERRNO.md
docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.md
docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.md
docs/libcurl/opts/CURLINFO_PRIMARY_IP.md
docs/libcurl/opts/CURLINFO_PRIMARY_PORT.md
docs/libcurl/opts/CURLINFO_PRIVATE.md
docs/libcurl/opts/CURLINFO_PROTOCOL.md
docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.md
docs/libcurl/opts/CURLINFO_PROXY_ERROR.md
docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.md
docs/libcurl/opts/CURLINFO_QUEUE_TIME_T.md
docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.md
docs/libcurl/opts/CURLINFO_REDIRECT_TIME.md
docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.md
docs/libcurl/opts/CURLINFO_REDIRECT_URL.md
docs/libcurl/opts/CURLINFO_REFERER.md
docs/libcurl/opts/CURLINFO_REQUEST_SIZE.md
docs/libcurl/opts/CURLINFO_RESPONSE_CODE.md
docs/libcurl/opts/CURLINFO_RETRY_AFTER.md
docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.md
docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.md
docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.md
docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.md
docs/libcurl/opts/CURLINFO_SCHEME.md
docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.md
docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.md
docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.md
docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.md
docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.md
docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.md
docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.md
docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.md
docs/libcurl/opts/CURLINFO_SSL_ENGINES.md
docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.md
docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.md
docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.md
docs/libcurl/opts/CURLINFO_TLS_SESSION.md
docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.md
docs/libcurl/opts/CURLINFO_TOTAL_TIME.md
docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.md
docs/libcurl/opts/CURLINFO_USED_PROXY.md
docs/libcurl/opts/CURLINFO_XFER_ID.md
docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.md
docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.md
docs/libcurl/opts/CURLMOPT_MAXCONNECTS.md
docs/libcurl/opts/CURLMOPT_MAX_CONCURRENT_STREAMS.md
docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.md
docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.md
docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.md
docs/libcurl/opts/CURLMOPT_PIPELINING.md
docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.md
docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.md
docs/libcurl/opts/CURLMOPT_PUSHDATA.md
docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.md
docs/libcurl/opts/CURLMOPT_SOCKETDATA.md
docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.md
docs/libcurl/opts/CURLMOPT_TIMERDATA.md
docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.md
docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.md
docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.md
docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.md
docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.md
docs/libcurl/opts/CURLOPT_ALTSVC.md
docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.md
docs/libcurl/opts/CURLOPT_APPEND.md
docs/libcurl/opts/CURLOPT_AUTOREFERER.md
docs/libcurl/opts/CURLOPT_AWS_SIGV4.md
docs/libcurl/opts/CURLOPT_BUFFERSIZE.md
docs/libcurl/opts/CURLOPT_CAINFO.md
docs/libcurl/opts/CURLOPT_CAINFO_BLOB.md
docs/libcurl/opts/CURLOPT_CAPATH.md
docs/libcurl/opts/CURLOPT_CA_CACHE_TIMEOUT.md
docs/libcurl/opts/CURLOPT_CERTINFO.md
docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.md
docs/libcurl/opts/CURLOPT_CHUNK_DATA.md
docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.md
docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.md
docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.md
docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.md
docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.md
docs/libcurl/opts/CURLOPT_CONNECT_ONLY.md
docs/libcurl/opts/CURLOPT_CONNECT_TO.md
docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.md
docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.md
docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.md
docs/libcurl/opts/CURLOPT_COOKIE.md
docs/libcurl/opts/CURLOPT_COOKIEFILE.md
docs/libcurl/opts/CURLOPT_COOKIEJAR.md
docs/libcurl/opts/CURLOPT_COOKIELIST.md
docs/libcurl/opts/CURLOPT_COOKIESESSION.md
docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.md
docs/libcurl/opts/CURLOPT_CRLF.md
docs/libcurl/opts/CURLOPT_CRLFILE.md
docs/libcurl/opts/CURLOPT_CURLU.md
docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.md
docs/libcurl/opts/CURLOPT_DEBUGDATA.md
docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.md
docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.md
docs/libcurl/opts/CURLOPT_DIRLISTONLY.md
docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.md
docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.md
docs/libcurl/opts/CURLOPT_DNS_INTERFACE.md
docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.md
docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.md
docs/libcurl/opts/CURLOPT_DNS_SERVERS.md
docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.md
docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.md
docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYHOST.md
docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYPEER.md
docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYSTATUS.md
docs/libcurl/opts/CURLOPT_DOH_URL.md
docs/libcurl/opts/CURLOPT_ECH.md
docs/libcurl/opts/CURLOPT_EGDSOCKET.md
docs/libcurl/opts/CURLOPT_ERRORBUFFER.md
docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.md
docs/libcurl/opts/CURLOPT_FAILONERROR.md
docs/libcurl/opts/CURLOPT_FILETIME.md
docs/libcurl/opts/CURLOPT_FNMATCH_DATA.md
docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.md
docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.md
docs/libcurl/opts/CURLOPT_FORBID_REUSE.md
docs/libcurl/opts/CURLOPT_FRESH_CONNECT.md
docs/libcurl/opts/CURLOPT_FTPPORT.md
docs/libcurl/opts/CURLOPT_FTPSSLAUTH.md
docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.md
docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.md
docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.md
docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.md
docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.md
docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.md
docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.md
docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.md
docs/libcurl/opts/CURLOPT_FTP_USE_PRET.md
docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.md
docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.md
docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.md
docs/libcurl/opts/CURLOPT_HAPROXY_CLIENT_IP.md
docs/libcurl/opts/CURLOPT_HEADER.md
docs/libcurl/opts/CURLOPT_HEADERDATA.md
docs/libcurl/opts/CURLOPT_HEADERFUNCTION.md
docs/libcurl/opts/CURLOPT_HEADEROPT.md
docs/libcurl/opts/CURLOPT_HSTS.md
docs/libcurl/opts/CURLOPT_HSTSREADDATA.md
docs/libcurl/opts/CURLOPT_HSTSREADFUNCTION.md
docs/libcurl/opts/CURLOPT_HSTSWRITEDATA.md
docs/libcurl/opts/CURLOPT_HSTSWRITEFUNCTION.md
docs/libcurl/opts/CURLOPT_HSTS_CTRL.md
docs/libcurl/opts/CURLOPT_HTTP09_ALLOWED.md
docs/libcurl/opts/CURLOPT_HTTP200ALIASES.md
docs/libcurl/opts/CURLOPT_HTTPAUTH.md
docs/libcurl/opts/CURLOPT_HTTPGET.md
docs/libcurl/opts/CURLOPT_HTTPHEADER.md
docs/libcurl/opts/CURLOPT_HTTPPOST.md
docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.md
docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.md
docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.md
docs/libcurl/opts/CURLOPT_HTTP_VERSION.md
docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.md
docs/libcurl/opts/CURLOPT_INFILESIZE.md
docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.md
docs/libcurl/opts/CURLOPT_INTERFACE.md
docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.md
docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.md
docs/libcurl/opts/CURLOPT_IOCTLDATA.md
docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.md
docs/libcurl/opts/CURLOPT_IPRESOLVE.md
docs/libcurl/opts/CURLOPT_ISSUERCERT.md
docs/libcurl/opts/CURLOPT_ISSUERCERT_BLOB.md
docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.md
docs/libcurl/opts/CURLOPT_KEYPASSWD.md
docs/libcurl/opts/CURLOPT_KRBLEVEL.md
docs/libcurl/opts/CURLOPT_LOCALPORT.md
docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.md
docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.md
docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.md
docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.md
docs/libcurl/opts/CURLOPT_MAIL_AUTH.md
docs/libcurl/opts/CURLOPT_MAIL_FROM.md
docs/libcurl/opts/CURLOPT_MAIL_RCPT.md
docs/libcurl/opts/CURLOPT_MAIL_RCPT_ALLOWFAILS.md
docs/libcurl/opts/CURLOPT_MAXAGE_CONN.md
docs/libcurl/opts/CURLOPT_MAXCONNECTS.md
docs/libcurl/opts/CURLOPT_MAXFILESIZE.md
docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.md
docs/libcurl/opts/CURLOPT_MAXLIFETIME_CONN.md
docs/libcurl/opts/CURLOPT_MAXREDIRS.md
docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.md
docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.md
docs/libcurl/opts/CURLOPT_MIMEPOST.md
docs/libcurl/opts/CURLOPT_MIME_OPTIONS.md
docs/libcurl/opts/CURLOPT_NETRC.md
docs/libcurl/opts/CURLOPT_NETRC_FILE.md
docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.md
docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.md
docs/libcurl/opts/CURLOPT_NOBODY.md
docs/libcurl/opts/CURLOPT_NOPROGRESS.md
docs/libcurl/opts/CURLOPT_NOPROXY.md
docs/libcurl/opts/CURLOPT_NOSIGNAL.md
docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.md
docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.md
docs/libcurl/opts/CURLOPT_PASSWORD.md
docs/libcurl/opts/CURLOPT_PATH_AS_IS.md
docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.md
docs/libcurl/opts/CURLOPT_PIPEWAIT.md
docs/libcurl/opts/CURLOPT_PORT.md
docs/libcurl/opts/CURLOPT_POST.md
docs/libcurl/opts/CURLOPT_POSTFIELDS.md
docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.md
docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.md
docs/libcurl/opts/CURLOPT_POSTQUOTE.md
docs/libcurl/opts/CURLOPT_POSTREDIR.md
docs/libcurl/opts/CURLOPT_PREQUOTE.md
docs/libcurl/opts/CURLOPT_PREREQDATA.md
docs/libcurl/opts/CURLOPT_PREREQFUNCTION.md
docs/libcurl/opts/CURLOPT_PRE_PROXY.md
docs/libcurl/opts/CURLOPT_PRIVATE.md
docs/libcurl/opts/CURLOPT_PROGRESSDATA.md
docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.md
docs/libcurl/opts/CURLOPT_PROTOCOLS.md
docs/libcurl/opts/CURLOPT_PROTOCOLS_STR.md
docs/libcurl/opts/CURLOPT_PROXY.md
docs/libcurl/opts/CURLOPT_PROXYAUTH.md
docs/libcurl/opts/CURLOPT_PROXYHEADER.md
docs/libcurl/opts/CURLOPT_PROXYPASSWORD.md
docs/libcurl/opts/CURLOPT_PROXYPORT.md
docs/libcurl/opts/CURLOPT_PROXYTYPE.md
docs/libcurl/opts/CURLOPT_PROXYUSERNAME.md
docs/libcurl/opts/CURLOPT_PROXYUSERPWD.md
docs/libcurl/opts/CURLOPT_PROXY_CAINFO.md
docs/libcurl/opts/CURLOPT_PROXY_CAINFO_BLOB.md
docs/libcurl/opts/CURLOPT_PROXY_CAPATH.md
docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.md
docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT.md
docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT_BLOB.md
docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.md
docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.md
docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.md
docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.md
docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.md
docs/libcurl/opts/CURLOPT_PROXY_SSLCERT_BLOB.md
docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.md
docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.md
docs/libcurl/opts/CURLOPT_PROXY_SSLKEY_BLOB.md
docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.md
docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.md
docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.md
docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.md
docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.md
docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.md
docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.md
docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.md
docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.md
docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.md
docs/libcurl/opts/CURLOPT_PUT.md
docs/libcurl/opts/CURLOPT_QUICK_EXIT.md
docs/libcurl/opts/CURLOPT_QUOTE.md
docs/libcurl/opts/CURLOPT_RANDOM_FILE.md
docs/libcurl/opts/CURLOPT_RANGE.md
docs/libcurl/opts/CURLOPT_READDATA.md
docs/libcurl/opts/CURLOPT_READFUNCTION.md
docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.md
docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS_STR.md
docs/libcurl/opts/CURLOPT_REFERER.md
docs/libcurl/opts/CURLOPT_REQUEST_TARGET.md
docs/libcurl/opts/CURLOPT_RESOLVE.md
docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.md
docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.md
docs/libcurl/opts/CURLOPT_RESUME_FROM.md
docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.md
docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.md
docs/libcurl/opts/CURLOPT_RTSP_REQUEST.md
docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.md
docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.md
docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.md
docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.md
docs/libcurl/opts/CURLOPT_SASL_AUTHZID.md
docs/libcurl/opts/CURLOPT_SASL_IR.md
docs/libcurl/opts/CURLOPT_SEEKDATA.md
docs/libcurl/opts/CURLOPT_SEEKFUNCTION.md
docs/libcurl/opts/CURLOPT_SERVER_RESPONSE_TIMEOUT.md
docs/libcurl/opts/CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.md
docs/libcurl/opts/CURLOPT_SERVICE_NAME.md
docs/libcurl/opts/CURLOPT_SHARE.md
docs/libcurl/opts/CURLOPT_SOCKOPTDATA.md
docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.md
docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.md
docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.md
docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.md
docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.md
docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.md
docs/libcurl/opts/CURLOPT_SSH_HOSTKEYDATA.md
docs/libcurl/opts/CURLOPT_SSH_HOSTKEYFUNCTION.md
docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.md
docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.md
docs/libcurl/opts/CURLOPT_SSH_KEYDATA.md
docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.md
docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.md
docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.md
docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.md
docs/libcurl/opts/CURLOPT_SSLCERT.md
docs/libcurl/opts/CURLOPT_SSLCERTTYPE.md
docs/libcurl/opts/CURLOPT_SSLCERT_BLOB.md
docs/libcurl/opts/CURLOPT_SSLENGINE.md
docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.md
docs/libcurl/opts/CURLOPT_SSLKEY.md
docs/libcurl/opts/CURLOPT_SSLKEYTYPE.md
docs/libcurl/opts/CURLOPT_SSLKEY_BLOB.md
docs/libcurl/opts/CURLOPT_SSLVERSION.md
docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.md
docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.md
docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.md
docs/libcurl/opts/CURLOPT_SSL_EC_CURVES.md
docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.md
docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.md
docs/libcurl/opts/CURLOPT_SSL_FALSESTART.md
docs/libcurl/opts/CURLOPT_SSL_OPTIONS.md
docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.md
docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.md
docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.md
docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.md
docs/libcurl/opts/CURLOPT_STDERR.md
docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.md
docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.md
docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.md
docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.md
docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.md
docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.md
docs/libcurl/opts/CURLOPT_TCP_KEEPCNT.md
docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.md
docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.md
docs/libcurl/opts/CURLOPT_TCP_NODELAY.md
docs/libcurl/opts/CURLOPT_TELNETOPTIONS.md
docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.md
docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.md
docs/libcurl/opts/CURLOPT_TIMECONDITION.md
docs/libcurl/opts/CURLOPT_TIMEOUT.md
docs/libcurl/opts/CURLOPT_TIMEOUT_MS.md
docs/libcurl/opts/CURLOPT_TIMEVALUE.md
docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.md
docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.md
docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.md
docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.md
docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.md
docs/libcurl/opts/CURLOPT_TRAILERDATA.md
docs/libcurl/opts/CURLOPT_TRAILERFUNCTION.md
docs/libcurl/opts/CURLOPT_TRANSFERTEXT.md
docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.md
docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.md
docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.md
docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.md
docs/libcurl/opts/CURLOPT_UPLOAD.md
docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.md
docs/libcurl/opts/CURLOPT_URL.md
docs/libcurl/opts/CURLOPT_USERAGENT.md
docs/libcurl/opts/CURLOPT_USERNAME.md
docs/libcurl/opts/CURLOPT_USERPWD.md
docs/libcurl/opts/CURLOPT_USE_SSL.md
docs/libcurl/opts/CURLOPT_VERBOSE.md
docs/libcurl/opts/CURLOPT_WILDCARDMATCH.md
docs/libcurl/opts/CURLOPT_WRITEDATA.md
docs/libcurl/opts/CURLOPT_WRITEFUNCTION.md
docs/libcurl/opts/CURLOPT_WS_OPTIONS.md
docs/libcurl/opts/CURLOPT_XFERINFODATA.md
docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.md
docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.md
docs/libcurl/opts/CURLSHOPT_LOCKFUNC.md
docs/libcurl/opts/CURLSHOPT_SHARE.md
docs/libcurl/opts/CURLSHOPT_UNLOCKFUNC.md
docs/libcurl/opts/CURLSHOPT_UNSHARE.md
docs/libcurl/opts/CURLSHOPT_USERDATA.md
scripts/cd2nroff
126cf7ec19-Jul-2024 Tal Regev

GHA/windows: enable libssh in !ssl MSVC job

Closes #14232

bd46b3ca16-Jul-2024 Tal Regev

GHA/windows: enable libidn2 in !ssl MSVC job

Closes #14200

c349bd6617-Jul-2024 Viktor Szakats

GHA/macos: improve, fix gcc/llvm, add new test matrix

This PR began as an attempt to drop GCC support, after repeated reports
on fallouts when trying to use it on macOS.

Then it

GHA/macos: improve, fix gcc/llvm, add new test matrix

This PR began as an attempt to drop GCC support, after repeated reports
on fallouts when trying to use it on macOS.

Then it transformed into a 3-week project turning up the issues causing
the fallouts, ending up including llvm and all available Xcode / macOS
SDK, macOS runner image, build tools and compiler vendors and versions.
Accumulating 400 sub-commits.

I developed and tested all fixes under this PR, then merged them as
separate patches.

This PR retained CI jobs updates, extensively reworking and extending
them: [1]

At first it seemed GCC and the Apple SDK is "naturally" growing more
incompatible, as Apple added further non-standard features to their
headers. This is partly true, but reality is more complicated.

Besides some issues local to curl, there were bugs in Apple SDK
headers, Homebrew GCC builds, feature missing in the old llvm version
pre-installed on GitHub CI runner images, and subtle incompatibilities
between GCC and llvm/clang when handling language extensions.

Resulting compiler errors seldom pointed to a useful direction, and
internet search was silent about these issues too. Thus, I had to peel
them off layer by layer, using trial and error, and by recognizing
patterns of failures accross 150-200 builds combinations. Exposing
configure logs, and curl_config.h in the CI logs helped too.

1. GCC header compatibility layer ("hack" as GCC calls it)

The toughest issue is GCC's built-in compatibility layer:
https://github.com/gcc-mirror/gcc/tree/master/fixincludes

This patch layer is further patched by a "Darwin compatibility" project
applied on top by Homebrew GCC via:
https://github.com/iains/gcc-12-branch
https://github.com/iains/gcc-13-branch
https://github.com/iains/gcc-14-branch

The hack layer is designed in a way that breaks more builds than it
fixes, esp. in context of GHA runners. The idea is to build GCC
specifically for the SDK for the target macOS version. The problem with
this approach is that the Xcode + SDK installed on the local/CI machine
often does not match with the SDK used on while building GCC on
Homebrew's build machines. In these cases the GCC compatibility layer
turns into an "uncompatibility" layer and consistently breaks builds.
curl cannot offer a fix for this, because the solution (I found) is to
patch the toolchain on the local machine. I implemented this for our CI
builds and curl-for-win. In other case the user must do this patching
manually, or choose a compatible GCC + Xcode/SDK combination.

An upstream fix doesn't seem trivial either, because the issue is
ingrained in the compatibility layer's design. Offering an `-fapplesdk`
(or recognizing `-target`) option and/or fixing them within the compiler
would seem like a more robust option, and also how mainline llvm solves
this.

Here's a table summarizing the GCC + SDK combinations and curl build
failures: [2]

More info: https://github.com/curl/curl/issues/10356#issuecomment-2222734103

db135f8d7207b20d531e7e2100a49f3e16bdcfab #14119 macos: add workaround for gcc, non-c-ares, IPv6, compile error
Ref: https://github.com/curl/curl-for-win/commit/e2db3c475f5981352e6e6a79854a255805b28deb
Ref: https://github.com/curl/curl-for-win/commit/f5c58d7fef78e972be33ca2355dcb42ba56622a6

2. Homebrew GCC's `availability` extension

A recent minor Homebrew GCC upgrade caused major breakage. The "Darwin
compatibility" patch applied to GCC implemented the `availability`
compiler attribute in GCC. Apple SDK detected this and enabled using
them, but as it turns out GCC accepts compiler attributes with slightly
different rules than llvm/clang, and how the Apple SDK uses them,
breaking builds.

Affected Homebrew GCC versions are: 12.4.0, 13.3.0 and 14.1.0.

Possibly tracked here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108796
More info: https://github.com/llvm/llvm-project/issues/81767

Commit implementing the `availability` macro:
gcc-12: https://github.com/iains/gcc-12-branch/commit/fd5530b7cb0012bf4faeddd45e13054a1dfa6783
gcc-13: https://github.com/iains/gcc-13-branch/commit/cb7e4eca68cfc4763474e2eb0935a844458842a8
gcc-14: https://github.com/iains/gcc-14-branch/commit/ff62a108865a6403f5017380d7018250c1d3306f

That applied to Homebrew GCC (12.4.0):
https://github.com/Homebrew/homebrew-core/commit/b904223d9893f62bec2a8f7483bf5992747fc6c7#diff-89dd0b4176eca7fcc24b591943509bf8a8d6ea904d71e5dfcd6b78fed62fc574R44-R48

Ref: #13700
More info: https://github.com/curl/curl/pull/14091#issuecomment-2222703468

e91fcbac7d86292858718a0bfebad57978761af4 #14155 macos: undo `availability` macro enabled by Homebrew gcc

3. Proprietary Apple SDK macros

Apple SDK expects certain macros predefined by the compiler. Missing
them may causes odd issues. Mainline llvm is keeping up with Apple
clang, but it needs a fresh version, while the one installed on GitHub
runners is old (v15). I patched these in `lib/curl_setup.h`.

baa3270846b2a7307cbd0dd5c02c4e5f00e388dd #14134 build: fix llvm 16 or older + Xcode 15 or newer, and gcc

4. Apple SDK header bug

Without certain predefined macros, SDK headers can take a codepath where
it mis-defines its own `TARGET_OS_OSX` macro, which make it break its
own headers later. I patched it in `lib/curl_setup.h`.

ff784af461175584c73e7e2b65af00b1a5a6f67f #14159 build: fix llvm 17 and older + macOS SDK 14.4 and newer

5. `TargetConditionals.h` requires `sys/types.h`

Fixed in curl. It caused feature-detection failurs with autotools, and
could break builds in certain configurations.

e1f6192939c9c5ab2310b60bedf4c07d635193f6 #14130 configure: fix `SystemConfiguration` detection

6. Differences between autotools and CMake compiler options

Fixed it by syncing compiler warning options.

59cadacfcc1d39472245979cdbd614c7a9af6f0d #14128 build: sync warning options between autotools, cmake & compilers

7. Differences between autotools and CMake dependency detection

Fixed it by improving detection of libidn2, with some more fixes
pending for the next feature window.

f43adc2c4978f7f82a359e89186e58a31d17b0ad #14137 cmake: detect `libidn2` also via `pkg-config`
Ref: #14136 cmake: detect `nghttp2` via `pkg-config`, enable by default

8. libidn2 detection bug with CMake

Fixed the root cause and also the trigger in the CI config.

764fbabf6ed4c1d36c0ab2033ac8df52d9923cd7 #14175 cmake: fix builds with detected libidn2 lib but undetected header

9. Suppressed compiler warnings inside Apple-specific curl code

Fixed these warnings, which allowed to stop silencing them.

b05dc7eb3592305de9fa85640767f3dd2a8d4c93 #14122 sectransp: fix `HAVE_BUILTIN_AVAILABLE` checks to not emit warnings
5fa534b0dacdc120aaab0766047e0ecac37be4b3 #14162 sectransp: fix clang compiler warnings, stop silencing them

10. CMake mis-detecting a CA bundle path on macOS

d2ef6255f4a040397d2f40ab7cbf65a203201cd9 #14182 cmake: sync CA bundle/path detection with autotools

11. Failure to build tests with LibreSSL or wolfSSL with CMake

Fixed by dropping unnecessary includes, makign test builds dependent
on dependency headers.

3765d75ce47b66289f946382b649d0e99389dc77 #14172 cmake: fix building `unit1600` due to missing `ssl/openssl.h`

12. curl tests with CMake

curl's CMake was missing bits for running the C preprocessor accurately.
It made tests 1119 and 1167 fail. I implemented the missing bits.

efc2c5184d008fe2e5910fd03263e1ab0331d4e6 #14124 tests: include current directory when running test Perl commands
c09db8b51b88ee6ad55bd637dcb4b47678e30906 #14129 cmake: create `configurehelp.pm` like autotools does
67cc1e3400b77536a3ca529c986247e1ef985e6e #14125 test1119: adapt for `.md` input

13. GCC missing `__builtin_available()` support

curl source code assumes this is available to enable certain codepaths.
It's also intermixed with monotonic timer support.

14. Monotonic timer support with GCC

Detected by GCC, while it probably shouldn't be. llvm/clang detects it
depending on target OS version. I've been playing with this, but so far
without a conclusion or fix.

15. Runtime/test failures with GCC

I couldn't find the reason for most of this. A bunch of RTSP tests fail
with GCC. SecureTransport + HTTP/2 is failing a bunch of tests. With
OpenSSL it fails two of those. SecureTransport builds also fail one DoH
test.

16. Runtime/test failure in llvm/clang

AppleIDN support received a fix with two more remaining.

fd0250869f7837e4a48d7e6f54cc0801ad3820e8 #14179 #14176 IDN: fix ß with AppleIDN

17. Other issues found and fixed while working on this:

2c15aa5765900d4351e733671a1c8c3785beee1a GHA/macos: delete misplaced `CFLAGS`, drop redundant CMake option
80fb7c0bef209735ab352bf4afa31193a7bc65f1 #14126 configure: limit `SystemConfiguration` test to non-c-ares, IPv6 builds
cfd6f43d6ca7e57670b422bab7bbf10221a2cf3e #14127 build: tidy up `__builtin_available` feature checks (Apple)
bae555359979016999a9425a2d489f219a78abdd #14174 runtests: show name and keywords for failed tests in summary
09cdf7e5315711dea4ce7dcf5d99a4d41e7f658b #14178 cmake: delete unused `HAVE_LIBSSH2`, `HAVE_LIBSOCKET` macros
d3595c74fab829f07ef44da1b7fc2f5668767020 #14186 configure: CA bundle/path detection fixes
58772b0e082eda333e0a5fc8fb0bc7f17a3cd99c #14187 runtests: set `SOURCE_DATE_EPOCH` to fix failing around midnight
18f1cd7a77c4beecfd977d43f55634eb593ac99e #14183 tests: sync feature names with `curl -V`
4c22d97be786ed801e050da6872dd3143d6d0a59 #14181 build: use `#error` instead of invalid syntax

Pending merges:

- #14185 runtests: fold test details for GitHub CI runs
- #14197 cmake: grab-bag of tidy-ups
- #14196 configure: limit `__builtin_available` test to Darwin

Summary:

In general GCC doesn't seem to be a good fit with curl and macOS for
now. These "lucky" combinations (GitHub Actions runner) will build out
of the box now: macos-14 + Xcode 15.0.1 + gcc-11, gcc-12, gcc-14. The
rest builds with the ugly workaround in place, but all this still leaves
some runtime issues.

More info and links in the commit messages and source code.

[1]: This PR:
- add info about target OS version requirements per feature, with OS
names and release years.
- stop using `-Wno-deprecated-declarations` to suppress warnings.
- use `LDFLAGS=-w` to suppress 'object file was built for newer macOS
version than being linked' warnings.
(there were tens of thousands of them in some jobs)
- allow overriding Xcode version in all jobs.
- improve job names.
- abbreviate CMake as CM, autotools as AM for more compact job names.
- shorten job names by using `!` instead of `no-` and `non-`.
- bump parellel tests to 10 (from 5).
- drop using `--enable-maintainer-mode` `./configure` option.
- add gcc-12 no-ssl, autotools job with tests, ignore failing test
results. (It's not yet clear why gcc-12 builds have different runtime
results than clang/llvm ones.)
- add comments with OS names and release years next to version numbers,
e.g. 10.15 # Catalina (2019)
- fix broken gcc-12 SecureTransport build.
- show compiler, Xcode, SDK, gcc hack SDK versions, Homebrew
preinstalled packages and C compiler predefined macros for each job.
Useful for debugging all the strange problems these builds might have.
- merge brew bundle and install steps.
- move step names to the top.
- dump configure log for both cmake and autotools also for successful
builds. Useful for debugging.
- dump curl_config.h in short (sorted #defines) and full form.
- add support for the mainline llvm compiler.
- set sysroot for gcc and llvm.
- add timeout for cmake jobs.
- add new job matrix: combinations
It supports building all possible compiler, runner image, Xcode/SDK
combinations, with cmake and autotools, target OS versions and with or
without SecureTransport. It's quick. GHA limits the maximum number of
matrix jobs at 256.
I used this as a test-rig to fix the macOS build fallouts with gcc and
llvm.
I settled with 16 jobs, trying to maximize fallout coverage.
- implement hack to make Homebrew gcc work with all available SDKs.
- add handy mini-table about Xcode / SDK versions, OS names, years for
each GHA images, with the defaults.
- add tests for cmake jobs.
- make cmake config hack to link GnuTLS less intrusive.
- stop ignoring test 1452, seems fine now.
- fix to enable libpsl in autotools builds.
- enable libpsl in cmake builds.
- add an llvm job with tests (both autotools and cmake).
- delete similar macOS jobs from Circle CI. GHA is now arm64 too.

[2]: Homebrew GCC vs GHA runner images vs curl builds:
```
macOS Xcode gcc gcc SDK hacks Xcode SDK SDK major Build Compile
(*def) (Homebrew) (CommandLineTools) versions error
-------- -------- ---------- ------------------ ---------- --------- ----- ---------------------
macos-12 13.1 GCC 11.4.0 MacOSX12 MacOSX12.0
macos-12 13.2.1 GCC 11.4.0 MacOSX12 MacOSX12.1
macos-12 13.3.1 GCC 11.4.0 MacOSX12 MacOSX12.3
macos-12 13.4.1 GCC 11.4.0 MacOSX12 MacOSX12.3
macos-12 14.0.1 GCC 11.4.0 MacOSX12 MacOSX12.3
macos-12 14.1 GCC 11.4.0 MacOSX12 MacOSX13.0 MISMATCH FAIL /Applications/Xcode_14.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern'
macos-12 *14.2 GCC 11.4.0 MacOSX12 MacOSX13.1 MISMATCH FAIL /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern'
macos-13 14.1 GCC 11.4.0 MacOSX13 MacOSX13.0
macos-13 14.2 GCC 11.4.0 MacOSX13 MacOSX13.1
macos-13 14.3.1 GCC 11.4.0 MacOSX13 MacOSX13.3
macos-13 *15.0.1 GCC 11.4.0 MacOSX13 MacOSX14.0 MISMATCH FAIL /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t'
macos-13 15.1 GCC 11.4.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t'
macos-13 15.2 GCC 11.4.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t'
macos-14 14.3.1 GCC 11.4.0 MacOSX14 MacOSX13.3 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-14 *15.0.1 GCC 11.4.0 MacOSX14 MacOSX14.0
macos-14 15.1 GCC 11.4.0 MacOSX14 MacOSX14.2
macos-14 15.2 GCC 11.4.0 MacOSX14 MacOSX14.2
macos-14 15.3 GCC 11.4.0 MacOSX14 MacOSX14.4
macos-14 15.4 GCC 11.4.0 MacOSX14 MacOSX14.5
macos-14 16.0 GCC 11.4.0 MacOSX14 MacOSX15.0 MISMATCH FAIL /opt/homebrew/Cellar/gcc@11/11.4.0/lib/gcc/11/gcc/aarch64-apple-darwin23/11/include-fixed/stdio.h:83:8: error: unknown type name 'FILE'
macos-12 13.1 GCC 12.4.0 MacOSX12 MacOSX12.0
macos-12 13.2.1 GCC 12.4.0 MacOSX12 MacOSX12.1
macos-12 13.3.1 GCC 12.4.0 MacOSX12 MacOSX12.3
macos-12 13.4.1 GCC 12.4.0 MacOSX12 MacOSX12.3
macos-12 14.0.1 GCC 12.4.0 MacOSX12 MacOSX12.3
macos-12 14.1 GCC 12.4.0 MacOSX12 MacOSX13.0 MISMATCH FAIL /Applications/Xcode_14.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern'
macos-12 *14.2 GCC 12.4.0 MacOSX12 MacOSX13.1 MISMATCH FAIL /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern'
macos-13 14.1 GCC 12.4.0 MacOSX13 MacOSX13.0
macos-13 14.2 GCC 12.4.0 MacOSX13 MacOSX13.1
macos-13 14.3.1 GCC 12.4.0 MacOSX13 MacOSX13.3
macos-13 *15.0.1 GCC 12.4.0 MacOSX13 MacOSX14.0 MISMATCH FAIL /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t'
macos-13 15.1 GCC 12.4.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t'
macos-13 15.2 GCC 12.4.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t'
macos-14 14.3.1 GCC 12.4.0 MacOSX14 MacOSX13.3 MISMATCH
macos-14 *15.0.1 GCC 12.4.0 MacOSX14 MacOSX14.0
macos-14 15.1 GCC 12.4.0 MacOSX14 MacOSX14.2
macos-14 15.2 GCC 12.4.0 MacOSX14 MacOSX14.2
macos-14 15.3 GCC 12.4.0 MacOSX14 MacOSX14.4
macos-14 15.4 GCC 12.4.0 MacOSX14 MacOSX14.5
macos-14 16.0 GCC 12.4.0 MacOSX14 MacOSX15.0 MISMATCH FAIL /opt/homebrew/Cellar/gcc@12/12.4.0/lib/gcc/12/gcc/aarch64-apple-darwin23/12/include-fixed/stdio.h:83:8: error: unknown type name 'FILE'
macos-12 13.1 GCC 13.3.0 MacOSX12 MacOSX12.0
macos-12 13.2.1 GCC 13.3.0 MacOSX12 MacOSX12.1
macos-12 13.3.1 GCC 13.3.0 MacOSX12 MacOSX12.3
macos-12 13.4.1 GCC 13.3.0 MacOSX12 MacOSX12.3
macos-12 14.0.1 GCC 13.3.0 MacOSX12 MacOSX12.3
macos-12 14.1 GCC 13.3.0 MacOSX12 MacOSX13.0 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-12 *14.2 GCC 13.3.0 MacOSX12 MacOSX13.1 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-13 14.1 GCC 13.3.0 MacOSX13 MacOSX13.0
macos-13 14.2 GCC 13.3.0 MacOSX13 MacOSX13.1
macos-13 14.3.1 GCC 13.3.0 MacOSX13 MacOSX13.3
macos-13 *15.0.1 GCC 13.3.0 MacOSX13 MacOSX14.0 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-13 15.1 GCC 13.3.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-13 15.2 GCC 13.3.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-14 14.3.1 GCC 13.3.0 MacOSX14 MacOSX13.3 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-14 *15.0.1 GCC 13.3.0 MacOSX14 MacOSX14.0 FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-14 15.1 GCC 13.3.0 MacOSX14 MacOSX14.2 FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-14 15.2 GCC 13.3.0 MacOSX14 MacOSX14.2 FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers
macos-14 15.3 GCC 13.3.0 MacOSX14 MacOSX14.4
macos-14 15.4 GCC 13.3.0 MacOSX14 MacOSX14.5
macos-14 16.0 GCC 13.3.0 MacOSX14 MacOSX15.0 MISMATCH FAIL /opt/homebrew/Cellar/gcc@13/13.3.0/lib/gcc/13/gcc/aarch64-apple-darwin23/13/include-fixed/stdio.h:83:8: error: unknown type name 'FILE'
macos-12 13.1 GCC 14.1.0 MacOSX12 MacOSX12.0
macos-12 13.2.1 GCC 14.1.0 MacOSX12 MacOSX12.1
macos-12 13.3.1 GCC 14.1.0 MacOSX12 MacOSX12.3
macos-12 13.4.1 GCC 14.1.0 MacOSX12 MacOSX12.3
macos-12 14.0.1 GCC 14.1.0 MacOSX12 MacOSX12.3
macos-12 14.1 GCC 14.1.0 MacOSX12 MacOSX13.0 MISMATCH FAIL /Applications/Xcode_14.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern'
macos-12 *14.2 GCC 14.1.0 MacOSX12 MacOSX13.1 MISMATCH FAIL /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern'
macos-13 14.1 GCC 14.1.0 MacOSX13 MacOSX13.0
macos-13 14.2 GCC 14.1.0 MacOSX13 MacOSX13.1
macos-13 14.3.1 GCC 14.1.0 MacOSX13 MacOSX13.3
macos-13 *15.0.1 GCC 14.1.0 MacOSX13 MacOSX14.0 MISMATCH FAIL /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:70:1: error: type defaults to 'int' in declaration of 'DISPATCH_DECL_FACTORY_CLASS_SWIFT' [-Wimplicit-int]
macos-13 15.1 GCC 14.1.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:70:1: error: type defaults to 'int' in declaration of 'DISPATCH_DECL_FACTORY_CLASS_SWIFT' [-Wimplicit-int]
macos-13 15.2 GCC 14.1.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:70:1: error: type defaults to 'int' in declaration of 'DISPATCH_DECL_FACTORY_CLASS_SWIFT' [-Wimplicit-int]
macos-14 14.3.1 GCC 14.1.0 MacOSX14 MacOSX13.3 MISMATCH
macos-14 *15.0.1 GCC 14.1.0 MacOSX14 MacOSX14.0
macos-14 15.1 GCC 14.1.0 MacOSX14 MacOSX14.2
macos-14 15.2 GCC 14.1.0 MacOSX14 MacOSX14.2
macos-14 15.3 GCC 14.1.0 MacOSX14 MacOSX14.4
macos-14 15.4 GCC 14.1.0 MacOSX14 MacOSX14.5
macos-14 16.0 GCC 14.1.0 MacOSX14 MacOSX15.0 MISMATCH FAIL /opt/homebrew/Cellar/gcc/14.1.0_1/lib/gcc/current/gcc/aarch64-apple-darwin23/14/include-fixed/stdio.h:83:8: error: unknown type name 'FILE'
```
Source: https://github.com/curl/curl/actions/runs/9883956647/job/27299564218

This commit fixes earlier commit
1e75edd372868048c9f805ac4ca6d2cb5a88ff5a, reverted in
41a7e0dcc9681afd91e066411bcee4f369c23366, where I cut the commit
message in half by accident. The patch itself is identical.

Closes #14097

show more ...

061278d219-Jul-2024 Viktor Szakats

Revert "GHA/macos: improve, fix gcc/llvm, add new test matrix"

This reverts commit 1e75edd372868048c9f805ac4ca6d2cb5a88ff5a.

Due to some parts of the commit message missing (my bad.)

1...<<41424344454647484950>>...1351