From 9aef423d4da93af97385e2bce8140ed789a00679 Mon Sep 17 00:00:00 2001 From: Martin Trigaux 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#43769 Note: This library should be replaced by the pure python "ldap3" library. X-original-commit: 1afd0ccf20881ba97e3c07dffb33e9a3a0b2cda4 Signed-off-by: Christophe Monniez (moc) --- 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 f31047def21..64f802b01e5 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 d70b6a54508..fa17447c510 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 82d0b6d96b0..44061121115 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 629c52aa05a..0530ba7ace6 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 83541629921..b10ca516f74 100644 --- a/odoo/addons/base/models/ir_module.py +++ b/odoo/addons/base/models/ir_module.py @@ -320,7 +320,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 278039dfa55..2e49ba7b682 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 ffccdc094ac..3bcb7bb3686 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 47ea33a5a82..80baf7e0b1a 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 ad7081536b4..cfeece68d92 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