public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/mcrouter] rawhide: Unretirement request: https://forge.fedoraproject.org/releng/fedora-scm-requests/issues/1083
@ 2026-09-24 22:24 releng-bot
0 siblings, 0 replies; only message in thread
From: releng-bot @ 2026-09-24 22:24 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/mcrouter
Branch : rawhide
Commit : 43f262fe5b4c7b85c1689b0c0fa406f6814db189
Author : releng-bot <releng-bot@fedoraproject.org>
Date : 2026-09-24T22:24:48+00:00
Stats : +331/-1 in 7 file(s)
URL : https://src.fedoraproject.org/rpms/mcrouter/c/43f262fe5b4c7b85c1689b0c0fa406f6814db189?branch=rawhide
Log:
Unretirement request: https://forge.fedoraproject.org/releng/fedora-scm-requests/issues/1083
---
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..650bc0b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/mcrouter-????.??.??.00.tar.gz
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..68b7a30
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# mcrouter
+
+The mcrouter package
diff --git a/changelog b/changelog
new file mode 100644
index 0000000..8185945
--- /dev/null
+++ b/changelog
@@ -0,0 +1,46 @@
+* Fri Dec 24 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 0.41.0-7.20211222git90d63a3
+- Update to snapshot from 20211222
+- Opt in to rpmautospec (changelog only)
+
+* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 0.41.0-7.20210723gitc9cd4bd
+- Rebuilt with OpenSSL 3.0.0
+
+* Fri Aug 06 2021 Jonathan Wakely <jwakely@redhat.com> - 0.41.0-6.20210723gitc9cd4bd
+- Rebuilt for Boost 1.76
+
+* Sun Aug 1 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 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 <releng@fedoraproject.org> - 0.41.0-5.20210629git67eda71
+- Second attempt - Rebuilt for
+ https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Mon Jul 19 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 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 <salimma@fedoraproject.org> - 0.41.0-4.20210508git806072e
+- Update to snapshot from 20210508
+
+* Mon Apr 26 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 0.41.0-4.20210426gitf2e90bc
+- Update to snapshot from 20210426
+
+* Fri Apr 16 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 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 <salimma@fedoraproject.org> - 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 <salimma@fedoraproject.org> - 0.41.0-3.20210322git254a127
+- Fix usage of deprecated AC_PROG_LIBTOOL macro; use LT_INIT instead
+
+* 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
diff --git a/dead.package b/dead.package
deleted file mode 100644
index 2c35b03..0000000
--- a/dead.package
+++ /dev/null
@@ -1 +0,0 @@
-Retired: Fails to install: https://forge.fedoraproject.org/releng/tickets/issues/13277
diff --git a/mcrouter-0.41.0-no_distutils.patch b/mcrouter-0.41.0-no_distutils.patch
new file mode 100644
index 0000000..d870fcc
--- /dev/null
+++ b/mcrouter-0.41.0-no_distutils.patch
@@ -0,0 +1,178 @@
+From cda674a71f598e3f7125c63e74f13c0415b12f08 Mon Sep 17 00:00:00 2001
+From: Michel Alexandre Salim <salimma@fedoraproject.org>
+Date: Mon, 19 Jul 2021 16:22:00 -0700
+Subject: [PATCH] Stop using distutils
+
+distutils is deprecated in Python 3.10 and will be removed in 3.12.
+
+Most of the usages here can be replaced by using `sysconfig`; one
+fallback no longer exists and simply has to be removed.
+
+Minimum Python version is now 3.2.0, which introduces `sysconfig`:
+https://docs.python.org/3/library/sysconfig.html
+
+Signed-off-by: Michel Alexandre Salim <salimma@fedoraproject.org>
+---
+ mcrouter/m4/ax_python_devel.m4 | 63 ++++++++++++++++------------------
+ 1 file changed, 29 insertions(+), 34 deletions(-)
+
+diff --git a/mcrouter/m4/ax_python_devel.m4 b/mcrouter/m4/ax_python_devel.m4
+index ef86fcb4..67fe81a1 100644
+--- a/mcrouter/m4/ax_python_devel.m4
++++ b/mcrouter/m4/ax_python_devel.m4
+@@ -25,7 +25,7 @@
+ # version number. Don't use "PYTHON_VERSION" for this: that environment
+ # variable is declared as precious and thus reserved for the end-user.
+ #
+-# This macro should work for all versions of Python >= 2.1.0. As an end
++# This macro should work for all versions of Python >= 3.2.0. As an end
+ # user, you can disable the check for the python version by setting the
+ # PYTHON_NOVERSIONCHECK environment variable to something else than the
+ # empty string.
+@@ -88,19 +88,21 @@ AC_DEFUN([AX_PYTHON_DEVEL],[
+ fi
+
+ #
+- # Check for a version of Python >= 2.1.0
++ # Check for a version of Python >= 3.2.0
+ #
+- AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
++ AC_MSG_CHECKING([for a version of Python >= '3.2.0'])
+ ac_supports_python_ver=`$PYTHON -c "import sys; \
+- ver = sys.version.split ()[[0]]; \
+- print (ver >= '2.1.0')"`
++ ver = sys.version.split()[[0]].split('.'); \
++ major_ver = int(ver[[0]]); \
++ minor_ver = int(ver[[1]]); \
++ print (major_ver > 3 or major_ver == 3 and minor_ver >= 2)"`
+ if test "$ac_supports_python_ver" != "True"; then
+ if test -z "$PYTHON_NOVERSIONCHECK"; then
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE([
+ This version of the AC@&t@_PYTHON_DEVEL macro
+ doesn't work properly with versions of Python before
+-2.1.0. You may need to re-run configure, setting the
++3.2.0. You may need to re-run configure, setting the
+ variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG,
+ PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
+ Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
+@@ -135,17 +137,17 @@ variable to configure. See ``configure --help'' for reference.
+ fi
+
+ #
+- # Check if you have distutils, else fail
++ # Check if you have sysconfig, else fail
+ #
+- AC_MSG_CHECKING([for the distutils Python package])
+- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
+- if test -z "$ac_distutils_result"; then
++ AC_MSG_CHECKING([for the sysconfig Python library])
++ ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1`
++ if test -z "$ac_sysconfig_result"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+- AC_MSG_ERROR([cannot import Python module "distutils".
++ AC_MSG_ERROR([cannot import Python module "sysconfig".
+ Please check your Python installation. The error was:
+-$ac_distutils_result])
++$ac_sysconfig_result])
+ PYTHON_VERSION=""
+ fi
+
+@@ -154,10 +156,10 @@ $ac_distutils_result])
+ #
+ AC_MSG_CHECKING([for Python include path])
+ if test -z "$PYTHON_CPPFLAGS"; then
+- python_path=`$PYTHON -c "import distutils.sysconfig; \
+- print (distutils.sysconfig.get_python_inc ());"`
+- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
+- print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
++ python_path=`$PYTHON -c "import sysconfig; \
++ print (sysconfig.get_paths()[['include']]);"`
++ plat_python_path=`$PYTHON -c "import sysconfig; \
++ print (sysconfig.get_paths()[['platinclude']]);"`
+ if test -n "${python_path}"; then
+ if test "${plat_python_path}" != "${python_path}"; then
+ python_path="-I$python_path -I$plat_python_path"
+@@ -181,7 +183,7 @@ $ac_distutils_result])
+
+ # join all versioning strings, on some systems
+ # major/minor numbers could be in different list elements
+-from distutils.sysconfig import *
++from sysconfig import get_config_var
+ e = get_config_var('VERSION')
+ if e is not None:
+ print(e)
+@@ -204,8 +206,8 @@ EOD`
+ ac_python_libdir=`cat<<EOD | $PYTHON -
+
+ # There should be only one
+-import distutils.sysconfig
+-e = distutils.sysconfig.get_config_var('LIBDIR')
++import sysconfig
++e = sysconfig.get_config_var('LIBDIR')
+ if e is not None:
+ print (e)
+ EOD`
+@@ -213,8 +215,8 @@ EOD`
+ # Now, for the library:
+ ac_python_library=`cat<<EOD | $PYTHON -
+
+-import distutils.sysconfig
+-c = distutils.sysconfig.get_config_vars()
++import sysconfig
++c = sysconfig.get_config_vars()
+ if 'LDVERSION' in c:
+ print ('python'+c[['LDVERSION']])
+ else:
+@@ -230,13 +232,6 @@ EOD`
+ # use the official shared library
+ ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
+ PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library"
+- else
+- # old way: use libpython from python_configdir
+- ac_python_libdir=`$PYTHON -c \
+- "from distutils.sysconfig import get_python_lib as f; \
+- import os; \
+- print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
+- PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
+ fi
+
+ if test -z "PYTHON_LIBS"; then
+@@ -254,8 +249,8 @@ EOD`
+ #
+ AC_MSG_CHECKING([for Python site-packages path])
+ if test -z "$PYTHON_SITE_PKG"; then
+- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
+- print (distutils.sysconfig.get_python_lib(0,0));"`
++ PYTHON_SITE_PKG=`$PYTHON -c "import sysconfig; \
++ print (sysconfig.get_paths()[['platlib']]);"`
+ fi
+ AC_MSG_RESULT([$PYTHON_SITE_PKG])
+ AC_SUBST([PYTHON_SITE_PKG])
+@@ -265,8 +260,8 @@ EOD`
+ #
+ AC_MSG_CHECKING(python extra libraries)
+ if test -z "$PYTHON_EXTRA_LDFLAGS"; then
+- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
+- conf = distutils.sysconfig.get_config_var; \
++ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import sysconfig; \
++ conf = sysconfig.get_config_var; \
+ print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
+ fi
+ AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
+@@ -277,8 +272,8 @@ EOD`
+ #
+ AC_MSG_CHECKING(python extra linking flags)
+ if test -z "$PYTHON_EXTRA_LIBS"; then
+- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
+- conf = distutils.sysconfig.get_config_var; \
++ PYTHON_EXTRA_LIBS=`$PYTHON -c "import sysconfig; \
++ conf = sysconfig.get_config_var; \
+ print (conf('LINKFORSHARED'))"`
+ fi
+ AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
+--
+2.31.1
+
diff --git a/mcrouter.spec b/mcrouter.spec
new file mode 100644
index 0000000..37028ab
--- /dev/null
+++ b/mcrouter.spec
@@ -0,0 +1,102 @@
+%bcond_without debug
+
+# tests fail with multiple Error: symbol ... is already defined
+%bcond_with check
+
+%if %{without debug}
+%global debug_package %{nil}
+%endif
+
+%global forgeurl https://github.com/facebook/mcrouter
+%global tag 2025.02.03.00
+%global date %(echo %{tag} | sed -e 's|.00$||' | sed -e 's|\\.||g')
+
+# lib/fbi/cpp/LowerBoundPrefixMap.cpp includes folly/container/tape.h
+# which uses std::ranges which is part of C++20
+%global optflags %optflags -std=c++20
+
+Name: mcrouter
+Version: 0.41.0.%{date}
+Release: %autorelease
+Summary: Memcached protocol router for scaling memcached deployments
+
+License: MIT
+URL: %{forgeurl}
+Source: %{url}/archive/v%{tag}/%{name}-%{tag}.tar.gz
+# distutils deprecated in Python 3.10
+Patch: %{name}-0.41.0-no_distutils.patch
+
+# Temporarily drop ppc64le due to a bug in folly's F14Set fallback
+# rhbz#2344416
+ExclusiveArch: x86_64 aarch64
+
+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: libatomic
+# for free
+BuildRequires: procps-ng
+BuildRequires: python3-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 INSTALL_DIR="%{_prefix}"
+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
+%autochangelog
diff --git a/sources b/sources
new file mode 100644
index 0000000..70f75ba
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (mcrouter-2025.02.03.00.tar.gz) = f236dbcf110adc3acd5dd5882fad619866e7b306bd55ce3d8e4863061fa390cb65b259dc3cd83d5510691cf4f5b692cc0ae249f165246a0dc2e976ab61bec46c
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-24 22:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-24 22:24 [rpms/mcrouter] rawhide: Unretirement request: https://forge.fedoraproject.org/releng/fedora-scm-requests/issues/1083 releng-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox