A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and
Go to file
Viktor Szakats 1e3319a167
cmake: picky-linker fixes for openssl, ZLIB, H3 and more
- fix HTTP/3 support detection with OpenSSL/quictls built with ZLIB.
  (Requires curl be built with ZLIB option also.)

- fix HTTP/3 support detection with OpenSSL/quictls/LibreSSL and `ld`
  linker on Windows.

- fix HTTP/3 support detection with wolfSSL to automatically add
  `ws2_32` to the lib list on Windows. For all linkers.

- reposition ZLIB (and other compression) detection _after_ TLS
  detection, but before calling HTTP/3-support detection via
  `CheckQuicSupportInOpenSSL`.

  May be a regression from ebef55a61d
  May fix #10832 (Reported-by: Micah Snyder)

  This also seems to fix an odd case, where OpenSSL/quictls is correctly
  detected, but its header path is not set while compiling, breaking
  build at `src/curl_ntlm_core.c`. Reason for this remains undiscovered.

- satisfy "picky" linkers such as `ld` with MinGW, that are highly
  sensitive to lib order, by also adding brotli to the beginning of the
  lib list.

- satisfy "picky" linkers by adding certain Windows systems libs to
  the lib list for OpenSSL/LibreSSL. (Might need additional ones for
  other forks, such as `pthread` for BoringSSL.)

Note: It'd make sense to _always_ add `ws2_32`, `crypt32` (except
Windows App targets perhaps?), `bcrypt` (except old-mingw!) on Windows
at this point. They are almost always required, and if some aren't,
they are ignored by the linker with no effect on final binaries.

Closes #10857
2023-03-30 08:55:20 +00:00
.circleci CI: update wolfssl / wolfssh to 5.5.4 / 1.4.12 2023-02-13 17:13:32 +01:00
.github wolfssl.yml: bump to version 5.6.0 2023-03-28 11:30:16 +02:00
.lift tests-httpd: basic infra to run curl against an apache httpd plus nghttpx for h3 2023-01-09 17:40:04 +01:00
.reuse packages: remove Android, update README 2023-02-06 08:18:21 +01:00
CMake wolfssl: add quic/ngtcp2 detection in cmake, and fix builds 2023-03-14 11:57:55 +00:00
docs curl_easy_getinfo.3: typo fix (duplicated "from the") 2023-03-28 11:59:49 +02:00
include ftplistparser: move out private data from public struct 2023-03-28 10:11:33 +02:00
lib vlts: use full buffer size when receiving data if possible 2023-03-30 10:04:20 +02:00
LICENSES copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
m4 build: drop the use of XC_AMEND_DISTCLEAN 2023-03-03 09:54:44 +01:00
packages os400: correct Curl_os400_sendto() 2023-02-17 14:49:51 +01:00
plan9 copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
projects build-openssl.bat: keep OpenSSL 3 engine binaries 2023-02-18 19:02:24 -05:00
scripts scripts/delta: fix "ambiguous argument" when used in branches 2023-03-18 10:22:58 +01:00
src tool_operate: pass a long as CURLOPT_HEADEROPT argument 2023-03-22 13:51:37 +01:00
tests rtsp: skip malformed RTSP interleaved frame data 2023-03-30 09:59:09 +02:00
winbuild winbuild: fix makefile clean 2023-02-23 03:49:37 -05:00
.azure-pipelines.yml CI: skip Azure for more commits which change only GHA 2023-03-23 21:18:04 -07:00
.cirrus.yml CI: skip some more builds when possible 2023-03-24 19:59:50 -07:00
.dcignore copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.dir-locals.el copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.git-blame-ignore-revs copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.gitattributes copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.gitignore copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.mailmap rtsp: skip malformed RTSP interleaved frame data 2023-03-30 09:59:09 +02:00
acinclude.m4 copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
appveyor.yml CI: don't run CI jobs if only another CI was changed 2023-03-11 18:59:45 -08:00
buildconf copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
buildconf.bat copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
CHANGES curl.se: new home 2020-11-04 23:59:47 +01:00
CMakeLists.txt cmake: picky-linker fixes for openssl, ZLIB, H3 and more 2023-03-30 08:55:20 +00:00
configure.ac lib: use correct printf flags for sockets and timediffs 2023-03-29 13:12:29 +02:00
COPYING copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl-config.in copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
GIT-INFO GIT-INFO: rephrase to adapt to s/buildconf/autoreconf 2021-09-24 13:14:52 +02:00
libcurl.pc.in copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
MacOSX-Framework copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
Makefile.am copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
Makefile.dist copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
maketgz copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
mlc_config.json mlc: curl.zuul.vexxhost.dev is reachable again 2022-04-24 23:29:38 +02:00
README docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
README.md copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
RELEASE-NOTES RELEASE-NOTES: synced 2023-03-28 11:01:55 +02:00
SECURITY.md copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00

curl logo

Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl.3 man page to learn how.

You can find answers to the most frequent questions we get in the FAQ document.

Study the COPYING file for distribution terms.

Contact

If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list.

All contributors to the project are listed in the THANKS document.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.

Website

Visit the curl website for the latest news and downloads.

Git

To download the latest source from the Git server, do this:

git clone https://github.com/curl/curl.git

(you will get a directory named curl created, filled with the source code)

Security problems

Report suspected security problems via our HackerOne page and not in public.

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor.