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