3 %bcond_without tests # don't perform "make tests"
4 %bcond_with purify # Compile openssl with \-DPURIFY, useful when one wants to
5 # use valgrind debugger against openssl-linked programs
7 %include /usr/lib/rpm/macros.perl
8 Summary: OpenSSL Toolkit libraries for the "Secure Sockets Layer" (SSL v2/v3)
9 Summary(de.UTF-8): Secure Sockets Layer (SSL)-Kommunikationslibrary
10 Summary(es.UTF-8): Biblioteca C que suministra algoritmos y protocolos criptográficos
11 Summary(fr.UTF-8): Utilitaires de communication SSL (Secure Sockets Layer)
12 Summary(pl.UTF-8): Biblioteki OpenSSL (SSL v2/v3)
13 Summary(pt_BR.UTF-8): Uma biblioteca C que fornece vários algoritmos e protocolos criptográficos
14 Summary(ru.UTF-8): Библиотеки и утилиты для соединений через Secure Sockets Layer
15 Summary(uk.UTF-8): Бібліотеки та утиліти для з'єднань через Secure Sockets Layer
21 Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
22 # Source0-md5: 05a0ece1372392a2cf310ebb96333025
24 Source3: %{name}-ssl-certificate.sh
25 Source4: %{name}-c_rehash.sh
26 Patch0: %{name}-alpha-ccc.patch
27 Patch1: %{name}-optflags.patch
28 Patch2: %{name}-globalCA.diff
29 Patch3: %{name}-include.patch
30 Patch4: %{name}-libvar.patch
31 Patch5: %{name}-man-namespace.patch
32 Patch6: %{name}-asflag.patch
33 Patch7: %{name}-ca-certificates.patch
34 Patch8: %{name}-fips_install.patch
35 Patch9: %{name}-CVE-2009-1377-1378-1379.patch
36 Patch10: %{name}-ldflags.patch
37 Patch11: %{name}-parallel-build.patch
38 Patch12: %{name}-x86_64-asm.patch
39 URL: http://www.openssl.org/
41 BuildRequires: perl-devel >= 1:5.6.1
42 BuildRequires: rpm-perlprov >= 4.1-13
43 BuildRequires: rpmbuild(macros) >= 1.213
44 BuildRequires: sed >= 4.0
46 Obsoletes: SSLeay-devel
47 Obsoletes: SSLeay-perl
48 Obsoletes: libopenssl0
49 Requires: ca-certificates >= 20080809-4
50 Requires: rpm-whiteout >= 1.7
51 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
54 The OpenSSL Project is a collaborative effort to develop a robust,
55 commercial-grade, full-featured, and Open Source toolkit implementing
56 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
57 v1) protocols with full-strength cryptography world-wide. The project
58 is managed by a worldwide community of volunteers that use the
59 Internet to communicate, plan, and develop the OpenSSL tookit and its
60 related documentation.
62 OpenSSL is based on the excellent SSLeay library developed by Eric A.
63 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
64 Apache-style licence, which basically means that you are free to get
65 and use it for commercial and non-commercial purposes subject to some
66 simple license conditions.
68 This package contains shared libraries only, install openssl-tools if
69 you want to use openssl cmdline tool.
71 %description -l de.UTF-8
72 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
73 libraries, die verschiedene Verschlüsselungs- und
74 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
75 zur Verfügung stellen.
77 %description -l es.UTF-8
78 Biblioteca C que suministra algoritmos y protocolos criptográficos.
80 %description -l fr.UTF-8
81 OpenSSL est un outiil de gestion des certificats et les librairies
82 partagees qui fournit plusieurs protocoles et algorithmes de
83 codage/decodage, incluant DES, RC4, RSA et SSL.
85 %description -l pl.UTF-8
86 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
87 v2/v3 oraz Transport Layer Security (TLS v1).
89 %description -l pt_BR.UTF-8
90 Uma biblioteca C que fornece vários algoritmos e protocolos
91 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
92 compartilhadas e utilitários.
94 %description -l ru.UTF-8
95 Программа openssl для работы с сертификатами и разделяемые библиотеки,
96 которые реализуют множетсво криптографических алгоритмов, включая DES,
99 %description -l uk.UTF-8
100 Програма openssl для роботи з сертифікатами та бібліотеки спільного
101 користування, що реалізують велику кількість криптографічних
102 алгоритмів, включаючи DES, RC4, RSA та SSL.
105 Summary: OpenSSL command line tool and utilities
106 Summary(pl.UTF-8): Zestaw narzędzi i skryptów
107 Group: Applications/Communications
108 Requires: %{name} = %{version}-%{release}
111 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
113 %description tools -l pl.UTF-8
114 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
117 Summary: OpenSSL utilities written in Perl
118 Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
119 Group: Applications/Communications
120 Requires: %{name} = %{version}-%{release}
122 %description tools-perl
123 OpenSSL Toolkit tools written in Perl.
125 %description tools-perl -l pl.UTF-8
126 Narzędzia OpenSSL napisane w perlu.
129 Summary: Development part of OpenSSL Toolkit libraries
130 Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
131 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
132 Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
133 Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
134 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
135 Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
136 Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
137 Group: Development/Libraries
138 Requires: %{name} = %{version}-%{release}
139 Obsoletes: libopenssl0-devel
142 Development part of OpenSSL library.
144 %description devel -l es.UTF-8
145 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
147 %description devel -l pl.UTF-8
148 Część biblioteki OpenSSL przeznaczona dla programistów.
150 %description devel -l pt_BR.UTF-8
151 Uma biblioteca C que fornece vários algoritmos e protocolos
152 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
153 arquivos de inclusão para desenvolvimento.
155 %description devel -l ru.UTF-8
156 Программа openssl для работы с сертификатами и разделяемые библиотеки,
157 которые реализуют множетсво криптографических алгоритмов, включая DES,
158 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
159 с использованием SSL.
161 %description devel -l uk.UTF-8
162 Програма openssl для роботи з сертифікатами та бібліотеки спільного
163 користування, що реалізують велику кількість криптографічних
164 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
165 хедери для розробки програм з використанням SSL.
168 Summary: Static OpenSSL libraries
169 Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
170 Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
171 Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
172 Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
173 Group: Development/Libraries
174 Requires: %{name}-devel = %{version}-%{release}
177 Static OpenSSL Toolkit libraries.
179 %description static -l pl.UTF-8
180 Statyczne wersje bibliotek z OpenSSL.
182 %description static -l pt_BR.UTF-8
183 Bibliotecas estáticas para desenvolvimento com openssl.
185 %description static -l ru.UTF-8
186 Программа openssl для работы с сертификатами и разделяемые библиотеки,
187 которые реализуют множетсво криптографических алгоритмов, включая DES,
188 RC4, RSA и SSL. Включает статические библиотеки для разработки
189 приложений с использованием OpenSSL.
191 %description static -l uk.UTF-8
192 Програма openssl для роботи з сертифікатами та бібліотеки спільного
193 користування, що реалізують велику кількість криптографічних
194 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
195 бібліотеки для розробки програм з використанням SSL.
213 %{__perl} -pi -e 's#%{_prefix}/local/bin/perl#%{__perl}#g' \
214 `grep -l -r "%{_prefix}/local/bin/perl" *`
216 sed -i -e 's|$prefix/lib/engines|/%{_lib}/engines|g' Configure
221 %{__perl} util/perlpath.pl %{__perl}
223 OPTFLAGS="%{rpmcflags} %{?with_purify:-DPURIFY}" \
225 %if "%{pld_release}" == "ti"
226 --openssldir=%{_var}/lib/%{name} \
228 --openssldir=%{_sysconfdir}/%{name} \
242 # ^- allow running on 80386 (default code uses bswapl available on i486+)
272 %{__make} -j1 all rehash %{?with_tests:tests} \
274 ASFLAG='$(CFLAG) -Wa,--noexecstack' \
275 INSTALLTOP=%{_prefix}
277 # Rename POD sources of man pages. "openssl_" prefix is added to each
278 # manpage to avoid potential conflicts with other packages.
280 for dir in doc/{apps,ssl,crypto}; do
282 %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
284 for pod in !(openssl*).pod; do
285 mv -f $pod openssl_$pod;
291 rm -rf $RPM_BUILD_ROOT
292 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
293 $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
294 $RPM_BUILD_ROOT/%{_lib}/engines \
295 $RPM_BUILD_ROOT%{_pkgconfigdir}
298 INSTALLTOP=%{_prefix} \
299 INSTALL_PREFIX=$RPM_BUILD_ROOT \
302 mv -f $RPM_BUILD_ROOT/%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
303 mv -f $RPM_BUILD_ROOT/%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
304 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
305 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
307 %if "%{pld_release}" == "ti"
308 ln -sf %{_var}/lib/%{name}/%{name}.cnf \
309 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/openssl.cnf
310 ln -sf %{_var}/lib/%{name}/certs \
311 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/certs
312 ln -sf %{_var}/lib/%{name}/private \
313 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/private
314 mv -f $RPM_BUILD_ROOT%{_var}/lib/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
315 rm -rf $RPM_BUILD_ROOT%{_var}/lib/%{name}/misc
317 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
318 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
321 # not installed as individual utilities (see openssl dgst instead)
322 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{md2,md4,md5,mdc2,ripemd160,sha,sha1}.1
324 install %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
325 install %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
326 install %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
329 rm -rf $RPM_BUILD_ROOT
331 %post -p /sbin/ldconfig
332 %postun -p /sbin/ldconfig
334 %if "%{pld_release}" == "ti"
335 %triggerin -- %{name}-tools < 0.9.8i-2
336 if [ -L /var/lib/openssl/openssl.cnf ] ; then
337 echo "Saving old configuration as /var/lib/openssl/openssl.cnf.rpmsave"
338 rm /var/lib/openssl/openssl.cnf
339 mv %{_sysconfdir}/%{name}/openssl.cnf /var/lib/openssl/openssl.cnf.rpmsave 2>/dev/null || :
342 %triggerpostun -- %{name} < 0.9.8i-2
343 if [ -d /var/lib/openssl/certs ] ; then
344 mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
346 if [ -d /var/lib/openssl/private ] ; then
347 mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
349 if [ -d /var/lib/openssl ] ; then
350 for f in /var/lib/openssl/* ; do
351 [ -f "$f" ] && mv "$f" %{_sysconfdir}/%{name} 2>/dev/null || :
357 %defattr(644,root,root,755)
358 %doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
359 %doc doc/openssl_button.gif doc/openssl_button.html
360 %attr(755,root,root) /%{_lib}/libcrypto.so.*.*.*
361 %attr(755,root,root) /%{_lib}/libssl.so.*.*.*
362 %dir /%{_lib}/engines
363 %attr(755,root,root) /%{_lib}/engines/*.so
364 %if "%{pld_release}" == "ti"
365 %dir %{_var}/lib/%{name}
366 %dir %{_var}/lib/%{name}/certs
367 %dir %{_var}/lib/%{name}/private
368 %dir %{_sysconfdir}/%{name}
369 %attr(755,root,root) %{_sysconfdir}/%{name}/certs
370 %attr(755,root,root) %{_sysconfdir}/%{name}/private
372 %dir %{_sysconfdir}/%{name}
373 %dir %{_sysconfdir}/%{name}/certs
374 %dir %{_sysconfdir}/%{name}/private
379 %defattr(644,root,root,755)
380 %if "%{pld_release}" == "ti"
381 %{_sysconfdir}/%{name}/openssl.cnf
382 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/%{name}/openssl.cnf
384 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
386 %attr(755,root,root) %{_bindir}/%{name}
387 %attr(755,root,root) %{_bindir}/c_rehash.sh
388 %attr(754,root,root) %{_bindir}/ssl-certificate
390 %dir %{_libdir}/%{name}
391 %attr(755,root,root) %{_libdir}/%{name}/CA.sh
392 %attr(755,root,root) %{_libdir}/%{name}/c_hash
393 %attr(755,root,root) %{_libdir}/%{name}/c_info
394 %attr(755,root,root) %{_libdir}/%{name}/c_issuer
395 %attr(755,root,root) %{_libdir}/%{name}/c_name
397 %{_mandir}/man1/openssl.1*
398 %{_mandir}/man1/openssl_asn1parse.1*
399 %{_mandir}/man1/openssl_ca.1*
400 %{_mandir}/man1/openssl_ciphers.1*
401 %{_mandir}/man1/openssl_crl.1*
402 %{_mandir}/man1/openssl_crl2pkcs7.1*
403 %{_mandir}/man1/openssl_dgst.1*
404 %{_mandir}/man1/openssl_dhparam.1*
405 %{_mandir}/man1/openssl_dsa.1*
406 %{_mandir}/man1/openssl_dsaparam.1*
407 %{_mandir}/man1/openssl_ec.1*
408 %{_mandir}/man1/openssl_ecparam.1*
409 %{_mandir}/man1/openssl_enc.1*
410 %{_mandir}/man1/openssl_errstr.1*
411 %{_mandir}/man1/openssl_gendsa.1*
412 %{_mandir}/man1/openssl_genrsa.1*
413 %{_mandir}/man1/openssl_nseq.1*
414 %{_mandir}/man1/openssl_ocsp.1*
415 %{_mandir}/man1/openssl_passwd.1*
416 %{_mandir}/man1/openssl_pkcs12.1*
417 %{_mandir}/man1/openssl_pkcs7.1*
418 %{_mandir}/man1/openssl_pkcs8.1*
419 %{_mandir}/man1/openssl_rand.1*
420 %{_mandir}/man1/openssl_req.1*
421 %{_mandir}/man1/openssl_rsa.1*
422 %{_mandir}/man1/openssl_rsautl.1*
423 %{_mandir}/man1/openssl_s_client.1*
424 %{_mandir}/man1/openssl_s_server.1*
425 %{_mandir}/man1/openssl_s_time.1*
426 %{_mandir}/man1/openssl_sess_id.1*
427 %{_mandir}/man1/openssl_smime.1*
428 %{_mandir}/man1/openssl_speed.1*
429 %{_mandir}/man1/openssl_spkac.1*
430 %{_mandir}/man1/openssl_verify.1*
431 %{_mandir}/man1/openssl_version.1*
432 %{_mandir}/man1/openssl_x509.1*
433 %{_mandir}/man5/openssl_config.5*
434 %{_mandir}/man5/openssl_x509v3_config.5*
435 %lang(pl) %{_mandir}/pl/man1/openssl.1*
438 %defattr(644,root,root,755)
439 %attr(755,root,root) %{_bindir}/c_rehash
440 %attr(755,root,root) %{_libdir}/%{name}/CA.pl
441 %{_mandir}/man1/openssl_CA.pl.1*
444 %defattr(644,root,root,755)
445 %attr(755,root,root) %{_libdir}/libcrypto.so
446 %attr(755,root,root) %{_libdir}/libssl.so
447 %{_includedir}/%{name}
448 %{_pkgconfigdir}/libcrypto.pc
449 %{_pkgconfigdir}/libssl.pc
450 %{_pkgconfigdir}/openssl.pc
451 %{_mandir}/man3/openssl*.3*
452 %{_mandir}/man7/openssl_des_modes.7*
455 %defattr(644,root,root,755)