source: networking/netlibs/curl.xml@ 4c3c7f43

10.0 10.1 11.0 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind ken/refactor-virt lazarus perl-modules qt5new trunk upgradedb xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 4c3c7f43 was 4c3c7f43, checked in by Pierre Labastie <pieere@…>, 4 years ago

Nitpick, when a link needs an explanation in parentheses, do not put that
explanation in the linl text

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@19219 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 9.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY curl-download-http "https://curl.haxx.se/download/curl-&curl-version;.tar.xz">
8 <!ENTITY curl-download-ftp " ">
9 <!ENTITY curl-md5sum "ac4a59c38c47adc160ea71eace20257b">
10 <!ENTITY curl-size "2.1 MB">
11 <!ENTITY curl-buildsize "36 MB (additional 11 MB for tests)">
12 <!ENTITY curl-time "0.3 SBU (additional 4.3 SBU for tests)">
13]>
14
15<sect1 id="curl" xreflabel="cURL-&curl-version;">
16 <?dbhtml filename="curl.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>cURL-&curl-version;</title>
24
25 <indexterm zone="curl">
26 <primary sortas="a-cURL">cURL</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to cURL</title>
31
32 <para>
33 The <application>cURL</application> package contains an utility
34 and a library used for transferring files with URL syntax to any of
35 the following protocols: FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP,
36 TELNET, DICT, LDAP, LDAPS and FILE. Its ability to both download
37 and upload files can be incorporated into other programs to support
38 functions like streaming media.
39 </para>
40
41 &lfs81_checked;
42
43 <bridgehead renderas="sect3">Package Information</bridgehead>
44 <itemizedlist spacing="compact">
45 <listitem>
46 <para>
47 Download (HTTP): <ulink url="&curl-download-http;"/>
48 </para>
49 </listitem>
50 <listitem>
51 <para>
52 Download (FTP): <ulink url="&curl-download-ftp;"/>
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download MD5 sum: &curl-md5sum;
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Download size: &curl-size;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Estimated disk space required: &curl-buildsize;
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Estimated build time: &curl-time;
73 </para>
74 </listitem>
75 </itemizedlist>
76
77<!-- Tests seem to pass without any patch
78 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
79 <itemizedlist spacing="compact">
80 <listitem>
81 <para>
82 Required patch:
83 <ulink url="&patch-root;/curl-&curl-version;-valgrind_filter-1.patch"/>
84 </para>
85 </listitem>
86 </itemizedlist>
87-->
88 <bridgehead renderas="sect3">cURL Dependencies</bridgehead>
89
90 <bridgehead renderas="sect4">Recommended</bridgehead>
91 <para role="recommended">
92 <xref linkend="cacerts"/> (runtime) and
93 <xref linkend="openssl"/>
94 </para>
95
96 <bridgehead renderas="sect4">Optional</bridgehead>
97 <para role="optional">
98 <xref linkend="c-ares"/>,
99 <xref linkend="gnutls"/>,
100 <xref linkend="mitkrb"/>,
101 <xref linkend="nghttp2"/>,
102 <xref linkend="openldap"/>,
103 <xref linkend="samba"/>,
104 <ulink url="https://www.gnu.org/software/libidn/#libidn2/">libidn2</ulink>,
105 <ulink url="https://launchpad.net/libmetalink/">libmetalink</ulink>,
106 <ulink url="https://github.com/rockdaboot/libpsl">libpsl</ulink>,
107 <ulink url="http://rtmpdump.mplayerhq.hu/">librtmp</ulink>,
108 <ulink url="http://www.libssh2.org">libssh2</ulink>,
109 <ulink url="https://tls.mbed.org/">mbed TLS</ulink> (formerly known as
110 PolarSSL), and
111 <ulink url="http://spnego.sourceforge.net/"> SPNEGO</ulink>
112 </para>
113
114 <bridgehead renderas="sect4">Optional for Running the Test Suite</bridgehead>
115 <para role="optional">
116 <xref linkend="stunnel"/> (for the HTTPS and FTPS tests) and
117 <xref linkend="valgrind"/>
118 </para>
119
120 <para condition="html" role="usernotes">User Notes:
121 <ulink url="&blfs-wiki;/curl"/>
122 </para>
123 </sect2>
124
125 <sect2 role="installation">
126 <title>Installation of cURL</title>
127
128 <para>
129 Install <application>cURL</application> by running the following
130 commands:
131 </para>
132
133<screen><userinput>./configure --prefix=/usr \
134 --disable-static \
135 --enable-threaded-resolver \
136 --with-ca-path=/etc/ssl/certs &amp;&amp;
137make</userinput></screen>
138
139<!--
140 For version 7.54.1 I got:
141 TESTDONE: 869 tests out of 869 reported OK: 100%
142 TESTDONE: 1092 tests were considered during 1080 seconds
143
144 <para>
145 Running the test suite is optional. About 2% of the tests fail. Increase
146 in test time by each failed test is about 10%. Tests SBU above was
147 obtained disabling failing tests, with:
148 </para>
149-->
150 <note>
151 <para>
152 To run the tests for this package, valgrind requires a version of the
153 /lib/ld-2.23.so (or later) library with debugging symbols present.
154 Normally in LFS these debugging symbols are stripped at the end of
155 Chapter 6. To get this library, glibc must be rebuilt with the current
156 glibc version using the same compiler that was used to build LFS. The
157 ld-2.23.so can then be renamed to ld-2.23.so.dbg and copied to /lib. Then
158 a symlink needs to be changed:
159 </para>
160
161 <screen role="nodump"><userinput>ln -sfv ld-2.23.so.dbg /lib/ld-linux-x86-64.so.2</userinput></screen>
162
163 <para>
164 Adjust the above instruction as needed for a 32-bit system
165 or for a different version of glibc.
166 </para>
167 </note>
168
169 <para>
170 To run the test suite, issue: <command>make test</command>.
171 </para>
172
173 <para>
174 Now, as the <systemitem class="username">root</systemitem>
175 user:
176 </para>
177
178<screen role="root"><userinput>make install &amp;&amp;
179
180rm -rf docs/examples/.deps &amp;&amp;
181
182find docs \( -name Makefile\* \
183 -o -name \*.1 \
184 -o -name \*.3 \) \
185 -exec rm {} \; &amp;&amp;
186install -v -d -m755 /usr/share/doc/curl-&curl-version; &amp;&amp;
187cp -v -R docs/* /usr/share/doc/curl-&curl-version;</userinput></screen>
188
189 <para>
190 Simple tests to the new installed <command>curl</command>:
191 <command>curl --trace-ascii debugdump.txt http://www.example.com/</command>
192 and
193 <command>curl --trace-ascii d.txt --trace-time http://example.com/</command>.
194 Inspect the locally created trace files <filename>debugdump.txt</filename>
195 and <filename>d.txt</filename>, which contain version downloaded
196 files information, etc. One file has the time for each action logged.
197 </para>
198 </sect2>
199
200 <sect2 role="commands">
201 <title>Command Explanations</title>
202
203 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
204 href="../../xincludes/static-libraries.xml"/>
205
206 <para>
207 <parameter>--enable-threaded-resolver</parameter>: This switch enables
208 <application>cURL</application>'s builtin threaded DNS resolver.
209 </para>
210
211 <para>
212 <parameter>--with-ca-path=/etc/ssl/certs</parameter>: This
213 switch sets the location of the BLFS <xref linkend="cacerts"/>.
214 </para>
215
216 <para>
217 <option>--with-gssapi</option>: This parameter adds
218 <application>Kerberos 5</application> support to
219 <filename class="libraryfile">libcurl</filename>.
220 </para>
221
222 <para>
223 <option>--without-ssl --with-gnutls</option>: Use to
224 build with <application>GnuTLS</application> support
225 instead of <application>OpenSSL</application> for SSL/TLS.
226 </para>
227
228 <para>
229 <option>--with-ca-bundle=/etc/ssl/ca-bundle.crt</option>: Use
230 this switch instead of <parameter>--with-ca-path</parameter> if
231 building with <application>GnuTLS</application> support
232 instead of <application>OpenSSL</application> for SSL/TLS.
233 </para>
234
235 <para>
236 <command>find docs ... -exec rm {} \;</command>: This command removes
237 <filename>Makefiles</filename> and man files from the documentation
238 directory that would otherwise be installed by the commands that follow.
239 </para>
240
241 </sect2>
242
243 <sect2 role="content">
244 <title>Contents</title>
245
246 <segmentedlist>
247 <segtitle>Installed Programs</segtitle>
248 <segtitle>Installed Library</segtitle>
249 <segtitle>Installed Directories</segtitle>
250
251 <seglistitem>
252 <seg>
253 curl, and curl-config
254 </seg>
255 <seg>
256 libcurl.so
257 </seg>
258 <seg>
259 /usr/include/curl and
260 /usr/share/doc/curl-&curl-version;
261 </seg>
262 </seglistitem>
263 </segmentedlist>
264
265 <variablelist>
266 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
267 <?dbfo list-presentation="list"?>
268 <?dbhtml list-presentation="table"?>
269
270 <varlistentry id="curl-prog">
271 <term><command>curl</command></term>
272 <listitem>
273 <para>
274 is a command line tool for transferring files with URL syntax.
275 </para>
276 <indexterm zone="curl curl-prog">
277 <primary sortas="b-curl">curl</primary>
278 </indexterm>
279 </listitem>
280 </varlistentry>
281
282 <varlistentry id="curl-config">
283 <term><command>curl-config</command></term>
284 <listitem>
285 <para>
286 prints information about the last compile, like libraries
287 linked to and prefix setting.
288 </para>
289 <indexterm zone="curl curl-config">
290 <primary sortas="b-curl-config">curl-config</primary>
291 </indexterm>
292 </listitem>
293 </varlistentry>
294
295 <varlistentry id="libcurl">
296 <term><filename class="libraryfile">libcurl.so</filename></term>
297 <listitem>
298 <para>
299 provides the API functions required by
300 <command>curl</command> and other programs.
301 </para>
302 <indexterm zone="curl libcurl">
303 <primary sortas="c-libcurl">libcurl.so</primary>
304 </indexterm>
305 </listitem>
306 </varlistentry>
307
308 </variablelist>
309
310 </sect2>
311
312</sect1>
Note: See TracBrowser for help on using the repository browser.