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