+# TODO: mruby, neverbleed?
#
# Conditional build:
%bcond_without asio # libnghttp2_asio C++ library
-%bcond_without spdy # SPDY support via spdylay
+%bcond_with http3 # experimental HTTP/3 support
+%bcond_with libbpf # BPF support (requires CC=clang)
%bcond_without static_libs # static libraries
%bcond_without tests # "make check" call
Summary: HTTP/2.0 C library
Summary(pl.UTF-8): Biblioteka C HTTP/2.0
Name: nghttp2
-Version: 1.21.0
-Release: 2
+Version: 1.47.0
+Release: 1
License: MIT
Group: Libraries
#Source0Download: https://github.com/nghttp2/nghttp2/releases
Source0: https://github.com/nghttp2/nghttp2/releases/download/v%{version}/%{name}-%{version}.tar.xz
-# Source0-md5: 8d5cd7090d58692e7156c67955694003
+# Source0-md5: 6c8c35dd14a36673a9b86a7892b800f8
Patch0: %{name}-link.patch
Patch1: %{name}-python.patch
URL: https://nghttp2.org/
%{?with_asio:BuildRequires: boost-devel >= 1.54.0}
BuildRequires: c-ares-devel >= 1.7.5
BuildRequires: jansson-devel >= 2.5
+%{?with_libbpf:BuildRequires: libbpf-devel >= 0.7.0}
BuildRequires: libev-devel
# for examples
BuildRequires: libevent-devel >= 2.0.8
-BuildRequires: libstdc++-devel >= 6:4.3
+BuildRequires: libstdc++-devel >= 6:5
BuildRequires: libtool >= 2:2.2.6
-BuildRequires: libxml2-devel >= 1:2.7.7
+BuildRequires: libxml2-devel >= 1:2.6.26
+%{?with_http3:BuildRequires: nghttp3-devel >= 0.2.0}
+%{?with_http3:BuildRequires: ngtcp2-devel >= 0.2.0}
BuildRequires: openssl-devel >= 1.0.1
+%{?with_http3:BuildRequires: openssl-devel(quic)}
BuildRequires: pkgconfig >= 1:0.20
-BuildRequires: python >= 1:2.7
-BuildRequires: python-Cython >= 0.19
-BuildRequires: python-devel >= 1:2.7
-BuildRequires: python-setuptools
+BuildRequires: python3 >= 1:3.8
+BuildRequires: python3-Cython >= 0.19
+BuildRequires: python3-devel >= 1:3.8
+BuildRequires: python3-setuptools
BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.734
BuildRequires: sed >= 4.0
-%{?with_spdy:BuildRequires: spdylay-devel >= 1.3.2}
BuildRequires: systemd-devel >= 1:209
BuildRequires: tar >= 1:1.22
BuildRequires: xz
Requires: jansson >= 2.5
# noinst examples only
#Requires: libevent >= 2.0.8
-Requires: libxml2 >= 1:2.7.7
+Requires: libxml2 >= 1:2.6.26
Requires: openssl >= 1.0.1
-%{?with_spdy:Requires: spdylay >= 1.3.2}
Requires: zlib >= 1.2.3
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-# non-function symbols std::__once_call, std::__once_callable
-%define skip_post_check_so libnghttp2_asio.so.*
-
%description
This is an experimental implementation of Hypertext Transfer Protocol
version 2.0.
%description static -l pl.UTF-8
Statyczna biblioteka libnghttp2.
-%package -n python-nghttp2
+%package -n python3-nghttp2
Summary: Python binding to nghttp2 library
Summary(pl.UTF-8): Wiązanie Pythona do biblioteki nghttp2
Group: Libraries/Python
Requires: %{name} = %{version}-%{release}
-Requires: python-libs >= 1:2.7
+Requires: python3-libs >= 1:3.8
+Obsoletes: python-nghttp2 < 1.43.0
-%description -n python-nghttp2
+%description -n python3-nghttp2
Python binding to nghttp2 library.
-%description -n python-nghttp2 -l pl.UTF-8
+%description -n python3-nghttp2 -l pl.UTF-8
Wiązanie Pythona do biblioteki nghttp2.
%package asio
Group: Development/Libraries
Requires: %{name}-asio = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
-Requires: libstdc++-devel
+Requires: libstdc++-devel >= 6:5
%description asio-devel
Header file for nghttp2_asio library.
%patch0 -p1
%patch1 -p1
-%{__sed} -i -e '1s,/usr/bin/env python,%{__python},' script/fetch-ocsp-response
+%{__sed} -i -e '1s,/usr/bin/env python,%{__python3},' script/fetch-ocsp-response
%build
%{__libtoolize}
--enable-app \
%{?with_asio:--enable-asio-lib} \
--enable-hpack-tools \
+ %{?with_http3:--enable-http3} \
--enable-python-bindings \
--disable-silent-rules \
%{!?with_static_libs:--disable-static} \
+ --with-cython=/usr/bin/cython3 \
--without-jemalloc \
- %{?with_spdy:--with-spdylay}
+ %{?with_libbpf:--with-libbpf}
%{__make}
%{_libdir}/libnghttp2.a
%endif
-%files -n python-nghttp2
+%files -n python3-nghttp2
%defattr(644,root,root,755)
-%attr(755,root,root) %{py_sitedir}/nghttp2.so
-%{py_sitedir}/python_nghttp2-%{version}-py*.egg-info
+%attr(755,root,root) %{py3_sitedir}/nghttp2.cpython-*.so
+%{py3_sitedir}/python_nghttp2-%{version}-py*.egg-info
%if %{with asio}
%files asio