]> git.pld-linux.org Git - packages/openssl.git/blob - openssl.spec
update openssh conflict for ac
[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 # 1.0.2 will be LTS release
23 # Version 1.0.2 will be supported until 2019-12-31.
24 # https://www.openssl.org/about/releasestrat.html
25 Version:        1.0.2d
26 Release:        2
27 License:        Apache-like
28 Group:          Libraries
29 Source0:        ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
30 # Source0-md5:  38dd619b2e77cbac69b99f52a053d25a
31 Source2:        %{name}.1.pl
32 Source3:        %{name}-ssl-certificate.sh
33 Source4:        %{name}-c_rehash.sh
34 Patch0:         %{name}-alpha-ccc.patch
35 Patch1:         %{name}-optflags.patch
36 Patch2:         %{name}-include.patch
37 Patch3:         %{name}-man-namespace.patch
38 Patch4:         %{name}-asflag.patch
39 Patch5:         %{name}-ca-certificates.patch
40 Patch6:         %{name}-ldflags.patch
41 Patch7:         %{name}-find.patch
42 Patch8:         pic.patch
43 Patch10:        %{name}_fix_for_x32.patch
44 URL:            http://www.openssl.org/
45 BuildRequires:  bc
46 BuildRequires:  perl-devel >= 1:5.6.1
47 BuildRequires:  rpm-perlprov >= 4.1-13
48 BuildRequires:  rpmbuild(macros) >= 1.213
49 BuildRequires:  sed >= 4.0
50 Requires:       ca-certificates >= 20080809-4
51 Requires:       rpm-whiteout >= 1.7
52 Obsoletes:      SSLeay
53 Obsoletes:      SSLeay-devel
54 Obsoletes:      SSLeay-perl
55 Obsoletes:      libopenssl0
56 %if "%{pld_release}" == "ac"
57 Conflicts:      openssh-server < 2:5.8p1-9
58 %else
59 Conflicts:      neon < 0.29.6-8
60 Conflicts:      openssh-clients < 2:6.2p2-3
61 Conflicts:      openssh-server < 2:6.2p2-3
62 %endif
63 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
64
65 %description
66 The OpenSSL Project is a collaborative effort to develop a robust,
67 commercial-grade, full-featured, and Open Source toolkit implementing
68 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
69 v1) protocols with full-strength cryptography world-wide. The project
70 is managed by a worldwide community of volunteers that use the
71 Internet to communicate, plan, and develop the OpenSSL tookit and its
72 related documentation.
73
74 OpenSSL is based on the excellent SSLeay library developed by Eric A.
75 Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
76 Apache-style licence, which basically means that you are free to get
77 and use it for commercial and non-commercial purposes subject to some
78 simple license conditions.
79
80 This package contains shared libraries only, install openssl-tools if
81 you want to use openssl cmdline tool.
82
83 %description -l de.UTF-8
84 Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
85 libraries, die verschiedene Verschlüsselungs- und
86 Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
87 zur Verfügung stellen.
88
89 %description -l es.UTF-8
90 Biblioteca C que suministra algoritmos y protocolos criptográficos.
91
92 %description -l fr.UTF-8
93 OpenSSL est un outiil de gestion des certificats et les librairies
94 partagees qui fournit plusieurs protocoles et algorithmes de
95 codage/decodage, incluant DES, RC4, RSA et SSL.
96
97 %description -l pl.UTF-8
98 Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
99 v2/v3 oraz Transport Layer Security (TLS v1).
100
101 %description -l pt_BR.UTF-8
102 Uma biblioteca C que fornece vários algoritmos e protocolos
103 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
104 compartilhadas e utilitários.
105
106 %description -l ru.UTF-8
107 Программа openssl для работы с сертификатами и разделяемые библиотеки,
108 которые реализуют множетсво криптографических алгоритмов, включая DES,
109 RC4, RSA и SSL.
110
111 %description -l uk.UTF-8
112 Програма openssl для роботи з сертифікатами та бібліотеки спільного
113 користування, що реалізують велику кількість криптографічних
114 алгоритмів, включаючи DES, RC4, RSA та SSL.
115
116 %package engines
117 Summary:        OpenSSL optional crypto engines
118 Summary(pl.UTF-8):      Opcjonalne silniki kryptograficzne dla OpenSSL-a
119 Group:          Libraries
120 Requires:       %{name} = %{version}-%{release}
121
122 %description engines
123 With OpenSSL 0.9.6, a new component was added to support alternative
124 cryptography implementations, most commonly for interfacing with
125 external crypto devices (eg. accelerator cards). This component is
126 called ENGINE.
127
128 There are currently built-in ENGINE implementations for the following
129 crypto devices:
130
131 - CryptoSwift
132 - Compaq Atalla
133 - nCipher CHIL
134 - Nuron
135 - Broadcom uBSec
136
137 In addition, dynamic binding to external ENGINE implementations is now
138 provided by a special ENGINE called "dynamic".
139
140 %description engines -l pl.UTF-8
141 Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
142 wspierać alternatywne implementacje kryptografii, przeważnie
143 współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
144 kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
145 ENGINE).
146
147 Obecnie istnieją wbudowane implementacje silników dla następujących
148 urządzeń kryptograficznych:
149 - CryptoSwift
150 - Compaq Atalla
151 - nCipher CHIL
152 - Nuron
153 - Broadcom uBSec
154
155 Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
156 implementacji silników poprzez specjalny silnik o nazwie "dynamic".
157
158 %package tools
159 Summary:        OpenSSL command line tool and utilities
160 Summary(pl.UTF-8):      Zestaw narzędzi i skryptów
161 Group:          Applications/Communications
162 Requires:       %{name} = %{version}-%{release}
163 Requires:       which
164
165 %description tools
166 The OpenSSL Toolkit cmdline tool openssl and utility scripts.
167
168 %description tools -l pl.UTF-8
169 Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
170
171 %package tools-perl
172 Summary:        OpenSSL utilities written in Perl
173 Summary(pl.UTF-8):      Narzędzia OpenSSL napisane w perlu
174 Group:          Applications/Communications
175 Requires:       %{name} = %{version}-%{release}
176
177 %description tools-perl
178 OpenSSL Toolkit tools written in Perl.
179
180 %description tools-perl -l pl.UTF-8
181 Narzędzia OpenSSL napisane w perlu.
182
183 %package devel
184 Summary:        Development part of OpenSSL Toolkit libraries
185 Summary(de.UTF-8):      Secure Sockets Layer Kommunikationslibrary: statische libraries+header
186 Summary(es.UTF-8):      Bibliotecas y archivos de inclusión para desarrollo OpenSSL
187 Summary(fr.UTF-8):      Librairies statiques, headers et utilitaires pour communication SSL
188 Summary(pl.UTF-8):      Część bibiloteki OpenSSL przeznaczona dla programistów
189 Summary(pt_BR.UTF-8):   Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
190 Summary(ru.UTF-8):      Библиотеки, хедеры и утилиты для Secure Sockets Layer
191 Summary(uk.UTF-8):      Бібліотеки, хедери та утиліти для Secure Sockets Layer
192 Group:          Development/Libraries
193 Requires:       %{name} = %{version}-%{release}
194 Obsoletes:      libopenssl0-devel
195
196 %description devel
197 Development part of OpenSSL library.
198
199 %description devel -l es.UTF-8
200 Bibliotecas y archivos de inclusión para desarrollo OpenSSL
201
202 %description devel -l pl.UTF-8
203 Część biblioteki OpenSSL przeznaczona dla programistów.
204
205 %description devel -l pt_BR.UTF-8
206 Uma biblioteca C que fornece vários algoritmos e protocolos
207 criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
208 arquivos de inclusão para desenvolvimento.
209
210 %description devel -l ru.UTF-8
211 Программа openssl для работы с сертификатами и разделяемые библиотеки,
212 которые реализуют множетсво криптографических алгоритмов, включая DES,
213 RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
214 с использованием SSL.
215
216 %description devel -l uk.UTF-8
217 Програма openssl для роботи з сертифікатами та бібліотеки спільного
218 користування, що реалізують велику кількість криптографічних
219 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
220 хедери для розробки програм з використанням SSL.
221
222 %package static
223 Summary:        Static OpenSSL libraries
224 Summary(pl.UTF-8):      Statyczne wersje bibliotek z OpenSSL
225 Summary(pt_BR.UTF-8):   Bibliotecas estáticas para desenvolvimento com openssl
226 Summary(ru.UTF-8):      Статические библиотеки разработчика для OpenSSL
227 Summary(uk.UTF-8):      Статичні бібліотеки програміста для OpenSSL
228 Group:          Development/Libraries
229 Requires:       %{name}-devel = %{version}-%{release}
230
231 %description static
232 Static OpenSSL Toolkit libraries.
233
234 %description static -l pl.UTF-8
235 Statyczne wersje bibliotek z OpenSSL.
236
237 %description static -l pt_BR.UTF-8
238 Bibliotecas estáticas para desenvolvimento com openssl.
239
240 %description static -l ru.UTF-8
241 Программа openssl для работы с сертификатами и разделяемые библиотеки,
242 которые реализуют множетсво криптографических алгоритмов, включая DES,
243 RC4, RSA и SSL. Включает статические библиотеки для разработки
244 приложений с использованием OpenSSL.
245
246 %description static -l uk.UTF-8
247 Програма openssl для роботи з сертифікатами та бібліотеки спільного
248 користування, що реалізують велику кількість криптографічних
249 алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
250 бібліотеки для розробки програм з використанням SSL.
251
252 %prep
253 %setup -q
254 %patch0 -p1
255 %patch1 -p1
256 %patch2 -p1
257 %patch3 -p1
258 %patch4 -p1
259 %patch5 -p1
260 %patch6 -p1
261 %patch7 -p1
262 %patch8 -p1
263 %patch10 -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.095544 seconds and 4 git commands to generate.