]> git.pld-linux.org Git - packages/openssl.git/blame_incremental - openssl.spec
Merge branch 'private-perms'
[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.2f
28Release: 1
29License: Apache-like
30Group: Libraries
31%if %{without snap}
32Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
33# Source0-md5: b3bf73f507172be9292ea2a8c28b659d
34%else
35Source1: https://github.com/openssl/openssl/archive/OpenSSL_1_0_2-stable.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%patch10 -p1
278
279sed -i -e 's|\$prefix/\$libdir/engines|/%{_lib}/engines|g' Configure
280
281%build
282touch Makefile.*
283
284%{__perl} util/perlpath.pl %{__perl}
285
286OPTFLAGS="%{rpmcflags} %{rpmcppflags} %{?with_purify:-DPURIFY}" \
287PERL="%{__perl}" \
288%{__perl} ./Configure \
289 --openssldir=%{_sysconfdir}/%{name} \
290 --libdir=%{_lib} \
291 shared \
292 threads \
293 %{!?with_sslv2:no-ssl2} \
294 %{!?with_sslv3:no-ssl3} \
295 %{!?with_zlib:no-}zlib \
296 enable-camelia \
297 enable-cms \
298 enable-idea \
299 enable-md2 \
300 enable-mdc2 \
301 enable-rc5 \
302 enable-rfc3779 \
303 enable-seed \
304 enable-tlsext \
305%ifarch %{x8664}
306 enable-ec_nistp_64_gcc_128 \
307%endif
308%ifarch %{ix86}
309%ifarch i386
310 386 linux-elf
311# ^- allow running on 80386 (default code uses bswapl available on i486+)
312%else
313 linux-elf
314%endif
315%endif
316%ifarch alpha
317 linux-alpha+bwx-gcc
318%endif
319%ifarch %{x8664}
320 linux-x86_64
321%endif
322%ifarch x32
323 linux-x32
324%endif
325%ifarch ia64
326 linux-ia64
327%endif
328%ifarch ppc
329 linux-ppc
330%endif
331%ifarch ppc64
332 linux-ppc64
333%endif
334%ifarch sparc
335 linux-sparcv8
336%endif
337%ifarch sparcv9
338 linux-sparcv9
339%endif
340%ifarch sparc64
341 linux64-sparcv9
342%endif
343%ifarch armv4 armv5 armv5t armv5te armv5tel
344 linux-armv4
345%endif
346
347v=$(awk -F= '/^VERSION/{print $2}' Makefile)
348test "$v" = %{version}%{?with_snap:-dev}
349
350%{__make} -j1 all rehash %{?with_tests:tests} \
351 CC="%{__cc}" \
352 ASFLAG='$(CFLAG) -Wa,--noexecstack' \
353 INSTALLTOP=%{_prefix}
354
355# Rename POD sources of man pages. "openssl_" prefix is added to each
356# manpage to avoid potential conflicts with other packages.
357
358for dir in doc/{apps,ssl,crypto}; do
359 cd $dir || exit 1;
360 %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
361
362 for pod in !(openssl*).pod; do
363 mv -f $pod openssl_$pod;
364 done
365 cd ../..
366done
367
368%install
369rm -rf $RPM_BUILD_ROOT
370install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
371 $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
372 $RPM_BUILD_ROOT/%{_lib}/engines \
373 $RPM_BUILD_ROOT%{_pkgconfigdir}
374
375%{__make} -j1 install \
376 INSTALLTOP=%{_prefix} \
377 INSTALL_PREFIX=$RPM_BUILD_ROOT \
378 MANDIR=%{_mandir}
379
380mv -f $RPM_BUILD_ROOT%{_libdir}/engines/* $RPM_BUILD_ROOT/%{_lib}/engines
381mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.* $RPM_BUILD_ROOT/%{_lib}
382ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcrypto.*.*) $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
383ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libssl.*.*) $RPM_BUILD_ROOT%{_libdir}/libssl.so
384
385mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
386rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/misc
387
388# not installed as individual utilities (see openssl dgst instead)
389%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{dss1,md2,md4,md5,mdc2,ripemd160,sha,sha1,sha224,sha256,sha384,sha512}.1
390
391cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
392install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
393install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/c_rehash.sh
394
395%clean
396rm -rf $RPM_BUILD_ROOT
397
398%post -p /sbin/ldconfig
399%postun -p /sbin/ldconfig
400
401%triggerpostun -- %{name}-tools < 1.0.0-5
402# the hashing format has changed in 1.0.0
403[ ! -x %{_sbindir}/update-ca-certificates ] || %{_sbindir}/update-ca-certificates --fresh || :
404
405%triggerpostun -- %{name} < 0.9.8i-2
406# don't do anything on --downgrade
407if [ $1 -le 1 ]; then
408 exit 0
409fi
410if [ -d /var/lib/openssl/certs ] ; then
411 mv /var/lib/openssl/certs/* %{_sysconfdir}/%{name}/certs 2>/dev/null || :
412fi
413if [ -d /var/lib/openssl/private ] ; then
414 mv /var/lib/openssl/private/* %{_sysconfdir}/%{name}/private 2>/dev/null || :
415fi
416if [ -d /var/lib/openssl ] ; then
417 for f in /var/lib/openssl/* ; do
418 [ -f "$f" ] && mv "$f" %{_sysconfdir}/%{name} 2>/dev/null || :
419 done
420 rmdir /var/lib/openssl/* 2>/dev/null || :
421 rmdir /var/lib/openssl 2>/dev/null || :
422fi
423
424%files
425%defattr(644,root,root,755)
426%doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
427%attr(755,root,root) /%{_lib}/libcrypto.so.*.*.*
428%attr(755,root,root) /%{_lib}/libssl.so.*.*.*
429%dir %{_sysconfdir}/%{name}
430%dir %{_sysconfdir}/%{name}/certs
431%dir %attr(700,root,root) %{_sysconfdir}/%{name}/private
432%dir %{_datadir}/ssl
433
434%files engines
435%defattr(644,root,root,755)
436%dir /%{_lib}/engines
437%attr(755,root,root) /%{_lib}/engines/*.so
438
439%files tools
440%defattr(644,root,root,755)
441%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
442%attr(755,root,root) %{_bindir}/c_rehash.sh
443%attr(755,root,root) %{_bindir}/openssl
444%attr(754,root,root) %{_bindir}/ssl-certificate
445
446%dir %{_libdir}/%{name}
447%attr(755,root,root) %{_libdir}/%{name}/CA.sh
448%attr(755,root,root) %{_libdir}/%{name}/c_hash
449%attr(755,root,root) %{_libdir}/%{name}/c_info
450%attr(755,root,root) %{_libdir}/%{name}/c_issuer
451%attr(755,root,root) %{_libdir}/%{name}/c_name
452
453%{_mandir}/man1/openssl.1*
454%{_mandir}/man1/openssl_asn1parse.1*
455%{_mandir}/man1/openssl_ca.1*
456%{_mandir}/man1/openssl_ciphers.1*
457%{_mandir}/man1/openssl_cms.1*
458%{_mandir}/man1/openssl_crl.1*
459%{_mandir}/man1/openssl_crl2pkcs7.1*
460%{_mandir}/man1/openssl_dgst.1*
461%{_mandir}/man1/openssl_dhparam.1*
462%{_mandir}/man1/openssl_dsa.1*
463%{_mandir}/man1/openssl_dsaparam.1*
464%{_mandir}/man1/openssl_ec.1*
465%{_mandir}/man1/openssl_ecparam.1*
466%{_mandir}/man1/openssl_enc.1*
467%{_mandir}/man1/openssl_errstr.1*
468%{_mandir}/man1/openssl_gendsa.1*
469%{_mandir}/man1/openssl_genpkey.1*
470%{_mandir}/man1/openssl_genrsa.1*
471%{_mandir}/man1/openssl_nseq.1*
472%{_mandir}/man1/openssl_ocsp.1*
473%{_mandir}/man1/openssl_passwd.1*
474%{_mandir}/man1/openssl_pkcs12.1*
475%{_mandir}/man1/openssl_pkcs7.1*
476%{_mandir}/man1/openssl_pkcs8.1*
477%{_mandir}/man1/openssl_pkey.1*
478%{_mandir}/man1/openssl_pkeyparam.1*
479%{_mandir}/man1/openssl_pkeyutl.1*
480%{_mandir}/man1/openssl_rand.1*
481%{_mandir}/man1/openssl_req.1*
482%{_mandir}/man1/openssl_rsa.1*
483%{_mandir}/man1/openssl_rsautl.1*
484%{_mandir}/man1/openssl_s_client.1*
485%{_mandir}/man1/openssl_s_server.1*
486%{_mandir}/man1/openssl_s_time.1*
487%{_mandir}/man1/openssl_sess_id.1*
488%{_mandir}/man1/openssl_smime.1*
489%{_mandir}/man1/openssl_speed.1*
490%{_mandir}/man1/openssl_spkac.1*
491%{_mandir}/man1/openssl_ts.1*
492%{_mandir}/man1/openssl_tsget.1*
493%{_mandir}/man1/openssl_verify.1*
494%{_mandir}/man1/openssl_version.1*
495%{_mandir}/man1/openssl_x509.1*
496%{_mandir}/man5/openssl_config.5*
497%{_mandir}/man5/openssl_x509v3_config.5*
498%lang(pl) %{_mandir}/pl/man1/openssl.1*
499
500%files tools-perl
501%defattr(644,root,root,755)
502%attr(755,root,root) %{_bindir}/c_rehash
503%attr(755,root,root) %{_libdir}/%{name}/CA.pl
504%attr(755,root,root) %{_libdir}/%{name}/tsget
505%{_mandir}/man1/openssl_CA.pl.1*
506%{_mandir}/man1/openssl_c_rehash.1*
507
508%files devel
509%defattr(644,root,root,755)
510%attr(755,root,root) %{_libdir}/libcrypto.so
511%attr(755,root,root) %{_libdir}/libssl.so
512%{_includedir}/%{name}
513%{_pkgconfigdir}/libcrypto.pc
514%{_pkgconfigdir}/libssl.pc
515%{_pkgconfigdir}/openssl.pc
516%{_mandir}/man3/openssl*.3*
517%{_mandir}/man7/openssl_des_modes.7*
518
519%files static
520%defattr(644,root,root,755)
521%{_libdir}/libcrypto.a
522%{_libdir}/libssl.a
This page took 0.328054 seconds and 4 git commands to generate.