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