diff options
| author | Michel Alexandre Salim <salimma@fedoraproject.org> | 2021-03-25 00:46:35 -0700 |
|---|---|---|
| committer | Michel Alexandre Salim <salimma@fedoraproject.org> | 2021-03-25 00:46:35 -0700 |
| commit | 2346954941cac4cc19aea69e08ebdca752bcbe8a (patch) | |
| tree | 6cfe9e9b734b3d66b5cc0978b5519e166b08f006 | |
| parent | d2601ebd6c08980cc82a84d164e66c723ea19eca (diff) | |
| download | specs-2346954941cac4cc19aea69e08ebdca752bcbe8a.tar.gz specs-2346954941cac4cc19aea69e08ebdca752bcbe8a.tar.xz specs-2346954941cac4cc19aea69e08ebdca752bcbe8a.zip | |
+ mcrouter
| -rw-r--r-- | web/mcrouter.spec | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/web/mcrouter.spec b/web/mcrouter.spec new file mode 100644 index 0000000..2de7db9 --- /dev/null +++ b/web/mcrouter.spec @@ -0,0 +1,91 @@ +# linking tests fail with undefined references +%bcond_with check + +# 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 _smp_build_ncpus 1 + +%global forgeurl https://github.com/facebook/mcrouter +%global commit 254a127c7f360fe7f50b6f7add787ad895de8746 +%forgemeta + +Name: mcrouter +Version: 0.41.0 +Release: 2%{?dist} +Summary: Memcached protocol router for scaling memcached deployments + +License: MIT +URL: %{forgeurl} +Source0: %{forgesource} + +# Folly is known not to work on big-endian CPUs +# https://bugzilla.redhat.com/show_bug.cgi?id=1892151 +ExcludeArch: s390x +# configure fails to find boost for some reason +ExcludeArch: ppc64le +# multiple issues due to hardcoded pointer sizes +ExcludeArch: i686 armv7hl + +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 +BuildRequires: python3-devel +BuildRequires: python3-fbthrift-devel +BuildRequires: ragel + +%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 +%forgesetup +pushd %{name} +echo "%{version}" > VERSION +autoreconf --install + +%build +pushd %{name} +export FBTHRIFT_BIN="%{_bindir}" +export PYTHON_VERSION="%{python3_version}" +%configure --enable-shared --disable-static +%make_build + +%install +pushd %{name} +%make_install + +%if %{with check} +%check +pushd %{name} +%{__make} check +%endif + +%files +%license LICENSE +%doc README.md +%{_bindir}/* + +%changelog +* Wed Mar 24 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 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 <dcavalca@fedoraproject.org> - 0.41.0-1.20210316gita3d9640 +- Initial package |
