summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Alexandre Salim <salimma@fedoraproject.org>2021-03-25 00:46:35 -0700
committerMichel Alexandre Salim <salimma@fedoraproject.org>2021-03-25 00:46:35 -0700
commit2346954941cac4cc19aea69e08ebdca752bcbe8a (patch)
tree6cfe9e9b734b3d66b5cc0978b5519e166b08f006
parentd2601ebd6c08980cc82a84d164e66c723ea19eca (diff)
downloadspecs-2346954941cac4cc19aea69e08ebdca752bcbe8a.tar.gz
specs-2346954941cac4cc19aea69e08ebdca752bcbe8a.tar.xz
specs-2346954941cac4cc19aea69e08ebdca752bcbe8a.zip
+ mcrouter
-rw-r--r--web/mcrouter.spec91
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