summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/patches/trytond-add-egg-modules-to-path.patch22
-rw-r--r--gnu/packages/tryton.scm3
2 files changed, 24 insertions, 1 deletions
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