public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/mcrouter] f44: 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 : f44
Commit : d03db3b90c046094a937a8927ff4cdcc16d96482
Author : releng-bot <releng-bot@fedoraproject.org>
Date   : 2026-09-24T22:24:44+00:00
Stats  : +331/-1 in 7 file(s)
URL    : https://src.fedoraproject.org/rpms/mcrouter/c/d03db3b90c046094a937a8927ff4cdcc16d96482?branch=f44

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] f44: 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