From bcf5e9f980b3725b82e8f1ae4b4778150f67e225 Mon Sep 17 00:00:00 2001 From: Viktor Ashirov Date: Dec 10 2019 15:40:32 +0000 Subject: Issue 50771 - 1.4.2.5 doesn't compile due to error ModuleNotFoundError: No module named 'pkg_resources.extern' Bug Description: Arch Linux ships python-setuptools stripped of vendored packages. This makes lib389 fail with ModuleNotFoundError on import. Fix Description: Use a fallback to `packaging` module. Fixes: https://pagure.io/389-ds-base/issue/50771 Relates: https://pagure.io/389-ds-base/issue/50712 Reviewed by: mhonek (Thanks!) --- diff --git a/src/lib389/lib389/utils.py b/src/lib389/lib389/utils.py index 70a3a10..36422dd 100644 --- a/src/lib389/lib389/utils.py +++ b/src/lib389/lib389/utils.py @@ -40,7 +40,12 @@ import shlex import operator import subprocess import math -from pkg_resources.extern.packaging.version import LegacyVersion +# Setuptools ships with 'packaging' module, let's use it from there +try: + from pkg_resources.extern.packaging.version import LegacyVersion +# Fallback to a normal 'packaging' module in case 'setuptools' is stripped +except: + from packaging.version import LegacyVersion from socket import getfqdn from ldapurl import LDAPUrl from contextlib import closing