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