From 4c3ad91dfaf4f6871fac11a9fcf063c2458e71ab17410d206874af1a3fc08cce Mon Sep 17 00:00:00 2001 From: Martin Pluskal Date: Sun, 1 Nov 2015 19:46:13 +0000 Subject: [PATCH] Accepting request 341961 from home:XRevan86 - Update to 1.4.0. OBS-URL: https://build.opensuse.org/request/show/341961 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/nghttp2?expand=0&rev=40 --- baselibs.conf | 2 + nghttp2-1.3.4.tar.xz | 3 - nghttp2-1.4.0-fix-tests.patch | 31 ++++++ nghttp2-1.4.0.tar.xz | 3 + nghttp2.changes | 43 ++++++++ nghttp2.spec | 185 ++++++++++++++++++---------------- 6 files changed, 177 insertions(+), 90 deletions(-) create mode 100644 baselibs.conf delete mode 100644 nghttp2-1.3.4.tar.xz create mode 100644 nghttp2-1.4.0-fix-tests.patch create mode 100644 nghttp2-1.4.0.tar.xz diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..c3a4f7d --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,2 @@ +libnghttp2-14 +libnghttp2_asio1 diff --git a/nghttp2-1.3.4.tar.xz b/nghttp2-1.3.4.tar.xz deleted file mode 100644 index 8270d28..0000000 --- a/nghttp2-1.3.4.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:87803308317247f90cab37cdba2eb45cf03a7f083fac5ed4e40f0937a9c37867 -size 1271920 diff --git a/nghttp2-1.4.0-fix-tests.patch b/nghttp2-1.4.0-fix-tests.patch new file mode 100644 index 0000000..168c96a --- /dev/null +++ b/nghttp2-1.4.0-fix-tests.patch @@ -0,0 +1,31 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -695,6 +695,9 @@ if test "x$threads" != "xyes" || + AC_DEFINE([NOTHREADS], [1], [Define to 1 if you want to disable threads.]) + fi + ++# propagate $enable_static to tests/Makefile.am ++AM_CONDITIONAL([ENABLE_STATIC], [test "x$enable_static" = "xyes"]) ++ + AC_SUBST([TESTLDADD]) + AC_SUBST([APPLDFLAGS]) + +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -49,7 +49,15 @@ HFILES = nghttp2_pq_test.h nghttp2_map_t + + main_SOURCES = $(HFILES) $(OBJECTS) + +-main_LDADD = ${top_builddir}/lib/libnghttp2.la @CUNIT_LIBS@ @TESTLDADD@ ++if ENABLE_STATIC ++main_LDADD = ${top_builddir}/lib/libnghttp2.la ++else ++# With static lib disabled and symbol hiding enabled, we have to link object ++# files directly because the tests use symbols not included in public API. ++main_LDADD = ${top_builddir}/lib/.libs/*.o ++endif ++ ++main_LDADD += @CUNIT_LIBS@ @TESTLDADD@ + main_LDFLAGS = -static + + if ENABLE_FAILMALLOC diff --git a/nghttp2-1.4.0.tar.xz b/nghttp2-1.4.0.tar.xz new file mode 100644 index 0000000..38b35e3 --- /dev/null +++ b/nghttp2-1.4.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20d1481fe7fa65fd4f25457a43406a6f627a34f19b61f488a18ab56e2ef15b65 +size 1388820 diff --git a/nghttp2.changes b/nghttp2.changes index 7800ad6..4c63cc6 100644 --- a/nghttp2.changes +++ b/nghttp2.changes @@ -1,3 +1,46 @@ +------------------------------------------------------------------- +Sat Oct 31 10:21:56 UTC 2015 - sor.alexei@meowr.ru + +- Update to 1.4.0: + * lib: Don't always expect dynamic table size update. + * lib: Shrink to the minimum table size seen in local SETTINGS. + * lib: Add new error code NGHTTP2_ERR_PAUSE to send_data_callback. + * lib: Avoid excessive WINDOW_UPDATE queuing. + * lib: Return fatal error if flooding is detected to close + session immediately. + * lib: Return type of nghttp2_submit_trailer is int. + * lib: Don't send WINDOW_UPDATE with 0 increment. + * lib: Fix bug that headers in CONTINUATION were ignored after + HEADERS with padding. + * package: Use -fvisibility=hidden for internal functions. + * package: Show more information in configure summary. + * package: Add PIDFile directive to systemd service. + * package: Fix daemon upgrade when running under systemd. + * app: Compile with BoringSSL. + * nghttp: Allow multiple -c option occurrence, and take min and + last value. + * nghttpd: Fix leak when server failed to listen to given port. + * nghttpx: Add TLS dynamic record size behaviour command line + options. + * nghttpx: Reduce default timeouts for read sockets to 1m. + * nghttpx: Fix bug that PUT is replaced with POST. + * nghttpx: Change mruby script handling. + * nghttpx: Added support for RFC 7413 (TCP Fast Open) on nghttpx + proxy listening connections. + * nghttpx: Add neverbleed support. + * h2load: Don't DOS our server! + * h2load: Use duration syntax for timeouts. + * h2load: Support subsecond rate period. + * h2load: Simplify rate mode. + * h2load: Add option for user-definable rate period. + * h2load: Reuse SSL/TLS session. + * h2load: Reconnect server on connection: close. + * h2load: Don't exit in the case of no ALPN protocol overlap. + * integration: Update go's http2 package URI. +- Add missing baselibs.conf. +- Add nghttp2-1.4.0-fix-tests.patch from commit 4825009. +- Small spec cleanup. + ------------------------------------------------------------------- Sun Sep 27 12:38:17 UTC 2015 - mpluskal@suse.com diff --git a/nghttp2.spec b/nghttp2.spec index 04c2263..b8ba417 100644 --- a/nghttp2.spec +++ b/nghttp2.spec @@ -16,18 +16,23 @@ # -%define lib_name lib%{name}-14 -%define lib_name_asio lib%{name}_asio1 +%define soname libnghttp2 +%define sover 14 +%define soname_asio libnghttp2_asio +%define sover_asio 1 Name: nghttp2 -Version: 1.3.4 +Version: 1.4.0 Release: 0 Summary: Implementation of Hypertext Transfer Protocol version 2 in C License: MIT Group: Development/Libraries/C and C++ Url: https://nghttp2.org/ -#Git-Clone: git://github.com/tatsuhiro-t/nghttp2 Source: https://github.com/tatsuhiro-t/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz -Patch1: nghttp2-remove-python-build.patch +Source1: baselibs.conf +# PATCH-FIX-OPENSUSE nghttp2-remove-python-build.patch +Patch0: %{name}-remove-python-build.patch +# PATCH-FIX-UPSTREAM nghttp2-1.4.0-fix-tests.patch kdudka@redhat.com -- Tests: fix broken linkage with --disable-static (commit 4825009). +Patch1: %{name}-1.4.0-fix-tests.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: boost-devel @@ -44,148 +49,154 @@ BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(python) BuildRequires: pkgconfig(zlib) -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description -This is an implementation of Hypertext Transfer Protocol version 2 in C. +This is an implementation of Hypertext Transfer Protocol version 2. -The framing layer of HTTP/2 is implemented as a form of reusable C library. -On top of that, we have implemented HTTP/2 client, server and proxy. -We have also developed load test and benchmarking tool for HTTP/2 and SPDY. +The framing layer of HTTP/2 is implemented as a form of reusable C +library. On top of that, we have implemented HTTP/2 client, server +and proxy. We have also developed load test and benchmarking tool +for HTTP/2. HPACK encoder and decoder are available as public API. -%package -n %{lib_name} -Summary: Shared library for %{name} +%package -n %{soname}-%{sover} +Summary: Shared library for nghttp2 Group: System/Libraries -%description -n %{lib_name} -Shared C libraries for implementation of Hypertext Transfer Protocol version 2 +%description -n %{soname}-%{sover} +Shared C libraries for implementation of +Hypertext Transfer Protocol version 2. -%package -n %{lib_name_asio} -Summary: Shared library for %{name} +%package -n %{soname_asio}%{sover_asio} +Summary: Shared library for nghttp2 Group: System/Libraries -%description -n %{lib_name_asio} -Shared librarios for asynchronous implementation of Hypertext Transfer Protocol version 2 +%description -n %{soname_asio}%{sover_asio} +Shared librarios for asynchronous implementation of +Hypertext Transfer Protocol version 2. %package -n python-%{name} -Summary: Python bindings for %{name} +Summary: Python bindings for nghttp2 Group: Development/Libraries/Python %description -n python-%{name} -Python bindings for implementation of Hypertext Transfer Protocol version 2 - -%package -n lib%{name}-devel -Summary: Development files for %{name} -Group: Development/Languages/C and C++ -Requires: %{lib_name} = %{version} -Provides: %{name}-devel - -%description -n lib%{name}-devel -Development files for usage with lib%{name}, which implements Hypertext -Transfer Protocol version 2. - -%package -n lib%{name}_asio-devel -Summary: Development files for %{name} -Group: Development/Languages/C and C++ -Requires: %{lib_name_asio} = %{version} - -%description -n lib%{name}_asio-devel -Development files for usage with lib%{name}_aio, which implements asynchronous +Python bindings for implementation of Hypertext Transfer Protocol version 2. +%package -n %{soname}-devel +Summary: Development files for nghttp2 +Group: Development/Languages/C and C++ +Requires: %{soname_asio}%{sover_asio} = %{version} +Provides: %{name}-devel + +%description -n %{soname}-devel +Development files for usage with libnghttp2, which implements +Hypertext Transfer Protocol version 2. + +%package -n %{soname_asio}-devel +Summary: Development files for nghttp2 +Group: Development/Languages/C and C++ +Requires: %{soname_asio}%{sover_asio} = %{version} + +%description -n %{soname_asio}-devel +Development files for usage with libnghttp2_aio, which implements +asynchronous Hypertext Transfer Protocol version 2. + %package doc -Summary: Documentation for %{name} +Summary: Documentation for nghttp2 Group: Documentation/HTML %description doc -Documentation for %{name}, which includes a shared C library, HTTP/2 client, -server and proxy. +Documentation for nghttp2, which includes a shared C library, +HTTP/2 client, server and proxy. %prep %setup -q +%patch0 -p1 %patch1 -p1 %build -autoreconf -fiv +autoreconf -fi %configure \ - --disable-silent-rules \ - --enable-asio-lib \ - --enable-python-bindings \ - --disable-static -make %{?_smp_mflags} all html -pushd python -make %{?_smp_mflags} nghttp2.c -python setup.py build -popd + --disable-static \ + --disable-silent-rules \ + --enable-asio-lib \ + --enable-python-bindings -%check -make %{?_smp_mflags} check +make all html %{?_smp_mflags} +pushd python +make nghttp2.c %{?_smp_mflags} +python2 setup.py build +popd %install -make DESTDIR=%{buildroot} install %{?_smp_mflags} +%make_install + pushd python -python setup.py install --prefix=%{_prefix} --root=%{buildroot} +python2 setup.py install \ + --root=%{buildroot} --prefix=%{_prefix} popd -# do not ship these + +# Move to the correct directory. +mkdir -p %{buildroot}%{_docdir}/ +mv -f %{buildroot}%{_datadir}/doc/%{name}/ %{buildroot}%{_docdir}/%{name}-doc/ + find %{buildroot} -type f -name "*.la" -delete -print -# none of applications using these man pages is built -rm -rf %{buildroot}%{_mandir}/man1/* -rm -rf doc/manual/html/.buildinfo -%post -n %{lib_name} -p /sbin/ldconfig +# None of applications using these man pages are built. +rm -rf %{buildroot}%{_mandir}/man1/* \ + doc/manual/html/.buildinfo -%post -n %{lib_name_asio} -p /sbin/ldconfig +%check +make check %{?_smp_mflags} -%postun -n %{lib_name} -p /sbin/ldconfig +%post -n %{soname}-%{sover} -p /sbin/ldconfig -%postun -n %{lib_name_asio} -p /sbin/ldconfig +%post -n %{soname_asio}%{sover_asio} -p /sbin/ldconfig + +%postun -n %{soname}-%{sover} -p /sbin/ldconfig + +%postun -n %{soname_asio}%{sover_asio} -p /sbin/ldconfig %files %defattr(-,root,root) %{_bindir}/deflatehd %{_bindir}/inflatehd -%{_datadir}/%{name} +%{_datadir}/%{name}/ -%files -n %{lib_name} +%files -n %{soname}-%{sover} %defattr(-,root,root) %doc COPYING -%{_libdir}/lib%{name}.so.* +%{_libdir}/%{soname}.so.%{sover}* -%files -n %{lib_name_asio} +%files -n %{soname_asio}%{sover_asio} %defattr(-,root,root) %doc COPYING -%{_libdir}/lib%{name}_asio.so.* +%{_libdir}/%{soname_asio}.so.%{sover_asio}* %files -n python-%{name} %defattr(-,root,root) %{python_sitearch}/nghttp2.so -%{python_sitearch}/python_nghttp2-%{version}-py%{py_ver}.egg-info +%{python_sitearch}/python_nghttp2-* -%files -n lib%{name}-devel +%files -n %{soname}-devel %defattr(-,root,root) -%doc ChangeLog -%dir %{_includedir}/%{name} -%{_includedir}/%{name}/nghttp2.h -%{_includedir}/%{name}/nghttp2ver.h -%{_libdir}/lib%{name}.so -%{_libdir}/pkgconfig/lib%{name}.pc +%dir %{_includedir}/%{name}/ +%{_includedir}/%{name}/%{name}*.h +%{_libdir}/%{soname}.so +%{_libdir}/pkgconfig/%{soname}.pc -%files -n lib%{name}_asio-devel +%files -n %{soname_asio}-devel %defattr(-,root,root) -%dir %{_includedir}/%{name} -%{_includedir}/%{name}/asio_http2.h -%{_includedir}/nghttp2/asio_http2_client.h -%{_includedir}/nghttp2/asio_http2_server.h -%{_libdir}/lib%{name}_asio.so -%{_libdir}/pkgconfig/lib%{name}_asio.pc +%dir %{_includedir}/%{name}/ +%{_includedir}/%{name}/asio_http2*.h +%{_libdir}/%{soname_asio}.so +%{_libdir}/pkgconfig/%{soname_asio}.pc %files doc %defattr(-,root,root) -%doc AUTHORS ChangeLog -%doc doc/manual/html -%dir %{_datadir}/doc/%{name} -%doc %{_datadir}/doc/%{name}/README.rst +%doc AUTHORS ChangeLog doc/manual/html +%doc %{_docdir}/%{name}-doc/ %changelog