M gnu/local.mk => gnu/local.mk +1 -0
@@ 1846,6 1846,7 @@ dist_patch_DATA = \
%D%/packages/patches/transcode-ffmpeg.patch \
%D%/packages/patches/transmission-honor-localedir.patch \
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
+ %D%/packages/patches/trytond-add-guix_trytond_path.patch \
%D%/packages/patches/ttf2eot-cstddef.patch \
%D%/packages/patches/tup-unbundle-dependencies.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \
A gnu/packages/patches/trytond-add-guix_trytond_path.patch => gnu/packages/patches/trytond-add-guix_trytond_path.patch +26 -0
@@ 0,0 1,26 @@
+Make trytond add all paths listed in GUIX_TRYTOND_MODULES_PATH to sys.path.
+
+*** a/trytond/modules/__init__.py 1970-01-01 01:00:01.000000000 +0100
+--- b/trytond/modules/__init__.py 2021-12-02 22:17:28.014612267 +0100
+***************
+*** 31,36 ****
+--- 31,48 ----
+
+ EGG_MODULES = {}
+
++ def __extend_python_path__():
++ tryton_python_path = os.environ.get("GUIX_TRYTOND_MODULES_PATH")
++ if tryton_python_path:
++ paths = [path[:-16] # remove "/trytond/modules"
++ for path in tryton_python_path.split(os.pathsep)]
++ sys.path.extend(paths)
++ # ensure new paths are in the pkg_resources WorkingSet
++ import pkg_resources
++ list(map(pkg_resources.working_set.add_entry, paths))
++
++ __extend_python_path__()
++
+
+ def update_egg_modules():
+ global EGG_MODULES
+l
M gnu/packages/tryton.scm => gnu/packages/tryton.scm +18 -1
@@ 3,6 3,7 @@
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ 39,6 40,19 @@
#:use-module (guix utils)
#:use-module (guix build-system python))
+(define (guix-trytonpath-search-path version)
+ "Generate a GUIX_TRYTOND_MODULES_PATH search path specification, using
+VERSION.
+
+Do not use PYTHHONPATH not avoid interfering with any different Python package
+installed in the same environments. Collecting only paths actually containing
+/tryton/modules reduces the number of paths."
+ (search-path-specification (variable "GUIX_TRYTOND_MODULES_PATH")
+ (files (list (string-append
+ "lib/python"
+ (version-major+minor version)
+ "/site-packages/trytond/modules")))))
+
(define-public trytond
(package
(name "trytond")
@@ 49,7 63,8 @@
(uri (pypi-uri "trytond" version))
(sha256
(base32 "1jp5cadqpwkcnml8r1hj6aak5kc8an2d5ai62p96x77nn0dp3ny4"))
- (patches (search-patches "trytond-add-egg-modules-to-path.patch"))))
+ (patches (search-patches "trytond-add-egg-modules-to-path.patch"
+ "trytond-add-guix_trytond_path.patch"))))
(build-system python-build-system)
(propagated-inputs
(list python-dateutil
@@ 65,6 80,8 @@
python-wrapt))
(native-inputs
(list python-mock python-pillow))
+ (native-search-paths
+ (list (guix-trytonpath-search-path (package-version python))))
(arguments
`(#:phases
(modify-phases %standard-phases