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