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