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