]> git.pld-linux.org Git - packages/openssl.git/blame_incremental - openssl.spec
- release 5 (by relup.sh)
[packages/openssl.git] / openssl.spec
... / ...
CommitLineData
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
13Summary: OpenSSL Toolkit libraries for the "Secure Sockets Layer" (SSL v2/v3)
14Summary(de.UTF-8): Secure Sockets Layer (SSL)-Kommunikationslibrary
15Summary(es.UTF-8): Biblioteca C que suministra algoritmos y protocolos criptográficos
16Summary(fr.UTF-8): Utilitaires de communication SSL (Secure Sockets Layer)
17Summary(pl.UTF-8): Biblioteki OpenSSL (SSL v2/v3)
18Summary(pt_BR.UTF-8): Uma biblioteca C que fornece vários algoritmos e protocolos criptográficos
19Summary(ru.UTF-8): Библиотеки и утилиты для соединений через Secure Sockets Layer
20Summary(uk.UTF-8): Бібліотеки та утиліти для з'єднань через Secure Sockets Layer
21Name: 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
25Version: 1.0.2d
26Release: 5
27License: Apache-like
28Group: Libraries
29Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
30# Source0-md5: 38dd619b2e77cbac69b99f52a053d25a
31Source2: %{name}.1.pl
32Source3: %{name}-ssl-certificate.sh
33Source4: %{name}-c_rehash.sh
34Patch0: %{name}-alpha-ccc.patch
35Patch1: %{name}-optflags.patch
36Patch2: %{name}-include.patch
37Patch3: %{name}-man-namespace.patch
38Patch4: %{name}-asflag.patch
39Patch5: %{name}-ca-certificates.patch
40Patch6: %{name}-ldflags.patch
41Patch7: %{name}-find.patch
42Patch8: pic.patch
43Patch10: %{name}_fix_for_x32.patch
44URL: http://www.openssl.org/
45BuildRequires: bc
46BuildRequires: perl-devel >= 1:5.6.1
47BuildRequires: rpm-perlprov >= 4.1-13
48BuildRequires: rpmbuild(macros) >= 1.213
49BuildRequires: sed >= 4.0
50Requires: ca-certificates >= 20080809-4
51Requires: rpm-whiteout >= 1.7
52Obsoletes: SSLeay
53Obsoletes: SSLeay-devel
54Obsoletes: SSLeay-perl
55Obsoletes: libopenssl0
56%if "%{pld_release}" == "ac"
57Conflicts: neon < 0.26.3-3
58Conflicts: ntpd < 4.2.4p8-10
59Conflicts: openssh-clients < 2:5.8p1-9
60Conflicts: openssh-server < 2:5.8p1-9
61%else
62Conflicts: neon < 0.29.6-8
63Conflicts: openssh-clients < 2:6.2p2-3
64Conflicts: openssh-server < 2:6.2p2-3
65%endif
66BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67
68%description
69The OpenSSL Project is a collaborative effort to develop a robust,
70commercial-grade, full-featured, and Open Source toolkit implementing
71the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
72v1) protocols with full-strength cryptography world-wide. The project
73is managed by a worldwide community of volunteers that use the
74Internet to communicate, plan, and develop the OpenSSL tookit and its
75related documentation.
76
77OpenSSL is based on the excellent SSLeay library developed by Eric A.
78Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
79Apache-style licence, which basically means that you are free to get
80and use it for commercial and non-commercial purposes subject to some
81simple license conditions.
82
83This package contains shared libraries only, install openssl-tools if
84you want to use openssl cmdline tool.
85
86%description -l de.UTF-8
87Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
88libraries, die verschiedene Verschlüsselungs- und
89Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
90zur Verfügung stellen.
91
92%description -l es.UTF-8
93Biblioteca C que suministra algoritmos y protocolos criptográficos.
94
95%description -l fr.UTF-8
96OpenSSL est un outiil de gestion des certificats et les librairies
97partagees qui fournit plusieurs protocoles et algorithmes de
98codage/decodage, incluant DES, RC4, RSA et SSL.
99
100%description -l pl.UTF-8
101Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
102v2/v3 oraz Transport Layer Security (TLS v1).
103
104%description -l pt_BR.UTF-8
105Uma biblioteca C que fornece vários algoritmos e protocolos
106criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
107compartilhadas e utilitários.
108
109%description -l ru.UTF-8
110Программа openssl для работы с сертификатами и разделяемые библиотеки,
111которые реализуют множетсво криптографических алгоритмов, включая DES,
112RC4, RSA и SSL.
113
114%description -l uk.UTF-8
115Програма openssl для роботи з сертифікатами та бібліотеки спільного
116користування, що реалізують велику кількість криптографічних
117алгоритмів, включаючи DES, RC4, RSA та SSL.
118
119%package engines
120Summary: OpenSSL optional crypto engines
121Summary(pl.UTF-8): Opcjonalne silniki kryptograficzne dla OpenSSL-a
122Group: Libraries
123Requires: %{name} = %{version}-%{release}
124
125%description engines
126With OpenSSL 0.9.6, a new component was added to support alternative
127cryptography implementations, most commonly for interfacing with
128external crypto devices (eg. accelerator cards). This component is
129called ENGINE.
130
131There are currently built-in ENGINE implementations for the following
132crypto devices:
133
134- CryptoSwift
135- Compaq Atalla
136- nCipher CHIL
137- Nuron
138- Broadcom uBSec
139
140In addition, dynamic binding to external ENGINE implementations is now
141provided by a special ENGINE called "dynamic".
142
143%description engines -l pl.UTF-8
144Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
145wspierać alternatywne implementacje kryptografii, przeważnie
146współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
147kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
148ENGINE).
149
150Obecnie istnieją wbudowane implementacje silników dla następujących
151urządzeń kryptograficznych:
152- CryptoSwift
153- Compaq Atalla
154- nCipher CHIL
155- Nuron
156- Broadcom uBSec
157
158Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
159implementacji silników poprzez specjalny silnik o nazwie "dynamic".
160
161%package tools
162Summary: OpenSSL command line tool and utilities
163Summary(pl.UTF-8): Zestaw narzędzi i skryptów
164Group: Applications/Communications
165Requires: %{name} = %{version}-%{release}
166Requires: which
167
168%description tools
169The OpenSSL Toolkit cmdline tool openssl and utility scripts.
170
171%description tools -l pl.UTF-8
172Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
173
174%package tools-perl
175Summary: OpenSSL utilities written in Perl
176Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
177Group: Applications/Communications
178Requires: %{name} = %{version}-%{release}
179
180%description tools-perl
181OpenSSL Toolkit tools written in Perl.
182
183%description tools-perl -l pl.UTF-8
184Narzędzia OpenSSL napisane w perlu.
185
186%package devel
187Summary: Development part of OpenSSL Toolkit libraries
188Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
189Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
190Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
191Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
192Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
193Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
194Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
195Group: Development/Libraries
196Requires: %{name} = %{version}-%{release}
197Obsoletes: libopenssl0-devel
198
199%description devel
200Development part of OpenSSL library.
201
202%description devel -l es.UTF-8
203Bibliotecas y archivos de inclusión para desarrollo OpenSSL
204
205%description devel -l pl.UTF-8
206Część biblioteki OpenSSL przeznaczona dla programistów.
207
208%description devel -l pt_BR.UTF-8
209Uma biblioteca C que fornece vários algoritmos e protocolos
210criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
211arquivos de inclusão para desenvolvimento.
212
213%description devel -l ru.UTF-8
214Программа openssl для работы с сертификатами и разделяемые библиотеки,
215которые реализуют множетсво криптографических алгоритмов, включая DES,
216RC4, 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
226Summary: Static OpenSSL libraries
227Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
228Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
229Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
230Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
231Group: Development/Libraries
232Requires: %{name}-devel = %{version}-%{release}
233
234%description static
235Static OpenSSL Toolkit libraries.
236
237%description static -l pl.UTF-8
238Statyczne wersje bibliotek z OpenSSL.
239
240%description static -l pt_BR.UTF-8
241Bibliotecas estáticas para desenvolvimento com openssl.
242
243%description static -l ru.UTF-8
244Программа openssl для работы с сертификатами и разделяемые библиотеки,
245которые реализуют множетсво криптографических алгоритмов, включая DES,
246RC4, 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
268sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
269
270%build
271touch Makefile.*
272
273%{__perl} util/perlpath.pl %{__perl}
274
275OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
276PERL="%{__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
344for 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 ../..
352done
353
354%install
355rm -rf $RPM_BUILD_ROOT
356install -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
366mv -f $RPM_BUILD_ROOT%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
367mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
368ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
369ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
370
371mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
372rm -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
377cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
378install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
379install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
380
381%clean
382rm -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
393if [ $1 -le 1 ]; then
394 exit 0
395fi
396if [ -d /var/lib/openssl/certs ] ; then
397 mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
398fi
399if [ -d /var/lib/openssl/private ] ; then
400 mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
401fi
402if [ -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 || :
408fi
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.026109 seconds and 4 git commands to generate.