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
26 Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
27 # Source0-md5: f7175c9cd3c39bb1907ac8bba9df8ed3
29 Source3: %{name}-ssl-certificate.sh
30 Source4: %{name}-c_rehash.sh
31 Patch0: %{name}-alpha-ccc.patch
32 Patch1: %{name}-optflags.patch
33 Patch2: %{name}-globalCA.diff
34 Patch3: %{name}-include.patch
35 Patch4: %{name}-man-namespace.patch
36 Patch5: %{name}-asflag.patch
37 Patch6: %{name}-ca-certificates.patch
38 Patch7: %{name}-ldflags.patch
39 Patch8: %{name}-find.patch
41 Patch10: default_bits.patch
44 Patch13: openssl_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 Conflicts: neon < 0.29.6-8
58 Conflicts: openssh-clients < 2:6.2p2-3
59 Conflicts: openssh-server < 2:6.2p2-3
60 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
63 The OpenSSL Project is a collaborative effort to develop a robust,
64 commercial-grade, full-featured, and Open Source toolkit implementing
65 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
66 v1) protocols with full-strength cryptography world-wide. The project
67 is managed by a worldwide community of volunteers that use the
68 Internet to communicate, plan, and develop the OpenSSL tookit and its
69 related documentation.
71 OpenSSL is based on the excellent SSLeay library developed by Eric A.
72 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
73 Apache-style licence, which basically means that you are free to get
74 and use it for commercial and non-commercial purposes subject to some
75 simple license conditions.
77 This package contains shared libraries only, install openssl-tools if
78 you want to use openssl cmdline tool.
80 %description -l de.UTF-8
81 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
82 libraries, die verschiedene Verschlüsselungs- und
83 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
84 zur Verfügung stellen.
86 %description -l es.UTF-8
87 Biblioteca C que suministra algoritmos y protocolos criptográficos.
89 %description -l fr.UTF-8
90 OpenSSL est un outiil de gestion des certificats et les librairies
91 partagees qui fournit plusieurs protocoles et algorithmes de
92 codage/decodage, incluant DES, RC4, RSA et SSL.
94 %description -l pl.UTF-8
95 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
96 v2/v3 oraz Transport Layer Security (TLS v1).
98 %description -l pt_BR.UTF-8
99 Uma biblioteca C que fornece vários algoritmos e protocolos
100 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
101 compartilhadas e utilitários.
103 %description -l ru.UTF-8
104 Программа openssl для работы с сертификатами и разделяемые библиотеки,
105 которые реализуют множетсво криптографических алгоритмов, включая DES,
108 %description -l uk.UTF-8
109 Програма openssl для роботи з сертифікатами та бібліотеки спільного
110 користування, що реалізують велику кількість криптографічних
111 алгоритмів, включаючи DES, RC4, RSA та SSL.
114 Summary: OpenSSL optional crypto engines
115 Summary(pl.UTF-8): Opcjonalne silniki kryptograficzne dla OpenSSL-a
117 Requires: %{name} = %{version}-%{release}
120 With OpenSSL 0.9.6, a new component was added to support alternative
121 cryptography implementations, most commonly for interfacing with
122 external crypto devices (eg. accelerator cards). This component is
125 There are currently built-in ENGINE implementations for the following
134 In addition, dynamic binding to external ENGINE implementations is now
135 provided by a special ENGINE called "dynamic".
137 %description engines -l pl.UTF-8
138 Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
139 wspierać alternatywne implementacje kryptografii, przeważnie
140 współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
141 kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
144 Obecnie istnieją wbudowane implementacje silników dla następujących
145 urządzeń kryptograficznych:
152 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
153 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
156 Summary: OpenSSL command line tool and utilities
157 Summary(pl.UTF-8): Zestaw narzędzi i skryptów
158 Group: Applications/Communications
159 Requires: %{name} = %{version}-%{release}
163 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
165 %description tools -l pl.UTF-8
166 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
169 Summary: OpenSSL utilities written in Perl
170 Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
171 Group: Applications/Communications
172 Requires: %{name} = %{version}-%{release}
174 %description tools-perl
175 OpenSSL Toolkit tools written in Perl.
177 %description tools-perl -l pl.UTF-8
178 Narzędzia OpenSSL napisane w perlu.
181 Summary: Development part of OpenSSL Toolkit libraries
182 Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
183 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
184 Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
185 Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
186 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
187 Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
188 Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
189 Group: Development/Libraries
190 Requires: %{name} = %{version}-%{release}
191 Obsoletes: libopenssl0-devel
194 Development part of OpenSSL library.
196 %description devel -l es.UTF-8
197 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
199 %description devel -l pl.UTF-8
200 Część biblioteki OpenSSL przeznaczona dla programistów.
202 %description devel -l pt_BR.UTF-8
203 Uma biblioteca C que fornece vários algoritmos e protocolos
204 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
205 arquivos de inclusão para desenvolvimento.
207 %description devel -l ru.UTF-8
208 Программа openssl для работы с сертификатами и разделяемые библиотеки,
209 которые реализуют множетсво криптографических алгоритмов, включая DES,
210 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
211 с использованием SSL.
213 %description devel -l uk.UTF-8
214 Програма openssl для роботи з сертифікатами та бібліотеки спільного
215 користування, що реалізують велику кількість криптографічних
216 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
217 хедери для розробки програм з використанням SSL.
220 Summary: Static OpenSSL libraries
221 Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
222 Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
223 Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
224 Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
225 Group: Development/Libraries
226 Requires: %{name}-devel = %{version}-%{release}
229 Static OpenSSL Toolkit libraries.
231 %description static -l pl.UTF-8
232 Statyczne wersje bibliotek z OpenSSL.
234 %description static -l pt_BR.UTF-8
235 Bibliotecas estáticas para desenvolvimento com openssl.
237 %description static -l ru.UTF-8
238 Программа openssl для работы с сертификатами и разделяемые библиотеки,
239 которые реализуют множетсво криптографических алгоритмов, включая DES,
240 RC4, RSA и SSL. Включает статические библиотеки для разработки
241 приложений с использованием OpenSSL.
243 %description static -l uk.UTF-8
244 Програма openssl для роботи з сертифікатами та бібліотеки спільного
245 користування, що реалізують велику кількість криптографічних
246 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
247 бібліотеки для розробки програм з використанням SSL.
265 sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
270 %{__perl} util/perlpath.pl %{__perl}
272 OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
274 %{__perl} ./Configure \
275 --openssldir=%{_sysconfdir}/%{name} \
279 %{!?with_sslv2:no-ssl2} \
280 %{!?with_sslv3:no-ssl3} \
281 %{!?with_zlib:no-}zlib \
292 enable-ec_nistp_64_gcc_128 \
297 # ^- allow running on 80386 (default code uses bswapl available on i486+)
329 %ifarch armv4 armv5 armv5t armv5te armv5tel
333 %{__make} -j1 all rehash %{?with_tests:tests} \
335 ASFLAG='$(CFLAG) -Wa,--noexecstack' \
336 INSTALLTOP=%{_prefix}
338 # Rename POD sources of man pages. "openssl_" prefix is added to each
339 # manpage to avoid potential conflicts with other packages.
341 for dir in doc/{apps,ssl,crypto}; do
343 %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
345 for pod in !(openssl*).pod; do
346 mv -f $pod openssl_$pod;
352 rm -rf $RPM_BUILD_ROOT
353 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
354 $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
355 $RPM_BUILD_ROOT/%{_lib}/engines \
356 $RPM_BUILD_ROOT%{_pkgconfigdir}
358 %{__make} -j1 install \
359 INSTALLTOP=%{_prefix} \
360 INSTALL_PREFIX=$RPM_BUILD_ROOT \
363 mv -f $RPM_BUILD_ROOT%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
364 mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
365 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
366 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
368 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
369 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
371 # not installed as individual utilities (see openssl dgst instead)
372 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{dss1,md2,md4,md5,mdc2,ripemd160,sha,sha1,sha224,sha256,sha384,sha512}.1
374 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
375 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
376 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
379 rm -rf $RPM_BUILD_ROOT
381 %post -p /sbin/ldconfig
382 %postun -p /sbin/ldconfig
384 %triggerpostun -- %{name}-tools < 1.0.0-5
385 # the hashing format has changed in 1.0.0
386 [ ! -x %{_sbindir}/update-ca-certificates ] || %{_sbindir}/update-ca-certificates --fresh || :
388 %triggerpostun -- %{name} < 0.9.8i-2
389 # don't do anything on --downgrade
390 if [ $1 -le 1 ]; then
393 if [ -d /var/lib/openssl/certs ] ; then
394 mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
396 if [ -d /var/lib/openssl/private ] ; then
397 mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
399 if [ -d /var/lib/openssl ] ; then
400 for f in /var/lib/openssl/* ; do
401 [ -f "$f" ] && mv "$f" %{_sysconfdir}/%{name} 2>/dev/null || :
403 rmdir /var/lib/openssl/* 2>/dev/null || :
404 rmdir /var/lib/openssl 2>/dev/null || :
408 %defattr(644,root,root,755)
409 %doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
410 %doc doc/openssl_button.gif doc/openssl_button.html
411 %attr(755,root,root) /%{_lib}/libcrypto.so.*.*.*
412 %attr(755,root,root) /%{_lib}/libssl.so.*.*.*
413 %dir %{_sysconfdir}/%{name}
414 %dir %{_sysconfdir}/%{name}/certs
415 %dir %{_sysconfdir}/%{name}/private
419 %defattr(644,root,root,755)
420 %dir /%{_lib}/engines
421 %attr(755,root,root) /%{_lib}/engines/*.so
424 %defattr(644,root,root,755)
425 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
426 %attr(755,root,root) %{_bindir}/c_rehash.sh
427 %attr(755,root,root) %{_bindir}/openssl
428 %attr(754,root,root) %{_bindir}/ssl-certificate
430 %dir %{_libdir}/%{name}
431 %attr(755,root,root) %{_libdir}/%{name}/CA.sh
432 %attr(755,root,root) %{_libdir}/%{name}/c_hash
433 %attr(755,root,root) %{_libdir}/%{name}/c_info
434 %attr(755,root,root) %{_libdir}/%{name}/c_issuer
435 %attr(755,root,root) %{_libdir}/%{name}/c_name
437 %{_mandir}/man1/openssl.1*
438 %{_mandir}/man1/openssl_asn1parse.1*
439 %{_mandir}/man1/openssl_ca.1*
440 %{_mandir}/man1/openssl_ciphers.1*
441 %{_mandir}/man1/openssl_cms.1*
442 %{_mandir}/man1/openssl_crl.1*
443 %{_mandir}/man1/openssl_crl2pkcs7.1*
444 %{_mandir}/man1/openssl_dgst.1*
445 %{_mandir}/man1/openssl_dhparam.1*
446 %{_mandir}/man1/openssl_dsa.1*
447 %{_mandir}/man1/openssl_dsaparam.1*
448 %{_mandir}/man1/openssl_ec.1*
449 %{_mandir}/man1/openssl_ecparam.1*
450 %{_mandir}/man1/openssl_enc.1*
451 %{_mandir}/man1/openssl_errstr.1*
452 %{_mandir}/man1/openssl_gendsa.1*
453 %{_mandir}/man1/openssl_genpkey.1*
454 %{_mandir}/man1/openssl_genrsa.1*
455 %{_mandir}/man1/openssl_nseq.1*
456 %{_mandir}/man1/openssl_ocsp.1*
457 %{_mandir}/man1/openssl_passwd.1*
458 %{_mandir}/man1/openssl_pkcs12.1*
459 %{_mandir}/man1/openssl_pkcs7.1*
460 %{_mandir}/man1/openssl_pkcs8.1*
461 %{_mandir}/man1/openssl_pkey.1*
462 %{_mandir}/man1/openssl_pkeyparam.1*
463 %{_mandir}/man1/openssl_pkeyutl.1*
464 %{_mandir}/man1/openssl_rand.1*
465 %{_mandir}/man1/openssl_req.1*
466 %{_mandir}/man1/openssl_rsa.1*
467 %{_mandir}/man1/openssl_rsautl.1*
468 %{_mandir}/man1/openssl_s_client.1*
469 %{_mandir}/man1/openssl_s_server.1*
470 %{_mandir}/man1/openssl_s_time.1*
471 %{_mandir}/man1/openssl_sess_id.1*
472 %{_mandir}/man1/openssl_smime.1*
473 %{_mandir}/man1/openssl_speed.1*
474 %{_mandir}/man1/openssl_spkac.1*
475 %{_mandir}/man1/openssl_ts.1*
476 %{_mandir}/man1/openssl_tsget.1*
477 %{_mandir}/man1/openssl_verify.1*
478 %{_mandir}/man1/openssl_version.1*
479 %{_mandir}/man1/openssl_x509.1*
480 %{_mandir}/man5/openssl_config.5*
481 %{_mandir}/man5/openssl_x509v3_config.5*
482 %lang(pl) %{_mandir}/pl/man1/openssl.1*
485 %defattr(644,root,root,755)
486 %attr(755,root,root) %{_bindir}/c_rehash
487 %attr(755,root,root) %{_libdir}/%{name}/CA.pl
488 %attr(755,root,root) %{_libdir}/%{name}/tsget
489 %{_mandir}/man1/openssl_CA.pl.1*
490 %{_mandir}/man1/openssl_c_rehash.1*
493 %defattr(644,root,root,755)
494 %attr(755,root,root) %{_libdir}/libcrypto.so
495 %attr(755,root,root) %{_libdir}/libssl.so
496 %{_includedir}/%{name}
497 %{_pkgconfigdir}/libcrypto.pc
498 %{_pkgconfigdir}/libssl.pc
499 %{_pkgconfigdir}/openssl.pc
500 %{_mandir}/man3/openssl*.3*
501 %{_mandir}/man7/openssl_des_modes.7*
504 %defattr(644,root,root,755)
505 %{_libdir}/libcrypto.a