## START: Set by rpmautospec ## (rpmautospec version 0.2.6) %define autorelease(e:s:pb:) %{?-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*}}%{?dist} ## END: Set by rpmautospec %bcond_without debug # tests fail with multiple Error: symbol ... is already defined %bcond_with check %if %{without debug} %global debug_package %{nil} %endif # mcrouter build process is very memory-hungry, # it fails unpredictably if some of the jobs get terminated # with no LTO and 1 build job memory usage peaks at ~ 44% with 16GB %global _lto_cflags %nil %global forgeurl https://github.com/facebook/mcrouter %global tag 2022.07.11.00 %global date %(echo %{tag} | sed -e 's|.00$||' | sed -e 's|\\.||g') Name: mcrouter Version: 0.41.0.%{date} Release: %autorelease Summary: Memcached protocol router for scaling memcached deployments License: MIT URL: %{forgeurl} Source0: %{url}/archive/v%{tag}/%{name}-%{tag}.tar.gz # distutils deprecated in Python 3.10 Patch0: %{name}-0.41.0-no_distutils.patch ExclusiveArch: x86_64 aarch64 ppc64le BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool BuildRequires: make BuildRequires: sed BuildRequires: gcc-c++ BuildRequires: folly-devel BuildRequires: fizz-devel BuildRequires: wangle-devel BuildRequires: fbthrift-devel BuildRequires: fbthrift # for free BuildRequires: procps-ng BuildRequires: python3-devel BuildRequires: python3-fbthrift-devel BuildRequires: ragel # Test dependencies BuildRequires: gtest-devel %description Mcrouter (pronounced mc router) is a memcached protocol router for scaling memcached deployments. Because the routing and feature logic are abstracted from the client in mcrouter deployments, the client may simply communicate with destination hosts through mcrouter over a TCP connection using standard memcached protocol. Typically, little or no client modification is needed to use mcrouter, which was designed to be a drop-in proxy between the client and memcached hosts. %prep %autosetup -p1 -n %{name}-%{tag} pushd %{name} # Fix detecting ppc64le: bug 1943729 sed -i m4/ax_boost_base.m4 -e 's@ppc64|@ppc64|ppc64le|@' echo "%{version}" > VERSION autoreconf --install %build pushd %{name} export FBTHRIFT_BIN="%{_bindir}" export PYTHON_VERSION="%{python3_version}" %configure --enable-shared --disable-static # do not eat all memory %make_build %{limit_build -m 4096} %install pushd %{name} %make_install %if %{with check} %check pushd %{name} %make_build check %endif %files %license LICENSE %doc README.md %{_bindir}/* %changelog * Fri Jul 22 2022 Michel Alexandre Salim 0.41.0.20220711-1 - Update to 2022.07.11.00 * Thu Jul 21 2022 Fedora Release Engineering 0.41.0.20220314-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Tue Jul 19 2022 Mamoru TASAKA 0.41.0.20220314-3 - Enable ppc64le again(bug 1943729), rebuild with fmt-9 * Wed May 04 2022 Thomas Rodgers 0.41.0.20220314-2 - Rebuilt for Boost 1.78 * Tue Mar 29 2022 Michel Alexandre Salim 0.41.0.20220314-1 - Update to 2022.03.14.00 * Tue Mar 01 2022 Michel Alexandre Salim 0.41.0.20220221-1 - Update to 2022.02.21.00 * Thu Jan 20 2022 Fedora Release Engineering 0.41.0-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Fri Dec 24 2021 Michel Alexandre Salim - 0.41.0-7.20211222git90d63a3 - Update to snapshot from 20211222 - Opt in to rpmautospec (changelog only) * Tue Sep 14 2021 Sahana Prasad - 0.41.0-7.20210723gitc9cd4bd - Rebuilt with OpenSSL 3.0.0 * Fri Aug 06 2021 Jonathan Wakely - 0.41.0-6.20210723gitc9cd4bd - Rebuilt for Boost 1.76 * Sun Aug 1 2021 Michel Alexandre Salim - 0.41.0-5.20210723gitc9cd4bd - Update to snapshot from 20210723 - Use new %%limit_build macro to limit memory usage per build process * Tue Jul 27 2021 Fedora Release Engineering - 0.41.0-5.20210629git67eda71 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Mon Jul 19 2021 Michel Alexandre Salim - 0.41.0-4.20210629git67eda71 - Update to snapshot from 20210629 - Patch out usage of distutils (deprecated in Python 3.10) * Mon May 10 2021 Michel Alexandre Salim - 0.41.0-4.20210508git806072e - Update to snapshot from 20210508 * Mon Apr 26 2021 Michel Alexandre Salim - 0.41.0-4.20210426gitf2e90bc - Update to snapshot from 20210426 * Fri Apr 16 2021 Michel Alexandre Salim - 0.41.0-4.20210412git018f1af - Update to snapshot from 20210412 - Stop using forge macros in case we want to build for EPEL8 * Mon Mar 29 2021 Michel Alexandre Salim - 0.41.0-4.20210324git7884f76 - Update to snapshot from 20210324 - Use %%forgeautosetup so the configure.ac patch is actually applied - Determine the number of safe build jobs to use (borrowed from Ceph) * Fri Mar 26 2021 Michel Alexandre Salim - 0.41.0-3.20210322git254a127 - Fix usage of deprecated AC_PROG_LIBTOOL macro; use LT_INIT instead * Wed Mar 24 2021 Michel Alexandre Salim - 0.41.0-2.20210322git254a127 - Update to snapshot from 20210322 - Disable build concurrency and LTO to compensate for high RAM usage * Tue Mar 16 2021 Davide Cavalca - 0.41.0-1.20210316gita3d9640 - Initial package