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