%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}

%bcond_with test
%bcond_without app

%define _unpackaged_files_terminate_build 1

Summary: Experimental HTTP/2 client, server and proxy
Summary(ja): HTTP/2クライアント・サーバ・プロキシの実験的実装
Name: nghttp2
Version: 1.40.0
Release: 1%{?_dist_release}
License: MIT
Group: Applications/Internet
URL: https://nghttp2.org/

Vendor: Project Vine
Distribution: Vine Linux
Packager: tomop

Source0: https://github.com/tatsuhiro-t/nghttp2/releases/download/v%{version}/nghttp2-%{version}.tar.xz

%if %{with test}
BuildRequires: CUnit-devel
%endif
BuildRequires: jemalloc-devel
BuildRequires: libboost-devel
BuildRequires: libboost-thread
BuildRequires: libev-devel
BuildRequires: openssl-devel
BuildRequires: zlib-devel

%if %{with app}
Requires: libnghttp2 = %{version}-%{release}
BuildRequires: c-ares-devel
BuildRequires: jansson-devel
BuildRequires: libxml2-devel
%endif

%description
This package contains the HTTP/2 client, server and proxy programs.

%description -l ja
This package contains the HTTP/2 client, server and proxy programs.
 このパッケージにはHTTP/2クライアント・サーバ。プロキシのプログラム
が含まれています。


%package -n libnghttp2
Summary: A library implementing the HTTP/2 protocol
Summary(ja): HTTP/2ライブラリ
Group: Development/Libraries

%description -n libnghttp2
libnghttp2 is a library implementing the Hypertext Transfer Protocol
version 2 (HTTP/2) protocol in C.

%description -l ja -n libnghttp2
 libnghttp2はHypertext Transfer Protocol version 2 (HTTP/2)をC言語で
実装したライブラリです。


%package -n libnghttp2-devel
Summary: Files needed for building applications with libnghttp2
Summary(ja): libnghttp2を利用するアプリケーションをビルドするために必要なファイル
Group: Development/Libraries
Requires: libnghttp2%{?_isa} = %{version}-%{release}
Requires: pkgconfig

%description -n libnghttp2-devel
The libnghttp2-devel package includes libraries and header files needed
for building applications with libnghttp2.

%description -l ja -n libnghttp2-devel
 libnghttp2-develパッケージにはlibnghttp2を利用するアプリケーション
をビルドするために必要となるライブラリ・ヘッダファイルが含まれていま
す。


%package -n compat32-libnghttp2
Summary: A library implementing the HTTP/2 protocol
Summary(ja): HTTP/2ライブラリ
Group: Development/Libraries

%description -n compat32-libnghttp2
libnghttp2 is a library implementing the Hypertext Transfer Protocol
version 2 (HTTP/2) protocol in C.

%description -l ja -n compat32-libnghttp2
 libnghttp2はHypertext Transfer Protocol version 2 (HTTP/2)をC言語で
実装したライブラリです。


%package -n compat32-libnghttp2-devel
Summary: Files needed for building applications with libnghttp2
Summary(ja): libnghttp2を利用するアプリケーションをビルドするために必要なファイル
Group: Development/Libraries
Requires: compat32-libnghttp2%{?_isa} = %{version}-%{release}
Requires: pkgconfig

%description -n compat32-libnghttp2-devel
The libnghttp2-devel package includes libraries and header files needed
for building applications with libnghttp2.

%description -l ja -n compat32-libnghttp2-devel
 libnghttp2-develパッケージにはlibnghttp2を利用するアプリケーション
をビルドするために必要となるライブラリ・ヘッダファイルが含まれていま
す。


%prep
%setup -q


%build
CFLAGS="%{optflags} -fPIC $LIBEV_CFLAGS"    \
CXXFLAGS="%{optflags} -fPIC $LIBEV_CFLAGS"  \
%configure                                  \
%if %{with app}
    --enable-app                            \
%endif
	--enable-asio-lib                       \
    --with-pic                              \
    --with-boost                            \
    --with-boost-asio                       \
    --with-boost-system                     \
    --with-boost-thread                     \
    --disable-python-bindings               \
    --disable-static                        \
    --without-libxml2                       \
    --without-spdylay

# avoid using rpath
sed -i libtool                              \
    -e 's/^runpath_var=.*/runpath_var=/'    \
    -e 's/^hardcode_libdir_flag_spec=".*"$/hardcode_libdir_flag_spec=""/'

make %{?_smp_mflags} V=1


%install
%make_install

# not needed on Fedora/RHEL
rm -f %{buildroot}%{_libdir}/libnghttp2*.la

# will be installed via %%doc
rm -f "%{buildroot}%{_datadir}/doc/nghttp2/README.rst"

%if ! %{with app}
rm -f %{buildroot}%{_mandir}/man1/*
%endif


%post -n libnghttp2
/sbin/ldconfig

%postun -n libnghttp2
/sbin/ldconfig

%post -n compat32-libnghttp2
/sbin/ldconfig

%postun -n compat32-libnghttp2
/sbin/ldconfig


%check
%if %{with test}
# test the just built library instead of the system one, without using rpath
export "LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH"
make %{?_smp_mflags} check
%endif

%if %{with app}
%files
%{_bindir}/h2load
%{_bindir}/nghttp
%{_bindir}/nghttpd
%{_bindir}/nghttpx
%{_bindir}/deflatehd
%{_bindir}/inflatehd
%{_datadir}/nghttp2
%{_mandir}/man1/h2load.1*
%{_mandir}/man1/nghttp.1*
%{_mandir}/man1/nghttpd.1*
%{_mandir}/man1/nghttpx.1*
%endif

%files -n libnghttp2
%{_libdir}/libnghttp2*.so.*
%{_datadir}/%{name}/fetch-ocsp-response
%{!?_licensedir:%global license %%doc}
%license COPYING

%files -n libnghttp2-devel
%{_includedir}/nghttp2
%{_libdir}/pkgconfig/libnghttp2*.pc
%{_libdir}/libnghttp2*.so
%doc README.rst

%if %{build_compat32}
%files -n compat32-libnghttp2
%{_libdir}/libnghttp2*.so.*
%{!?_licensedir:%global license %%doc}
%license COPYING

%files -n compat32-libnghttp2-devel
%{_includedir}/nghttp2
%{_libdir}/pkgconfig/libnghttp2*.pc
%{_libdir}/libnghttp2*.so
%doc README.rst
%endif

%changelog
* Sun Feb 16 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.40.0-1
- new upstream release.

* Thu Aug 29 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.39.2-1
- new upstream release.

* Sat Nov 03 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.34.0-1
- new upstream release.

* Fri Mar 30 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.31.0-1
- new upstream release.

* Sun Jan 07 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.29.0-2
- rebuilt with libboost-1.66.0.

* Sun Dec 24 2017 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.29.0-1
- new upstream release.
- enabled to build apps as default.

* Mon May  1 2017 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.22.0-1
- new upstream release.

* Thu Mar 16 2017 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.20.0-1
- new upstream release.
- disabled to build apps as default.

* Wed Dec 21 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.17.0-1
- new upstream release.

* Sat Jul 16 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.12.0-2
- added compat32-* packages.

* Thu Jul  7 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.12.0-1
- new upstream release.

* Tue Jun  7 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.11.1-2
- initial build for Vne Linux.

* Sun May 29 2016 Kamil Dudka <kdudka@redhat.com> 1.11.1-1
- update to the latest upstream release

* Thu May 26 2016 Kamil Dudka <kdudka@redhat.com> 1.11.0-1
- update to the latest upstream release

* Mon Apr 25 2016 Kamil Dudka <kdudka@redhat.com> 1.10.0-1
- update to the latest upstream release

* Sun Apr 03 2016 Kamil Dudka <kdudka@redhat.com> 1.9.2-1
- update to the latest upstream release

* Tue Mar 29 2016 Kamil Dudka <kdudka@redhat.com> 1.9.1-1
- update to the latest upstream release

* Thu Feb 25 2016 Kamil Dudka <kdudka@redhat.com> 1.8.0-1
- update to the latest upstream release

* Thu Feb 11 2016 Kamil Dudka <kdudka@redhat.com> 1.7.1-1
- update to the latest upstream release (fixes CVE-2016-1544)

* Fri Feb 05 2016 Kamil Dudka <kdudka@redhat.com> 1.7.0-3
- make the package compile with gcc-6

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Mon Jan 25 2016 Kamil Dudka <kdudka@redhat.com> 1.7.0-1
- update to the latest upstream release

* Fri Dec 25 2015 Kamil Dudka <kdudka@redhat.com> 1.6.0-1
- update to the latest upstream release (fixes CVE-2015-8659)

* Thu Nov 26 2015 Kamil Dudka <kdudka@redhat.com> 1.5.0-1
- update to the latest upstream release

* Mon Oct 26 2015 Kamil Dudka <kdudka@redhat.com> 1.4.0-1
- update to the latest upstream release

* Thu Sep 24 2015 Kamil Dudka <kdudka@redhat.com> 1.3.4-1
- update to the latest upstream release

* Wed Sep 23 2015 Kamil Dudka <kdudka@redhat.com> 1.3.3-1
- update to the latest upstream release

* Wed Sep 16 2015 Kamil Dudka <kdudka@redhat.com> 1.3.2-1
- update to the latest upstream release

* Mon Sep 14 2015 Kamil Dudka <kdudka@redhat.com> 1.3.1-1
- update to the latest upstream release

* Mon Aug 31 2015 Kamil Dudka <kdudka@redhat.com> 1.3.0-1
- update to the latest upstream release

* Mon Aug 17 2015 Kamil Dudka <kdudka@redhat.com> 1.2.1-1
- update to the latest upstream release

* Sun Aug 09 2015 Kamil Dudka <kdudka@redhat.com> 1.2.0-1
- update to the latest upstream release

* Wed Jul 15 2015 Kamil Dudka <kdudka@redhat.com> 1.1.1-1
- update to the latest upstream release

* Tue Jun 30 2015 Kamil Dudka <kdudka@redhat.com> 1.0.5-1
- packaged for Fedora (#1237247)