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