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: ntpd < 4.2.4p8-10
58 Conflicts: openssh-clients < 2:5.8p1-9
59 Conflicts: openssh-server < 2:5.8p1-9
61 Conflicts: neon < 0.29.6-8
62 Conflicts: openssh-clients < 2:6.2p2-3
63 Conflicts: openssh-server < 2:6.2p2-3
65 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
68 The OpenSSL Project is a collaborative effort to develop a robust,
69 commercial-grade, full-featured, and Open Source toolkit implementing
70 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
71 v1) protocols with full-strength cryptography world-wide. The project
72 is managed by a worldwide community of volunteers that use the
73 Internet to communicate, plan, and develop the OpenSSL tookit and its
74 related documentation.
76 OpenSSL is based on the excellent SSLeay library developed by Eric A.
77 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
78 Apache-style licence, which basically means that you are free to get
79 and use it for commercial and non-commercial purposes subject to some
80 simple license conditions.
82 This package contains shared libraries only, install openssl-tools if
83 you want to use openssl cmdline tool.
85 %description -l de.UTF-8
86 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
87 libraries, die verschiedene Verschlüsselungs- und
88 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
89 zur Verfügung stellen.
91 %description -l es.UTF-8
92 Biblioteca C que suministra algoritmos y protocolos criptográficos.
94 %description -l fr.UTF-8
95 OpenSSL est un outiil de gestion des certificats et les librairies
96 partagees qui fournit plusieurs protocoles et algorithmes de
97 codage/decodage, incluant DES, RC4, RSA et SSL.
99 %description -l pl.UTF-8
100 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
101 v2/v3 oraz Transport Layer Security (TLS v1).
103 %description -l pt_BR.UTF-8
104 Uma biblioteca C que fornece vários algoritmos e protocolos
105 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
106 compartilhadas e utilitários.
108 %description -l ru.UTF-8
109 Программа openssl для работы с сертификатами и разделяемые библиотеки,
110 которые реализуют множетсво криптографических алгоритмов, включая DES,
113 %description -l uk.UTF-8
114 Програма openssl для роботи з сертифікатами та бібліотеки спільного
115 користування, що реалізують велику кількість криптографічних
116 алгоритмів, включаючи DES, RC4, RSA та SSL.
119 Summary: OpenSSL optional crypto engines
120 Summary(pl.UTF-8): Opcjonalne silniki kryptograficzne dla OpenSSL-a
122 Requires: %{name} = %{version}-%{release}
125 With OpenSSL 0.9.6, a new component was added to support alternative
126 cryptography implementations, most commonly for interfacing with
127 external crypto devices (eg. accelerator cards). This component is
130 There are currently built-in ENGINE implementations for the following
139 In addition, dynamic binding to external ENGINE implementations is now
140 provided by a special ENGINE called "dynamic".
142 %description engines -l pl.UTF-8
143 Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
144 wspierać alternatywne implementacje kryptografii, przeważnie
145 współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
146 kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
149 Obecnie istnieją wbudowane implementacje silników dla następujących
150 urządzeń kryptograficznych:
157 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
158 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
161 Summary: OpenSSL command line tool and utilities
162 Summary(pl.UTF-8): Zestaw narzędzi i skryptów
163 Group: Applications/Communications
164 Requires: %{name} = %{version}-%{release}
168 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
170 %description tools -l pl.UTF-8
171 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
174 Summary: OpenSSL utilities written in Perl
175 Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
176 Group: Applications/Communications
177 Requires: %{name} = %{version}-%{release}
179 %description tools-perl
180 OpenSSL Toolkit tools written in Perl.
182 %description tools-perl -l pl.UTF-8
183 Narzędzia OpenSSL napisane w perlu.
186 Summary: Development part of OpenSSL Toolkit libraries
187 Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
188 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
189 Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
190 Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
191 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
192 Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
193 Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
194 Group: Development/Libraries
195 Requires: %{name} = %{version}-%{release}
196 Obsoletes: libopenssl0-devel
199 Development part of OpenSSL library.
201 %description devel -l es.UTF-8
202 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
204 %description devel -l pl.UTF-8
205 Część biblioteki OpenSSL przeznaczona dla programistów.
207 %description devel -l pt_BR.UTF-8
208 Uma biblioteca C que fornece vários algoritmos e protocolos
209 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
210 arquivos de inclusão para desenvolvimento.
212 %description devel -l ru.UTF-8
213 Программа openssl для работы с сертификатами и разделяемые библиотеки,
214 которые реализуют множетсво криптографических алгоритмов, включая DES,
215 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
216 с использованием SSL.
218 %description devel -l uk.UTF-8
219 Програма openssl для роботи з сертифікатами та бібліотеки спільного
220 користування, що реалізують велику кількість криптографічних
221 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
222 хедери для розробки програм з використанням SSL.
225 Summary: Static OpenSSL libraries
226 Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
227 Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
228 Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
229 Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
230 Group: Development/Libraries
231 Requires: %{name}-devel = %{version}-%{release}
234 Static OpenSSL Toolkit libraries.
236 %description static -l pl.UTF-8
237 Statyczne wersje bibliotek z OpenSSL.
239 %description static -l pt_BR.UTF-8
240 Bibliotecas estáticas para desenvolvimento com openssl.
242 %description static -l ru.UTF-8
243 Программа openssl для работы с сертификатами и разделяемые библиотеки,
244 которые реализуют множетсво криптографических алгоритмов, включая DES,
245 RC4, RSA и SSL. Включает статические библиотеки для разработки
246 приложений с использованием OpenSSL.
248 %description static -l uk.UTF-8
249 Програма openssl для роботи з сертифікатами та бібліотеки спільного
250 користування, що реалізують велику кількість криптографічних
251 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
252 бібліотеки для розробки програм з використанням SSL.
267 sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
272 %{__perl} util/perlpath.pl %{__perl}
274 OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
276 %{__perl} ./Configure \
277 --openssldir=%{_sysconfdir}/%{name} \
281 %{!?with_sslv2:no-ssl2} \
282 %{!?with_sslv3:no-ssl3} \
283 %{!?with_zlib:no-}zlib \
294 enable-ec_nistp_64_gcc_128 \
299 # ^- allow running on 80386 (default code uses bswapl available on i486+)
331 %ifarch armv4 armv5 armv5t armv5te armv5tel
335 %{__make} -j1 all rehash %{?with_tests:tests} \
337 ASFLAG='$(CFLAG) -Wa,--noexecstack' \
338 INSTALLTOP=%{_prefix}
340 # Rename POD sources of man pages. "openssl_" prefix is added to each
341 # manpage to avoid potential conflicts with other packages.
343 for dir in doc/{apps,ssl,crypto}; do
345 %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
347 for pod in !(openssl*).pod; do
348 mv -f $pod openssl_$pod;
354 rm -rf $RPM_BUILD_ROOT
355 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
356 $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
357 $RPM_BUILD_ROOT/%{_lib}/engines \
358 $RPM_BUILD_ROOT%{_pkgconfigdir}
360 %{__make} -j1 install \
361 INSTALLTOP=%{_prefix} \
362 INSTALL_PREFIX=$RPM_BUILD_ROOT \
365 mv -f $RPM_BUILD_ROOT%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
366 mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
367 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
368 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
370 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
371 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
373 # not installed as individual utilities (see openssl dgst instead)
374 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{dss1,md2,md4,md5,mdc2,ripemd160,sha,sha1,sha224,sha256,sha384,sha512}.1
376 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
377 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
378 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
381 rm -rf $RPM_BUILD_ROOT
383 %post -p /sbin/ldconfig
384 %postun -p /sbin/ldconfig
386 %triggerpostun -- %{name}-tools < 1.0.0-5
387 # the hashing format has changed in 1.0.0
388 [ ! -x %{_sbindir}/update-ca-certificates ] || %{_sbindir}/update-ca-certificates --fresh || :
390 %triggerpostun -- %{name} < 0.9.8i-2
391 # don't do anything on --downgrade
392 if [ $1 -le 1 ]; then
395 if [ -d /var/lib/openssl/certs ] ; then
396 mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
398 if [ -d /var/lib/openssl/private ] ; then
399 mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
401 if [ -d /var/lib/openssl ] ; then
402 for f in /var/lib/openssl/* ; do
403 [ -f "$f" ] && mv "$f" %{_sysconfdir}/%{name} 2>/dev/null || :
405 rmdir /var/lib/openssl/* 2>/dev/null || :
406 rmdir /var/lib/openssl 2>/dev/null || :
410 %defattr(644,root,root,755)
411 %doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
412 %doc doc/openssl_button.gif doc/openssl_button.html
413 %attr(755,root,root) /%{_lib}/libcrypto.so.*.*.*
414 %attr(755,root,root) /%{_lib}/libssl.so.*.*.*
415 %dir %{_sysconfdir}/%{name}
416 %dir %{_sysconfdir}/%{name}/certs
417 %dir %{_sysconfdir}/%{name}/private
421 %defattr(644,root,root,755)
422 %dir /%{_lib}/engines
423 %attr(755,root,root) /%{_lib}/engines/*.so
426 %defattr(644,root,root,755)
427 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
428 %attr(755,root,root) %{_bindir}/c_rehash.sh
429 %attr(755,root,root) %{_bindir}/openssl
430 %attr(754,root,root) %{_bindir}/ssl-certificate
432 %dir %{_libdir}/%{name}
433 %attr(755,root,root) %{_libdir}/%{name}/CA.sh
434 %attr(755,root,root) %{_libdir}/%{name}/c_hash
435 %attr(755,root,root) %{_libdir}/%{name}/c_info
436 %attr(755,root,root) %{_libdir}/%{name}/c_issuer
437 %attr(755,root,root) %{_libdir}/%{name}/c_name
439 %{_mandir}/man1/openssl.1*
440 %{_mandir}/man1/openssl_asn1parse.1*
441 %{_mandir}/man1/openssl_ca.1*
442 %{_mandir}/man1/openssl_ciphers.1*
443 %{_mandir}/man1/openssl_cms.1*
444 %{_mandir}/man1/openssl_crl.1*
445 %{_mandir}/man1/openssl_crl2pkcs7.1*
446 %{_mandir}/man1/openssl_dgst.1*
447 %{_mandir}/man1/openssl_dhparam.1*
448 %{_mandir}/man1/openssl_dsa.1*
449 %{_mandir}/man1/openssl_dsaparam.1*
450 %{_mandir}/man1/openssl_ec.1*
451 %{_mandir}/man1/openssl_ecparam.1*
452 %{_mandir}/man1/openssl_enc.1*
453 %{_mandir}/man1/openssl_errstr.1*
454 %{_mandir}/man1/openssl_gendsa.1*
455 %{_mandir}/man1/openssl_genpkey.1*
456 %{_mandir}/man1/openssl_genrsa.1*
457 %{_mandir}/man1/openssl_nseq.1*
458 %{_mandir}/man1/openssl_ocsp.1*
459 %{_mandir}/man1/openssl_passwd.1*
460 %{_mandir}/man1/openssl_pkcs12.1*
461 %{_mandir}/man1/openssl_pkcs7.1*
462 %{_mandir}/man1/openssl_pkcs8.1*
463 %{_mandir}/man1/openssl_pkey.1*
464 %{_mandir}/man1/openssl_pkeyparam.1*
465 %{_mandir}/man1/openssl_pkeyutl.1*
466 %{_mandir}/man1/openssl_rand.1*
467 %{_mandir}/man1/openssl_req.1*
468 %{_mandir}/man1/openssl_rsa.1*
469 %{_mandir}/man1/openssl_rsautl.1*
470 %{_mandir}/man1/openssl_s_client.1*
471 %{_mandir}/man1/openssl_s_server.1*
472 %{_mandir}/man1/openssl_s_time.1*
473 %{_mandir}/man1/openssl_sess_id.1*
474 %{_mandir}/man1/openssl_smime.1*
475 %{_mandir}/man1/openssl_speed.1*
476 %{_mandir}/man1/openssl_spkac.1*
477 %{_mandir}/man1/openssl_ts.1*
478 %{_mandir}/man1/openssl_tsget.1*
479 %{_mandir}/man1/openssl_verify.1*
480 %{_mandir}/man1/openssl_version.1*
481 %{_mandir}/man1/openssl_x509.1*
482 %{_mandir}/man5/openssl_config.5*
483 %{_mandir}/man5/openssl_x509v3_config.5*
484 %lang(pl) %{_mandir}/pl/man1/openssl.1*
487 %defattr(644,root,root,755)
488 %attr(755,root,root) %{_bindir}/c_rehash
489 %attr(755,root,root) %{_libdir}/%{name}/CA.pl
490 %attr(755,root,root) %{_libdir}/%{name}/tsget
491 %{_mandir}/man1/openssl_CA.pl.1*
492 %{_mandir}/man1/openssl_c_rehash.1*
495 %defattr(644,root,root,755)
496 %attr(755,root,root) %{_libdir}/libcrypto.so
497 %attr(755,root,root) %{_libdir}/libssl.so
498 %{_includedir}/%{name}
499 %{_pkgconfigdir}/libcrypto.pc
500 %{_pkgconfigdir}/libssl.pc
501 %{_pkgconfigdir}/openssl.pc
502 %{_mandir}/man3/openssl*.3*
503 %{_mandir}/man7/openssl_des_modes.7*
506 %defattr(644,root,root,755)
507 %{_libdir}/libcrypto.a