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-server < 2:5.8p1-9
59 Conflicts: neon < 0.29.6-8
60 Conflicts: openssh-clients < 2:6.2p2-3
61 Conflicts: openssh-server < 2:6.2p2-3
63 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
66 The OpenSSL Project is a collaborative effort to develop a robust,
67 commercial-grade, full-featured, and Open Source toolkit implementing
68 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
69 v1) protocols with full-strength cryptography world-wide. The project
70 is managed by a worldwide community of volunteers that use the
71 Internet to communicate, plan, and develop the OpenSSL tookit and its
72 related documentation.
74 OpenSSL is based on the excellent SSLeay library developed by Eric A.
75 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
76 Apache-style licence, which basically means that you are free to get
77 and use it for commercial and non-commercial purposes subject to some
78 simple license conditions.
80 This package contains shared libraries only, install openssl-tools if
81 you want to use openssl cmdline tool.
83 %description -l de.UTF-8
84 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
85 libraries, die verschiedene Verschlüsselungs- und
86 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
87 zur Verfügung stellen.
89 %description -l es.UTF-8
90 Biblioteca C que suministra algoritmos y protocolos criptográficos.
92 %description -l fr.UTF-8
93 OpenSSL est un outiil de gestion des certificats et les librairies
94 partagees qui fournit plusieurs protocoles et algorithmes de
95 codage/decodage, incluant DES, RC4, RSA et SSL.
97 %description -l pl.UTF-8
98 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
99 v2/v3 oraz Transport Layer Security (TLS v1).
101 %description -l pt_BR.UTF-8
102 Uma biblioteca C que fornece vários algoritmos e protocolos
103 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
104 compartilhadas e utilitários.
106 %description -l ru.UTF-8
107 Программа openssl для работы с сертификатами и разделяемые библиотеки,
108 которые реализуют множетсво криптографических алгоритмов, включая DES,
111 %description -l uk.UTF-8
112 Програма openssl для роботи з сертифікатами та бібліотеки спільного
113 користування, що реалізують велику кількість криптографічних
114 алгоритмів, включаючи DES, RC4, RSA та SSL.
117 Summary: OpenSSL optional crypto engines
118 Summary(pl.UTF-8): Opcjonalne silniki kryptograficzne dla OpenSSL-a
120 Requires: %{name} = %{version}-%{release}
123 With OpenSSL 0.9.6, a new component was added to support alternative
124 cryptography implementations, most commonly for interfacing with
125 external crypto devices (eg. accelerator cards). This component is
128 There are currently built-in ENGINE implementations for the following
137 In addition, dynamic binding to external ENGINE implementations is now
138 provided by a special ENGINE called "dynamic".
140 %description engines -l pl.UTF-8
141 Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
142 wspierać alternatywne implementacje kryptografii, przeważnie
143 współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
144 kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
147 Obecnie istnieją wbudowane implementacje silników dla następujących
148 urządzeń kryptograficznych:
155 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
156 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
159 Summary: OpenSSL command line tool and utilities
160 Summary(pl.UTF-8): Zestaw narzędzi i skryptów
161 Group: Applications/Communications
162 Requires: %{name} = %{version}-%{release}
166 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
168 %description tools -l pl.UTF-8
169 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
172 Summary: OpenSSL utilities written in Perl
173 Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
174 Group: Applications/Communications
175 Requires: %{name} = %{version}-%{release}
177 %description tools-perl
178 OpenSSL Toolkit tools written in Perl.
180 %description tools-perl -l pl.UTF-8
181 Narzędzia OpenSSL napisane w perlu.
184 Summary: Development part of OpenSSL Toolkit libraries
185 Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
186 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
187 Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
188 Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
189 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
190 Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
191 Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
192 Group: Development/Libraries
193 Requires: %{name} = %{version}-%{release}
194 Obsoletes: libopenssl0-devel
197 Development part of OpenSSL library.
199 %description devel -l es.UTF-8
200 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
202 %description devel -l pl.UTF-8
203 Część biblioteki OpenSSL przeznaczona dla programistów.
205 %description devel -l pt_BR.UTF-8
206 Uma biblioteca C que fornece vários algoritmos e protocolos
207 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
208 arquivos de inclusão para desenvolvimento.
210 %description devel -l ru.UTF-8
211 Программа openssl для работы с сертификатами и разделяемые библиотеки,
212 которые реализуют множетсво криптографических алгоритмов, включая DES,
213 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
214 с использованием SSL.
216 %description devel -l uk.UTF-8
217 Програма openssl для роботи з сертифікатами та бібліотеки спільного
218 користування, що реалізують велику кількість криптографічних
219 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
220 хедери для розробки програм з використанням SSL.
223 Summary: Static OpenSSL libraries
224 Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
225 Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
226 Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
227 Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
228 Group: Development/Libraries
229 Requires: %{name}-devel = %{version}-%{release}
232 Static OpenSSL Toolkit libraries.
234 %description static -l pl.UTF-8
235 Statyczne wersje bibliotek z OpenSSL.
237 %description static -l pt_BR.UTF-8
238 Bibliotecas estáticas para desenvolvimento com openssl.
240 %description static -l ru.UTF-8
241 Программа openssl для работы с сертификатами и разделяемые библиотеки,
242 которые реализуют множетсво криптографических алгоритмов, включая DES,
243 RC4, RSA и SSL. Включает статические библиотеки для разработки
244 приложений с использованием OpenSSL.
246 %description static -l uk.UTF-8
247 Програма openssl для роботи з сертифікатами та бібліотеки спільного
248 користування, що реалізують велику кількість криптографічних
249 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
250 бібліотеки для розробки програм з використанням 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