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