conflict on packages not having strict openssl dependency
[packages/openssl.git] / openssl.spec
1 #
2 # TODO: consider dropping last optflags.patch hunk and return to SOMAJOR (.so.1) sonames
3 #
4 # Conditional build:
5 %bcond_without  tests   # don't perform "make tests"
6 %bcond_with     purify  # Compile openssl with \-DPURIFY, useful when one wants to
7                         # use valgrind debugger against openssl-linked programs
8
9 %include        /usr/lib/rpm/macros.perl
10 Summary:        OpenSSL Toolkit libraries for the "Secure Sockets Layer" (SSL v2/v3)
11 Summary(de.UTF-8):      Secure Sockets Layer (SSL)-Kommunikationslibrary
12 Summary(es.UTF-8):      Biblioteca C que suministra algoritmos y protocolos criptográficos
13 Summary(fr.UTF-8):      Utilitaires de communication SSL (Secure Sockets Layer)
14 Summary(pl.UTF-8):      Biblioteki OpenSSL (SSL v2/v3)
15 Summary(pt_BR.UTF-8):   Uma biblioteca C que fornece vários algoritmos e protocolos criptográficos
16 Summary(ru.UTF-8):      Библиотеки и утилиты для соединений через Secure Sockets Layer
17 Summary(uk.UTF-8):      Бібліотеки та утиліти для з'єднань через Secure Sockets Layer
18 Name:           openssl
19 Version:        1.0.1e
20 Release:        3
21 License:        Apache-like
22 Group:          Libraries
23 Source0:        ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
24 # Source0-md5:  66bf6f10f060d561929de96f9dfe5b8c
25 Source2:        %{name}.1.pl
26 Source3:        %{name}-ssl-certificate.sh
27 Source4:        %{name}-c_rehash.sh
28 Patch0:         %{name}-alpha-ccc.patch
29 Patch1:         %{name}-optflags.patch
30 Patch2:         %{name}-globalCA.diff
31 Patch3:         %{name}-include.patch
32 Patch4:         %{name}-man-namespace.patch
33 Patch5:         %{name}-asflag.patch
34 Patch6:         %{name}-ca-certificates.patch
35 Patch7:         %{name}-ldflags.patch
36
37 # from debian
38 Patch10:        aesni-mac.patch
39 Patch11:        cpuid.patch
40 Patch12:        default_bits.patch
41 Patch13:        dtls_version.patch
42 Patch14:        get_certificate.patch
43 Patch15:        pic.patch
44 Patch16:        stddef.patch
45
46 URL:            http://www.openssl.org/
47 BuildRequires:  bc
48 BuildRequires:  perl-devel >= 1:5.6.1
49 BuildRequires:  rpm-perlprov >= 4.1-13
50 BuildRequires:  rpmbuild(macros) >= 1.213
51 BuildRequires:  sed >= 4.0
52 Requires:       ca-certificates >= 20080809-4
53 Requires:       rpm-whiteout >= 1.7
54 Obsoletes:      SSLeay
55 Obsoletes:      SSLeay-devel
56 Obsoletes:      SSLeay-perl
57 Obsoletes:      libopenssl0
58 Conflicts:      neon < 0.29.6-8
59 Conflicts:      openssh-clients < 2:6.2p2-3
60 Conflicts:      openssh-server < 2:6.2p2-3
61 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
62
63 %description
64 The OpenSSL Project is a collaborative effort to develop a robust,
65 commercial-grade, full-featured, and Open Source toolkit implementing
66 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
67 v1) protocols with full-strength cryptography world-wide. The project
68 is managed by a worldwide community of volunteers that use the
69 Internet to communicate, plan, and develop the OpenSSL tookit and its
70 related documentation.
71
72 OpenSSL is based on the excellent SSLeay library developed by Eric A.
73 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
74 Apache-style licence, which basically means that you are free to get
75 and use it for commercial and non-commercial purposes subject to some
76 simple license conditions.
77
78 This package contains shared libraries only, install openssl-tools if
79 you want to use openssl cmdline tool.
80
81 %description -l de.UTF-8
82 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
83 libraries, die verschiedene Verschlüsselungs- und
84 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
85 zur Verfügung stellen.
86
87 %description -l es.UTF-8
88 Biblioteca C que suministra algoritmos y protocolos criptográficos.
89
90 %description -l fr.UTF-8
91 OpenSSL est un outiil de gestion des certificats et les librairies
92 partagees qui fournit plusieurs protocoles et algorithmes de
93 codage/decodage, incluant DES, RC4, RSA et SSL.
94
95 %description -l pl.UTF-8
96 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
97 v2/v3 oraz Transport Layer Security (TLS v1).
98
99 %description -l pt_BR.UTF-8
100 Uma biblioteca C que fornece vários algoritmos e protocolos
101 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
102 compartilhadas e utilitários.
103
104 %description -l ru.UTF-8
105 Программа openssl для работы с сертификатами и разделяемые библиотеки,
106 которые реализуют множетсво криптографических алгоритмов, включая DES,
107 RC4, RSA и SSL.
108
109 %description -l uk.UTF-8
110 Програма openssl для роботи з сертифікатами та бібліотеки спільного
111 користування, що реалізують велику кількість криптографічних
112 алгоритмів, включаючи DES, RC4, RSA та SSL.
113
114 %package engines
115 Summary:        OpenSSL optional crypto engines
116 Summary(pl.UTF-8):      Opcjonalne silniki kryptograficzne dla OpenSSL-a
117 Group:          Libraries
118 Requires:       %{name} = %{version}-%{release}
119
120 %description engines
121 With OpenSSL 0.9.6, a new component was added to support alternative
122 cryptography implementations, most commonly for interfacing with
123 external crypto devices (eg. accelerator cards). This component is
124 called ENGINE.
125
126 There are currently built-in ENGINE implementations for the following
127 crypto devices:
128
129 - CryptoSwift
130 - Compaq Atalla
131 - nCipher CHIL
132 - Nuron
133 - Broadcom uBSec
134
135 In addition, dynamic binding to external ENGINE implementations is now
136 provided by a special ENGINE called "dynamic".
137
138 %description engines -l pl.UTF-8
139 Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
140 wspierać alternatywne implementacje kryptografii, przeważnie
141 współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
142 kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
143 ENGINE).
144
145 Obecnie istnieją wbudowane implementacje silników dla następujących
146 urządzeń kryptograficznych:
147 - CryptoSwift
148 - Compaq Atalla
149 - nCipher CHIL
150 - Nuron
151 - Broadcom uBSec
152
153 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
154 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
155
156 %package tools
157 Summary:        OpenSSL command line tool and utilities
158 Summary(pl.UTF-8):      Zestaw narzędzi i skryptów
159 Group:          Applications/Communications
160 Requires:       %{name} = %{version}-%{release}
161 Requires:       which
162
163 %description tools
164 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
165
166 %description tools -l pl.UTF-8
167 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
168
169 %package tools-perl
170 Summary:        OpenSSL utilities written in Perl
171 Summary(pl.UTF-8):      Narzędzia OpenSSL napisane w perlu
172 Group:          Applications/Communications
173 Requires:       %{name} = %{version}-%{release}
174
175 %description tools-perl
176 OpenSSL Toolkit tools written in Perl.
177
178 %description tools-perl -l pl.UTF-8
179 Narzędzia OpenSSL napisane w perlu.
180
181 %package devel
182 Summary:        Development part of OpenSSL Toolkit libraries
183 Summary(de.UTF-8):      Secure Sockets Layer Kommunikationslibrary: statische libraries+header
184 Summary(es.UTF-8):      Bibliotecas y archivos de inclusión para desarrollo OpenSSL
185 Summary(fr.UTF-8):      Librairies statiques, headers et utilitaires pour communication SSL
186 Summary(pl.UTF-8):      Część bibiloteki OpenSSL przeznaczona dla programistów
187 Summary(pt_BR.UTF-8):   Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
188 Summary(ru.UTF-8):      Библиотеки, хедеры и утилиты для Secure Sockets Layer
189 Summary(uk.UTF-8):      Бібліотеки, хедери та утиліти для Secure Sockets Layer
190 Group:          Development/Libraries
191 Requires:       %{name} = %{version}-%{release}
192 Obsoletes:      libopenssl0-devel
193
194 %description devel
195 Development part of OpenSSL library.
196
197 %description devel -l es.UTF-8
198 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
199
200 %description devel -l pl.UTF-8
201 Część biblioteki OpenSSL przeznaczona dla programistów.
202
203 %description devel -l pt_BR.UTF-8
204 Uma biblioteca C que fornece vários algoritmos e protocolos
205 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
206 arquivos de inclusão para desenvolvimento.
207
208 %description devel -l ru.UTF-8
209 Программа openssl для работы с сертификатами и разделяемые библиотеки,
210 которые реализуют множетсво криптографических алгоритмов, включая DES,
211 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
212 с использованием SSL.
213
214 %description devel -l uk.UTF-8
215 Програма openssl для роботи з сертифікатами та бібліотеки спільного
216 користування, що реалізують велику кількість криптографічних
217 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
218 хедери для розробки програм з використанням SSL.
219
220 %package static
221 Summary:        Static OpenSSL libraries
222 Summary(pl.UTF-8):      Statyczne wersje bibliotek z OpenSSL
223 Summary(pt_BR.UTF-8):   Bibliotecas estáticas para desenvolvimento com openssl
224 Summary(ru.UTF-8):      Статические библиотеки разработчика для OpenSSL
225 Summary(uk.UTF-8):      Статичні бібліотеки програміста для OpenSSL
226 Group:          Development/Libraries
227 Requires:       %{name}-devel = %{version}-%{release}
228
229 %description static
230 Static OpenSSL Toolkit libraries.
231
232 %description static -l pl.UTF-8
233 Statyczne wersje bibliotek z OpenSSL.
234
235 %description static -l pt_BR.UTF-8
236 Bibliotecas estáticas para desenvolvimento com openssl.
237
238 %description static -l ru.UTF-8
239 Программа openssl для работы с сертификатами и разделяемые библиотеки,
240 которые реализуют множетсво криптографических алгоритмов, включая DES,
241 RC4, RSA и SSL. Включает статические библиотеки для разработки
242 приложений с использованием OpenSSL.
243
244 %description static -l uk.UTF-8
245 Програма openssl для роботи з сертифікатами та бібліотеки спільного
246 користування, що реалізують велику кількість криптографічних
247 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
248 бібліотеки для розробки програм з використанням SSL.
249
250 %prep
251 %setup -q
252 %patch0 -p1
253 %patch1 -p1
254 %patch2 -p1
255 %patch3 -p1
256 %patch4 -p1
257 %patch5 -p1
258 %patch6 -p1
259 %patch7 -p1
260
261 %patch10 -p1
262 %patch11 -p1
263 %patch12 -p1
264 %patch13 -p1
265 %patch14 -p1
266 %patch15 -p1
267 %patch16 -p1
268
269 sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
270
271 %build
272 touch Makefile.*
273
274 %{__perl} util/perlpath.pl %{__perl}
275
276 OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
277 PERL="%{__perl}" \
278 %{__perl} ./Configure \
279         --openssldir=%{_sysconfdir}/%{name} \
280         --libdir=%{_lib} \
281         shared \
282         threads \
283         zlib \
284         enable-tlsext \
285         enable-seed \
286         enable-rfc3779 \
287         enable-camelia \
288         enable-cms \
289         enable-idea \
290         enable-mdc2 \
291         enable-md2 \
292         enable-rc5 \
293 %ifarch %{ix86}
294 %ifarch i386
295         386 linux-elf
296 # ^- allow running on 80386 (default code uses bswapl available on i486+)
297 %else
298         linux-elf
299 %endif
300 %endif
301 %ifarch alpha
302         linux-alpha+bwx-gcc
303 %endif
304 %ifarch %{x8664}
305         linux-x86_64
306 %endif
307 %ifarch ia64
308         linux-ia64
309 %endif
310 %ifarch ppc
311         linux-ppc
312 %endif
313 %ifarch ppc64
314         linux-ppc64
315 %endif
316 %ifarch sparc
317         linux-sparcv8
318 %endif
319 %ifarch sparcv9
320         linux-sparcv9
321 %endif
322 %ifarch sparc64
323         linux64-sparcv9
324 %endif
325 %ifarch armv4 armv5 armv5t armv5te armv5tel
326         linux-armv4
327 %endif
328
329 %{__make} -j1 all rehash %{?with_tests:tests} \
330         CC="%{__cc}" \
331         ASFLAG='$(CFLAG) -Wa,--noexecstack' \
332         INSTALLTOP=%{_prefix}
333
334 # Rename POD sources of man pages. "openssl_" prefix is added to each
335 # manpage to avoid potential conflicts with other packages.
336
337 for dir in doc/{apps,ssl,crypto}; do
338         cd $dir || exit 1;
339         %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
340
341         for pod in !(openssl*).pod; do
342                 mv -f $pod openssl_$pod;
343         done
344         cd ../..
345 done
346
347 %install
348 rm -rf $RPM_BUILD_ROOT
349 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
350         $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
351         $RPM_BUILD_ROOT/%{_lib}/engines \
352         $RPM_BUILD_ROOT%{_pkgconfigdir}
353
354 %{__make} -j1 install \
355         INSTALLTOP=%{_prefix} \
356         INSTALL_PREFIX=$RPM_BUILD_ROOT \
357         MANDIR=%{_mandir}
358
359 mv -f $RPM_BUILD_ROOT%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
360 mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
361 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
362 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
363
364 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
365 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
366
367 # not installed as individual utilities (see openssl dgst instead)
368 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{md2,md4,md5,mdc2,ripemd160,sha,sha1}.1
369
370 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
371 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
372 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
373
374 %clean
375 rm -rf $RPM_BUILD_ROOT
376
377 %post   -p /sbin/ldconfig
378 %postun -p /sbin/ldconfig
379
380 %triggerpostun -- %{name}-tools < 1.0.0-5
381 # the hashing format has changed in 1.0.0
382 [ ! -x %{_sbindir}/update-ca-certificates ] || %{_sbindir}/update-ca-certificates --fresh || :
383
384 %triggerpostun -- %{name} < 0.9.8i-2
385 # don't do anything on --downgrade
386 if [ $1 -le 1 ]; then
387         exit 0
388 fi
389 if [ -d /var/lib/openssl/certs ] ; then
390         mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
391 fi
392 if [ -d /var/lib/openssl/private ] ; then
393         mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
394 fi
395 if [ -d /var/lib/openssl ] ; then
396         for f in /var/lib/openssl/* ; do
397                 [ -f "$f" ] && mv "$f" %{_sysconfdir}/%{name} 2>/dev/null || :
398         done
399         rmdir /var/lib/openssl/* 2>/dev/null || :
400         rmdir /var/lib/openssl 2>/dev/null || :
401 fi
402
403 %files
404 %defattr(644,root,root,755)
405 %doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
406 %doc doc/openssl_button.gif doc/openssl_button.html
407 %attr(755,root,root) /%{_lib}/libcrypto.so.*.*.*
408 %attr(755,root,root) /%{_lib}/libssl.so.*.*.*
409 %dir %{_sysconfdir}/%{name}
410 %dir %{_sysconfdir}/%{name}/certs
411 %dir %{_sysconfdir}/%{name}/private
412 %dir %{_datadir}/ssl
413
414 %files engines
415 %defattr(644,root,root,755)
416 %dir /%{_lib}/engines
417 %attr(755,root,root) /%{_lib}/engines/*.so
418
419 %files tools
420 %defattr(644,root,root,755)
421 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
422 %attr(755,root,root) %{_bindir}/c_rehash.sh
423 %attr(755,root,root) %{_bindir}/openssl
424 %attr(754,root,root) %{_bindir}/ssl-certificate
425
426 %dir %{_libdir}/%{name}
427 %attr(755,root,root) %{_libdir}/%{name}/CA.sh
428 %attr(755,root,root) %{_libdir}/%{name}/c_hash
429 %attr(755,root,root) %{_libdir}/%{name}/c_info
430 %attr(755,root,root) %{_libdir}/%{name}/c_issuer
431 %attr(755,root,root) %{_libdir}/%{name}/c_name
432
433 %{_mandir}/man1/openssl.1*
434 %{_mandir}/man1/openssl_asn1parse.1*
435 %{_mandir}/man1/openssl_ca.1*
436 %{_mandir}/man1/openssl_ciphers.1*
437 %{_mandir}/man1/openssl_cms.1*
438 %{_mandir}/man1/openssl_crl.1*
439 %{_mandir}/man1/openssl_crl2pkcs7.1*
440 %{_mandir}/man1/openssl_dgst.1*
441 %{_mandir}/man1/openssl_dhparam.1*
442 %{_mandir}/man1/openssl_dsa.1*
443 %{_mandir}/man1/openssl_dsaparam.1*
444 %{_mandir}/man1/openssl_ec.1*
445 %{_mandir}/man1/openssl_ecparam.1*
446 %{_mandir}/man1/openssl_enc.1*
447 %{_mandir}/man1/openssl_errstr.1*
448 %{_mandir}/man1/openssl_gendsa.1*
449 %{_mandir}/man1/openssl_genpkey.1*
450 %{_mandir}/man1/openssl_genrsa.1*
451 %{_mandir}/man1/openssl_nseq.1*
452 %{_mandir}/man1/openssl_ocsp.1*
453 %{_mandir}/man1/openssl_passwd.1*
454 %{_mandir}/man1/openssl_pkcs12.1*
455 %{_mandir}/man1/openssl_pkcs7.1*
456 %{_mandir}/man1/openssl_pkcs8.1*
457 %{_mandir}/man1/openssl_pkey.1*
458 %{_mandir}/man1/openssl_pkeyparam.1*
459 %{_mandir}/man1/openssl_pkeyutl.1*
460 %{_mandir}/man1/openssl_rand.1*
461 %{_mandir}/man1/openssl_req.1*
462 %{_mandir}/man1/openssl_rsa.1*
463 %{_mandir}/man1/openssl_rsautl.1*
464 %{_mandir}/man1/openssl_s_client.1*
465 %{_mandir}/man1/openssl_s_server.1*
466 %{_mandir}/man1/openssl_s_time.1*
467 %{_mandir}/man1/openssl_sess_id.1*
468 %{_mandir}/man1/openssl_smime.1*
469 %{_mandir}/man1/openssl_speed.1*
470 %{_mandir}/man1/openssl_spkac.1*
471 %{_mandir}/man1/openssl_ts.1*
472 %{_mandir}/man1/openssl_tsget.1*
473 %{_mandir}/man1/openssl_verify.1*
474 %{_mandir}/man1/openssl_version.1*
475 %{_mandir}/man1/openssl_x509.1*
476 %{_mandir}/man5/openssl_config.5*
477 %{_mandir}/man5/openssl_x509v3_config.5*
478 %lang(pl) %{_mandir}/pl/man1/openssl.1*
479
480 %files tools-perl
481 %defattr(644,root,root,755)
482 %attr(755,root,root) %{_bindir}/c_rehash
483 %attr(755,root,root) %{_libdir}/%{name}/CA.pl
484 %attr(755,root,root) %{_libdir}/%{name}/tsget
485 %{_mandir}/man1/openssl_CA.pl.1*
486
487 %files devel
488 %defattr(644,root,root,755)
489 %attr(755,root,root) %{_libdir}/libcrypto.so
490 %attr(755,root,root) %{_libdir}/libssl.so
491 %{_includedir}/%{name}
492 %{_pkgconfigdir}/libcrypto.pc
493 %{_pkgconfigdir}/libssl.pc
494 %{_pkgconfigdir}/openssl.pc
495 %{_mandir}/man3/openssl*.3*
496 %{_mandir}/man7/openssl_des_modes.7*
497
498 %files static
499 %defattr(644,root,root,755)
500 %{_libdir}/libcrypto.a
501 %{_libdir}/libssl.a
This page took 0.637908 seconds and 3 git commands to generate.