cURL-7.83.1

Introduction to cURL

The cURL package contains an utility and a library used for transferring files with URL syntax to any of the following protocols: FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. Its ability to both download and upload files can be incorporated into other programs to support functions like streaming media.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if dependencies have been updated since the most recent stable versions of the book.

Package Information

  • Download (HTTP): https://curl.se/download/curl-7.83.1.tar.xz

  • Download MD5 sum: 08c6d9c25d9cf8d17be28363753e42ca

  • Download size: 2.4 MB

  • Estimated disk space required: 142 MB (add 23 MB for tests)

  • Estimated build time: 0.4 SBU (with parallelism=4; add 18 SBU for tests)

cURL Dependencies

Recommended

Optional

Brotli-1.0.9, c-ares-1.18.1, GnuTLS-3.7.5, libidn2-2.3.2, libpsl-0.21.1, libssh2-1.10.0, MIT Kerberos V5-1.20, nghttp2-1.47.0, OpenLDAP-2.6.2, Samba-4.16.1, gsasl, impacket, libmetalink, librtmp, ngtcp2, quiche, and SPNEGO

Optional if Running the Test Suite

stunnel-5.64 (for the HTTPS and FTPS tests) and Valgrind-3.19.0 (this will slow the tests down and may cause failures.)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/curl

Installation of cURL

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. Four tests, 1139, 1140, 1173, and 1177, are known to fail due to missing executables from the optional dependencies.

Now, as the root user:

make install &&

rm -rf docs/examples/.deps &&

find docs \( -name Makefile\* -o -name \*.1 -o -name \*.3 \) -exec rm {} \; &&

install -v -d -m755 /usr/share/doc/curl-7.83.1 &&
cp -v -R docs/*     /usr/share/doc/curl-7.83.1

Simple tests to the new installed curl: curl --trace-ascii debugdump.txt http://www.example.com/ and curl --trace-ascii d.txt --trace-time http://example.com/. Inspect the locally created trace files debugdump.txt and d.txt, which contain version downloaded files information, etc. One file has the time for each action logged.

Command Explanations

--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 is disabled by default, but does speed up DNS resolution queries.

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.

Contents

Installed Programs: curl and curl-config
Installed Library: libcurl.so
Installed Directories: /usr/include/curl and /usr/share/doc/curl-7.83.1

Short Descriptions

curl

is a command line tool for transferring files with URL syntax

curl-config

prints information about the last compile, like libraries linked to and prefix setting

libcurl.so

provides the API functions required by curl and other programs