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