URL: https://github.com/freeipa/freeipa/pull/671 Author: tiran Title: #671: [WIP] Slim down dependencies Action: synchronized
To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/671/head:pr671 git checkout pr671
From d9906d9e3fd5023ecd577bcac8b55ea9966028ab Mon Sep 17 00:00:00 2001 From: Christian Heimes <chei...@redhat.com> Date: Wed, 29 Mar 2017 11:20:21 +0200 Subject: [PATCH] Slim down dependencies * Remove unused install requires * Correct dependencies for yubico otptoken * Properly report optional dependency for yubico otptoken * Make jinja2 an optional dependency and csrgen an optional plugin Signed-off-by: Christian Heimes <chei...@redhat.com> --- ipaclient/plugins/csrgen.py | 8 +++++++- ipaclient/plugins/otptoken_yubikey.py | 11 ++++++++--- ipaclient/setup.py | 6 ++---- ipapython/setup.py | 2 -- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/ipaclient/plugins/csrgen.py b/ipaclient/plugins/csrgen.py index a0d99ef..0a9ede1 100644 --- a/ipaclient/plugins/csrgen.py +++ b/ipaclient/plugins/csrgen.py @@ -4,7 +4,6 @@ import six -from ipaclient.csrgen import CSRGenerator, FileRuleProvider from ipalib import api from ipalib import errors from ipalib import output @@ -15,6 +14,13 @@ from ipalib.text import _ from ipapython import dogtag +try: + import jinja2 # pylint: disable=unused-import +except ImportError: + raise errors.SkipPluginModule(reason=_("jinja2 is not installed.")) +else: + from ipaclient.csrgen import CSRGenerator, FileRuleProvider + if six.PY3: unicode = str diff --git a/ipaclient/plugins/otptoken_yubikey.py b/ipaclient/plugins/otptoken_yubikey.py index 759b722..9993ec8 100644 --- a/ipaclient/plugins/otptoken_yubikey.py +++ b/ipaclient/plugins/otptoken_yubikey.py @@ -20,15 +20,20 @@ import os import six -import usb.core -import yubico from ipalib import _, api, IntEnum -from ipalib.errors import NotFound +from ipalib.errors import NotFound, SkipPluginModule from ipalib.frontend import Command, Method, Object from ipalib.plugable import Registry from ipalib.util import classproperty +try: + import usb.core + import yubico +except ImportError: + # python-yubico depends on pyusb + raise SkipPluginModule(reason=_("python-yubico is not installed.")) + if six.PY3: unicode = str diff --git a/ipaclient/setup.py b/ipaclient/setup.py index f5be7ea..5b02341 100644 --- a/ipaclient/setup.py +++ b/ipaclient/setup.py @@ -54,15 +54,13 @@ "cryptography", "ipalib", "ipapython", - "jinja2", - "python-yubico", - "pyusb", "qrcode", "six", ], extras_require={ "install": ["ipaplatform"], - "otptoken_yubikey": ["yubico", "usb"] + "otptoken_yubikey": ["python-yubico", "pyusb"], + "csrgen": ["jinja2"], }, zip_safe=False, ) diff --git a/ipapython/setup.py b/ipapython/setup.py index f4bc3f8..650528e 100755 --- a/ipapython/setup.py +++ b/ipapython/setup.py @@ -41,12 +41,10 @@ "cryptography", "dnspython", "gssapi", - "jwcrypto", # "ipalib", # circular dependency "pyldap", "netaddr", "netifaces", - "requests", "six", ], extras_require={
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code