2 # - consider dropping last optflags.patch hunk and return to SOMAJOR (.so.1) sonames
5 %bcond_without tests # don't perform "make tests"
6 %bcond_without zlib # zlib: note - enables CVE-2012-4929 vulnerability
7 %bcond_without sslv2 # SSLv2: note - many flaws http://en.wikipedia.org/wiki/Transport_Layer_Security#SSL_2.0
8 %bcond_without sslv3 # SSLv3: note - enables CVE-2014-3566 vulnerability
9 %bcond_with purify # Compile openssl with "-DPURIFY", useful when one wants to
10 # use valgrind debugger against openssl-linked programs
12 %include /usr/lib/rpm/macros.perl
13 Summary: OpenSSL Toolkit libraries for the "Secure Sockets Layer" (SSL v2/v3)
14 Summary(de.UTF-8): Secure Sockets Layer (SSL)-Kommunikationslibrary
15 Summary(es.UTF-8): Biblioteca C que suministra algoritmos y protocolos criptográficos
16 Summary(fr.UTF-8): Utilitaires de communication SSL (Secure Sockets Layer)
17 Summary(pl.UTF-8): Biblioteki OpenSSL (SSL v2/v3)
18 Summary(pt_BR.UTF-8): Uma biblioteca C que fornece vários algoritmos e protocolos criptográficos
19 Summary(ru.UTF-8): Библиотеки и утилиты для соединений через Secure Sockets Layer
20 Summary(uk.UTF-8): Бібліотеки та утиліти для з'єднань через Secure Sockets Layer
22 # 1.0.2 will be LTS release
23 # Version 1.0.2 will be supported until 2019-12-31.
24 # https://www.openssl.org/about/releasestrat.html
29 Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
30 # Source0-md5: 38dd619b2e77cbac69b99f52a053d25a
32 Source3: %{name}-ssl-certificate.sh
33 Source4: %{name}-c_rehash.sh
34 Patch0: %{name}-alpha-ccc.patch
35 Patch1: %{name}-optflags.patch
36 Patch2: %{name}-include.patch
37 Patch3: %{name}-man-namespace.patch
38 Patch4: %{name}-asflag.patch
39 Patch5: %{name}-ca-certificates.patch
40 Patch6: %{name}-ldflags.patch
41 Patch7: %{name}-find.patch
43 Patch10: %{name}_fix_for_x32.patch
44 URL: http://www.openssl.org/
46 BuildRequires: perl-devel >= 1:5.6.1
47 BuildRequires: rpm-perlprov >= 4.1-13
48 BuildRequires: rpmbuild(macros) >= 1.213
49 BuildRequires: sed >= 4.0
50 Requires: ca-certificates >= 20080809-4
51 Requires: rpm-whiteout >= 1.7
53 Obsoletes: SSLeay-devel
54 Obsoletes: SSLeay-perl
55 Obsoletes: libopenssl0
56 %if "%{pld_release}" == "ac"
57 Conflicts: openssh-clients < 2:5.8p1-9
58 Conflicts: openssh-server < 2:5.8p1-9
60 Conflicts: neon < 0.29.6-8
61 Conflicts: openssh-clients < 2:6.2p2-3
62 Conflicts: openssh-server < 2:6.2p2-3
64 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67 The OpenSSL Project is a collaborative effort to develop a robust,
68 commercial-grade, full-featured, and Open Source toolkit implementing
69 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
70 v1) protocols with full-strength cryptography world-wide. The project
71 is managed by a worldwide community of volunteers that use the
72 Internet to communicate, plan, and develop the OpenSSL tookit and its
73 related documentation.
75 OpenSSL is based on the excellent SSLeay library developed by Eric A.
76 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
77 Apache-style licence, which basically means that you are free to get
78 and use it for commercial and non-commercial purposes subject to some
79 simple license conditions.
81 This package contains shared libraries only, install openssl-tools if
82 you want to use openssl cmdline tool.
84 %description -l de.UTF-8
85 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
86 libraries, die verschiedene Verschlüsselungs- und
87 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
88 zur Verfügung stellen.
90 %description -l es.UTF-8
91 Biblioteca C que suministra algoritmos y protocolos criptográficos.
93 %description -l fr.UTF-8
94 OpenSSL est un outiil de gestion des certificats et les librairies
95 partagees qui fournit plusieurs protocoles et algorithmes de
96 codage/decodage, incluant DES, RC4, RSA et SSL.
98 %description -l pl.UTF-8
99 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
100 v2/v3 oraz Transport Layer Security (TLS v1).
102 %description -l pt_BR.UTF-8
103 Uma biblioteca C que fornece vários algoritmos e protocolos
104 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
105 compartilhadas e utilitários.
107 %description -l ru.UTF-8
108 Программа openssl для работы с сертификатами и разделяемые библиотеки,
109 которые реализуют множетсво криптографических алгоритмов, включая DES,
112 %description -l uk.UTF-8
113 Програма openssl для роботи з сертифікатами та бібліотеки спільного
114 користування, що реалізують велику кількість криптографічних
115 алгоритмів, включаючи DES, RC4, RSA та SSL.
118 Summary: OpenSSL optional crypto engines
119 Summary(pl.UTF-8): Opcjonalne silniki kryptograficzne dla OpenSSL-a
121 Requires: %{name} = %{version}-%{release}
124 With OpenSSL 0.9.6, a new component was added to support alternative
125 cryptography implementations, most commonly for interfacing with
126 external crypto devices (eg. accelerator cards). This component is
129 There are currently built-in ENGINE implementations for the following
138 In addition, dynamic binding to external ENGINE implementations is now
139 provided by a special ENGINE called "dynamic".
141 %description engines -l pl.UTF-8
142 Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
143 wspierać alternatywne implementacje kryptografii, przeważnie
144 współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
145 kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
148 Obecnie istnieją wbudowane implementacje silników dla następujących
149 urządzeń kryptograficznych:
156 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
157 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
160 Summary: OpenSSL command line tool and utilities
161 Summary(pl.UTF-8): Zestaw narzędzi i skryptów
162 Group: Applications/Communications
163 Requires: %{name} = %{version}-%{release}
167 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
169 %description tools -l pl.UTF-8
170 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
173 Summary: OpenSSL utilities written in Perl
174 Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
175 Group: Applications/Communications
176 Requires: %{name} = %{version}-%{release}
178 %description tools-perl
179 OpenSSL Toolkit tools written in Perl.
181 %description tools-perl -l pl.UTF-8
182 Narzędzia OpenSSL napisane w perlu.
185 Summary: Development part of OpenSSL Toolkit libraries
186 Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
187 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
188 Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
189 Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
190 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
191 Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
192 Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
193 Group: Development/Libraries
194 Requires: %{name} = %{version}-%{release}
195 Obsoletes: libopenssl0-devel
198 Development part of OpenSSL library.
200 %description devel -l es.UTF-8
201 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
203 %description devel -l pl.UTF-8
204 Część biblioteki OpenSSL przeznaczona dla programistów.
206 %description devel -l pt_BR.UTF-8
207 Uma biblioteca C que fornece vários algoritmos e protocolos
208 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
209 arquivos de inclusão para desenvolvimento.
211 %description devel -l ru.UTF-8
212 Программа openssl для работы с сертификатами и разделяемые библиотеки,
213 которые реализуют множетсво криптографических алгоритмов, включая DES,
214 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
215 с использованием SSL.
217 %description devel -l uk.UTF-8
218 Програма openssl для роботи з сертифікатами та бібліотеки спільного
219 користування, що реалізують велику кількість криптографічних
220 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
221 хедери для розробки програм з використанням SSL.
224 Summary: Static OpenSSL libraries
225 Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
226 Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
227 Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
228 Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
229 Group: Development/Libraries
230 Requires: %{name}-devel = %{version}-%{release}
233 Static OpenSSL Toolkit libraries.
235 %description static -l pl.UTF-8
236 Statyczne wersje bibliotek z OpenSSL.
238 %description static -l pt_BR.UTF-8
239 Bibliotecas estáticas para desenvolvimento com openssl.
241 %description static -l ru.UTF-8
242 Программа openssl для работы с сертификатами и разделяемые библиотеки,
243 которые реализуют множетсво криптографических алгоритмов, включая DES,
244 RC4, RSA и SSL. Включает статические библиотеки для разработки
245 приложений с использованием OpenSSL.
247 %description static -l uk.UTF-8
248 Програма openssl для роботи з сертифікатами та бібліотеки спільного
249 користування, що реалізують велику кількість криптографічних
250 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
251 бібліотеки для розробки програм з використанням SSL.
266 sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
271 %{__perl} util/perlpath.pl %{__perl}
273 OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
275 %{__perl} ./Configure \
276 --openssldir=%{_sysconfdir}/%{name} \
280 %{!?with_sslv2:no-ssl2} \
281 %{!?with_sslv3:no-ssl3} \
282 %{!?with_zlib:no-}zlib \
293 enable-ec_nistp_64_gcc_128 \
298 # ^- allow running on 80386 (default code uses bswapl available on i486+)
330 %ifarch armv4 armv5 armv5t armv5te armv5tel
334 %{__make} -j1 all rehash %{?with_tests:tests} \
336 ASFLAG='$(CFLAG) -Wa,--noexecstack' \
337 INSTALLTOP=%{_prefix}
339 # Rename POD sources of man pages. "openssl_" prefix is added to each
340 # manpage to avoid potential conflicts with other packages.
342 for dir in doc/{apps,ssl,crypto}; do
344 %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
346 for pod in !(openssl*).pod; do
347 mv -f $pod openssl_$pod;
353 rm -rf $RPM_BUILD_ROOT
354 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
355 $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
356 $RPM_BUILD_ROOT/%{_lib}/engines \
357 $RPM_BUILD_ROOT%{_pkgconfigdir}
359 %{__make} -j1 install \
360 INSTALLTOP=%{_prefix} \
361 INSTALL_PREFIX=$RPM_BUILD_ROOT \
364 mv -f $RPM_BUILD_ROOT%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
365 mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
366 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
367 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
369 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
370 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
372 # not installed as individual utilities (see openssl dgst instead)
373 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{dss1,md2,md4,md5,mdc2,ripemd160,sha,sha1,sha224,sha256,sha384,sha512}.1
375 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
376 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
377 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
380 rm -rf $RPM_BUILD_ROOT
382 %post -p /sbin/ldconfig
383 %postun -p /sbin/ldconfig
385 %triggerpostun -- %{name}-tools < 1.0.0-5
386 # the hashing format has changed in 1.0.0
387 [ ! -x %{_sbindir}/update-ca-certificates ] || %{_sbindir}/update-ca-certificates --fresh || :
389 %triggerpostun -- %{name} < 0.9.8i-2
390 # don't do anything on --downgrade
391 if [ $1 -le 1 ]; then
394 if [ -d /var/lib/openssl/certs ] ; then
395 mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
397 if [ -d /var/lib/openssl/private ] ; then
398 mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
400 if [ -d /var/lib/openssl ] ; then
401 for f in /var/lib/openssl/* ; do
402 [ -f "$f" ] && mv "$f" %{_sysconfdir}/%{name} 2>/dev/null || :
404 rmdir /var/lib/openssl/* 2>/dev/null || :
405 rmdir /var/lib/openssl 2>/dev/null || :
409 %defattr(644,root,root,755)
410 %doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
411 %doc doc/openssl_button.gif doc/openssl_button.html
412 %attr(755,root,root) /%{_lib}/libcrypto.so.*.*.*
413 %attr(755,root,root) /%{_lib}/libssl.so.*.*.*
414 %dir %{_sysconfdir}/%{name}
415 %dir %{_sysconfdir}/%{name}/certs
416 %dir %{_sysconfdir}/%{name}/private
420 %defattr(644,root,root,755)
421 %dir /%{_lib}/engines
422 %attr(755,root,root) /%{_lib}/engines/*.so
425 %defattr(644,root,root,755)
426 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
427 %attr(755,root,root) %{_bindir}/c_rehash.sh
428 %attr(755,root,root) %{_bindir}/openssl
429 %attr(754,root,root) %{_bindir}/ssl-certificate
431 %dir %{_libdir}/%{name}
432 %attr(755,root,root) %{_libdir}/%{name}/CA.sh
433 %attr(755,root,root) %{_libdir}/%{name}/c_hash
434 %attr(755,root,root) %{_libdir}/%{name}/c_info
435 %attr(755,root,root) %{_libdir}/%{name}/c_issuer
436 %attr(755,root,root) %{_libdir}/%{name}/c_name
438 %{_mandir}/man1/openssl.1*
439 %{_mandir}/man1/openssl_asn1parse.1*
440 %{_mandir}/man1/openssl_ca.1*
441 %{_mandir}/man1/openssl_ciphers.1*
442 %{_mandir}/man1/openssl_cms.1*
443 %{_mandir}/man1/openssl_crl.1*
444 %{_mandir}/man1/openssl_crl2pkcs7.1*
445 %{_mandir}/man1/openssl_dgst.1*
446 %{_mandir}/man1/openssl_dhparam.1*
447 %{_mandir}/man1/openssl_dsa.1*
448 %{_mandir}/man1/openssl_dsaparam.1*
449 %{_mandir}/man1/openssl_ec.1*
450 %{_mandir}/man1/openssl_ecparam.1*
451 %{_mandir}/man1/openssl_enc.1*
452 %{_mandir}/man1/openssl_errstr.1*
453 %{_mandir}/man1/openssl_gendsa.1*
454 %{_mandir}/man1/openssl_genpkey.1*
455 %{_mandir}/man1/openssl_genrsa.1*
456 %{_mandir}/man1/openssl_nseq.1*
457 %{_mandir}/man1/openssl_ocsp.1*
458 %{_mandir}/man1/openssl_passwd.1*
459 %{_mandir}/man1/openssl_pkcs12.1*
460 %{_mandir}/man1/openssl_pkcs7.1*
461 %{_mandir}/man1/openssl_pkcs8.1*
462 %{_mandir}/man1/openssl_pkey.1*
463 %{_mandir}/man1/openssl_pkeyparam.1*
464 %{_mandir}/man1/openssl_pkeyutl.1*
465 %{_mandir}/man1/openssl_rand.1*
466 %{_mandir}/man1/openssl_req.1*
467 %{_mandir}/man1/openssl_rsa.1*
468 %{_mandir}/man1/openssl_rsautl.1*
469 %{_mandir}/man1/openssl_s_client.1*
470 %{_mandir}/man1/openssl_s_server.1*
471 %{_mandir}/man1/openssl_s_time.1*
472 %{_mandir}/man1/openssl_sess_id.1*
473 %{_mandir}/man1/openssl_smime.1*
474 %{_mandir}/man1/openssl_speed.1*
475 %{_mandir}/man1/openssl_spkac.1*
476 %{_mandir}/man1/openssl_ts.1*
477 %{_mandir}/man1/openssl_tsget.1*
478 %{_mandir}/man1/openssl_verify.1*
479 %{_mandir}/man1/openssl_version.1*
480 %{_mandir}/man1/openssl_x509.1*
481 %{_mandir}/man5/openssl_config.5*
482 %{_mandir}/man5/openssl_x509v3_config.5*
483 %lang(pl) %{_mandir}/pl/man1/openssl.1*
486 %defattr(644,root,root,755)
487 %attr(755,root,root) %{_bindir}/c_rehash
488 %attr(755,root,root) %{_libdir}/%{name}/CA.pl
489 %attr(755,root,root) %{_libdir}/%{name}/tsget
490 %{_mandir}/man1/openssl_CA.pl.1*
491 %{_mandir}/man1/openssl_c_rehash.1*
494 %defattr(644,root,root,755)
495 %attr(755,root,root) %{_libdir}/libcrypto.so
496 %attr(755,root,root) %{_libdir}/libssl.so
497 %{_includedir}/%{name}
498 %{_pkgconfigdir}/libcrypto.pc
499 %{_pkgconfigdir}/libssl.pc
500 %{_pkgconfigdir}/openssl.pc
501 %{_mandir}/man3/openssl*.3*
502 %{_mandir}/man7/openssl_des_modes.7*
505 %defattr(644,root,root,755)
506 %{_libdir}/libcrypto.a