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
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
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
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
30 Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
31 # Source0-md5: 2218c1a6f807f7206c11eb3ee3a5ec80
32 Source1: https://raw.githubusercontent.com/openssl/openssl/OpenSSL_1_0_2-stable/util/pod2mantest
33 # Source1-md5: 0811d285202cebe91003771475802b4f
35 Source3: %{name}-ssl-certificate.sh
36 Source4: %{name}-c_rehash.sh
37 Patch0: %{name}-alpha-ccc.patch
38 Patch1: %{name}-optflags.patch
39 Patch2: %{name}-include.patch
40 Patch3: %{name}-man-namespace.patch
41 Patch4: %{name}-asflag.patch
42 Patch5: %{name}-ca-certificates.patch
43 Patch6: %{name}-ldflags.patch
44 Patch7: %{name}-find.patch
46 Patch10: %{name}_fix_for_x32.patch
47 URL: http://www.openssl.org/
49 BuildRequires: perl-devel >= 1:5.6.1
50 BuildRequires: rpm-perlprov >= 4.1-13
51 BuildRequires: rpmbuild(macros) >= 1.213
52 BuildRequires: sed >= 4.0
53 Requires: ca-certificates >= 20080809-4
54 Requires: rpm-whiteout >= 1.7
56 Obsoletes: SSLeay-devel
57 Obsoletes: SSLeay-perl
58 Obsoletes: libopenssl0
59 %if "%{pld_release}" == "ac"
60 Conflicts: neon < 0.26.3-3
61 Conflicts: ntpd < 4.2.4p8-10
62 Conflicts: openssh-clients < 2:5.8p1-9
63 Conflicts: openssh-server < 2:5.8p1-9
65 Conflicts: neon < 0.29.6-8
66 Conflicts: openssh-clients < 2:6.2p2-3
67 Conflicts: openssh-server < 2:6.2p2-3
69 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
72 The OpenSSL Project is a collaborative effort to develop a robust,
73 commercial-grade, full-featured, and Open Source toolkit implementing
74 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
75 v1) protocols with full-strength cryptography world-wide. The project
76 is managed by a worldwide community of volunteers that use the
77 Internet to communicate, plan, and develop the OpenSSL tookit and its
78 related documentation.
80 OpenSSL is based on the excellent SSLeay library developed by Eric A.
81 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
82 Apache-style licence, which basically means that you are free to get
83 and use it for commercial and non-commercial purposes subject to some
84 simple license conditions.
86 This package contains shared libraries only, install openssl-tools if
87 you want to use openssl cmdline tool.
89 %description -l de.UTF-8
90 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
91 libraries, die verschiedene Verschlüsselungs- und
92 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
93 zur Verfügung stellen.
95 %description -l es.UTF-8
96 Biblioteca C que suministra algoritmos y protocolos criptográficos.
98 %description -l fr.UTF-8
99 OpenSSL est un outiil de gestion des certificats et les librairies
100 partagees qui fournit plusieurs protocoles et algorithmes de
101 codage/decodage, incluant DES, RC4, RSA et SSL.
103 %description -l pl.UTF-8
104 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
105 v2/v3 oraz Transport Layer Security (TLS v1).
107 %description -l pt_BR.UTF-8
108 Uma biblioteca C que fornece vários algoritmos e protocolos
109 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
110 compartilhadas e utilitários.
112 %description -l ru.UTF-8
113 Программа openssl для работы с сертификатами и разделяемые библиотеки,
114 которые реализуют множетсво криптографических алгоритмов, включая DES,
117 %description -l uk.UTF-8
118 Програма openssl для роботи з сертифікатами та бібліотеки спільного
119 користування, що реалізують велику кількість криптографічних
120 алгоритмів, включаючи DES, RC4, RSA та SSL.
123 Summary: OpenSSL optional crypto engines
124 Summary(pl.UTF-8): Opcjonalne silniki kryptograficzne dla OpenSSL-a
126 Requires: %{name} = %{version}-%{release}
129 With OpenSSL 0.9.6, a new component was added to support alternative
130 cryptography implementations, most commonly for interfacing with
131 external crypto devices (eg. accelerator cards). This component is
134 There are currently built-in ENGINE implementations for the following
143 In addition, dynamic binding to external ENGINE implementations is now
144 provided by a special ENGINE called "dynamic".
146 %description engines -l pl.UTF-8
147 Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
148 wspierać alternatywne implementacje kryptografii, przeważnie
149 współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
150 kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
153 Obecnie istnieją wbudowane implementacje silników dla następujących
154 urządzeń kryptograficznych:
161 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
162 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
165 Summary: OpenSSL command line tool and utilities
166 Summary(pl.UTF-8): Zestaw narzędzi i skryptów
167 Group: Applications/Communications
168 Requires: %{name} = %{version}-%{release}
172 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
174 %description tools -l pl.UTF-8
175 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
178 Summary: OpenSSL utilities written in Perl
179 Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
180 Group: Applications/Communications
181 Requires: %{name} = %{version}-%{release}
183 %description tools-perl
184 OpenSSL Toolkit tools written in Perl.
186 %description tools-perl -l pl.UTF-8
187 Narzędzia OpenSSL napisane w perlu.
190 Summary: Development part of OpenSSL Toolkit libraries
191 Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
192 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
193 Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
194 Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
195 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
196 Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
197 Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
198 Group: Development/Libraries
199 Requires: %{name} = %{version}-%{release}
200 Obsoletes: libopenssl0-devel
203 Development part of OpenSSL library.
205 %description devel -l es.UTF-8
206 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
208 %description devel -l pl.UTF-8
209 Część biblioteki OpenSSL przeznaczona dla programistów.
211 %description devel -l pt_BR.UTF-8
212 Uma biblioteca C que fornece vários algoritmos e protocolos
213 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
214 arquivos de inclusão para desenvolvimento.
216 %description devel -l ru.UTF-8
217 Программа openssl для работы с сертификатами и разделяемые библиотеки,
218 которые реализуют множетсво криптографических алгоритмов, включая DES,
219 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
220 с использованием SSL.
222 %description devel -l uk.UTF-8
223 Програма openssl для роботи з сертифікатами та бібліотеки спільного
224 користування, що реалізують велику кількість криптографічних
225 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
226 хедери для розробки програм з використанням SSL.
229 Summary: Static OpenSSL libraries
230 Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
231 Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
232 Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
233 Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
234 Group: Development/Libraries
235 Requires: %{name}-devel = %{version}-%{release}
238 Static OpenSSL Toolkit libraries.
240 %description static -l pl.UTF-8
241 Statyczne wersje bibliotek z OpenSSL.
243 %description static -l pt_BR.UTF-8
244 Bibliotecas estáticas para desenvolvimento com openssl.
246 %description static -l ru.UTF-8
247 Программа openssl для работы с сертификатами и разделяемые библиотеки,
248 которые реализуют множетсво криптографических алгоритмов, включая DES,
249 RC4, RSA и SSL. Включает статические библиотеки для разработки
250 приложений с использованием OpenSSL.
252 %description static -l uk.UTF-8
253 Програма openssl для роботи з сертифікатами та бібліотеки спільного
254 користування, що реалізують велику кількість криптографічних
255 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
256 бібліотеки для розробки програм з використанням SSL.
271 sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
273 # fix packaging error
274 # https://github.com/openssl/openssl/issues/491
275 ln -s . test/openssl-1.0.2e
277 # also pod2man missing
278 # https://github.com/openssl/openssl/issues/490
279 install -p %{SOURCE1} util
284 %{__perl} util/perlpath.pl %{__perl}
286 OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
288 %{__perl} ./Configure \
289 --openssldir=%{_sysconfdir}/%{name} \
293 %{!?with_sslv2:no-ssl2} \
294 %{!?with_sslv3:no-ssl3} \
295 %{!?with_zlib:no-}zlib \
306 enable-ec_nistp_64_gcc_128 \
311 # ^- allow running on 80386 (default code uses bswapl available on i486+)
343 %ifarch armv4 armv5 armv5t armv5te armv5tel
347 %{__make} -j1 all rehash %{?with_tests:tests} \
349 ASFLAG='$(CFLAG) -Wa,--noexecstack' \
350 INSTALLTOP=%{_prefix}
352 # Rename POD sources of man pages. "openssl_" prefix is added to each
353 # manpage to avoid potential conflicts with other packages.
355 for dir in doc/{apps,ssl,crypto}; do
357 %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
359 for pod in !(openssl*).pod; do
360 mv -f $pod openssl_$pod;
366 rm -rf $RPM_BUILD_ROOT
367 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
368 $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
369 $RPM_BUILD_ROOT/%{_lib}/engines \
370 $RPM_BUILD_ROOT%{_pkgconfigdir}
372 %{__make} -j1 install \
373 INSTALLTOP=%{_prefix} \
374 INSTALL_PREFIX=$RPM_BUILD_ROOT \
377 mv -f $RPM_BUILD_ROOT%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
378 mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
379 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
380 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
382 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
383 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
385 # not installed as individual utilities (see openssl dgst instead)
386 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{dss1,md2,md4,md5,mdc2,ripemd160,sha,sha1,sha224,sha256,sha384,sha512}.1
388 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
389 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
390 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
393 rm -rf $RPM_BUILD_ROOT
395 %post -p /sbin/ldconfig
396 %postun -p /sbin/ldconfig
398 %triggerpostun -- %{name}-tools < 1.0.0-5
399 # the hashing format has changed in 1.0.0
400 [ ! -x %{_sbindir}/update-ca-certificates ] || %{_sbindir}/update-ca-certificates --fresh || :
402 %triggerpostun -- %{name} < 0.9.8i-2
403 # don't do anything on --downgrade
404 if [ $1 -le 1 ]; then
407 if [ -d /var/lib/openssl/certs ] ; then
408 mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
410 if [ -d /var/lib/openssl/private ] ; then
411 mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
413 if [ -d /var/lib/openssl ] ; then
414 for f in /var/lib/openssl/* ; do
415 [ -f "$f" ] && mv "$f" %{_sysconfdir}/%{name} 2>/dev/null || :
417 rmdir /var/lib/openssl/* 2>/dev/null || :
418 rmdir /var/lib/openssl 2>/dev/null || :
422 %defattr(644,root,root,755)
423 %doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
424 #%doc doc/openssl_button.gif doc/openssl_button.html
425 %attr(755,root,root) /%{_lib}/libcrypto.so.*.*.*
426 %attr(755,root,root) /%{_lib}/libssl.so.*.*.*
427 %dir %{_sysconfdir}/%{name}
428 %dir %{_sysconfdir}/%{name}/certs
429 %dir %{_sysconfdir}/%{name}/private
433 %defattr(644,root,root,755)
434 %dir /%{_lib}/engines
435 %attr(755,root,root) /%{_lib}/engines/*.so
438 %defattr(644,root,root,755)
439 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
440 %attr(755,root,root) %{_bindir}/c_rehash.sh
441 %attr(755,root,root) %{_bindir}/openssl
442 %attr(754,root,root) %{_bindir}/ssl-certificate
444 %dir %{_libdir}/%{name}
445 %attr(755,root,root) %{_libdir}/%{name}/CA.sh
446 %attr(755,root,root) %{_libdir}/%{name}/c_hash
447 %attr(755,root,root) %{_libdir}/%{name}/c_info
448 %attr(755,root,root) %{_libdir}/%{name}/c_issuer
449 %attr(755,root,root) %{_libdir}/%{name}/c_name
451 %{_mandir}/man1/openssl.1*
452 %{_mandir}/man1/openssl_asn1parse.1*
453 %{_mandir}/man1/openssl_ca.1*
454 %{_mandir}/man1/openssl_ciphers.1*
455 %{_mandir}/man1/openssl_cms.1*
456 %{_mandir}/man1/openssl_crl.1*
457 %{_mandir}/man1/openssl_crl2pkcs7.1*
458 %{_mandir}/man1/openssl_dgst.1*
459 %{_mandir}/man1/openssl_dhparam.1*
460 %{_mandir}/man1/openssl_dsa.1*
461 %{_mandir}/man1/openssl_dsaparam.1*
462 %{_mandir}/man1/openssl_ec.1*
463 %{_mandir}/man1/openssl_ecparam.1*
464 %{_mandir}/man1/openssl_enc.1*
465 %{_mandir}/man1/openssl_errstr.1*
466 %{_mandir}/man1/openssl_gendsa.1*
467 %{_mandir}/man1/openssl_genpkey.1*
468 %{_mandir}/man1/openssl_genrsa.1*
469 %{_mandir}/man1/openssl_nseq.1*
470 %{_mandir}/man1/openssl_ocsp.1*
471 %{_mandir}/man1/openssl_passwd.1*
472 %{_mandir}/man1/openssl_pkcs12.1*
473 %{_mandir}/man1/openssl_pkcs7.1*
474 %{_mandir}/man1/openssl_pkcs8.1*
475 %{_mandir}/man1/openssl_pkey.1*
476 %{_mandir}/man1/openssl_pkeyparam.1*
477 %{_mandir}/man1/openssl_pkeyutl.1*
478 %{_mandir}/man1/openssl_rand.1*
479 %{_mandir}/man1/openssl_req.1*
480 %{_mandir}/man1/openssl_rsa.1*
481 %{_mandir}/man1/openssl_rsautl.1*
482 %{_mandir}/man1/openssl_s_client.1*
483 %{_mandir}/man1/openssl_s_server.1*
484 %{_mandir}/man1/openssl_s_time.1*
485 %{_mandir}/man1/openssl_sess_id.1*
486 %{_mandir}/man1/openssl_smime.1*
487 %{_mandir}/man1/openssl_speed.1*
488 %{_mandir}/man1/openssl_spkac.1*
489 %{_mandir}/man1/openssl_ts.1*
490 %{_mandir}/man1/openssl_tsget.1*
491 %{_mandir}/man1/openssl_verify.1*
492 %{_mandir}/man1/openssl_version.1*
493 %{_mandir}/man1/openssl_x509.1*
494 %{_mandir}/man5/openssl_config.5*
495 %{_mandir}/man5/openssl_x509v3_config.5*
496 %lang(pl) %{_mandir}/pl/man1/openssl.1*
499 %defattr(644,root,root,755)
500 %attr(755,root,root) %{_bindir}/c_rehash
501 %attr(755,root,root) %{_libdir}/%{name}/CA.pl
502 %attr(755,root,root) %{_libdir}/%{name}/tsget
503 %{_mandir}/man1/openssl_CA.pl.1*
504 %{_mandir}/man1/openssl_c_rehash.1*
507 %defattr(644,root,root,755)
508 %attr(755,root,root) %{_libdir}/libcrypto.so
509 %attr(755,root,root) %{_libdir}/libssl.so
510 %{_includedir}/%{name}
511 %{_pkgconfigdir}/libcrypto.pc
512 %{_pkgconfigdir}/libssl.pc
513 %{_pkgconfigdir}/openssl.pc
514 %{_mandir}/man3/openssl*.3*
515 %{_mandir}/man7/openssl_des_modes.7*
518 %defattr(644,root,root,755)
519 %{_libdir}/libcrypto.a