-# TODO: ngtpc2/nghttp3 when ready (packages released, support working in curl)
+# 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_without metalink # metalink support
+%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
Summary(ru.UTF-8): Утилита для получения файлов с серверов FTP, HTTP и других
Summary(uk.UTF-8): Утиліта для отримання файлів з серверів FTP, HTTP та інших
Name: curl
-Version: 7.67.0
+Version: 7.83.0
Release: 1
License: MIT-like
Group: Applications/Networking
Source0: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# Source0-md5: d55351b88dec558dd3a24dabb2c2d899
+# Source0-md5: b7924acdea33dedc3150a044789ed0bb
Patch0: %{name}-ac.patch
Patch1: %{name}-krb5flags.patch
URL: http://curl.haxx.se/
BuildRequires: autoconf >= 2.57
BuildRequires: automake
-%{?with_ares:BuildRequires: c-ares-devel >= 1.7.0}
+%{?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
-%{?with_metalink:BuildRequires: libmetalink-devel >= 0.1.0}
BuildRequires: libpsl-devel
%{?with_rtmp:BuildRequires: librtmp-devel}
%{?with_ssh:BuildRequires: libssh2-devel >= 1.2.8}
BuildRequires: libtool
BuildRequires: nettle-devel
-%{?with_http2:BuildRequires: nghttp2-devel >= 1.9.0}
+%{?with_http2:BuildRequires: nghttp2-devel >= 1.12.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
+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
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Summary: curl library
Summary(pl.UTF-8): Biblioteka curl
Group: Libraries
-%{?with_ares:Requires: c-ares >= 1.7.0}
+%{?with_ares:Requires: c-ares >= 1.17.0}
+%{?with_gnutls:Requires: gnutls-libs >= 3.1.10}
%{?with_ssh:Requires: libssh2 >= 1.2.8}
-%{?with_http2:Requires: nghttp2-libs >= 1.9.0}
+%{?with_http2:Requires: nghttp2-libs >= 1.12.0}
%if %{with ssl} && %{without gnutls}
Requires: libbrotli >= 1.0.0
Requires: openssl >= 1.0.1
Group: Development/Libraries
Requires: %{name}-libs = %{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 >= 1.2.8}
-%{?with_http2:Requires: nghttp2-devel >= 1.9.0}
+%{?with_http2:Requires: nghttp2-devel >= 1.12.0}
%{?with_ldap:Requires: openldap-devel}
%if %{with ssl}
%if %{with gnutls}
-Requires: gnutls-devel
+Requires: gnutls-devel >= 3.1.10
%else
Requires: openssl-devel >= 0.9.7c
%endif
%endif
Requires: zlib-devel
+Requires: zstd-devel
Obsoletes: libcurl2-devel
%description devel
Group: Applications/Shells
Requires: %{name} = %{version}-%{release}
Requires: fish
+BuildArch: noarch
%description -n fish-completion-%{name}
Fish completion for curl command.
Group: Applications/Shells
Requires: %{name} = %{version}-%{release}
Requires: zsh
+BuildArch: noarch
%description -n zsh-completion-curl
ZSH completion for curl command.
%configure \
ac_cv_header_gss_h=no \
%{__enable_disable ares} \
+ %{__enable_disable gsasl} \
+ --enable-headers-api \
--enable-ipv6 \
%{__enable_disable ldap} \
%{__enable_disable ldap ldaps} \
%if %{with ssl}
--with-ca-bundle=/etc/certs/ca-certificates.crt \
%if %{with gnutls}
- --with-gnutls --without-ssl \
+ --with-gnutls --without-openssl \
%else
- --with-ssl=%{_prefix} \
+ --with-openssl=%{_prefix} \
%endif
%else
- --without-ssl --without-gnutls \
+ --without-ssl \
%endif
--with-fish-functions-dir=%{fish_compdir} \
%{__with_without kerberos5 gssapi %{_prefix}} \
- %{__with_without metalink libmetalink} \
%{__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
%files
%defattr(644,root,root,755)
-%doc CHANGES COPYING README docs/{BUGS,FAQ,FEATURES,HISTORY.md,KNOWN_BUGS,SSLCERTS.md,THANKS,TODO,TheArtOfHttpScripting}
+%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 devel
%defattr(644,root,root,755)
-%doc docs/{CONTRIBUTE.md,INTERNALS.md,LICENSE-MIXING.md,RESOURCES}
+%doc docs/{CONTRIBUTE.md,INTERNALS.md}
%attr(755,root,root) %{_bindir}/curl-config
%attr(755,root,root) %{_libdir}/libcurl.so
-%{_libdir}/libcurl.la
%{_includedir}/curl
%{_pkgconfigdir}/libcurl.pc
%{_aclocaldir}/libcurl.m4
%{_mandir}/man3/CURLINFO_*.3*
%{_mandir}/man3/CURLOPT_*.3*
%{_mandir}/man3/CURLMOPT_*.3*
+%{_mandir}/man3/CURLSHOPT_*.3*
%files static
%defattr(644,root,root,755)
%files -n fish-completion-%{name}
%defattr(644,root,root,755)
-%{fish_compdir}/%{name}.fish
+%{fish_compdir}/curl.fish
%files -n zsh-completion-curl
%defattr(644,root,root,755)