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