mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-05 14:43:52 +02:00
frr: rebuild for python3-3.13
This commit is contained in:
parent
7d8472b247
commit
6d12c5ea51
2 changed files with 80 additions and 1 deletions
79
srcpkgs/frr/patches/python-3.13.patch
Normal file
79
srcpkgs/frr/patches/python-3.13.patch
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
From 9fcc2ae596a1eabfb0b7e663b5d47fa58a124bc2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Lamparter <equinox@opensourcerouting.org>
|
||||||
|
Date: Wed, 15 Mar 2023 12:24:36 +0100
|
||||||
|
Subject: [PATCH] lib: adapt clippy to Python 3.8+ init API
|
||||||
|
|
||||||
|
The old initialization/config API is deprecated in Python 3.11. Make
|
||||||
|
clippy use the new one added in 3.8 if it's that version or newer.
|
||||||
|
|
||||||
|
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
||||||
|
---
|
||||||
|
lib/clippy.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 48 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/clippy.c b/lib/clippy.c
|
||||||
|
index c3c9f5c4016d..d414053c5538 100644
|
||||||
|
--- a/lib/clippy.c
|
||||||
|
+++ b/lib/clippy.c
|
||||||
|
@@ -14,6 +14,53 @@
|
||||||
|
#include "command_graph.h"
|
||||||
|
#include "clippy.h"
|
||||||
|
|
||||||
|
+#if PY_VERSION_HEX >= 0x03080000
|
||||||
|
+/* new python init/config API added in Python 3.8 */
|
||||||
|
+int main(int argc, char **argv)
|
||||||
|
+{
|
||||||
|
+ PyStatus status;
|
||||||
|
+ PyPreConfig preconfig[1];
|
||||||
|
+ PyConfig config[1];
|
||||||
|
+
|
||||||
|
+ PyPreConfig_InitPythonConfig(preconfig);
|
||||||
|
+ preconfig->configure_locale = 0;
|
||||||
|
+ preconfig->coerce_c_locale = 1;
|
||||||
|
+ preconfig->coerce_c_locale_warn = 0;
|
||||||
|
+ preconfig->isolated = 0;
|
||||||
|
+ preconfig->utf8_mode = 1;
|
||||||
|
+ preconfig->parse_argv = 0;
|
||||||
|
+
|
||||||
|
+ status = Py_PreInitializeFromBytesArgs(preconfig, argc, argv);
|
||||||
|
+ if (PyStatus_Exception(status))
|
||||||
|
+ Py_ExitStatusException(status);
|
||||||
|
+
|
||||||
|
+ PyConfig_InitPythonConfig(config);
|
||||||
|
+#if PY_VERSION_HEX >= 0x030b0000 /* 3.11 */
|
||||||
|
+ config->safe_path = 0;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ status = PyConfig_SetBytesArgv(config, argc, argv);
|
||||||
|
+ if (PyStatus_Exception(status))
|
||||||
|
+ Py_ExitStatusException(status);
|
||||||
|
+
|
||||||
|
+ PyConfig_SetBytesString(config, &config->program_name,
|
||||||
|
+ argc > 0 ? argv[0] : "clippy");
|
||||||
|
+ if (argc > 1)
|
||||||
|
+ PyConfig_SetBytesString(config, &config->run_filename, argv[1]);
|
||||||
|
+
|
||||||
|
+ PyImport_AppendInittab("_clippy", command_py_init);
|
||||||
|
+
|
||||||
|
+ status = Py_InitializeFromConfig(config);
|
||||||
|
+ if (PyStatus_Exception(status))
|
||||||
|
+ Py_ExitStatusException(status);
|
||||||
|
+
|
||||||
|
+ PyConfig_Clear(config);
|
||||||
|
+
|
||||||
|
+ return Py_RunMain();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#else /* Python < 3.8 */
|
||||||
|
+/* old python init/config API, deprecated in Python 3.11 */
|
||||||
|
#if PY_MAJOR_VERSION >= 3
|
||||||
|
#define pychar wchar_t
|
||||||
|
static wchar_t *wconv(const char *s)
|
||||||
|
@@ -89,6 +136,7 @@ int main(int argc, char **argv)
|
||||||
|
free(wargv);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
+#endif /* Python < 3.8 */
|
||||||
|
|
||||||
|
/* and now for the ugly part... provide simplified logging functions so we
|
||||||
|
* don't need to link libzebra (which would be a circular build dep) */
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'frr'
|
# Template file for 'frr'
|
||||||
pkgname=frr
|
pkgname=frr
|
||||||
version=7.5
|
version=7.5
|
||||||
revision=6
|
revision=7
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
# chroot-texinfo is not able to build frr's docs
|
# chroot-texinfo is not able to build frr's docs
|
||||||
configure_args="--disable-doc
|
configure_args="--disable-doc
|
||||||
|
|
Loading…
Add table
Reference in a new issue