From 498afdfa16783cc7a18d40fde833d9bc9ff77938 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 19 Jun 2024 13:35:42 +0200 Subject: [PATCH] fontforge: fix build with Python 3.12 Replaces distutils usage with direct calls to the native sysconfig module. --- pkgs/tools/misc/fontforge/default.nix | 3 +++ pkgs/tools/misc/fontforge/replace-distutils.patch | 13 +++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 pkgs/tools/misc/fontforge/replace-distutils.patch diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix index aed9b33584b6..fe626a417ab3 100644 --- a/pkgs/tools/misc/fontforge/default.nix +++ b/pkgs/tools/misc/fontforge/default.nix @@ -29,6 +29,9 @@ stdenv.mkDerivation rec { url = "https://github.com/fontforge/fontforge/commit/216eb14b558df344b206bf82e2bdaf03a1f2f429.patch"; hash = "sha256-aRnir09FSQMT50keoB7z6AyhWAVBxjSQsTRvBzeBuHU="; }) + + # https://github.com/fontforge/fontforge/pull/5423 + ./replace-distutils.patch ]; # use $SOURCE_DATE_EPOCH instead of non-deterministic timestamps diff --git a/pkgs/tools/misc/fontforge/replace-distutils.patch b/pkgs/tools/misc/fontforge/replace-distutils.patch new file mode 100644 index 000000000000..99087c649021 --- /dev/null +++ b/pkgs/tools/misc/fontforge/replace-distutils.patch @@ -0,0 +1,13 @@ +diff --git a/pyhook/CMakeLists.txt b/pyhook/CMakeLists.txt +index dd48054aa..710728f26 100644 +--- a/pyhook/CMakeLists.txt ++++ b/pyhook/CMakeLists.txt +@@ -21,7 +21,7 @@ target_link_libraries(psMat_pyhook PRIVATE Python3::Module) + # So do it ourselves, getting the prefix-relative path instead + if(NOT DEFINED PYHOOK_INSTALL_DIR) + execute_process( +- COMMAND "${Python3_EXECUTABLE}" -c "import distutils.sysconfig as sc; print(sc.get_python_lib(prefix='', plat_specific=True,standard_lib=False))" ++ COMMAND "${Python3_EXECUTABLE}" -c "import sysconfig; print(sysconfig.get_path('platlib', sysconfig.get_preferred_scheme('user'), vars={'userbase': '.'}))" + RESULT_VARIABLE _pyhook_install_dir_result + OUTPUT_VARIABLE PYHOOK_INSTALL_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE)