]> git.pld-linux.org Git - packages/openssl.git/blob - openssl.spec
e58f7142825d00a8c747bc3321a1fc6a366c749a
[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.1j
23 Release:        3
24 License:        Apache-like
25 Group:          Libraries
26 Source0:        ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
27 # Source0-md5:  f7175c9cd3c39bb1907ac8bba9df8ed3
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 Patch6:         %{name}-ca-certificates.patch
38 Patch7:         %{name}-ldflags.patch
39 Patch8:         %{name}-find.patch
40 # from debian
41 Patch10:        default_bits.patch
42 Patch11:        pic.patch
43 Patch12:        stddef.patch
44 Patch13:        openssl_fix_for_x32.patch
45 URL:            http://www.openssl.org/
46 BuildRequires:  bc
47 BuildRequires:  perl-devel >= 1:5.6.1
48 BuildRequires:  rpm-perlprov >= 4.1-13
49 BuildRequires:  rpmbuild(macros) >= 1.213
50 BuildRequires:  sed >= 4.0
51 Requires:       ca-certificates >= 20080809-4
52 Requires:       rpm-whiteout >= 1.7
53 Obsoletes:      SSLeay
54 Obsoletes:      SSLeay-devel
55 Obsoletes:      SSLeay-perl
56 Obsoletes:      libopenssl0
57 Conflicts:      neon < 0.29.6-8
58 Conflicts:      openssh-clients < 2:6.2p2-3
59 Conflicts:      openssh-server < 2:6.2p2-3
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 %patch0 -p1
252 %patch1 -p1
253 %patch2 -p1
254 %patch3 -p1
255 %patch4 -p1
256 %patch5 -p1
257 %patch6 -p1
258 %patch7 -p1
259 %patch8 -p1
260 %patch10 -p1
261 %patch11 -p1
262 %patch12 -p1
263 %patch13 -p1
264
265 sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
266
267 %build
268 touch Makefile.*
269
270 %{__perl} util/perlpath.pl %{__perl}
271
272 OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
273 PERL="%{__perl}" \
274 %{__perl} ./Configure \
275         --openssldir=%{_sysconfdir}/%{name} \
276         --libdir=%{_lib} \
277         shared \
278         threads \
279         %{!?with_sslv2:no-ssl2} \
280         %{!?with_sslv3:no-ssl3} \
281         %{!?with_zlib:no-}zlib \
282         enable-camelia \
283         enable-cms \
284         enable-idea \
285         enable-md2 \
286         enable-mdc2 \
287         enable-rc5 \
288         enable-rfc3779 \
289         enable-seed \
290         enable-tlsext \
291 %ifarch %{x8664}
292         enable-ec_nistp_64_gcc_128 \
293 %endif
294 %ifarch %{ix86}
295 %ifarch i386
296         386 linux-elf
297 # ^- allow running on 80386 (default code uses bswapl available on i486+)
298 %else
299         linux-elf
300 %endif
301 %endif
302 %ifarch alpha
303         linux-alpha+bwx-gcc
304 %endif
305 %ifarch %{x8664}
306         linux-x86_64
307 %endif
308 %ifarch x32
309         linux-x32
310 %endif
311 %ifarch ia64
312         linux-ia64
313 %endif
314 %ifarch ppc
315         linux-ppc
316 %endif
317 %ifarch ppc64
318         linux-ppc64
319 %endif
320 %ifarch sparc
321         linux-sparcv8
322 %endif
323 %ifarch sparcv9
324         linux-sparcv9
325 %endif
326 %ifarch sparc64
327         linux64-sparcv9
328 %endif
329 %ifarch armv4 armv5 armv5t armv5te armv5tel
330         linux-armv4
331 %endif
332
333 %{__make} -j1 all rehash %{?with_tests:tests} \
334         CC="%{__cc}" \
335         ASFLAG='$(CFLAG) -Wa,--noexecstack' \
336         INSTALLTOP=%{_prefix}
337
338 # Rename POD sources of man pages. "openssl_" prefix is added to each
339 # manpage to avoid potential conflicts with other packages.
340
341 for dir in doc/{apps,ssl,crypto}; do
342         cd $dir || exit 1;
343         %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
344
345         for pod in !(openssl*).pod; do
346                 mv -f $pod openssl_$pod;
347         done
348         cd ../..
349 done
350
351 %install
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}
357
358 %{__make} -j1 install \
359         INSTALLTOP=%{_prefix} \
360         INSTALL_PREFIX=$RPM_BUILD_ROOT \
361         MANDIR=%{_mandir}
362
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
367
368 mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
369 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
370
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
373
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
377
378 %clean
379 rm -rf $RPM_BUILD_ROOT
380
381 %post   -p /sbin/ldconfig
382 %postun -p /sbin/ldconfig
383
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 || :
387
388 %triggerpostun -- %{name} < 0.9.8i-2
389 # don't do anything on --downgrade
390 if [ $1 -le 1 ]; then
391         exit 0
392 fi
393 if [ -d /var/lib/openssl/certs ] ; then
394         mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
395 fi
396 if [ -d /var/lib/openssl/private ] ; then
397         mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
398 fi
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 || :
402         done
403         rmdir /var/lib/openssl/* 2>/dev/null || :
404         rmdir /var/lib/openssl 2>/dev/null || :
405 fi
406
407 %files
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
416 %dir %{_datadir}/ssl
417
418 %files engines
419 %defattr(644,root,root,755)
420 %dir /%{_lib}/engines
421 %attr(755,root,root) /%{_lib}/engines/*.so
422
423 %files tools
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
429
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
436
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*
483
484 %files tools-perl
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*
491
492 %files devel
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*
502
503 %files static
504 %defattr(644,root,root,755)
505 %{_libdir}/libcrypto.a
506 %{_libdir}/libssl.a
This page took 0.065295 seconds and 2 git commands to generate.