summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/golly/files/golly-3.3-nondynamic-python.patch')
-rw-r--r--app-misc/golly/files/golly-3.3-nondynamic-python.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/app-misc/golly/files/golly-3.3-nondynamic-python.patch b/app-misc/golly/files/golly-3.3-nondynamic-python.patch
new file mode 100644
index 000000000000..bc1c81a61917
--- /dev/null
+++ b/app-misc/golly/files/golly-3.3-nondynamic-python.patch
@@ -0,0 +1,51 @@
+Don't use runtime python loading via dlopen().
+
+Just link to libpython directly. That makes python dependency
+more explicit and allows catching more compile-time bugs.
+--- a/gui-wx/configure/Makefile.am
++++ b/gui-wx/configure/Makefile.am
+@@ -22,7 +22,7 @@ golly_CPPFLAGS = $(AM_CPPFLAGS) $(WX_CPPFLAGS) $(PYTHON_INCLUDE) \
+ $(PERL_CPPFLAGS) $(PERL_INCLUDE) \
+ $(liblua_a_CPPFLAGS) -I$(top_srcdir)/../../lua
+ golly_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CXXFLAGS_ONLY)
+-golly_LDADD = $(WX_LIBS) libgolly.a liblua.a
++golly_LDADD = $(WX_LIBS) $(PYTHON_LIBS) libgolly.a liblua.a
+
+ if WINDOWS
+ golly_LDADD += gollyres.o
+--- a/gui-wx/configure/configure.ac
++++ b/gui-wx/configure/configure.ac
+@@ -86,6 +86,16 @@ AS_IF([test "x$with_python_shlib" = xcheck],
+ AS_IF([test "x$shlib" = x], AC_MSG_ERROR([could not determine Python shared library name]))
+ AC_DEFINE_UNQUOTED([PYTHON_SHLIB], [$shlib])
+
++# Find python interpreter
++# 1. --embed is needed for python>=3.8
++# 2. statuc check is needed because python-3.7-config outputs error to stdout, not stderr
++if ${PYTHON}-config --libs --embed; then
++ PYTHON_LIBS=`${PYTHON}-config --libs --embed`
++elif ${PYTHON}-config --libs; then
++ PYTHON_LIBS=`${PYTHON}-config --libs`
++fi
++AC_SUBST(PYTHON_LIBS)
++
+ # Find zlib (unless explicitly disabled)
+ AS_IF([test "x$with_zlib" != xno],
+ [ AC_CHECK_HEADER([zlib.h], , [AC_MSG_ERROR([missing zlib])])
+--- a/gui-wx/wxpython.cpp
++++ b/gui-wx/wxpython.cpp
+@@ -59,8 +59,12 @@
+ #undef SIZEOF_SIZE_T
+ #undef SIZEOF_VOID_P
+ #else
+- // load Python lib at runtime
+- #define USE_PYTHON_DYNAMIC
++ // On gentoo just link against python to make
++ // python dependency more explicit.
++ # if 0
++ // load Python lib at runtime
++ #define USE_PYTHON_DYNAMIC
++ #endif
+
+ #ifdef __UNIX__
+ // avoid warning on Linux