summaryrefslogtreecommitdiff
path: root/curl.spec
blob: ca17b2c4d0f3d2474fc35a6037202d0af7613969 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
# TODO: ngtpc2/nghttp3 or quiche or msh3 for HTTP3?
#
# Conditional build:
%bcond_without	ssh		# SSH support
%bcond_without	ssl		# SSL support
%bcond_with	gnutls		# GnuTLS instead of OpenSSL
%bcond_without	gsasl		# SCRAM support with gsasl
%bcond_without	kerberos5	# Heimdal Kerberos 5 support
%bcond_without	ldap		# LDAP support
%bcond_without	http2		# HTTP/2.0 support (nghttp2 based)
%bcond_with	http3		# HTTP/3.0 support (nghttp3/ngtcp2 based)
%if "%{pld_release}" != "ac"
%bcond_without	ares		# c-ares (asynchronous DNS operations) library support
%bcond_without	rtmp		# Real Time Media Protocol support
%else
%bcond_with	ares		# c-ares (asynchronous DNS operations) library support
%bcond_with	rtmp		# Real Time Media Protocol support
%endif

Summary:	A utility for getting files from remote servers (FTP, HTTP, and others)
Summary(es.UTF-8):	Un cliente para bajar archivos de servidores (FTP, HTTP, y otros)
Summary(pl.UTF-8):	Narzędzie do ściągania plików z serwerów (FTP, HTTP i innych)
Summary(pt_BR.UTF-8):	Busca URL (suporta FTP, TELNET, LDAP, GOPHER, DICT, HTTP e HTTPS)
Summary(ru.UTF-8):	Утилита для получения файлов с серверов FTP, HTTP и других
Summary(uk.UTF-8):	Утиліта для отримання файлів з серверів FTP, HTTP та інших
Name:		curl
Version:	8.2.1
Release:	2
License:	MIT-like
Group:		Applications/Networking
Source0:	https://curl.se/download/%{name}-%{version}.tar.xz
# Source0-md5:	556576a795bdd2c7d10de6886480065f
Patch0:		%{name}-ac.patch
Patch1:		%{name}-krb5flags.patch
URL:		https://curl.se/
BuildRequires:	autoconf >= 2.57
BuildRequires:	automake
%{?with_ares:BuildRequires:	c-ares-devel >= 1.17.0}
%{?with_gsasl:BuildRequires:	gsasl-devel}
%{?with_kerberos5:BuildRequires:	heimdal-devel}
BuildRequires:	libbrotli-devel >= 1.0.0
BuildRequires:	libidn2-devel
BuildRequires:	libpsl-devel
%{?with_rtmp:BuildRequires:	librtmp-devel}
%{?with_ssh:BuildRequires:	libssh2-devel >= 1.11.0}
BuildRequires:	libtool
BuildRequires:	nettle-devel
%{?with_http2:BuildRequires:	nghttp2-devel >= 1.15.0}
%{?with_http3:BuildRequires:	nghttp3-devel}
# with gnutls or openssl crypto, conforming to chosen curl crypto library
%{?with_http3:BuildRequires:	ngtcp2-devel}
%{?with_ldap:BuildRequires:	openldap-devel}
BuildRequires:	pkgconfig
BuildRequires:	rpm >= 4.4.9-56
BuildRequires:	rpm-build >= 4.6
BuildRequires:	rpmbuild(macros) >= 1.527
%if %{with ssl}
%if %{with gnutls}
BuildRequires:	gnutls-devel >= 3.1.10
%else
BuildRequires:	openssl-devel >= 1.0.1
%endif
%endif
BuildRequires:	tar >= 1:1.22
BuildRequires:	xz
BuildRequires:	zlib-devel
BuildRequires:	zstd-devel
Requires:	%{name}-libs = %{version}-%{release}
Obsoletes:	libcurl2 < 7.12
BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)

%description
cURL is a tool for getting files with URL syntax, supporting FTP,
HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. cURL supports HTTP
POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies,
cookies, user+password authentication and a busload of other useful
tricks. The main use for curl is when you want to get or send files
automatically to or from a site using one of the supported protocols.

cURL is a tool for getting files from FTP, HTTP, Gopher, Telnet, and
Dict servers, using any of the supported protocols. cURL is designed
to work without user interaction or any kind of interactivity. cURL
offers many useful capabilities, like proxy support, user
authentication, FTP upload, HTTP post, and file transfer resume.

%description -l pl.UTF-8
cURL jest narzędziem do ściągania plików o składni URL. Obsługuje FTP,
HTTP, HTTPS, GOPHER, TELNET, DICT, FILE i LDAP. cURL obsługuje również
HTTP POST, HTTP PUT, załadowywanie (uploading) FTP, załadowywanie HTTP
oparte na formularzu, serwery proksy, ciasteczka, autoryzacja
użytkownik/hasło oraz wiele innych użytecznych sztuczek. Curla używa
się głównie wtedy, kiedy chce się automatycznie ściągnąć lub wysłać
pliki z/na serwer używając jednego z dostępnych protokołów.
%{?with_ssl:Ten pakiet obsługuje także SSL.}

%description -l pt_BR.UTF-8
Curl é um cliente para baixar/enviar arquivos de/para servidores
usando um dos protocolos suportados. É projetado para funcionar sem a
interação do usuário.

Curl trabalha com proxy, autenticação, FTP put, HTTP post, e pode
continuar transferências interrompidas, e mais...

%description -l ru.UTF-8
curl - это клиент с множеством поддерживаемых протоколов для получения
файлов с серверов, спроектированный для работы как в неинтерактивном
режиме, так и с возможностью диалога с пользователем.

curl поддерживает много полезных возможностей, среди которых поддержка
прокси, авторизация пользователя, закачивание по FTP, поддержка HTTP
POST, восстановление прерванной пересылки и многое другое.

curl - це кл╕╓нт з багатьма п╕дтримуваними протоколами для отримання
файл╕в з сервер╕в, спроектований для роботи як в не╕нтерактивному
режим╕, так ╕ з можлив╕стю д╕алогу з користувачем.

curl п╕дтриму╓ багато корисних можливостей, серед яких п╕дтримка
прокс╕, авторизац╕я користувача, в╕двантаження по FTP, HTTP POST,
в╕дновлення перервано╖ пересилки та багато ╕ншого.

%package libs
Summary:	curl library
Summary(pl.UTF-8):	Biblioteka curl
Group:		Libraries
%{?with_ares:Requires:	c-ares >= 1.17.0}
%{?with_gnutls:Requires:	gnutls-libs >= 3.1.10}
%{?with_ssh:Requires:	libssh2%{?_isa} >= 1.11.0}
%{?with_http2:Requires:	nghttp2-libs >= 1.15.0}
%if %{with ssl} && %{without gnutls}
Requires:	libbrotli >= 1.0.0
Requires:	openssl >= 1.0.1
%endif
Suggests:	ca-certificates
Conflicts:	ca-certificates < 20080809-4

%description libs
curl library.

%description libs -l pl.UTF-8
Biblioteka curl.

%package devel
Summary:	Header files and development documentation for curl library
Summary(pl.UTF-8):	Pliki nagłówkowe i dokumentacja do biblioteki curl
Summary(pt_BR.UTF-8):	Arquivos de cabeçalho e bibliotecas de desenvolvimento
Summary(ru.UTF-8):	Файлы для разработки с использованием библиотеки curl
Summary(uk.UTF-8):	Файли для розробки з використанням бібліотеки curl
Group:		Development/Libraries
Requires:	%{name}-libs%{?_isa} = %{version}-%{release}
%{?with_ares:Requires:	c-ares-devel}
%{?with_gsasl:Requires:	gsasl-devel}
%{?with_kerberos5:Requires:	heimdal-devel}
Requires:	libbrotli-devel >= 1.0.0
Requires:	libidn2-devel
Requires:	libpsl-devel
%{?with_rtmp:Requires:	librtmp-devel}
%{?with_ssh:Requires:	libssh2-devel%{?_isa} >= 1.11.0}
%{?with_http2:Requires:	nghttp2-devel >= 1.15.0}
%{?with_ldap:Requires:	openldap-devel}
%if %{with ssl}
%if %{with gnutls}
Requires:	gnutls-devel >= 3.1.10
%else
Requires:	openssl-devel >= 0.9.7c
%endif
%endif
Requires:	zlib-devel
Requires:	zstd-devel
Obsoletes:	libcurl2-devel < 7.12

%description devel
Header files and development documentation for curl library.

%description devel -l pl.UTF-8
Pliki nagłówkowe i dokumentacja do biblioteki curl.

%description devel -l pt_BR.UTF-8
Arquivos de cabeçalho e bibliotecas de desenvolvimento.

%description devel -l ru.UTF-8
Этот пакет содержит файлы, необходимые для разработки программ с
использованием библиотеки curl.

%description devel -l uk.UTF-8
Цей пакет містить файли, необхідні для розробки програм з
використанням бібліотеки curl.

%package static
Summary:	Static version of curl library
Summary(pl.UTF-8):	Statyczna wersja biblioteki curl
Summary(pt_BR.UTF-8):	Bibliotecas estáticas para desenvolvimento com o curl
Summary(ru.UTF-8):	Статические библиотеки для разработки с использованием библиотеки curl
Summary(uk.UTF-8):	Статичні бібліотеки для розробки з використанням бібліотеки curl
Group:		Development/Libraries
Requires:	%{name}-devel = %{version}-%{release}

%description static
Static version of curl library.

%description static -l pl.UTF-8
Statyczna wersja biblioteki curl.

%description static -l pt_BR.UTF-8
Bibliotecas estáticas para desenvolvimento com o curl.

%description static -l ru.UTF-8
Этот пакет содержит статическую библиотеку для разработки программ с
использованием библиотеки curl.

%description static -l uk.UTF-8
Цей пакет містить статичну бібліотеку для розробки програм з
використанням бібліотеки curl.

%package -n fish-completion-%{name}
Summary:	Fish completion for curl command
Summary(pl.UTF-8):	Dopełnianie parametrów w fish dla polecenia curl
Group:		Applications/Shells
Requires:	%{name} = %{version}-%{release}
Requires:	fish
BuildArch:	noarch

%description -n fish-completion-%{name}
Fish completion for curl command.

%description -n fish-completion-%{name} -l pl.UTF-8
Dopełnianie parametrów w fish dla polecenia curl.

%package -n zsh-completion-curl
Summary:	ZSH completion for curl command
Summary(pl.UTF-8):	Dopełnianianie parametrów w ZSH dla polecenia curl
Group:		Applications/Shells
Requires:	%{name} = %{version}-%{release}
Requires:	zsh
BuildArch:	noarch

%description -n zsh-completion-curl
ZSH completion for curl command.

%description -n zsh-completion-curl -l pl.UTF-8
Dopełnianianie parametrów w ZSH dla polecenia curl.

%prep
%setup -q
%patch0 -p1
%patch1 -p1

%{__rm} m4/lt*.m4 m4/libtool.m4

%build
%{__libtoolize}
%{__aclocal} -I m4
%{__autoconf}
%{__autoheader}
%{__automake}
%configure \
	ac_cv_header_gss_h=no \
	%{__enable_disable ares} \
	%{__with_without gsasl libgsasl} \
	--enable-headers-api \
	--enable-ipv6 \
	%{__enable_disable ldap} \
	%{__enable_disable ldap ldaps} \
	--disable-silent-rules \
	--enable-websockets \
%if %{with ssl}
	--with-ca-bundle=/etc/certs/ca-certificates.crt \
%if %{with gnutls}
	--with-gnutls --without-openssl \
%else
	--with-openssl=%{_prefix} \
%endif
%else
	--without-ssl \
%endif
	--with-fish-functions-dir=%{fish_compdir} \
	%{__with_without kerberos5 gssapi %{_prefix}} \
	%{__with_without rtmp librtmp} \
	%{__with_without http2 nghttp2} \
	%{__with_without http3 nghttp3} \
	%{__with_without http3 ngtcp2} \
	%{__with_without ssh libssh2}

%{__make}

%install
rm -rf $RPM_BUILD_ROOT

%{__make} install \
	DESTDIR=$RPM_BUILD_ROOT

%{__make} -C scripts install \
	DESTDIR=$RPM_BUILD_ROOT

# obsoleted by pkg-config
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libcurl.la

# no longer in upstream but a lot of apps tries to include it so we create fake one
[ -e $RPM_BUILD_ROOT%{_includedir}/curl/types.h ] && exit 1
echo '#warning curl/types.h IS OBSOLETE FROM 2004. STOP USING IT' > $RPM_BUILD_ROOT%{_includedir}/curl/types.h

%clean
rm -rf $RPM_BUILD_ROOT

%post	libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig

%files
%defattr(644,root,root,755)
%doc CHANGES COPYING README docs/{BUGS.md,FAQ,FEATURES.md,HISTORY.md,KNOWN_BUGS,SSLCERTS.md,THANKS,TODO,TheArtOfHttpScripting.md}
%attr(755,root,root) %{_bindir}/curl
%{_mandir}/man1/curl.1*

%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libcurl.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libcurl.so.4

%files devel
%defattr(644,root,root,755)
%doc docs/{CONTRIBUTE.md,INTERNALS.md}
%attr(755,root,root) %{_bindir}/curl-config
%attr(755,root,root) %{_libdir}/libcurl.so
%{_includedir}/curl
%{_pkgconfigdir}/libcurl.pc
%{_aclocaldir}/libcurl.m4
%{_mandir}/man1/curl-config.1*
%{_mandir}/man3/curl_*.3*
%{_mandir}/man3/libcurl*.3*
%{_mandir}/man3/CURLINFO_*.3*
%{_mandir}/man3/CURLOPT_*.3*
%{_mandir}/man3/CURLMOPT_*.3*
%{_mandir}/man3/CURLSHOPT_*.3*

%files static
%defattr(644,root,root,755)
%{_libdir}/libcurl.a

%files -n fish-completion-%{name}
%defattr(644,root,root,755)
%{fish_compdir}/curl.fish

%files -n zsh-completion-curl
%defattr(644,root,root,755)
%{_datadir}/zsh/site-functions/_curl