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: neon < 0.26.3-3
58 Conflicts: ntpd < 4.2.4p8-10
59 Conflicts: openssh-clients < 2:5.8p1-9
60 Conflicts: openssh-server < 2:5.8p1-9
62 Conflicts: neon < 0.29.6-8
63 Conflicts: openssh-clients < 2:6.2p2-3
64 Conflicts: openssh-server < 2:6.2p2-3
66 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69 The OpenSSL Project is a collaborative effort to develop a robust,
70 commercial-grade, full-featured, and Open Source toolkit implementing
71 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
72 v1) protocols with full-strength cryptography world-wide. The project
73 is managed by a worldwide community of volunteers that use the
74 Internet to communicate, plan, and develop the OpenSSL tookit and its
75 related documentation.
77 OpenSSL is based on the excellent SSLeay library developed by Eric A.
78 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
79 Apache-style licence, which basically means that you are free to get
80 and use it for commercial and non-commercial purposes subject to some
81 simple license conditions.
83 This package contains shared libraries only, install openssl-tools if
84 you want to use openssl cmdline tool.
86 %description -l de.UTF-8
87 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
88 libraries, die verschiedene Verschlüsselungs- und
89 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
90 zur Verfügung stellen.
92 %description -l es.UTF-8
93 Biblioteca C que suministra algoritmos y protocolos criptográficos.
95 %description -l fr.UTF-8
96 OpenSSL est un outiil de gestion des certificats et les librairies
97 partagees qui fournit plusieurs protocoles et algorithmes de
98 codage/decodage, incluant DES, RC4, RSA et SSL.
100 %description -l pl.UTF-8
101 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
102 v2/v3 oraz Transport Layer Security (TLS v1).
104 %description -l pt_BR.UTF-8
105 Uma biblioteca C que fornece vários algoritmos e protocolos
106 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
107 compartilhadas e utilitários.
109 %description -l ru.UTF-8
110 Программа openssl для работы с сертификатами и разделяемые библиотеки,
111 которые реализуют множетсво криптографических алгоритмов, включая DES,
114 %description -l uk.UTF-8
115 Програма openssl для роботи з сертифікатами та бібліотеки спільного
116 користування, що реалізують велику кількість криптографічних
117 алгоритмів, включаючи DES, RC4, RSA та SSL.
120 Summary: OpenSSL optional crypto engines
121 Summary(pl.UTF-8): Opcjonalne silniki kryptograficzne dla OpenSSL-a
123 Requires: %{name} = %{version}-%{release}
126 With OpenSSL 0.9.6, a new component was added to support alternative
127 cryptography implementations, most commonly for interfacing with
128 external crypto devices (eg. accelerator cards). This component is
131 There are currently built-in ENGINE implementations for the following
140 In addition, dynamic binding to external ENGINE implementations is now
141 provided by a special ENGINE called "dynamic".
143 %description engines -l pl.UTF-8
144 Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
145 wspierać alternatywne implementacje kryptografii, przeważnie
146 współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
147 kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
150 Obecnie istnieją wbudowane implementacje silników dla następujących
151 urządzeń kryptograficznych:
158 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
159 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
162 Summary: OpenSSL command line tool and utilities
163 Summary(pl.UTF-8): Zestaw narzędzi i skryptów
164 Group: Applications/Communications
165 Requires: %{name} = %{version}-%{release}
169 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
171 %description tools -l pl.UTF-8
172 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
175 Summary: OpenSSL utilities written in Perl
176 Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
177 Group: Applications/Communications
178 Requires: %{name} = %{version}-%{release}
180 %description tools-perl
181 OpenSSL Toolkit tools written in Perl.
183 %description tools-perl -l pl.UTF-8
184 Narzędzia OpenSSL napisane w perlu.
187 Summary: Development part of OpenSSL Toolkit libraries
188 Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
189 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
190 Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
191 Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
192 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
193 Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
194 Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
195 Group: Development/Libraries
196 Requires: %{name} = %{version}-%{release}
197 Obsoletes: libopenssl0-devel
200 Development part of OpenSSL library.
202 %description devel -l es.UTF-8
203 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
205 %description devel -l pl.UTF-8
206 Część biblioteki OpenSSL przeznaczona dla programistów.
208 %description devel -l pt_BR.UTF-8
209 Uma biblioteca C que fornece vários algoritmos e protocolos
210 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
211 arquivos de inclusão para desenvolvimento.
213 %description devel -l ru.UTF-8
214 Программа openssl для работы с сертификатами и разделяемые библиотеки,
215 которые реализуют множетсво криптографических алгоритмов, включая DES,
216 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
217 с использованием SSL.
219 %description devel -l uk.UTF-8
220 Програма openssl для роботи з сертифікатами та бібліотеки спільного
221 користування, що реалізують велику кількість криптографічних
222 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
223 хедери для розробки програм з використанням SSL.
226 Summary: Static OpenSSL libraries
227 Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
228 Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
229 Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
230 Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
231 Group: Development/Libraries
232 Requires: %{name}-devel = %{version}-%{release}
235 Static OpenSSL Toolkit libraries.
237 %description static -l pl.UTF-8
238 Statyczne wersje bibliotek z OpenSSL.
240 %description static -l pt_BR.UTF-8
241 Bibliotecas estáticas para desenvolvimento com openssl.
243 %description static -l ru.UTF-8
244 Программа openssl для работы с сертификатами и разделяемые библиотеки,
245 которые реализуют множетсво криптографических алгоритмов, включая DES,
246 RC4, RSA и SSL. Включает статические библиотеки для разработки
247 приложений с использованием OpenSSL.
249 %description static -l uk.UTF-8
250 Програма openssl для роботи з сертифікатами та бібліотеки спільного
251 користування, що реалізують велику кількість криптографічних
252 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
253 бібліотеки для розробки програм з використанням SSL.
268 sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
273 %{__perl} util/perlpath.pl %{__perl}
275 OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
277 %{__perl} ./Configure \
278 --openssldir=%{_sysconfdir}/%{name} \
282 %{!?with_sslv2:no-ssl2} \
283 %{!?with_sslv3:no-ssl3} \
284 %{!?with_zlib:no-}zlib \
295 enable-ec_nistp_64_gcc_128 \
300 # ^- allow running on 80386 (default code uses bswapl available on i486+)
332 %ifarch armv4 armv5 armv5t armv5te armv5tel
336 %{__make} -j1 all rehash %{?with_tests:tests} \
338 ASFLAG='$(CFLAG) -Wa,--noexecstack' \
339 INSTALLTOP=%{_prefix}
341 # Rename POD sources of man pages. "openssl_" prefix is added to each
342 # manpage to avoid potential conflicts with other packages.
344 for dir in doc/{apps,ssl,crypto}; do
346 %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
348 for pod in !(openssl*).pod; do
349 mv -f $pod openssl_$pod;
355 rm -rf $RPM_BUILD_ROOT
356 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
357 $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
358 $RPM_BUILD_ROOT/%{_lib}/engines \
359 $RPM_BUILD_ROOT%{_pkgconfigdir}
361 %{__make} -j1 install \
362 INSTALLTOP=%{_prefix} \
363 INSTALL_PREFIX=$RPM_BUILD_ROOT \
366 mv -f $RPM_BUILD_ROOT%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
367 mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
368 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
369 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
371 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
372 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
374 # not installed as individual utilities (see openssl dgst instead)
375 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{dss1,md2,md4,md5,mdc2,ripemd160,sha,sha1,sha224,sha256,sha384,sha512}.1
377 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
378 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
379 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
382 rm -rf $RPM_BUILD_ROOT
384 %post -p /sbin/ldconfig
385 %postun -p /sbin/ldconfig
387 %triggerpostun -- %{name}-tools < 1.0.0-5
388 # the hashing format has changed in 1.0.0
389 [ ! -x %{_sbindir}/update-ca-certificates ] || %{_sbindir}/update-ca-certificates --fresh || :
391 %triggerpostun -- %{name} < 0.9.8i-2
392 # don't do anything on --downgrade
393 if [ $1 -le 1 ]; then
396 if [ -d /var/lib/openssl/certs ] ; then
397 mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
399 if [ -d /var/lib/openssl/private ] ; then
400 mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
402 if [ -d /var/lib/openssl ] ; then
403 for f in /var/lib/openssl/* ; do
404 [ -f "$f" ] && mv "$f" %{_sysconfdir}/%{name} 2>/dev/null || :
406 rmdir /var/lib/openssl/* 2>/dev/null || :
407 rmdir /var/lib/openssl 2>/dev/null || :
411 %defattr(644,root,root,755)
412 %doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
413 %doc doc/openssl_button.gif doc/openssl_button.html
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
422 %defattr(644,root,root,755)
423 %dir /%{_lib}/engines
424 %attr(755,root,root) /%{_lib}/engines/*.so
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
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
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*
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*
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*
507 %defattr(644,root,root,755)
508 %{_libdir}/libcrypto.a