From 1afd0ccf20881ba97e3c07dffb33e9a3a0b2cda4 Mon Sep 17 00:00:00 2001 From: Martin Trigaux <mat@odoo.com> Date: Thu, 14 Nov 2019 10:12:22 +0000 Subject: [PATCH] [FIX] auth_ldap: replace the deprecated library by one up to date At 795c7b0a9415d04 the external dependencies was changed from trying to import 'ldap' to checking than 'pyldap' package was installed. The problem is that pyldap is a unmaintained library that should no longer be used, as explained on the package page: https://pypi.org/project/pyldap/ "The pyldap fork was merged back into python-ldap, and released as python-ldap 3.0.0." Having pyldap version >= 3.0 installs python-ldap automatically and will not cause any issue. The Debian control file package name is adapted to use the latest. The "ldap" externalm dependency defined in __manifest__.py will cause pkg_resources.get_distribution() to fail in both case ("python-lap" or "pyldap"), but the "import" fallback will succeed. For that reason, the log warning is turned into a log info. closes odoo/odoo#40249 Note: This library should be replaced by the pure python "ldap3" library. Signed-off-by: Christophe Monniez (moc) <moc@odoo.com> --- addons/auth_ldap/README.rst | 2 +- addons/auth_ldap/__manifest__.py | 2 +- .../tools/posbox/overwrite_before_init/etc/init_posbox_image.sh | 2 +- debian/control | 2 +- odoo/addons/base/models/ir_module.py | 2 +- requirements.txt | 2 +- setup.cfg | 1 - setup.py | 2 +- setup/win32/winpy_requirements.txt | 1 - 9 files changed, 7 insertions(+), 9 deletions(-) diff --git a/addons/auth_ldap/README.rst b/addons/auth_ldap/README.rst index f31047def21f..64f802b01e51 100644 --- a/addons/auth_ldap/README.rst +++ b/addons/auth_ldap/README.rst @@ -3,7 +3,7 @@ Adds support for authentication by LDAP server. This module allows users to login with their LDAP username and password, and will automatically create Odoo users for them on the fly. -**Note:** This module only work on servers who have Python's ``ldap`` module installed. +**Note:** This module only work on servers that have Python's ``python-ldap`` module installed. Configuration: -------------- diff --git a/addons/auth_ldap/__manifest__.py b/addons/auth_ldap/__manifest__.py index d70b6a545089..fa17447c510f 100644 --- a/addons/auth_ldap/__manifest__.py +++ b/addons/auth_ldap/__manifest__.py @@ -11,6 +11,6 @@ 'views/res_config_settings_views.xml', ], 'external_dependencies': { - 'python': ['pyldap'], + 'python': ['ldap'], } } diff --git a/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh b/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh index 82d0b6d96b01..440611211156 100755 --- a/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh +++ b/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh @@ -68,7 +68,7 @@ PKGS_TO_INSTALL=" python3-feedparser \ python3-pil \ python3-jinja2 \ - python3-ldap3 \ + python3-ldap \ python3-lxml \ python3-mako \ python3-mock \ diff --git a/debian/control b/debian/control index 629c52aa05a4..0530ba7ace67 100644 --- a/debian/control +++ b/debian/control @@ -51,7 +51,7 @@ Replaces: tinyerp-server, openerp-server, openerp-web, openerp Recommends: ${python3:Recommends}, postgresql, - python3-pyldap, + python3-ldap, Description: Open Source Apps To Grow Your Business Odoo, formerly known as OpenERP, is a suite of open-source business apps written in Python and released under the LGPLv3 license. This suite of diff --git a/odoo/addons/base/models/ir_module.py b/odoo/addons/base/models/ir_module.py index 330bd41ffeaa..1d592947d22b 100644 --- a/odoo/addons/base/models/ir_module.py +++ b/odoo/addons/base/models/ir_module.py @@ -315,7 +315,7 @@ class Module(models.Model): except pkg_resources.DistributionNotFound as e: try: importlib.import_module(pydep) - _logger.warning("python external dependency %s should be replaced by it's PyPI package name", pydep) + _logger.info("python external dependency on '%s' does not appear to be a valid PyPI package. Using a PyPI package name is recommended.", pydep) except ImportError: # backward compatibility attempt failed _logger.warning("DistributionNotFound: %s", e) diff --git a/requirements.txt b/requirements.txt index 278039dfa551..2e49ba7b6824 100644 --- a/requirements.txt +++ b/requirements.txt @@ -28,7 +28,7 @@ psutil==5.5.1 psycopg2==2.7.7; sys_platform != 'win32' psycopg2==2.8.3; sys_platform == 'win32' pydot==1.4.1 -pyldap==2.4.28; sys_platform != 'win32' +python-ldap==3.1.0; sys_platform != 'win32' pyparsing==2.2.0 PyPDF2==1.26.0 pyserial==3.4 diff --git a/setup.cfg b/setup.cfg index ffccdc094ac5..3bcb7bb3686a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -33,7 +33,6 @@ requires = python3-psycopg2 python3-polib python3-pydot - python3-pyldap python3-pyparsing python3-PyPDF2 python3-pyserial diff --git a/setup.py b/setup.py index 47ea33a5a828..80baf7e0b1a9 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,7 @@ setup( ], python_requires='>=3.6', extras_require={ - 'ldap': ['pyldap'], + 'ldap': ['python-ldap'], 'SSL': ['pyopenssl'], }, tests_require=[ diff --git a/setup/win32/winpy_requirements.txt b/setup/win32/winpy_requirements.txt index ad7081536b40..cfeece68d925 100644 --- a/setup/win32/winpy_requirements.txt +++ b/setup/win32/winpy_requirements.txt @@ -19,7 +19,6 @@ polib>=1.1.0 psutil>=4.3.1 psycopg2==2.7.1 pydot==1.2.3 -pyldap>=2.4.28 pyparsing==2.1.10 PyPDF2==1.26.0 pyserial==3.1.1 -- GitLab