The cURL package contains an utility and a library used for transferring files with URL syntax to any of the following protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTSP, SMB, SMBS, SMTP, SMPTS, TELNET, and TFTP. Its ability to both download and upload files can be incorporated into other programs to support functions like streaming media.
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://curl.se/download/curl-8.5.0.tar.xz
Download MD5 sum: 3e9e5c2db494e7dbd4e7024b149021c9
Download size: 2.6 MB
Estimated disk space required: 53 MB (add 18 MB for tests)
Estimated build time: 0.3 SBU (with parallelism=4; add 15 SBU for tests (without valgrind, add 36 SBU with valgrind))
make-ca-1.13 (runtime)
Brotli-1.1.0, c-ares-1.25.0, GnuTLS-3.8.3, libidn2-2.3.4, libpsl-0.21.5, libssh2-1.11.0, MIT Kerberos V5-1.21.2, nghttp2-1.58.0, OpenLDAP-2.6.6, Samba-4.19.4 (runtime, for NTLM authentication), gsasl, impacket, libmetalink, librtmp, ngtcp2, quiche, and SPNEGO
Apache-2.4.58 and stunnel-5.71 (for the HTTPS and FTPS tests), OpenSSH-9.6p1, and Valgrind-3.22.0 (this will slow the tests down and may cause failures.)
Install cURL by running the following commands:
./configure --prefix=/usr \ --disable-static \ --with-openssl \ --enable-threaded-resolver \ --with-ca-path=/etc/ssl/certs && make
To run the test suite, issue: make test. One test, 1477
, is known to fail due to a missing file in the curl tarball. Some tests are flaky, so if some tests have failed it's possible to run a test again with: (cd tests; ./runtests.pl <test ID>
) (the ID of failed tests are shown in the “These test cases failed:
” message).
Now, as the root
user:
make install && rm -rf docs/examples/.deps && find docs \( -name Makefile\* -o \ -name \*.1 -o \ -name \*.3 -o \ -name CMakeLists.txt \) -delete && cp -v -R docs -T /usr/share/doc/curl-8.5.0
To run some simple verification tests on the newly installed curl, issue the following commands: curl --trace-ascii debugdump.txt https://www.example.com/ and curl --trace-ascii d.txt --trace-time https://example.com/. Inspect the locally created trace files debugdump.txt
and d.txt
, which contains version information, downloaded files information, etc. One file has the time for each action logged.
--disable-static
: This switch prevents installation of static versions of the libraries.
--enable-threaded-resolver
: This switch enables cURL's builtin threaded DNS resolver.
--with-ca-path=/etc/ssl/certs
: This switch sets the location of the BLFS Certificate Authority store.
--with-openssl
: This parameter chooses OpenSSL as SSL/TLS implementation. This seems mandatory now.
--with-gssapi
: This parameter adds Kerberos 5 support to libcurl
.
--without-ssl --with-gnutls
: Use this switch to build with GnuTLS support instead of OpenSSL for SSL/TLS.
--with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt
: Use this switch instead of --with-ca-path
if building with GnuTLS support instead of OpenSSL for SSL/TLS.
--with-libssh2
: This parameter adds SSH support to cURL. This is disabled by default.
--enable-ares
: This parameter adds support for DNS resolution through the c-ares library. It overrides --enable-threaded-resolver
and is not widely tested by the editors.
find docs ... -exec rm {} \;: This command removes Makefiles
and man files from the documentation directory that would otherwise be installed by the commands that follow.