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.
This package is known to build and work properly using an LFS 12.0 platform.
Download (HTTP): https://curl.se/download/curl-8.2.1.tar.xz
Download MD5 sum: 556576a795bdd2c7d10de6886480065f
Download size: 2.5 MB
Estimated disk space required: 42 MB (add 23 MB for tests)
Estimated build time: 0.1 SBU (with parallelism=4; add 15 SBU for tests (without valgrind, add 36 SBU with valgrind)
make-ca-1.12 (runtime)
Brotli-1.0.9, c-ares-1.19.1, GnuTLS-3.8.1, libidn2-2.3.4, libpsl-0.21.2, libssh2-1.11.0, MIT Kerberos V5-1.21.2, nghttp2-1.55.1, OpenLDAP-2.6.6, Samba-4.18.6 (runtime, for NTLM authentication), gsasl, impacket, libmetalink, librtmp, ngtcp2, quiche, and SPNEGO
Apache-2.4.57 and stunnel-5.70 (for the HTTPS and FTPS tests), and Valgrind-3.21.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. The tests related to the SMB protocol will output a message duplicated many times complaining the Python module impacket (not a part of BLFS) is missing and will be skipped.
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.2.1
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 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.