If the python package matching trytond is not installed alongside to trytond,
PYTHONPATH is not set (or pointing to a wrong version) and trytond (and the
trytond tools) would not find the trytond modules.
This change introduces a new native-search-path GUIX_TRYTOND_MODULES_PATH.
Trytond gets patched to honor this environment variable.
Thanks to Maxim Cournoyer, whose code for guix-pythonpath-search-path
was the template for guix-trytonpath-search-path.
* gnu/packages/patches/trytond-add-guix_trytond_path.patch: New file.
* gnu/local.mk: (dist_patch_DATA): Add it.
* gnu/packages/tryton.scm (trytond): Use it.
[native-search-paths]: New element.
(guix-trytonpath-search-path): New function.
For adding modules, trytond uses entry-points, anyhow relying on the
modules being named "trytond.modules.xxx" and being placed in the same
filesystem path as "trytond.modules".
The package "trytond.modules" is not a namespace module, anyhow trytond
modules must be sub-modules of "trytond.modules". This works well if all
packages are installed into the same filesystem path "…/trytond/modules":
The Python importer will find all sub_modules at this place.
Anyhow, in Guix, modules don't share the same filesystem path and the
Python importer will not find them.
Solution is to add all trytond module's locations to
"trytond.modules._path__". This will make "trytond.module" behave much
like a namespace module and the importer pick up the module.
* gnu/packages/patches/trytond-add-egg-modules-to-path.patch: New file.
* gnu/packages/tryton.scm (trytond): Use it.
* gnu/local.mk (dist_patch_DATA): Add it
With the switch to "ustar" format in commit
bdf5c16ac052af2ca9d5c3acc4acbc08fd9fdbea, the maximum file length has
increased.
* guix/lint.scm (check-patch-file-names): Adjust margin used to check for
patch file lengths. Increase allowable patch file length appropriate to new
tar format. Extend warning to explain that long files may break 'make dist'.
* tests/lint.scm: Update tests accordingly.
This follows up on commit 5cd1019488c44081aaf030fbe8bc357d78daef23.
* tests/cran.scm (description): Include a very long line.
(description->package): Update the golden description to match the
paragraph filling now performed by BEAUTIFY-DESCRIPTION.
* gnu/packages/django.scm (python-djangorestframework): Define as deprecated
alias for ...
(python-django-rest-framework): ... this new variable.
(python-django-filter)[native-inputs]: Adjust accordingly.
* gnu/packages/mail.scm (python-hyperkitty)[propagated-inputs]: Likewise.
* gnu/packages/patchutils.scm (patchwork)[propagated-inputs]: Likewise.
* gnu/packages/django.scm (python-django): Rename to ...
(python-django-4.0): ... this. Update to 4.0.
[propagated-inputs]: Remove PYTHON-PYTZ.
(python-django-3.2): New variable.
(python-django-2.2): Inherit from it.
(python-django): Define as alias for PYTHON-DJANGO-3.2.
* gnu/packages/graph.scm (python-graph-tool)[arguments]: Import SITE-PACKAGES
from (guix build python-build-system), and use instead of homegrown procedure.
[native-inputs, inputs]: Remove labels.