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