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