]> git.pld-linux.org Git - packages/openssl.git/blame_incremental - openssl.spec
up to 1.0.1l
[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
22Version: 1.0.1l
23Release: 1
24License: Apache-like
25Group: Libraries
26Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
27# Source0-md5: cdb22925fc9bc97ccbf1e007661f2aa6
28Source2: %{name}.1.pl
29Source3: %{name}-ssl-certificate.sh
30Source4: %{name}-c_rehash.sh
31Patch0: %{name}-alpha-ccc.patch
32Patch1: %{name}-optflags.patch
33Patch2: %{name}-globalCA.diff
34Patch3: %{name}-include.patch
35Patch4: %{name}-man-namespace.patch
36Patch5: %{name}-asflag.patch
37Patch6: %{name}-ca-certificates.patch
38Patch7: %{name}-ldflags.patch
39Patch8: %{name}-find.patch
40Patch9: gcc-E-asm.patch
41Patch10: default_bits.patch
42Patch11: pic.patch
43Patch12: stddef.patch
44Patch13: %{name}_fix_for_x32.patch
45URL: http://www.openssl.org/
46BuildRequires: bc
47BuildRequires: perl-devel >= 1:5.6.1
48BuildRequires: rpm-perlprov >= 4.1-13
49BuildRequires: rpmbuild(macros) >= 1.213
50BuildRequires: sed >= 4.0
51Requires: ca-certificates >= 20080809-4
52Requires: rpm-whiteout >= 1.7
53Obsoletes: SSLeay
54Obsoletes: SSLeay-devel
55Obsoletes: SSLeay-perl
56Obsoletes: libopenssl0
57%if "%{pld_release}" != "ac"
58Conflicts: neon < 0.29.6-8
59Conflicts: openssh-clients < 2:6.2p2-3
60Conflicts: openssh-server < 2:6.2p2-3
61%endif
62BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
63
64%description
65The OpenSSL Project is a collaborative effort to develop a robust,
66commercial-grade, full-featured, and Open Source toolkit implementing
67the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
68v1) protocols with full-strength cryptography world-wide. The project
69is managed by a worldwide community of volunteers that use the
70Internet to communicate, plan, and develop the OpenSSL tookit and its
71related documentation.
72
73OpenSSL is based on the excellent SSLeay library developed by Eric A.
74Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
75Apache-style licence, which basically means that you are free to get
76and use it for commercial and non-commercial purposes subject to some
77simple license conditions.
78
79This package contains shared libraries only, install openssl-tools if
80you want to use openssl cmdline tool.
81
82%description -l de.UTF-8
83Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
84libraries, die verschiedene Verschlüsselungs- und
85Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
86zur Verfügung stellen.
87
88%description -l es.UTF-8
89Biblioteca C que suministra algoritmos y protocolos criptográficos.
90
91%description -l fr.UTF-8
92OpenSSL est un outiil de gestion des certificats et les librairies
93partagees qui fournit plusieurs protocoles et algorithmes de
94codage/decodage, incluant DES, RC4, RSA et SSL.
95
96%description -l pl.UTF-8
97Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
98v2/v3 oraz Transport Layer Security (TLS v1).
99
100%description -l pt_BR.UTF-8
101Uma biblioteca C que fornece vários algoritmos e protocolos
102criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
103compartilhadas e utilitários.
104
105%description -l ru.UTF-8
106Программа openssl для работы с сертификатами и разделяемые библиотеки,
107которые реализуют множетсво криптографических алгоритмов, включая DES,
108RC4, RSA и SSL.
109
110%description -l uk.UTF-8
111Програма openssl для роботи з сертифікатами та бібліотеки спільного
112користування, що реалізують велику кількість криптографічних
113алгоритмів, включаючи DES, RC4, RSA та SSL.
114
115%package engines
116Summary: OpenSSL optional crypto engines
117Summary(pl.UTF-8): Opcjonalne silniki kryptograficzne dla OpenSSL-a
118Group: Libraries
119Requires: %{name} = %{version}-%{release}
120
121%description engines
122With OpenSSL 0.9.6, a new component was added to support alternative
123cryptography implementations, most commonly for interfacing with
124external crypto devices (eg. accelerator cards). This component is
125called ENGINE.
126
127There are currently built-in ENGINE implementations for the following
128crypto devices:
129
130- CryptoSwift
131- Compaq Atalla
132- nCipher CHIL
133- Nuron
134- Broadcom uBSec
135
136In addition, dynamic binding to external ENGINE implementations is now
137provided by a special ENGINE called "dynamic".
138
139%description engines -l pl.UTF-8
140Począwszy od OpenSSL-a 0.9.6 został dodany nowy komponent, mający
141wspierać alternatywne implementacje kryptografii, przeważnie
142współpracujące z zewnętrznymi urządzeniami kryptograficznymi (np.
143kartami akceleratorów). Komponent ten jest nazywany SILNIKIEM (ang.
144ENGINE).
145
146Obecnie istnieją wbudowane implementacje silników dla następujących
147urządzeń kryptograficznych:
148- CryptoSwift
149- Compaq Atalla
150- nCipher CHIL
151- Nuron
152- Broadcom uBSec
153
154Ponadto zapewnione jest dynamiczne wiązanie dla zewnętrznych
155implementacji silników poprzez specjalny silnik o nazwie "dynamic".
156
157%package tools
158Summary: OpenSSL command line tool and utilities
159Summary(pl.UTF-8): Zestaw narzędzi i skryptów
160Group: Applications/Communications
161Requires: %{name} = %{version}-%{release}
162Requires: which
163
164%description tools
165The OpenSSL Toolkit cmdline tool openssl and utility scripts.
166
167%description tools -l pl.UTF-8
168Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
169
170%package tools-perl
171Summary: OpenSSL utilities written in Perl
172Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
173Group: Applications/Communications
174Requires: %{name} = %{version}-%{release}
175
176%description tools-perl
177OpenSSL Toolkit tools written in Perl.
178
179%description tools-perl -l pl.UTF-8
180Narzędzia OpenSSL napisane w perlu.
181
182%package devel
183Summary: Development part of OpenSSL Toolkit libraries
184Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
185Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
186Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
187Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
188Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
189Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
190Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
191Group: Development/Libraries
192Requires: %{name} = %{version}-%{release}
193Obsoletes: libopenssl0-devel
194
195%description devel
196Development part of OpenSSL library.
197
198%description devel -l es.UTF-8
199Bibliotecas y archivos de inclusión para desarrollo OpenSSL
200
201%description devel -l pl.UTF-8
202Część biblioteki OpenSSL przeznaczona dla programistów.
203
204%description devel -l pt_BR.UTF-8
205Uma biblioteca C que fornece vários algoritmos e protocolos
206criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
207arquivos de inclusão para desenvolvimento.
208
209%description devel -l ru.UTF-8
210Программа openssl для работы с сертификатами и разделяемые библиотеки,
211которые реализуют множетсво криптографических алгоритмов, включая DES,
212RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
213с использованием SSL.
214
215%description devel -l uk.UTF-8
216Програма openssl для роботи з сертифікатами та бібліотеки спільного
217користування, що реалізують велику кількість криптографічних
218алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
219хедери для розробки програм з використанням SSL.
220
221%package static
222Summary: Static OpenSSL libraries
223Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
224Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
225Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
226Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
227Group: Development/Libraries
228Requires: %{name}-devel = %{version}-%{release}
229
230%description static
231Static OpenSSL Toolkit libraries.
232
233%description static -l pl.UTF-8
234Statyczne wersje bibliotek z OpenSSL.
235
236%description static -l pt_BR.UTF-8
237Bibliotecas estáticas para desenvolvimento com openssl.
238
239%description static -l ru.UTF-8
240Программа openssl для работы с сертификатами и разделяемые библиотеки,
241которые реализуют множетсво криптографических алгоритмов, включая DES,
242RC4, RSA и SSL. Включает статические библиотеки для разработки
243приложений с использованием OpenSSL.
244
245%description static -l uk.UTF-8
246Програма openssl для роботи з сертифікатами та бібліотеки спільного
247користування, що реалізують велику кількість криптографічних
248алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
249бібліотеки для розробки програм з використанням SSL.
250
251%prep
252%setup -q
253%patch0 -p1
254%patch1 -p1
255%patch2 -p1
256%patch3 -p1
257%patch4 -p1
258%patch5 -p1
259%patch6 -p1
260%patch7 -p1
261%patch8 -p1
262%patch9 -p1
263%patch10 -p1
264%patch11 -p1
265%patch12 -p1
266%patch13 -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.029893 seconds and 4 git commands to generate.