source: chapter08/openssl.xml@ d23bc9dd

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

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

  • Property mode set to 100644
File size: 7.5 KB
RevLine 
[7152faa]1<?xml version="1.0" encoding="UTF-8"?>
[e5474751]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
[6a156bab]28 to other packages, such as OpenSSH, email applications, and web browsers
[e5474751]29 (for accessing HTTPS sites). </para>
30
31 <segmentedlist>
32 <segtitle>&buildtime;</segtitle>
33 <segtitle>&diskspace;</segtitle>
34
35 <seglistitem>
[fb386e0]36 <seg>&openssl-fin-sbu;</seg>
37 <seg>&openssl-fin-du;</seg>
[e5474751]38 </seglistitem>
39 </segmentedlist>
40
41 </sect2>
42
43 <sect2 role="installation">
44 <title>Installation of OpenSSL</title>
[f1b9d9d]45<!--
[e5e442c]46 <para>First fix a problem with some advanced architectures with avx512
[0d80e532]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>
[f1b9d9d]51-->
[2cf0cbbd]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
[e5474751]56 <para>Prepare OpenSSL for compilation:</para>
57
58<screen><userinput remap="configure">./config --prefix=/usr \
59 --openssldir=/etc/ssl \
60 --libdir=lib \
[2cf0cbbd]61 linux64-mips64 \
[e5474751]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
[3a8d182]71<screen><userinput remap="test">HARNESS_JOBS=<replaceable>$(nproc)</replaceable> make test</userinput></screen>
[a751c8d]72
[ed48f326]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>
[a751c8d]80
[e5474751]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
[f82ef49]86 <para>Add the version to the documentation directory name, to be
87 consistent with other packages:</para>
[e5474751]88
[f82ef49]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>
[e5474751]94
[6df63e4]95 <note>
96 <para>
97 You should update OpenSSL when a new version which fixes vulnerabilities
[0d7dbaf]98 is announced. Since OpenSSL 3.0.0, the OpenSSL versioning scheme
99 follows the MAJOR.MINOR.PATCH format. API/ABI compatibility
[5042efcc]100 is guaranteed for the same MAJOR version number. Because LFS
[0d7dbaf]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
[6df63e4]104 <filename class="libraryfile">libssl.so</filename>
[5042efcc]105 <emphasis>when upgrading to a version with the same MAJOR version
106 number</emphasis>.
[6df63e4]107 </para>
108
109 <para>
110 However, any running programs linked to those libraries need to be stopped
[59fef4c]111 and restarted. Read the related entries in
112 <xref linkend='pkgmgmt-upgrade-issues'/> for details.
[6df63e4]113 </para>
114
115 </note>
116
[e5474751]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>
[68a5dcb9]132 libcrypto.so and libssl.so
[e5474751]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>
[0b0fa07]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
[e5474751]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
[ea93c11]171 <ulink role='man' url='&man;openssl.1'>openssl(1)</ulink>
[e5474751]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
[8d35535]189 standards
[e5474751]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
[ea93c11]203 on which can be found in <ulink role='man'
204 url='&man;ssl.7'>ssl(7)</ulink>
[e5474751]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.