From 69f4b7cdd6f16919707bfcfa5fa87ac4ec1c336b Mon Sep 17 00:00:00 2001 From: polyfloyd Date: Tue, 4 Mar 2025 21:12:09 +0100 Subject: [PATCH] python3Packages.gnucash: Build from existing gnucash package --- pkgs/by-name/gn/gnucash/package.nix | 26 +++++++++++++++++++++++++- pkgs/top-level/python-packages.nix | 5 +++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/gn/gnucash/package.nix b/pkgs/by-name/gn/gnucash/package.nix index 1a5d5db37261..729e78ccb5a7 100644 --- a/pkgs/by-name/gn/gnucash/package.nix +++ b/pkgs/by-name/gn/gnucash/package.nix @@ -25,8 +25,12 @@ swig, webkitgtk_4_0, wrapGAppsHook3, + python ? null, + enablePython ? false, }: +assert enablePython -> (python != null); + stdenv.mkDerivation rec { pname = "gnucash"; version = "5.11"; @@ -45,6 +49,11 @@ stdenv.mkDerivation rec { pkg-config ]; + cmakeFlags = lib.optional enablePython [ + "-DWITH_PYTHON=\"ON\"" + "-DPYTHON_SYSCONFIG_BUILD=\"$out\"" + ]; + buildInputs = [ aqbanking @@ -68,7 +77,8 @@ stdenv.mkDerivation rec { JSONParse FinanceQuote perl - ]); + ]) + ++ lib.optional enablePython python; patches = [ # this patch disables test-gnc-timezone and test-gnc-datetime which fail due to nix datetime challenges @@ -81,6 +91,20 @@ stdenv.mkDerivation rec { ./0004-exec-fq-wrapper.patch ]; + postPatch = '' + patch -p0 <>> from gnucash import thingy + END_PATCH + ''; + # this needs to be an environment variable and not a cmake flag to suppress # guile warning env.GUILE_AUTO_COMPILE = "0"; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 576b55104641..aec660de7c84 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5605,6 +5605,11 @@ self: super: with self; { gntp = callPackage ../development/python-modules/gntp { }; + gnucash = toPythonModule (pkgs.gnucash.override { + inherit (self) python; + enablePython = true; + }); + gnureadline = callPackage ../development/python-modules/gnureadline { }; go2rtc-client = callPackage ../development/python-modules/go2rtc-client { };