You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by sz...@apache.org on 2024/10/28 18:49:34 UTC
(nifi-minifi-cpp) 05/05: MINIFICPP-2482 drop python3.6 support on mac
This is an automated email from the ASF dual-hosted git repository.
szaszm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit d0116706ea3daab949c228a4c1b9830e196d0f39
Author: Martin Zink <ma...@apache.org>
AuthorDate: Mon Oct 28 16:52:08 2024 +0100
MINIFICPP-2482 drop python3.6 support on mac
while we decide on MINIFICPP-2480 vs MINIFICPP-2481 we can safely disable python 3.6 support on macos so the CI can run
includes:
commit 41921b8a634804e41351d85b31b8984429055979
Author: Martin Zink <ma...@apache.org>
Date: Fri Oct 25 14:46:53 2024 +0200
Revert "bump python version"
This reverts commit 2daccca4893fabe08f2ae130593f5b548c9b5201.
Closes #1887
Signed-off-by: Marton Szasz <sz...@apache.org>
---
extensions/python/CMakeLists.txt | 6 +++++-
extensions/python/PythonInterpreter.cpp | 37 +++++++++++++++++----------------
2 files changed, 24 insertions(+), 19 deletions(-)
diff --git a/extensions/python/CMakeLists.txt b/extensions/python/CMakeLists.txt
index c69d2e51f..2e6694335 100644
--- a/extensions/python/CMakeLists.txt
+++ b/extensions/python/CMakeLists.txt
@@ -30,7 +30,11 @@ add_minifi_library(minifi-python-script-extension SHARED ${SOURCES})
target_link_libraries(minifi-python-script-extension PRIVATE ${LIBMINIFI} Threads::Threads)
include(GenericPython)
-target_compile_definitions(minifi-python-script-extension PUBLIC Py_LIMITED_API=0x03070000)
+if(APPLE)
+ target_compile_definitions(minifi-python-script-extension PUBLIC Py_LIMITED_API=0x03090000)
+else()
+ target_compile_definitions(minifi-python-script-extension PUBLIC Py_LIMITED_API=0x03060000)
+endif()
target_compile_definitions(minifi-python-script-extension PUBLIC PY_SSIZE_T_CLEAN)
target_sources(minifi-python-script-extension PRIVATE ${PY_SOURCES})
diff --git a/extensions/python/PythonInterpreter.cpp b/extensions/python/PythonInterpreter.cpp
index 212aea705..e2ca00f4d 100644
--- a/extensions/python/PythonInterpreter.cpp
+++ b/extensions/python/PythonInterpreter.cpp
@@ -35,15 +35,14 @@ Interpreter* Interpreter::getInterpreter() {
return &interpreter;
}
-GlobalInterpreterLock::GlobalInterpreterLock()
- : gil_state_(PyGILState_Ensure()) {
-}
+GlobalInterpreterLock::GlobalInterpreterLock() : gil_state_(PyGILState_Ensure()) {}
GlobalInterpreterLock::~GlobalInterpreterLock() {
PyGILState_Release(gil_state_);
}
namespace {
+#ifndef __APPLE__
struct version {
int major;
int minor;
@@ -60,6 +59,7 @@ std::optional<version> getPythonVersion() {
return std::nullopt;
}
}
+#endif // !__APPLE__
// PyEval_InitThreads might be marked deprecated (depending on the version of Python.h)
// Python <= 3.6: This needs to be called manually after Py_Initialize to initialize threads (python < 3.6 is unsupported by us)
@@ -68,19 +68,19 @@ std::optional<version> getPythonVersion() {
// Python >= 3.11: removed
// This can be removed if we drop the support for Python 3.6
void initThreads() {
- using namespace std::literals;
+#if !defined(__APPLE__)
// early return (skip workaround) above Python 3.6
if (const auto version = getPythonVersion(); !version || (version->major == 3 && version->minor > 6) || version->major > 3) {
return;
}
-#if defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-#elif defined(__GNUC__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#ifndef WIN32 // dlsym hack, doesn't work on windows
+ #if defined(__clang__)
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ #elif defined(__GNUC__)
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+ #endif
+ #ifndef WIN32 // dlsym hack, doesn't work on windows
// dlsym hack: allows us to build with python 3.11+, where these were removed (so no header declarations), and run with python 3.6 (e.g. RHEL8)
// the dlsym hack doesn't work on Windows, we'll drop python 3.6 support there
// lowercase, to avoid name conflicts with the header declaration, in case we're using an old enough python to build
@@ -89,12 +89,13 @@ void initThreads() {
gsl_Assert(pyeval_threads_initialized && pyeval_initthreads && "We're on python 3.6, yet we couldn't load PyEval_ThreadsInitialized and/or PyEval_InitThreads");
if (!pyeval_threads_initialized())
pyeval_initthreads();
-#endif // !WIN32
-#if defined(__clang__)
-#pragma clang diagnostic pop
-#elif defined(__GNUC__)
-#pragma GCC diagnostic pop
-#endif
+ #endif // !WIN32
+ #if defined(__clang__)
+ #pragma clang diagnostic pop
+ #elif defined(__GNUC__)
+ #pragma GCC diagnostic pop
+ #endif
+#endif // !__APPLE__
}
} // namespace