doc files were removed on purpose
[packages/openssl.git] / openssl.spec
1 # TODO
2 # - consider dropping last optflags.patch hunk and return to SOMAJOR (.so.1) sonames
3 # - find a way to simplify (drop) openssl-optflags.patch, it's pain to update here in pld
4 #
5 # Conditional build:
6 %bcond_without  tests   # don't perform "make tests"
7 %bcond_without  zlib    # zlib: note - enables CVE-2012-4929 vulnerability
8 %bcond_without  sslv2   # SSLv2: note - many flaws http://en.wikipedia.org/wiki/Transport_Layer_Security#SSL_2.0
9 %bcond_without  sslv3   # SSLv3: note - enables  CVE-2014-3566 vulnerability
10 %bcond_with     purify  # Compile openssl with "-DPURIFY", useful when one wants to
11                         # use valgrind debugger against openssl-linked programs
12
13 %include        /usr/lib/rpm/macros.perl
14 Summary:        OpenSSL Toolkit libraries for the "Secure Sockets Layer" (SSL v2/v3)
15 Summary(de.UTF-8):      Secure Sockets Layer (SSL)-Kommunikationslibrary
16 Summary(es.UTF-8):      Biblioteca C que suministra algoritmos y protocolos criptográficos
17 Summary(fr.UTF-8):      Utilitaires de communication SSL (Secure Sockets Layer)
18 Summary(pl.UTF-8):      Biblioteki OpenSSL (SSL v2/v3)
19 Summary(pt_BR.UTF-8):   Uma biblioteca C que fornece vários algoritmos e protocolos criptográficos
20 Summary(ru.UTF-8):      Библиотеки и утилиты для соединений через Secure Sockets Layer
21 Summary(uk.UTF-8):      Бібліотеки та утиліти для з'єднань через Secure Sockets Layer
22 Name:           openssl
23 # 1.0.2 will be LTS release
24 # Version 1.0.2 will be supported until 2019-12-31.
25 # https://www.openssl.org/about/releasestrat.html
26 Version:        1.0.2e
27 Release:        1
28 License:        Apache-like
29 Group:          Libraries
30 Source0:        ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
31 # Source0-md5:  5262bfa25b60ed9de9f28d5d52d77fc5
32 Source2:        %{name}.1.pl
33 Source3:        %{name}-ssl-certificate.sh
34 Source4:        %{name}-c_rehash.sh
35 Patch0:         %{name}-alpha-ccc.patch
36 Patch1:         %{name}-optflags.patch
37 Patch2:         %{name}-include.patch
38 Patch3:         %{name}-man-namespace.patch
39 Patch4:         %{name}-asflag.patch
40 Patch5:         %{name}-ca-certificates.patch
41 Patch6:         %{name}-ldflags.patch
42 Patch7:         %{name}-find.patch
43 Patch8:         pic.patch
44 Patch10:        %{name}_fix_for_x32.patch
45 URL:            http://www.openssl.org/
46 BuildRequires:  bc
47 BuildRequires:  perl-devel >= 1:5.6.1
48 BuildRequires:  rpm-perlprov >= 4.1-13
49 BuildRequires:  rpmbuild(macros) >= 1.213
50 BuildRequires:  sed >= 4.0
51 Requires:       ca-certificates >= 20080809-4
52 Requires:       rpm-whiteout >= 1.7
53 Obsoletes:      SSLeay
54 Obsoletes:      SSLeay-devel
55 Obsoletes:      SSLeay-perl
56 Obsoletes:      libopenssl0
57 %if "%{pld_release}" == "ac"
58 Conflicts:      neon < 0.26.3-3
59 Conflicts:      ntpd < 4.2.4p8-10
60 Conflicts:      openssh-clients < 2:5.8p1-9
61 Conflicts:      openssh-server < 2:5.8p1-9
62 %else
63 Conflicts:      neon < 0.29.6-8
64 Conflicts:      openssh-clients < 2:6.2p2-3
65 Conflicts:      openssh-server < 2:6.2p2-3
66 %endif
67 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
68
69 %description
70 The OpenSSL Project is a collaborative effort to develop a robust,
71 commercial-grade, full-featured, and Open Source toolkit implementing
72 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
73 v1) protocols with full-strength cryptography world-wide. The project
74 is managed by a worldwide community of volunteers that use the
75 Internet to communicate, plan, and develop the OpenSSL tookit and its
76 related documentation.
77
78 OpenSSL is based on the excellent SSLeay library developed by Eric A.
79 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
80 Apache-style licence, which basically means that you are free to get
81 and use it for commercial and non-commercial purposes subject to some
82 simple license conditions.
83
84 This package contains shared libraries only, install openssl-tools if
85 you want to use openssl cmdline tool.
86
87 %description -l de.UTF-8
88 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
89 libraries, die verschiedene Verschlüsselungs- und
90 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
91 zur Verfügung stellen.
92
93 %description -l es.UTF-8
94 Biblioteca C que suministra algoritmos y protocolos criptográficos.
95
96 %description -l fr.UTF-8
97 OpenSSL est un outiil de gestion des certificats et les librairies
98 partagees qui fournit plusieurs protocoles et algorithmes de
99 codage/decodage, incluant DES, RC4, RSA et SSL.
100
101 %description -l pl.UTF-8
102 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
103 v2/v3 oraz Transport Layer Security (TLS v1).
104
105 %description -l pt_BR.UTF-8
106 Uma biblioteca C que fornece vários algoritmos e protocolos
107 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
108 compartilhadas e utilitários.
109
110 %description -l ru.UTF-8
111 Программа openssl для работы с сертификатами и разделяемые библиотеки,
112 которые реализуют множетсво криптографических алгоритмов, включая DES,
113 RC4, RSA и SSL.
114
115 %description -l uk.UTF-8
116 Програма openssl для роботи з сертифікатами та бібліотеки спільного
117 користування, що реалізують велику кількість криптографічних
118 алгоритмів, включаючи DES, RC4, RSA та SSL.
119
120 %package engines
121 Summary:        OpenSSL optional crypto engines
122 Summary(pl.UTF-8):      Opcjonalne silniki kryptograficzne dla OpenSSL-a
123 Group:          Libraries
124 Requires:       %{name} = %{version}-%{release}
125
126 %description engines
127 With OpenSSL 0.9.6, a new component was added to support alternative
128 cryptography implementations, most commonly for interfacing with
129 external crypto devices (eg. accelerator cards). This component is
130 called ENGINE.
131
132 There are currently built-in ENGINE implementations for the following
133 crypto devices:
134
135 - CryptoSwift
136 - Compaq Atalla
137 - nCipher CHIL
138 - Nuron
139 - Broadcom uBSec
140
141 In addition, dynamic binding to external ENGINE implementations is now
142 provided by a special ENGINE called "dynamic".
143
144 %description engines -l pl.UTF-8
145 Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
146 wspierać alternatywne implementacje kryptografii, przeważnie
147 współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
148 kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
149 ENGINE).
150
151 Obecnie istnieją wbudowane implementacje silników dla następujących
152 urządzeń kryptograficznych:
153 - CryptoSwift
154 - Compaq Atalla
155 - nCipher CHIL
156 - Nuron
157 - Broadcom uBSec
158
159 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
160 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
161
162 %package tools
163 Summary:        OpenSSL command line tool and utilities
164 Summary(pl.UTF-8):      Zestaw narzędzi i skryptów
165 Group:          Applications/Communications
166 Requires:       %{name} = %{version}-%{release}
167 Requires:       which
168
169 %description tools
170 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
171
172 %description tools -l pl.UTF-8
173 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
174
175 %package tools-perl
176 Summary:        OpenSSL utilities written in Perl
177 Summary(pl.UTF-8):      Narzędzia OpenSSL napisane w perlu
178 Group:          Applications/Communications
179 Requires:       %{name} = %{version}-%{release}
180
181 %description tools-perl
182 OpenSSL Toolkit tools written in Perl.
183
184 %description tools-perl -l pl.UTF-8
185 Narzędzia OpenSSL napisane w perlu.
186
187 %package devel
188 Summary:        Development part of OpenSSL Toolkit libraries
189 Summary(de.UTF-8):      Secure Sockets Layer Kommunikationslibrary: statische libraries+header
190 Summary(es.UTF-8):      Bibliotecas y archivos de inclusión para desarrollo OpenSSL
191 Summary(fr.UTF-8):      Librairies statiques, headers et utilitaires pour communication SSL
192 Summary(pl.UTF-8):      Część bibiloteki OpenSSL przeznaczona dla programistów
193 Summary(pt_BR.UTF-8):   Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
194 Summary(ru.UTF-8):      Библиотеки, хедеры и утилиты для Secure Sockets Layer
195 Summary(uk.UTF-8):      Бібліотеки, хедери та утиліти для Secure Sockets Layer
196 Group:          Development/Libraries
197 Requires:       %{name} = %{version}-%{release}
198 Obsoletes:      libopenssl0-devel
199
200 %description devel
201 Development part of OpenSSL library.
202
203 %description devel -l es.UTF-8
204 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
205
206 %description devel -l pl.UTF-8
207 Część biblioteki OpenSSL przeznaczona dla programistów.
208
209 %description devel -l pt_BR.UTF-8
210 Uma biblioteca C que fornece vários algoritmos e protocolos
211 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
212 arquivos de inclusão para desenvolvimento.
213
214 %description devel -l ru.UTF-8
215 Программа openssl для работы с сертификатами и разделяемые библиотеки,
216 которые реализуют множетсво криптографических алгоритмов, включая DES,
217 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
218 с использованием SSL.
219
220 %description devel -l uk.UTF-8
221 Програма openssl для роботи з сертифікатами та бібліотеки спільного
222 користування, що реалізують велику кількість криптографічних
223 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
224 хедери для розробки програм з використанням SSL.
225
226 %package static
227 Summary:        Static OpenSSL libraries
228 Summary(pl.UTF-8):      Statyczne wersje bibliotek z OpenSSL
229 Summary(pt_BR.UTF-8):   Bibliotecas estáticas para desenvolvimento com openssl
230 Summary(ru.UTF-8):      Статические библиотеки разработчика для OpenSSL
231 Summary(uk.UTF-8):      Статичні бібліотеки програміста для OpenSSL
232 Group:          Development/Libraries
233 Requires:       %{name}-devel = %{version}-%{release}
234
235 %description static
236 Static OpenSSL Toolkit libraries.
237
238 %description static -l pl.UTF-8
239 Statyczne wersje bibliotek z OpenSSL.
240
241 %description static -l pt_BR.UTF-8
242 Bibliotecas estáticas para desenvolvimento com openssl.
243
244 %description static -l ru.UTF-8
245 Программа openssl для работы с сертификатами и разделяемые библиотеки,
246 которые реализуют множетсво криптографических алгоритмов, включая DES,
247 RC4, RSA и SSL. Включает статические библиотеки для разработки
248 приложений с использованием OpenSSL.
249
250 %description static -l uk.UTF-8
251 Програма openssl для роботи з сертифікатами та бібліотеки спільного
252 користування, що реалізують велику кількість криптографічних
253 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
254 бібліотеки для розробки програм з використанням SSL.
255
256 %prep
257 %setup -q
258 %patch0 -p1
259 %patch1 -p1
260 %patch2 -p1
261 %patch3 -p1
262 %patch4 -p1
263 %patch5 -p1
264 %patch6 -p1
265 %patch7 -p1
266 %patch8 -p1
267 %patch10 -p1
268
269 sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
270
271 %build
272 touch Makefile.*
273
274 %{__perl} util/perlpath.pl %{__perl}
275
276 OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
277 PERL="%{__perl}" \
278 %{__perl} ./Configure \
279         --openssldir=%{_sysconfdir}/%{name} \
280         --libdir=%{_lib} \
281         shared \
282         threads \
283         %{!?with_sslv2:no-ssl2} \
284         %{!?with_sslv3:no-ssl3} \
285         %{!?with_zlib:no-}zlib \
286         enable-camelia \
287         enable-cms \
288         enable-idea \
289         enable-md2 \
290         enable-mdc2 \
291         enable-rc5 \
292         enable-rfc3779 \
293         enable-seed \
294         enable-tlsext \
295 %ifarch %{x8664}
296         enable-ec_nistp_64_gcc_128 \
297 %endif
298 %ifarch %{ix86}
299 %ifarch i386
300         386 linux-elf
301 # ^- allow running on 80386 (default code uses bswapl available on i486+)
302 %else
303         linux-elf
304 %endif
305 %endif
306 %ifarch alpha
307         linux-alpha+bwx-gcc
308 %endif
309 %ifarch %{x8664}
310         linux-x86_64
311 %endif
312 %ifarch x32
313         linux-x32
314 %endif
315 %ifarch ia64
316         linux-ia64
317 %endif
318 %ifarch ppc
319         linux-ppc
320 %endif
321 %ifarch ppc64
322         linux-ppc64
323 %endif
324 %ifarch sparc
325         linux-sparcv8
326 %endif
327 %ifarch sparcv9
328         linux-sparcv9
329 %endif
330 %ifarch sparc64
331         linux64-sparcv9
332 %endif
333 %ifarch armv4 armv5 armv5t armv5te armv5tel
334         linux-armv4
335 %endif
336
337 %{__make} -j1 all rehash %{?with_tests:tests} \
338         CC="%{__cc}" \
339         ASFLAG='$(CFLAG) -Wa,--noexecstack' \
340         INSTALLTOP=%{_prefix}
341
342 # Rename POD sources of man pages. "openssl_" prefix is added to each
343 # manpage to avoid potential conflicts with other packages.
344
345 for dir in doc/{apps,ssl,crypto}; do
346         cd $dir || exit 1;
347         %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
348
349         for pod in !(openssl*).pod; do
350                 mv -f $pod openssl_$pod;
351         done
352         cd ../..
353 done
354
355 %install
356 rm -rf $RPM_BUILD_ROOT
357 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
358         $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
359         $RPM_BUILD_ROOT/%{_lib}/engines \
360         $RPM_BUILD_ROOT%{_pkgconfigdir}
361
362 %{__make} -j1 install \
363         INSTALLTOP=%{_prefix} \
364         INSTALL_PREFIX=$RPM_BUILD_ROOT \
365         MANDIR=%{_mandir}
366
367 mv -f $RPM_BUILD_ROOT%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
368 mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
369 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
370 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
371
372 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
373 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
374
375 # not installed as individual utilities (see openssl dgst instead)
376 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{dss1,md2,md4,md5,mdc2,ripemd160,sha,sha1,sha224,sha256,sha384,sha512}.1
377
378 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
379 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
380 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
381
382 %clean
383 rm -rf $RPM_BUILD_ROOT
384
385 %post   -p /sbin/ldconfig
386 %postun -p /sbin/ldconfig
387
388 %triggerpostun -- %{name}-tools < 1.0.0-5
389 # the hashing format has changed in 1.0.0
390 [ ! -x %{_sbindir}/update-ca-certificates ] || %{_sbindir}/update-ca-certificates --fresh || :
391
392 %triggerpostun -- %{name} < 0.9.8i-2
393 # don't do anything on --downgrade
394 if [ $1 -le 1 ]; then
395         exit 0
396 fi
397 if [ -d /var/lib/openssl/certs ] ; then
398         mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
399 fi
400 if [ -d /var/lib/openssl/private ] ; then
401         mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
402 fi
403 if [ -d /var/lib/openssl ] ; then
404         for f in /var/lib/openssl/* ; do
405                 [ -f "$f" ] && mv "$f" %{_sysconfdir}/%{name} 2>/dev/null || :
406         done
407         rmdir /var/lib/openssl/* 2>/dev/null || :
408         rmdir /var/lib/openssl 2>/dev/null || :
409 fi
410
411 %files
412 %defattr(644,root,root,755)
413 %doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
414 %attr(755,root,root) /%{_lib}/libcrypto.so.*.*.*
415 %attr(755,root,root) /%{_lib}/libssl.so.*.*.*
416 %dir %{_sysconfdir}/%{name}
417 %dir %{_sysconfdir}/%{name}/certs
418 %dir %{_sysconfdir}/%{name}/private
419 %dir %{_datadir}/ssl
420
421 %files engines
422 %defattr(644,root,root,755)
423 %dir /%{_lib}/engines
424 %attr(755,root,root) /%{_lib}/engines/*.so
425
426 %files tools
427 %defattr(644,root,root,755)
428 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
429 %attr(755,root,root) %{_bindir}/c_rehash.sh
430 %attr(755,root,root) %{_bindir}/openssl
431 %attr(754,root,root) %{_bindir}/ssl-certificate
432
433 %dir %{_libdir}/%{name}
434 %attr(755,root,root) %{_libdir}/%{name}/CA.sh
435 %attr(755,root,root) %{_libdir}/%{name}/c_hash
436 %attr(755,root,root) %{_libdir}/%{name}/c_info
437 %attr(755,root,root) %{_libdir}/%{name}/c_issuer
438 %attr(755,root,root) %{_libdir}/%{name}/c_name
439
440 %{_mandir}/man1/openssl.1*
441 %{_mandir}/man1/openssl_asn1parse.1*
442 %{_mandir}/man1/openssl_ca.1*
443 %{_mandir}/man1/openssl_ciphers.1*
444 %{_mandir}/man1/openssl_cms.1*
445 %{_mandir}/man1/openssl_crl.1*
446 %{_mandir}/man1/openssl_crl2pkcs7.1*
447 %{_mandir}/man1/openssl_dgst.1*
448 %{_mandir}/man1/openssl_dhparam.1*
449 %{_mandir}/man1/openssl_dsa.1*
450 %{_mandir}/man1/openssl_dsaparam.1*
451 %{_mandir}/man1/openssl_ec.1*
452 %{_mandir}/man1/openssl_ecparam.1*
453 %{_mandir}/man1/openssl_enc.1*
454 %{_mandir}/man1/openssl_errstr.1*
455 %{_mandir}/man1/openssl_gendsa.1*
456 %{_mandir}/man1/openssl_genpkey.1*
457 %{_mandir}/man1/openssl_genrsa.1*
458 %{_mandir}/man1/openssl_nseq.1*
459 %{_mandir}/man1/openssl_ocsp.1*
460 %{_mandir}/man1/openssl_passwd.1*
461 %{_mandir}/man1/openssl_pkcs12.1*
462 %{_mandir}/man1/openssl_pkcs7.1*
463 %{_mandir}/man1/openssl_pkcs8.1*
464 %{_mandir}/man1/openssl_pkey.1*
465 %{_mandir}/man1/openssl_pkeyparam.1*
466 %{_mandir}/man1/openssl_pkeyutl.1*
467 %{_mandir}/man1/openssl_rand.1*
468 %{_mandir}/man1/openssl_req.1*
469 %{_mandir}/man1/openssl_rsa.1*
470 %{_mandir}/man1/openssl_rsautl.1*
471 %{_mandir}/man1/openssl_s_client.1*
472 %{_mandir}/man1/openssl_s_server.1*
473 %{_mandir}/man1/openssl_s_time.1*
474 %{_mandir}/man1/openssl_sess_id.1*
475 %{_mandir}/man1/openssl_smime.1*
476 %{_mandir}/man1/openssl_speed.1*
477 %{_mandir}/man1/openssl_spkac.1*
478 %{_mandir}/man1/openssl_ts.1*
479 %{_mandir}/man1/openssl_tsget.1*
480 %{_mandir}/man1/openssl_verify.1*
481 %{_mandir}/man1/openssl_version.1*
482 %{_mandir}/man1/openssl_x509.1*
483 %{_mandir}/man5/openssl_config.5*
484 %{_mandir}/man5/openssl_x509v3_config.5*
485 %lang(pl) %{_mandir}/pl/man1/openssl.1*
486
487 %files tools-perl
488 %defattr(644,root,root,755)
489 %attr(755,root,root) %{_bindir}/c_rehash
490 %attr(755,root,root) %{_libdir}/%{name}/CA.pl
491 %attr(755,root,root) %{_libdir}/%{name}/tsget
492 %{_mandir}/man1/openssl_CA.pl.1*
493 %{_mandir}/man1/openssl_c_rehash.1*
494
495 %files devel
496 %defattr(644,root,root,755)
497 %attr(755,root,root) %{_libdir}/libcrypto.so
498 %attr(755,root,root) %{_libdir}/libssl.so
499 %{_includedir}/%{name}
500 %{_pkgconfigdir}/libcrypto.pc
501 %{_pkgconfigdir}/libssl.pc
502 %{_pkgconfigdir}/openssl.pc
503 %{_mandir}/man3/openssl*.3*
504 %{_mandir}/man7/openssl_des_modes.7*
505
506 %files static
507 %defattr(644,root,root,755)
508 %{_libdir}/libcrypto.a
509 %{_libdir}/libssl.a
This page took 0.06841 seconds and 3 git commands to generate.