3f1fcb4ac0f2374d0c2ceb757c89b1dfbeb8a454
[packages/openssl.git] / openssl.spec
1 #
2 # Conditional build:
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
6 #
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
16 Name:           openssl
17 Version:        0.9.8l
18 Release:        2
19 License:        Apache-like
20 Group:          Libraries
21 Source0:        ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
22 # Source0-md5:  05a0ece1372392a2cf310ebb96333025
23 Source2:        %{name}.1.pl
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/
40 BuildRequires:  bc
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
45 Obsoletes:      SSLeay
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)
52
53 %description
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.
61
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.
67
68 This package contains shared libraries only, install openssl-tools if
69 you want to use openssl cmdline tool.
70
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.
76
77 %description -l es.UTF-8
78 Biblioteca C que suministra algoritmos y protocolos criptográficos.
79
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.
84
85 %description -l pl.UTF-8
86 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
87 v2/v3 oraz Transport Layer Security (TLS v1).
88
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.
93
94 %description -l ru.UTF-8
95 Программа openssl для работы с сертификатами и разделяемые библиотеки,
96 которые реализуют множетсво криптографических алгоритмов, включая DES,
97 RC4, RSA и SSL.
98
99 %description -l uk.UTF-8
100 Програма openssl для роботи з сертифікатами та бібліотеки спільного
101 користування, що реалізують велику кількість криптографічних
102 алгоритмів, включаючи DES, RC4, RSA та SSL.
103
104 %package tools
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}
109
110 %description tools
111 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
112
113 %description tools -l pl.UTF-8
114 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
115
116 %package tools-perl
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}
121
122 %description tools-perl
123 OpenSSL Toolkit tools written in Perl.
124
125 %description tools-perl -l pl.UTF-8
126 Narzędzia OpenSSL napisane w perlu.
127
128 %package devel
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
140
141 %description devel
142 Development part of OpenSSL library.
143
144 %description devel -l es.UTF-8
145 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
146
147 %description devel -l pl.UTF-8
148 Część biblioteki OpenSSL przeznaczona dla programistów.
149
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.
154
155 %description devel -l ru.UTF-8
156 Программа openssl для работы с сертификатами и разделяемые библиотеки,
157 которые реализуют множетсво криптографических алгоритмов, включая DES,
158 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
159 с использованием SSL.
160
161 %description devel -l uk.UTF-8
162 Програма openssl для роботи з сертифікатами та бібліотеки спільного
163 користування, що реалізують велику кількість криптографічних
164 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
165 хедери для розробки програм з використанням SSL.
166
167 %package static
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}
175
176 %description static
177 Static OpenSSL Toolkit libraries.
178
179 %description static -l pl.UTF-8
180 Statyczne wersje bibliotek z OpenSSL.
181
182 %description static -l pt_BR.UTF-8
183 Bibliotecas estáticas para desenvolvimento com openssl.
184
185 %description static -l ru.UTF-8
186 Программа openssl для работы с сертификатами и разделяемые библиотеки,
187 которые реализуют множетсво криптографических алгоритмов, включая DES,
188 RC4, RSA и SSL. Включает статические библиотеки для разработки
189 приложений с использованием OpenSSL.
190
191 %description static -l uk.UTF-8
192 Програма openssl для роботи з сертифікатами та бібліотеки спільного
193 користування, що реалізують велику кількість криптографічних
194 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
195 бібліотеки для розробки програм з використанням SSL.
196
197 %prep
198 %setup -q
199 %patch0 -p1
200 %patch1 -p1
201 %patch2 -p1
202 %patch3 -p1
203 %patch4 -p1
204 %patch5 -p1
205 %patch6 -p1
206 %patch7 -p1
207 %patch8 -p0
208 %patch9 -p1
209 %patch10 -p1
210 %patch11 -p1
211 %patch12 -p1
212
213 %{__perl} -pi -e 's#%{_prefix}/local/bin/perl#%{__perl}#g' \
214         `grep -l -r "%{_prefix}/local/bin/perl" *`
215
216 sed -i -e 's|$prefix/lib/engines|/%{_lib}/engines|g' Configure
217
218 %build
219 touch Makefile.*
220
221 %{__perl} util/perlpath.pl %{__perl}
222
223 OPTFLAGS="%{rpmcflags} %{?with_purify:-DPURIFY}" \
224 ./Configure \
225 %if "%{pld_release}" == "ti"
226         --openssldir=%{_var}/lib/%{name} \
227 %else
228         --openssldir=%{_sysconfdir}/%{name} \
229 %endif
230         --lib=%{_lib} \
231         shared threads \
232         enable-tlsext \
233         enable-seed \
234         enable-rfc3779 \
235         enable-cms \
236         enable-idea \
237         enable-mdc2 \
238         enable-rc5 \
239 %ifarch %{ix86}
240 %ifarch i386
241         386 linux-elf
242 # ^- allow running on 80386 (default code uses bswapl available on i486+)
243 %else
244         linux-elf
245 %endif
246 %endif
247 %ifarch alpha
248         linux-alpha+bwx-gcc
249 %endif
250 %ifarch %{x8664}
251         linux-x86_64
252 %endif
253 %ifarch ia64
254         linux-ia64
255 %endif
256 %ifarch ppc
257         linux-ppc
258 %endif
259 %ifarch ppc64
260         linux-ppc64
261 %endif
262 %ifarch sparc
263         linux-sparcv8
264 %endif
265 %ifarch sparcv9
266         linux-sparcv9
267 %endif
268 %ifarch sparc64
269         linux64-sparcv9
270 %endif
271
272 %{__make} -j1 all rehash %{?with_tests:tests} \
273         CC="%{__cc}" \
274         ASFLAG='$(CFLAG) -Wa,--noexecstack' \
275         INSTALLTOP=%{_prefix}
276
277 # Rename POD sources of man pages. "openssl_" prefix is added to each
278 # manpage to avoid potential conflicts with other packages.
279
280 for dir in doc/{apps,ssl,crypto}; do
281         cd $dir || exit 1;
282         %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
283
284         for pod in !(openssl*).pod; do
285                 mv -f $pod openssl_$pod;
286         done
287         cd ../..
288 done
289
290 %install
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}
296
297 %{__make} install \
298         INSTALLTOP=%{_prefix} \
299         INSTALL_PREFIX=$RPM_BUILD_ROOT \
300         MANDIR=%{_mandir}
301
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
306
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
316 %else
317 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
318 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
319 %endif
320
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
323
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
327
328 %clean
329 rm -rf $RPM_BUILD_ROOT
330
331 %post   -p /sbin/ldconfig
332 %postun -p /sbin/ldconfig
333
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 || :
340 fi
341 %else
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 || :
345 fi
346 if [ -d /var/lib/openssl/private ] ; then
347         mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
348 fi
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 || :
352         done
353 fi
354 %endif
355
356 %files
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
371 %else
372 %dir %{_sysconfdir}/%{name}
373 %dir %{_sysconfdir}/%{name}/certs
374 %dir %{_sysconfdir}/%{name}/private
375 %endif
376 %dir %{_datadir}/ssl
377
378 %files tools
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
383 %else
384 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
385 %endif
386 %attr(755,root,root) %{_bindir}/%{name}
387 %attr(755,root,root) %{_bindir}/c_rehash.sh
388 %attr(754,root,root) %{_bindir}/ssl-certificate
389
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
396
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*
436
437 %files tools-perl
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*
442
443 %files devel
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*
453
454 %files static
455 %defattr(644,root,root,755)
456 %{_libdir}/lib*.a
This page took 0.078923 seconds and 2 git commands to generate.