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