## START: Set by rpmautospec ## (rpmautospec version 0.3.5) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %bcond_with toolchain_clang %if %{with toolchain_clang} %global toolchain clang %endif %bcond_without check # use this to re-test running all tests %bcond_with all_tests # https://bugzilla.redhat.com/show_bug.cgi?id=1927961 %bcond_with docs %global _static_builddir static_build Name: proxygen Version: 2023.09.11.00 Release: %autorelease Summary: A collection of C++ HTTP libraries including an easy to use HTTP server. License: BSD-3-Clause URL: https://github.com/facebook/proxygen Source: %{url}/releases/download/v%{version}/%{name}-v%{version}.tar.gz ExclusiveArch: x86_64 aarch64 ppc64le BuildRequires: cmake %if %{with toolchain_clang} BuildRequires: clang %else BuildRequires: gcc-c++ %endif BuildRequires: folly-devel BuildRequires: fizz-devel BuildRequires: mvfst-devel BuildRequires: wangle-devel BuildRequires: gperf BuildRequires: perl BuildRequires: libzstd-devel %if %{with docs} BuildRequires: doxygen %endif %if %{with check} BuildRequires: gmock-devel BuildRequires: gtest-devel %endif %global _description %{expand: Proxygen comprises the core C++ HTTP abstractions used at Facebook. Internally, it is used as the basis for building many HTTP servers, proxies, and clients. This release focuses on the common HTTP abstractions and our simple HTTPServer framework. Future releases will provide simple client APIs as well. The framework supports HTTP/1.1, SPDY/3, SPDY/3.1, HTTP/2, and HTTP/3. The goal is to provide a simple, performant, and modern C++ HTTP library.} %description %{_description} %package devel Summary: Development files for %{name} Requires: %{name}-libs%{?_isa} = %{version}-%{release} Obsoletes: %{name}-static < 2022.02.21.00-1 %description devel %{_description} The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %if %{with docs} %package docs Summary: Documentation for %{name} BuildArch: noarch %description docs %{_description} The %{name}-docs package contains additional documentation for proxygen. %endif %package libs Summary: Shared libraries for %{name} %description libs %{_description} The %{name}-libs package contains shared libraries provided by proxygen. %prep %autosetup -c -p1 %build %cmake \ %if %{with check} -DBUILD_TESTS=ON \ %else -DBUILD_TESTS=OFF \ %endif -DBUILD_SHARED_LIBS=ON \ -DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name} \ -DPACKAGE_VERSION=%{version} %cmake_build %if %{with docs} doxygen %endif %install %cmake_install %if %{with check} %check %if %{with all_tests} %ctest %else cd "%{__cmake_builddir}" # these on all architectures EXCLUDED_TESTS='SSL\.SSLTest' EXCLUDED_TESTS+='|SSL\.SSLTestWithMultiCA' EXCLUDED_TESTS+='|SSL\.TestAllowInsecureOnSecureServer' EXCLUDED_TESTS+='|SSL\.DisallowInsecureOnSecureServer' EXCLUDED_TESTS+='|SSL\.TestResumptionWithTickets' EXCLUDED_TESTS+='|SSL\.TestResumptionAfterUpdateFails' EXCLUDED_TESTS+='|SSL\.TestUpdateTLSCredentials' EXCLUDED_TESTS+='|GetListenSocket\.TestBootstrapWithNoBinding' EXCLUDED_TESTS+='|GetListenSocket\.TestBootstrapWithBinding' EXCLUDED_TESTS+='|ScopedServerTest\.StartSSLWithInsecure' EXCLUDED_TESTS+='|ConnectionFilterTest\.Test' %ifarch %{ix86} armv7hl EXCLUDED_TESTS+='|DownstreamTransactionTest\.DeferredEgress' EXCLUDED_TESTS+='|HTTP2DownstreamSessionTest\.H2TimeoutWin' EXCLUDED_TESTS+='|HTTP2DownstreamSessionTest\.TestTransactionStallByFlowControl' EXCLUDED_TESTS+='|HTTP2UpstreamSessionTest\.TestUnderLimitOnWriteError' EXCLUDED_TESTS+='|HTTP2UpstreamSessionTest\.DetachFlowControlTimeout' EXCLUDED_TESTS+='|MockCodecDownstreamTest.FlowControlWindow' %endif %ifarch ppc64le EXCLUDED_TESTS+='|SessionPoolFixture\.MoveIdleSessionBetweenThreadsTest' %endif %{__ctest} --output-on-failure --force-new-ctest-process %{?_smp_mflags} \ -E ${EXCLUDED_TESTS} cd - %endif %endif %files %license LICENSE %{_bindir}/* %files libs %{_libdir}/*.so.* %files devel %doc CODE_OF_CONDUCT.md CONTRIBUTING.md README.md CoreProxygenArchitecture.png %{_includedir}/* %{_libdir}/*.so %{_libdir}/cmake/%{name} %if %{with docs} %files docs %doc html %endif %changelog * Tue Sep 12 2023 Michel Lind - 2023.09.11.00-1 - Update to 2023.09.11.00 * Fri Jul 21 2023 Fedora Release Engineering - 2023.07.03.00-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Fri Jul 07 2023 Michel Alexandre Salim - 2023.07.03.00-1 - Update to 2023.07.03.00 - Use SPDX license identifier * Wed Jun 28 2023 Vitaly Zaitsev - 2023.04.24.00-2 - Rebuilt due to fmt 10 update. * Tue Apr 25 2023 Michel Alexandre Salim - 2023.04.24.00-1 - Update to 2023.04.24.00 * Fri Jan 20 2023 Fedora Release Engineering - 2022.07.11.00-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Fri Jul 22 2022 Fedora Release Engineering - 2022.07.11.00-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Thu Jul 21 2022 Michel Alexandre Salim - 2022.07.11.00-1 - Update to 2022.07.11.00 * Tue Jul 19 2022 Mamoru TASAKA - 2022.03.14.00-3 - Rebuild for fmt-9, compile with gcc, enable ppc64le * Wed Mar 16 2022 Michel Alexandre Salim - 2022.03.14.00-2 - Switch to excluding tests using `ctest -E` * Wed Mar 16 2022 Michel Alexandre Salim - 2022.03.14.00-1 - Update to 2022.03.14.00 * Wed Mar 09 2022 Michel Alexandre Salim - 2022.03.07.00-1 - Update to 2022.03.07.00 (resolves: rhbz#2062048) * Tue Mar 01 2022 Michel Alexandre Salim - 2022.02.21.00-2 - Disable some extra tests on 32-bit architectures * Tue Mar 01 2022 Michel Alexandre Salim - 2022.02.21.00-1 - Update to 2022.02.21.00; drop static build; enable passing tests * Fri Jan 21 2022 Fedora Release Engineering - 2021.12.20.00-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Tue Dec 28 2021 Michel Alexandre Salim - 2021.12.20.00-2 - Disable tests unconditionally, they break on gmock 1.10.0 too * Fri Dec 24 2021 Michel Alexandre Salim - 2021.12.20.00-1 - Update to 2021.12.20.00 * Fri Nov 19 2021 Michel Alexandre Salim - 2021.11.15.00-1 - Update to 2021.11.15.00; note: the folly stack is still built against OpenSSL 1.1.1 * Fri Nov 12 2021 Michel Alexandre Salim - 2021.08.02.00-3 - local build * Tue Sep 14 2021 Sahana Prasad - 2021.08.02.00-2 - Rebuilt with OpenSSL 3.0.0 * Wed Aug 18 2021 Davide Cavalca - 2021.08.02.00-1 - Update to 2021.08.02.00; Fixes: RHBZ#1991102 * Sun Aug 1 2021 Michel Alexandre Salim - 2021.07.22.00-1 - Update to 2021.07.22.00 * Fri Jul 23 2021 Fedora Release Engineering - 2021.06.28.00-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Tue Jul 13 2021 Michel Alexandre Salim - 2021.06.28.00-1 - Update to 2021.06.28.00 * Mon May 10 2021 Michel Alexandre Salim - 2021.05.10.00-1 - Update to 2021.05.10.00 * Mon Apr 26 2021 Michel Alexandre Salim - 2021.04.26.00-1 - Update to 2021.04.26.00 * Fri Apr 16 2021 Michel Alexandre Salim - 2021.04.12.00-1 - Update to 2021.04.12.00 * Mon Mar 29 2021 Michel Alexandre Salim - 2021.03.29.00-1 - Update to 2021.03.29.00 * Wed Mar 24 2021 Michel Alexandre Salim - 2021.03.22.00-1 - Update to 2021.03.22.00 * Sun Mar 21 2021 Michel Alexandre Salim - 2021.03.15.00-1 - Update to 2021.03.15.00 * Thu Feb 11 2021 Davide Cavalca - 2021.02.01.00-4 - Disable docs build by default for now * Fri Feb 5 2021 Davide Cavalca - 2021.02.01.00-3 - Make proxygen-docs noarch - Fix cmake install dir for static build * Thu Feb 4 2021 Davide Cavalca - 2021.02.01.00-2 - Backport upstream fix to install the proxygencurl library * Tue Feb 2 2021 Davide Cavalca - 2021.02.01.00-1 - Initial package