summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/trytond-add-egg-modules-to-path.patch22
-rw-r--r--gnu/packages/tryton.scm3
3 files changed, 25 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 76403bbdf9..0ed4dd607f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1845,6 +1845,7 @@ dist_patch_DATA = \
%D%/packages/patches/tor-sandbox-i686.patch \
%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/ttf2eot-cstddef.patch \
%D%/packages/patches/tup-unbundle-dependencies.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \
diff --git a/gnu/packages/patches/trytond-add-egg-modules-to-path.patch b/gnu/packages/patches/trytond-add-egg-modules-to-path.patch
new file mode 100644
index 0000000000..1baccfee1c
--- /dev/null
+++ b/gnu/packages/patches/trytond-add-egg-modules-to-path.patch
@@ -0,0 +1,22 @@
+Work around trytond.module not being a real namespace module.
+
+Solution is to add all trytond module's locations to
+trytond.modules._path__. This will make trytond.module behave much
+like a namespace module.
+Adding to __path__ is done in update_egg_modules() to ensure __path__
+is updated whenever the list of egg modules is updated.
+
+*** a/trytond/modules/__init__.py 1970-01-01 01:00:01.000000000 +0100
+--- b/trytond/modules/__init__.py 2021-12-02 18:12:15.385101986 +0100
+***************
+*** 38,43 ****
+--- 38,46 ----
+ import pkg_resources
+ for ep in pkg_resources.iter_entry_points('trytond.modules'):
+ EGG_MODULES[ep.name] = ep
++ path = os.path.join(ep.dist.location, 'trytond', 'modules')
++ if not path in __path__ and os.path.isdir(path):
++ __path__.append(path)
+ except ImportError:
+ pass
+
diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm
index 6ba7539b4a..0bd5ffcd5b 100644
--- a/gnu/packages/tryton.scm
+++ b/gnu/packages/tryton.scm
@@ -48,7 +48,8 @@
(method url-fetch)
(uri (pypi-uri "trytond" version))
(sha256
- (base32 "1jp5cadqpwkcnml8r1hj6aak5kc8an2d5ai62p96x77nn0dp3ny4"))))
+ (base32 "1jp5cadqpwkcnml8r1hj6aak5kc8an2d5ai62p96x77nn0dp3ny4"))
+ (patches (search-patches "trytond-add-egg-modules-to-path.patch"))))
(build-system python-build-system)
(propagated-inputs
(list python-dateutil