source: chapter08/openssl.xml@ d23bc9dd

xry111/mips64el
Last change on this file since d23bc9dd was 2cf0cbbd, checked in by Xi Ruoyao <xry111@…>, 5 months ago

mips64el: openssl: adjust for building on 64-bit MIPS

  • Property mode set to 100644
File size: 7.5 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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
8<sect1 id="ch-system-openssl" role="wrap">
9 <?dbhtml filename="openssl.html"?>
10
11 <sect1info condition="script">
12 <productname>openssl</productname>
13 <productnumber>&openssl-version;</productnumber>
14 <address>&openssl-url;</address>
15 </sect1info>
16
17 <title>OpenSSL-&openssl-version;</title>
18
19 <indexterm zone="ch-system-openssl">
20 <primary sortas="a-OpenSSL">OpenSSL</primary>
21 </indexterm>
22
23 <sect2 role="package">
24 <title/>
25
26 <para>The OpenSSL package contains management tools and libraries relating
27 to cryptography. These are useful for providing cryptographic functions
28 to other packages, such as OpenSSH, email applications, and web browsers
29 (for accessing HTTPS sites). </para>
30
31 <segmentedlist>
32 <segtitle>&buildtime;</segtitle>
33 <segtitle>&diskspace;</segtitle>
34
35 <seglistitem>
36 <seg>&openssl-fin-sbu;</seg>
37 <seg>&openssl-fin-du;</seg>
38 </seglistitem>
39 </segmentedlist>
40
41 </sect2>
42
43 <sect2 role="installation">
44 <title>Installation of OpenSSL</title>
45<!--
46 <para>First fix a problem with some advanced architectures with avx512
47 capability:</para>
48
49 <screen><userinput remap="pre">sed -e '/bn_reduce.*m1/i\ factor_size /= sizeof(BN_ULONG) * 8;' \
50 -i crypto/bn/rsaz_exp_x2.c</userinput></screen>
51-->
52 <para>Remove an outdated compiler option causing build failure:</para>
53
54<screen><userinput remap="pre">sed 's/-mips3//' -i Configure</userinput></screen>
55
56 <para>Prepare OpenSSL for compilation:</para>
57
58<screen><userinput remap="configure">./config --prefix=/usr \
59 --openssldir=/etc/ssl \
60 --libdir=lib \
61 linux64-mips64 \
62 shared \
63 zlib-dynamic</userinput></screen>
64
65 <para>Compile the package:</para>
66
67<screen><userinput remap="make">make</userinput></screen>
68
69 <para>To test the results, issue:</para>
70
71<screen><userinput remap="test">HARNESS_JOBS=<replaceable>$(nproc)</replaceable> make test</userinput></screen>
72
73 <para>One test, 30-test_afalg.t, is known to fail if the host kernel
74 does not have <option>CONFIG_CRYPTO_USER_API_SKCIPHER</option> enabled,
75 or does not have any options providing an AES with CBC implementation
76 (for example, the combination of <option>CONFIG_CRYPTO_AES</option>
77 and <option>CONFIG_CRYPTO_CBC</option>, or
78 <option>CONFIG_CRYPTO_AES_NI_INTEL</option> if the CPU supports AES-NI)
79 enabled. If it fails, it can safely be ignored.</para>
80
81 <para>Install the package:</para>
82
83<screen><userinput remap="install">sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
84make MANSUFFIX=ssl install</userinput></screen>
85
86 <para>Add the version to the documentation directory name, to be
87 consistent with other packages:</para>
88
89<screen><userinput remap="install">mv -v /usr/share/doc/openssl /usr/share/doc/openssl-&openssl-version;</userinput></screen>
90
91 <para>If desired, install some additional documentation:</para>
92
93<screen><userinput remap="install">cp -vfr doc/* /usr/share/doc/openssl-&openssl-version;</userinput></screen>
94
95 <note>
96 <para>
97 You should update OpenSSL when a new version which fixes vulnerabilities
98 is announced. Since OpenSSL 3.0.0, the OpenSSL versioning scheme
99 follows the MAJOR.MINOR.PATCH format. API/ABI compatibility
100 is guaranteed for the same MAJOR version number. Because LFS
101 installs only the shared libraries, there is no need to recompile
102 packages which link to
103 <filename class="libraryfile">libcrypto.so</filename> or
104 <filename class="libraryfile">libssl.so</filename>
105 <emphasis>when upgrading to a version with the same MAJOR version
106 number</emphasis>.
107 </para>
108
109 <para>
110 However, any running programs linked to those libraries need to be stopped
111 and restarted. Read the related entries in
112 <xref linkend='pkgmgmt-upgrade-issues'/> for details.
113 </para>
114
115 </note>
116
117 </sect2>
118
119 <sect2 id="contents-openssl" role="content">
120 <title>Contents of OpenSSL</title>
121
122 <segmentedlist>
123 <segtitle>Installed programs</segtitle>
124 <segtitle>Installed libraries</segtitle>
125 <segtitle>Installed directories</segtitle>
126
127 <seglistitem>
128 <seg>
129 c_rehash and openssl
130 </seg>
131 <seg>
132 libcrypto.so and libssl.so
133 </seg>
134 <seg>
135 /etc/ssl,
136 /usr/include/openssl,
137 /usr/lib/engines and
138 /usr/share/doc/openssl-&openssl-version;
139 </seg>
140 </seglistitem>
141 </segmentedlist>
142
143 <variablelist>
144 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
145 <?dbfo list-presentation="list"?>
146 <?dbhtml list-presentation="table"?>
147
148 <varlistentry id="c_rehash">
149 <term><command>c_rehash</command></term>
150 <listitem>
151 <para>
152 is a <application>Perl</application> script that
153 scans all files in a directory and adds symbolic links to their
154 hash values. Use of <command>c_rehash</command> is considered
155 obsolete and should be replaced by
156 <command>openssl rehash</command> command
157 </para>
158 <indexterm zone="ch-system-openssl c_rehash">
159 <primary sortas="b-c_rehash">c_rehash</primary>
160 </indexterm>
161 </listitem>
162 </varlistentry>
163
164 <varlistentry id="openssl-prog">
165 <term><command>openssl</command></term>
166 <listitem>
167 <para>
168 is a command-line tool for using the various cryptography functions
169 of <application>OpenSSL</application>'s crypto library from the
170 shell. It can be used for various functions which are documented in
171 <ulink role='man' url='&man;openssl.1'>openssl(1)</ulink>
172 </para>
173 <indexterm zone="ch-system-openssl openssl-prog">
174 <primary sortas="b-openssl">openssl</primary>
175 </indexterm>
176 </listitem>
177 </varlistentry>
178
179 <varlistentry id="libcrypto">
180 <term><filename class="libraryfile">libcrypto.so</filename></term>
181 <listitem>
182 <para>
183 implements a wide range of cryptographic algorithms used in various
184 Internet standards. The services provided by this library are used
185 by the <application>OpenSSL</application> implementations of SSL,
186 TLS and S/MIME, and they have also been used to implement
187 <application>OpenSSH</application>,
188 <application>OpenPGP</application>, and other cryptographic
189 standards
190 </para>
191 <indexterm zone="ch-system-openssl libcrypto">
192 <primary sortas="c-libcrypto">libcrypto.so</primary>
193 </indexterm>
194 </listitem>
195 </varlistentry>
196
197 <varlistentry id="libssl">
198 <term><filename class="libraryfile">libssl.so</filename></term>
199 <listitem>
200 <para>
201 implements the Transport Layer Security (TLS v1) protocol.
202 It provides a rich API, documentation
203 on which can be found in <ulink role='man'
204 url='&man;ssl.7'>ssl(7)</ulink>
205 </para>
206 <indexterm zone="ch-system-openssl libssl">
207 <primary sortas="c-libssl">libssl.so</primary>
208 </indexterm>
209 </listitem>
210 </varlistentry>
211
212 </variablelist>
213
214 </sect2>
215
216</sect1>
Note: See TracBrowser for help on using the repository browser.