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
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
44 Patch10: %{name}_fix_for_x32.patch
45 URL: http://www.openssl.org/
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
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
63 Conflicts: neon < 0.29.6-8
64 Conflicts: openssh-clients < 2:6.2p2-3
65 Conflicts: openssh-server < 2:6.2p2-3
67 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
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.
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.
84 This package contains shared libraries only, install openssl-tools if
85 you want to use openssl cmdline tool.
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.
93 %description -l es.UTF-8
94 Biblioteca C que suministra algoritmos y protocolos criptográficos.
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.
101 %description -l pl.UTF-8
102 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
103 v2/v3 oraz Transport Layer Security (TLS v1).
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.
110 %description -l ru.UTF-8
111 Программа openssl для работы с сертификатами и разделяемые библиотеки,
112 которые реализуют множетсво криптографических алгоритмов, включая DES,
115 %description -l uk.UTF-8
116 Програма openssl для роботи з сертифікатами та бібліотеки спільного
117 користування, що реалізують велику кількість криптографічних
118 алгоритмів, включаючи DES, RC4, RSA та SSL.
121 Summary: OpenSSL optional crypto engines
122 Summary(pl.UTF-8): Opcjonalne silniki kryptograficzne dla OpenSSL-a
124 Requires: %{name} = %{version}-%{release}
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
132 There are currently built-in ENGINE implementations for the following
141 In addition, dynamic binding to external ENGINE implementations is now
142 provided by a special ENGINE called "dynamic".
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.
151 Obecnie istnieją wbudowane implementacje silników dla następujących
152 urządzeń kryptograficznych:
159 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
160 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
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}
170 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
172 %description tools -l pl.UTF-8
173 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
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}
181 %description tools-perl
182 OpenSSL Toolkit tools written in Perl.
184 %description tools-perl -l pl.UTF-8
185 Narzędzia OpenSSL napisane w perlu.
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
201 Development part of OpenSSL library.
203 %description devel -l es.UTF-8
204 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
206 %description devel -l pl.UTF-8
207 Część biblioteki OpenSSL przeznaczona dla programistów.
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.
214 %description devel -l ru.UTF-8
215 Программа openssl для работы с сертификатами и разделяемые библиотеки,
216 которые реализуют множетсво криптографических алгоритмов, включая DES,
217 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
218 с использованием SSL.
220 %description devel -l uk.UTF-8
221 Програма openssl для роботи з сертифікатами та бібліотеки спільного
222 користування, що реалізують велику кількість криптографічних
223 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
224 хедери для розробки програм з використанням SSL.
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}
236 Static OpenSSL Toolkit libraries.
238 %description static -l pl.UTF-8
239 Statyczne wersje bibliotek z OpenSSL.
241 %description static -l pt_BR.UTF-8
242 Bibliotecas estáticas para desenvolvimento com openssl.
244 %description static -l ru.UTF-8
245 Программа openssl для работы с сертификатами и разделяемые библиотеки,
246 которые реализуют множетсво криптографических алгоритмов, включая DES,
247 RC4, RSA и SSL. Включает статические библиотеки для разработки
248 приложений с использованием OpenSSL.
250 %description static -l uk.UTF-8
251 Програма openssl для роботи з сертифікатами та бібліотеки спільного
252 користування, що реалізують велику кількість криптографічних
253 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
254 бібліотеки для розробки програм з використанням SSL.
269 sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
274 %{__perl} util/perlpath.pl %{__perl}
276 OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
278 %{__perl} ./Configure \
279 --openssldir=%{_sysconfdir}/%{name} \
283 %{!?with_sslv2:no-ssl2} \
284 %{!?with_sslv3:no-ssl3} \
285 %{!?with_zlib:no-}zlib \
296 enable-ec_nistp_64_gcc_128 \
301 # ^- allow running on 80386 (default code uses bswapl available on i486+)
333 %ifarch armv4 armv5 armv5t armv5te armv5tel
337 %{__make} -j1 all rehash %{?with_tests:tests} \
339 ASFLAG='$(CFLAG) -Wa,--noexecstack' \
340 INSTALLTOP=%{_prefix}
342 # Rename POD sources of man pages. "openssl_" prefix is added to each
343 # manpage to avoid potential conflicts with other packages.
345 for dir in doc/{apps,ssl,crypto}; do
347 %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
349 for pod in !(openssl*).pod; do
350 mv -f $pod openssl_$pod;
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}
362 %{__make} -j1 install \
363 INSTALLTOP=%{_prefix} \
364 INSTALL_PREFIX=$RPM_BUILD_ROOT \
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
372 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
373 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
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
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
383 rm -rf $RPM_BUILD_ROOT
385 %post -p /sbin/ldconfig
386 %postun -p /sbin/ldconfig
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 || :
392 %triggerpostun -- %{name} < 0.9.8i-2
393 # don't do anything on --downgrade
394 if [ $1 -le 1 ]; then
397 if [ -d /var/lib/openssl/certs ] ; then
398 mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
400 if [ -d /var/lib/openssl/private ] ; then
401 mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
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 || :
407 rmdir /var/lib/openssl/* 2>/dev/null || :
408 rmdir /var/lib/openssl 2>/dev/null || :
412 %defattr(644,root,root,755)
413 %doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
414 %doc doc/openssl_button.gif doc/openssl_button.html
415 %attr(755,root,root) /%{_lib}/libcrypto.so.*.*.*
416 %attr(755,root,root) /%{_lib}/libssl.so.*.*.*
417 %dir %{_sysconfdir}/%{name}
418 %dir %{_sysconfdir}/%{name}/certs
419 %dir %{_sysconfdir}/%{name}/private
423 %defattr(644,root,root,755)
424 %dir /%{_lib}/engines
425 %attr(755,root,root) /%{_lib}/engines/*.so
428 %defattr(644,root,root,755)
429 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
430 %attr(755,root,root) %{_bindir}/c_rehash.sh
431 %attr(755,root,root) %{_bindir}/openssl
432 %attr(754,root,root) %{_bindir}/ssl-certificate
434 %dir %{_libdir}/%{name}
435 %attr(755,root,root) %{_libdir}/%{name}/CA.sh
436 %attr(755,root,root) %{_libdir}/%{name}/c_hash
437 %attr(755,root,root) %{_libdir}/%{name}/c_info
438 %attr(755,root,root) %{_libdir}/%{name}/c_issuer
439 %attr(755,root,root) %{_libdir}/%{name}/c_name
441 %{_mandir}/man1/openssl.1*
442 %{_mandir}/man1/openssl_asn1parse.1*
443 %{_mandir}/man1/openssl_ca.1*
444 %{_mandir}/man1/openssl_ciphers.1*
445 %{_mandir}/man1/openssl_cms.1*
446 %{_mandir}/man1/openssl_crl.1*
447 %{_mandir}/man1/openssl_crl2pkcs7.1*
448 %{_mandir}/man1/openssl_dgst.1*
449 %{_mandir}/man1/openssl_dhparam.1*
450 %{_mandir}/man1/openssl_dsa.1*
451 %{_mandir}/man1/openssl_dsaparam.1*
452 %{_mandir}/man1/openssl_ec.1*
453 %{_mandir}/man1/openssl_ecparam.1*
454 %{_mandir}/man1/openssl_enc.1*
455 %{_mandir}/man1/openssl_errstr.1*
456 %{_mandir}/man1/openssl_gendsa.1*
457 %{_mandir}/man1/openssl_genpkey.1*
458 %{_mandir}/man1/openssl_genrsa.1*
459 %{_mandir}/man1/openssl_nseq.1*
460 %{_mandir}/man1/openssl_ocsp.1*
461 %{_mandir}/man1/openssl_passwd.1*
462 %{_mandir}/man1/openssl_pkcs12.1*
463 %{_mandir}/man1/openssl_pkcs7.1*
464 %{_mandir}/man1/openssl_pkcs8.1*
465 %{_mandir}/man1/openssl_pkey.1*
466 %{_mandir}/man1/openssl_pkeyparam.1*
467 %{_mandir}/man1/openssl_pkeyutl.1*
468 %{_mandir}/man1/openssl_rand.1*
469 %{_mandir}/man1/openssl_req.1*
470 %{_mandir}/man1/openssl_rsa.1*
471 %{_mandir}/man1/openssl_rsautl.1*
472 %{_mandir}/man1/openssl_s_client.1*
473 %{_mandir}/man1/openssl_s_server.1*
474 %{_mandir}/man1/openssl_s_time.1*
475 %{_mandir}/man1/openssl_sess_id.1*
476 %{_mandir}/man1/openssl_smime.1*
477 %{_mandir}/man1/openssl_speed.1*
478 %{_mandir}/man1/openssl_spkac.1*
479 %{_mandir}/man1/openssl_ts.1*
480 %{_mandir}/man1/openssl_tsget.1*
481 %{_mandir}/man1/openssl_verify.1*
482 %{_mandir}/man1/openssl_version.1*
483 %{_mandir}/man1/openssl_x509.1*
484 %{_mandir}/man5/openssl_config.5*
485 %{_mandir}/man5/openssl_x509v3_config.5*
486 %lang(pl) %{_mandir}/pl/man1/openssl.1*
489 %defattr(644,root,root,755)
490 %attr(755,root,root) %{_bindir}/c_rehash
491 %attr(755,root,root) %{_libdir}/%{name}/CA.pl
492 %attr(755,root,root) %{_libdir}/%{name}/tsget
493 %{_mandir}/man1/openssl_CA.pl.1*
494 %{_mandir}/man1/openssl_c_rehash.1*
497 %defattr(644,root,root,755)
498 %attr(755,root,root) %{_libdir}/libcrypto.so
499 %attr(755,root,root) %{_libdir}/libssl.so
500 %{_includedir}/%{name}
501 %{_pkgconfigdir}/libcrypto.pc
502 %{_pkgconfigdir}/libssl.pc
503 %{_pkgconfigdir}/openssl.pc
504 %{_mandir}/man3/openssl*.3*
505 %{_mandir}/man7/openssl_des_modes.7*
508 %defattr(644,root,root,755)
509 %{_libdir}/libcrypto.a