]> git.pld-linux.org Git - packages/openssl.git/blame_incremental - openssl.spec
- fix for CVE-2007-3108
[packages/openssl.git] / openssl.spec
... / ...
CommitLineData
1# TODO:
2# - get rid of gcc_4_2 patch and header files crapolla
3
4# Conditional build:
5%bcond_without tests
6%bcond_with purify # Compile openssl with \-DPURIFY, useful when one wants to
7 # use valgrind debugger against openssl-linked programs
8#
9%include /usr/lib/rpm/macros.perl
10Summary: OpenSSL Toolkit libraries for the "Secure Sockets Layer" (SSL v2/v3)
11Summary(de.UTF-8): Secure Sockets Layer (SSL)-Kommunikationslibrary
12Summary(es.UTF-8): Biblioteca C que suministra algoritmos y protocolos criptográficos
13Summary(fr.UTF-8): Utilitaires de communication SSL (Secure Sockets Layer)
14Summary(pl.UTF-8): Biblioteki OpenSSL (SSL v2/v3)
15Summary(pt_BR.UTF-8): Uma biblioteca C que fornece vários algoritmos e protocolos criptográficos
16Summary(ru.UTF-8): Библиотеки и утилиты для соединений через Secure Sockets Layer
17Summary(uk.UTF-8): Бібліотеки та утиліти для з'єднань через Secure Sockets Layer
18Name: openssl
19Version: 0.9.8e
20Release: 5
21License: Apache-style License
22Group: Libraries
23Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
24# Source0-md5: 3a7ff24f6ea5cd711984722ad654b927
25Source1: %{name}-ca-bundle.crt
26Source2: %{name}.1.pl
27Source3: %{name}-ssl-certificate.sh
28Patch0: %{name}-alpha-ccc.patch
29Patch1: %{name}-optflags.patch
30Patch2: %{name}-globalCA.diff
31Patch3: %{name}-include.patch
32Patch4: %{name}-md5-sparcv9.patch
33Patch5: %{name}-libvar.patch
34Patch6: %{name}-gcc_4_2.patch
35Patch7: %{name}-CVE-2007-3108.patch
36URL: http://www.openssl.org/
37BuildRequires: bc
38BuildRequires: perl-devel >= 1:5.6.1
39BuildRequires: rpm-perlprov >= 4.1-13
40BuildRequires: rpmbuild(macros) >= 1.213
41BuildRequires: sed >= 4.0
42Obsoletes: SSLeay
43Obsoletes: SSLeay-devel
44Obsoletes: SSLeay-perl
45Obsoletes: libopenssl0
46BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
47
48%description
49The OpenSSL Project is a collaborative effort to develop a robust,
50commercial-grade, full-featured, and Open Source toolkit implementing
51the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
52v1) protocols with full-strength cryptography world-wide. The project
53is managed by a worldwide community of volunteers that use the
54Internet to communicate, plan, and develop the OpenSSL tookit and its
55related documentation.
56
57OpenSSL is based on the excellent SSLeay library developed by Eric A.
58Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
59Apache-style licence, which basically means that you are free to get
60and use it for commercial and non-commercial purposes subject to some
61simple license conditions.
62
63This package contains shared libraries only, install openssl-tools if
64you want to use openssl cmdline tool.
65
66%description -l de.UTF-8
67Openssl enthält das OpenSSL Zertifikatsmanagementtool und shared
68libraries, die verschiedene Verschlüsselungs- und
69Entschlüsselungsalgorithmen und -protokolle, wie DES, RC4, RSA und SSL
70zur Verfügung stellen.
71
72%description -l es.UTF-8
73Biblioteca C que suministra algoritmos y protocolos criptográficos.
74
75%description -l fr.UTF-8
76OpenSSL est un outiil de gestion des certificats et les librairies
77partagees qui fournit plusieurs protocoles et algorithmes de
78codage/decodage, incluant DES, RC4, RSA et SSL.
79
80%description -l pl.UTF-8
81Implementacja protokołów kryptograficznych Secure Socket Layer (SSL)
82v2/v3 oraz Transport Layer Security (TLS v1).
83
84%description -l pt_BR.UTF-8
85Uma biblioteca C que fornece vários algoritmos e protocolos
86criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas
87compartilhadas e utilitários.
88
89%description -l ru.UTF-8
90Программа openssl для работы с сертификатами и разделяемые библиотеки,
91которые реализуют множетсво криптографических алгоритмов, включая DES,
92RC4, RSA и SSL.
93
94%description -l uk.UTF-8
95Програма openssl для роботи з сертифікатами та бібліотеки спільного
96користування, що реалізують велику кількість криптографічних
97алгоритмів, включаючи DES, RC4, RSA та SSL.
98
99%package tools
100Summary: OpenSSL command line tool and utilities
101Summary(pl.UTF-8): Zestaw narzędzi i skryptów
102Group: Applications/Communications
103Requires: %{name} = %{version}-%{release}
104
105%description tools
106The OpenSSL Toolkit cmdline tool openssl and utility scripts.
107
108%description tools -l pl.UTF-8
109Zestaw narzędzi i skryptów wywoływanych z linii poleceń.
110
111%package tools-perl
112Summary: OpenSSL utilities written in Perl
113Summary(pl.UTF-8): Narzędzia OpenSSL napisane w perlu
114Group: Applications/Communications
115Requires: %{name} = %{version}-%{release}
116
117%description tools-perl
118OpenSSL Toolkit tools written in Perl.
119
120%description tools-perl -l pl.UTF-8
121Narzędzia OpenSSL napisane w perlu.
122
123%package devel
124Summary: Development part of OpenSSL Toolkit libraries
125Summary(de.UTF-8): Secure Sockets Layer Kommunikationslibrary: statische libraries+header
126Summary(es.UTF-8): Bibliotecas y archivos de inclusión para desarrollo OpenSSL
127Summary(fr.UTF-8): Librairies statiques, headers et utilitaires pour communication SSL
128Summary(pl.UTF-8): Część bibiloteki OpenSSL przeznaczona dla programistów
129Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento OpenSSL
130Summary(ru.UTF-8): Библиотеки, хедеры и утилиты для Secure Sockets Layer
131Summary(uk.UTF-8): Бібліотеки, хедери та утиліти для Secure Sockets Layer
132Group: Development/Libraries
133Requires: %{name} = %{version}-%{release}
134Obsoletes: libopenssl0-devel
135
136%description devel
137Development part of OpenSSL library.
138
139%description devel -l es.UTF-8
140Bibliotecas y archivos de inclusión para desarrollo OpenSSL
141
142%description devel -l pl.UTF-8
143Część biblioteki OpenSSL przeznaczona dla programistów.
144
145%description devel -l pt_BR.UTF-8
146Uma biblioteca C que fornece vários algoritmos e protocolos
147criptográficos, incluindo DES, RC4, RSA e SSL. Inclui bibliotecas e
148arquivos de inclusão para desenvolvimento.
149
150%description devel -l ru.UTF-8
151Программа openssl для работы с сертификатами и разделяемые библиотеки,
152которые реализуют множетсво криптографических алгоритмов, включая DES,
153RC4, RSA и SSL. Включает библиотеки и хедеры для разработки приложений
154с использованием SSL.
155
156%description devel -l uk.UTF-8
157Програма openssl для роботи з сертифікатами та бібліотеки спільного
158користування, що реалізують велику кількість криптографічних
159алгоритмів, включаючи DES, RC4, RSA та SSL. Містить бібліотеки та
160хедери для розробки програм з використанням SSL.
161
162%package static
163Summary: Static OpenSSL libraries
164Summary(pl.UTF-8): Statyczne wersje bibliotek z OpenSSL
165Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com openssl
166Summary(ru.UTF-8): Статические библиотеки разработчика для OpenSSL
167Summary(uk.UTF-8): Статичні бібліотеки програміста для OpenSSL
168Group: Development/Libraries
169Requires: %{name}-devel = %{version}-%{release}
170
171%description static
172Static OpenSSL Toolkit libraries.
173
174%description static -l pl.UTF-8
175Statyczne wersje bibliotek z OpenSSL.
176
177%description static -l pt_BR.UTF-8
178Bibliotecas estáticas para desenvolvimento com openssl.
179
180%description static -l ru.UTF-8
181Программа openssl для работы с сертификатами и разделяемые библиотеки,
182которые реализуют множетсво криптографических алгоритмов, включая DES,
183RC4, RSA и SSL. Включает статические библиотеки для разработки
184приложений с использованием OpenSSL.
185
186%description static -l uk.UTF-8
187Програма openssl для роботи з сертифікатами та бібліотеки спільного
188користування, що реалізують велику кількість криптографічних
189алгоритмів, включаючи DES, RC4, RSA та SSL. Містить статичні
190бібліотеки для розробки програм з використанням SSL.
191
192%prep
193%setup -q
194%patch0 -p1
195%patch1 -p1
196%patch2 -p1
197%patch3 -p1
198%patch4 -p1
199%patch5 -p1
200# XXX: gcc 4.2 hack
201cp crypto/asn1/asn1.h crypto/asn1/asn1.h.X
202cp crypto/ocsp/ocsp.h crypto/ocsp/ocsp.h.X
203cp crypto/pem/pem.h crypto/pem/pem.h.X
204%patch6 -p1
205%patch7 -p1
206
207%build
208%{__perl} -pi -e 's#%{_prefix}/local/bin/perl#%{__perl}#g' \
209 `grep -l -r "%{_prefix}/local/bin/perl" *`
210
211touch Makefile.*
212
213%{__perl} util/perlpath.pl %{__perl}
214
215OPTFLAGS="%{rpmcflags} %{?with_purify:-DPURIFY}"
216LDFLAGS="%{rpmldflags}"
217export OPTFLAGS LDFLAGS
218./Configure \
219 --openssldir=%{_var}/lib/%{name} \
220 --lib=%{_lib} \
221 shared threads \
222 enable-mdc2 enable-rc5 \
223%ifarch %{ix86}
224%ifarch i386
225 386 linux-elf
226# ^- allow running on 80386 (default code uses bswapl available on i486+)
227%else
228 linux-elf
229%endif
230%endif
231%ifarch alpha
232 linux-alpha+bwx-gcc
233%endif
234%ifarch %{x8664}
235 linux-x86_64
236%endif
237%ifarch ia64
238 linux-ia64
239%endif
240%ifarch ppc
241 linux-ppc
242%endif
243%ifarch ppc64
244 linux-ppc64
245%endif
246%ifarch sparc
247 linux-sparcv8
248%endif
249%ifarch sparcv9
250 linux-sparcv9
251%endif
252%ifarch sparc64
253 linux64-sparcv9
254%endif
255
256%{__make} -j1 all rehash %{?with_tests:tests} \
257 CC="%{__cc}" \
258 INSTALLTOP=%{_prefix}
259
260# Conv PODs to man pages. "openssl_" prefix is added to each manpage
261# to avoid potential conflicts with others packages.
262center="OpenSSL 0.9.7"
263rel="OpenSSL 0.9.7"
264
265cd doc/apps || exit 1
266%{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
267
268for pod in *.pod; do
269 if [ $pod != "openssl.pod" ]; then
270 mv -f $pod openssl_$pod;
271 pod=openssl_$pod;
272 fi
273
274 sec=1
275 if [ $pod = "openssl_config.pod" ]; then
276 sec=5
277 fi
278
279 manpage=`basename $pod .pod`.$sec;
280 pod2man --section="$sec" --release="$rel" --center="$center" \
281 $pod > $manpage;
282 echo "$manpage";
283done
284cd ..
285
286sec=3
287for dir in ssl crypto; do
288 cd $dir || exit 1;
289 if [ $dir = "ssl" ]; then
290 rel="OpenSSL SSL/TLS library"
291 elif [ $dir = "crypto" ]; then
292 rel="OpenSSL cryptographic library"
293 fi
294
295 %{__perl} -pi -e 's/(\W)((?<!openssl_)\w+)(\(\d\))/$1openssl_$2$3/g; s/openssl_openssl/openssl/g;' *.pod;
296
297 for pod in *.pod; do
298 sec=`[ "$pod" = "des_modes.pod" ] && echo 7 || echo 3`;
299 mv -f $pod openssl_$pod;
300 pod=openssl_$pod;
301 manpage=`basename $pod .pod`.$sec;
302 pod2man --section="$sec" --release="$rel" --center=" " $pod > $manpage;
303 echo "$manpage";
304 done
305 cd ..
306done
307
308#cd perl
309#%%{__perl} Makefile.PL \
310# INSTALLDIRS=vendor
311#%{__make}
312
313%install
314rm -rf $RPM_BUILD_ROOT
315install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_libdir}/%{name}} \
316 $RPM_BUILD_ROOT{%{_mandir}/{pl/man1,man{1,3,5,7}},%{_datadir}/ssl} \
317 $RPM_BUILD_ROOT%{_pkgconfigdir}
318
319%{__make} install \
320 CC="%{__cc}" \
321 INSTALLTOP=%{_prefix} \
322 INSTALL_PREFIX=$RPM_BUILD_ROOT \
323 MANDIR=%{_mandir}
324
325install %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/ssl/ca-bundle.crt
326install libcrypto.a libssl.a $RPM_BUILD_ROOT%{_libdir}
327install lib*.so.*.* $RPM_BUILD_ROOT%{_libdir}
328ln -sf libcrypto.so.*.* $RPM_BUILD_ROOT%{_libdir}/libcrypto.so
329ln -sf libssl.so.*.* $RPM_BUILD_ROOT%{_libdir}/libssl.so
330
331mv -f $RPM_BUILD_ROOT%{_var}/lib/%{name}/openssl.cnf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
332ln -s %{_sysconfdir}/%{name}/openssl.cnf \
333 $RPM_BUILD_ROOT%{_var}/lib/%{name}/%{name}.cnf
334
335mv -f $RPM_BUILD_ROOT%{_var}/lib/%{name}/misc/* $RPM_BUILD_ROOT%{_libdir}/%{name}
336rm -rf $RPM_BUILD_ROOT%{_var}/lib/%{name}/misc
337
338find $RPM_BUILD_ROOT%{_mandir} -type f | xargs rm -f
339install doc/apps/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
340install doc/apps/*.5 $RPM_BUILD_ROOT%{_mandir}/man5
341install doc/ssl/*.3 doc/crypto/*.3 $RPM_BUILD_ROOT%{_mandir}/man3
342install doc/crypto/*.7 $RPM_BUILD_ROOT%{_mandir}/man7
343install %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/pl/man1/openssl.1
344install %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/ssl-certificate
345
346rm $RPM_BUILD_ROOT%{_mandir}/man5/x509v3_config.5
347echo ".so openssl_x509v3_config.5" > $RPM_BUILD_ROOT%{_mandir}/man5/x509v3_config.5
348rm $RPM_BUILD_ROOT%{_mandir}/man5/config.5
349echo ".so openssl_config.5" > $RPM_BUILD_ROOT%{_mandir}/man5/config.5
350rm $RPM_BUILD_ROOT%{_mandir}/man7/Modes_of_DES.7
351echo ".so openssl_des_modes.7" > $RPM_BUILD_ROOT%{_mandir}/man7/Modes_of_DES.7
352
353# XXX: gcc 4.2 hack
354install crypto/asn1/asn1.h.X $RPM_BUILD_ROOT%{_includedir}/%{name}/asn1.h
355install crypto/ocsp/ocsp.h.X $RPM_BUILD_ROOT%{_includedir}/%{name}/ocsp.h
356install crypto/pem/pem.h.X $RPM_BUILD_ROOT%{_includedir}/%{name}/pem.h
357
358%clean
359rm -rf $RPM_BUILD_ROOT
360
361%post -p /sbin/ldconfig
362%postun -p /sbin/ldconfig
363
364%files
365%defattr(644,root,root,755)
366%doc CHANGES CHANGES.SSLeay LICENSE NEWS README doc/*.txt
367%doc doc/openssl_button.gif doc/openssl_button.html
368%attr(755,root,root) %{_libdir}/libcrypto.so.*.*.*
369%attr(755,root,root) %{_libdir}/libssl.so.*.*.*
370%dir %{_libdir}/engines
371%attr(755,root,root) %{_libdir}/engines/*.so
372%dir %{_var}/lib/%{name}
373%dir %{_var}/lib/%{name}/certs
374%dir %{_var}/lib/%{name}/private
375%dir %{_datadir}/ssl
376%config(noreplace) %verify(not md5 mtime size) %{_datadir}/ssl/ca-bundle.crt
377
378%files tools
379%defattr(644,root,root,755)
380%dir %{_sysconfdir}/%{name}
381
382%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/openssl.cnf
383%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/%{name}/openssl.cnf
384
385%attr(755,root,root) %{_bindir}/%{name}
386%attr(754,root,root) %{_bindir}/ssl-certificate
387
388%dir %{_libdir}/%{name}
389%attr(755,root,root) %{_libdir}/%{name}/CA.sh
390%attr(755,root,root) %{_libdir}/%{name}/c_hash
391%attr(755,root,root) %{_libdir}/%{name}/c_info
392%attr(755,root,root) %{_libdir}/%{name}/c_issuer
393%attr(755,root,root) %{_libdir}/%{name}/c_name
394
395%{_mandir}/man1/openssl.1*
396%{_mandir}/man1/openssl_asn1parse.1*
397%{_mandir}/man1/openssl_ca.1*
398%{_mandir}/man1/openssl_ciphers.1*
399%{_mandir}/man1/openssl_crl.1*
400%{_mandir}/man1/openssl_crl2pkcs7.1*
401%{_mandir}/man1/openssl_dgst.1*
402%{_mandir}/man1/openssl_dhparam.1*
403%{_mandir}/man1/openssl_dsa.1*
404%{_mandir}/man1/openssl_dsaparam.1*
405%{_mandir}/man1/openssl_ec.1*
406%{_mandir}/man1/openssl_ecparam.1*
407%{_mandir}/man1/openssl_enc.1*
408%{_mandir}/man1/openssl_errstr.1*
409%{_mandir}/man1/openssl_gendsa.1*
410%{_mandir}/man1/openssl_genrsa.1*
411%{_mandir}/man1/openssl_nseq.1*
412%{_mandir}/man1/openssl_ocsp.1*
413%{_mandir}/man1/openssl_passwd.1*
414%{_mandir}/man1/openssl_pkcs12.1*
415%{_mandir}/man1/openssl_pkcs7.1*
416%{_mandir}/man1/openssl_pkcs8.1*
417%{_mandir}/man1/openssl_rand.1*
418%{_mandir}/man1/openssl_req.1*
419%{_mandir}/man1/openssl_rsa.1*
420%{_mandir}/man1/openssl_rsautl.1*
421%{_mandir}/man1/openssl_s_client.1*
422%{_mandir}/man1/openssl_s_server.1*
423%{_mandir}/man1/openssl_s_time.1*
424%{_mandir}/man1/openssl_sess_id.1*
425%{_mandir}/man1/openssl_smime.1*
426%{_mandir}/man1/openssl_speed.1*
427%{_mandir}/man1/openssl_spkac.1*
428%{_mandir}/man1/openssl_verify.1*
429%{_mandir}/man1/openssl_version.1*
430%{_mandir}/man1/openssl_x509.1*
431%{_mandir}/man1/openssl_x509v3_config.1*
432%{_mandir}/man5/*.5*
433%lang(pl) %{_mandir}/pl/man1/openssl.1*
434
435%files tools-perl
436%defattr(644,root,root,755)
437%attr(755,root,root) %{_bindir}/c_rehash
438%attr(755,root,root) %{_libdir}/%{name}/CA.pl
439%{_mandir}/man1/openssl_CA.pl.1*
440
441%files devel
442%defattr(644,root,root,755)
443%attr(755,root,root) %{_libdir}/libcrypto.so
444%attr(755,root,root) %{_libdir}/libssl.so
445%{_includedir}/%{name}
446%{_pkgconfigdir}/libcrypto.pc
447%{_pkgconfigdir}/libssl.pc
448%{_pkgconfigdir}/openssl.pc
449%{_mandir}/man3/openssl*.3*
450%{_mandir}/man7/*.7*
451
452%files static
453%defattr(644,root,root,755)
454%{_libdir}/lib*.a
This page took 0.042946 seconds and 4 git commands to generate.