diff options
Diffstat (limited to 'app-office/gnucash/files/gnucash-5.4-fix-python-finding.patch')
-rw-r--r-- | app-office/gnucash/files/gnucash-5.4-fix-python-finding.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/app-office/gnucash/files/gnucash-5.4-fix-python-finding.patch b/app-office/gnucash/files/gnucash-5.4-fix-python-finding.patch new file mode 100644 index 000000000000..26de7a7ad154 --- /dev/null +++ b/app-office/gnucash/files/gnucash-5.4-fix-python-finding.patch @@ -0,0 +1,49 @@ +https://bugs.gentoo.org/919859 +https://github.com/Gnucash/gnucash/commit/3782eed56785adaca02cf2bd4766d3825a6f6ca7 + +From 3782eed56785adaca02cf2bd4766d3825a6f6ca7 Mon Sep 17 00:00:00 2001 +From: Simon Arlott <sa.me.uk> +Date: Wed, 4 Oct 2023 21:15:11 +0100 +Subject: [PATCH] Use the default version of Python 3 + +Python scripts that run with the default version of Python 3 by executing +with /usr/bin/python3 that try to import gnucash can't find it if it has +been built for a different version. + +Instead of using other installed versions of Python 3 that happen to be +present, default to using the default "unversioned" version. + +It doesn't look like CMake are going to fix the default behaviour, so every +project has to do this: +https://gitlab.kitware.com/cmake/cmake/-/issues/24878 +https://gitlab.kitware.com/cmake/cmake/-/issues/24126 +https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8287 + +This is only supported on CMake 3.20 or newer, so users of older versions +will still get the broken behaviour. + +Use the newer default Python3_FIND_STRATEGY=LOCATION (CMP0094). +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,6 +2,11 @@ + + cmake_minimum_required (VERSION 3.14.5) + ++# CMake 3.15+ Python3_FIND_STRATEGY=LOCATION ++if (POLICY CMP0094) ++ cmake_policy(SET CMP0094 NEW) ++endif() ++ + project (gnucash + VERSION 5.4 + ) +@@ -492,6 +497,9 @@ endif() + + if (WITH_PYTHON) + set (PYTHON_MIN_VERSION 3.6.0) ++ if (NOT DEFINED Python3_FIND_UNVERSIONED_NAMES) ++ set (Python3_FIND_UNVERSIONED_NAMES FIRST) ++ endif() + find_package (Python3 ${PYTHON_MIN_VERSION} COMPONENTS Interpreter Development) + if (NOT Python3_FOUND) + message(SEND_ERROR "Python support enabled, but Python3 interpreter and/or libaries not found.") |