summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-08-01 10:51:24 +0200
committerJan Cholasta <jcholast@redhat.com>2016-09-19 08:01:26 +0200
commit984ae3858d8fb25d30b886bb953df1b06ab34ec7 (patch)
treec84023729ef3a2709325b68cbe4fa4d515d0e914
parent0c4a91348a57ee941db94b31f59952eb1fcd4565 (diff)
downloadfreeipa-984ae3858d8fb25d30b886bb953df1b06ab34ec7.tar.gz
freeipa-984ae3858d8fb25d30b886bb953df1b06ab34ec7.tar.xz
freeipa-984ae3858d8fb25d30b886bb953df1b06ab34ec7.zip
client: remove hard dependency on pam_krb5
If ipa-client-install is executed with --no-sssd, check if pam_krb5 is available before proceeding with the install. https://fedorahosted.org/freeipa/ticket/5557 Reviewed-By: Stanislav Laznicka <slaznick@redhat.com>
-rwxr-xr-xclient/ipa-client-install4
-rw-r--r--freeipa.spec.in1
-rw-r--r--ipaplatform/base/paths.py2
-rw-r--r--ipaplatform/redhat/paths.py1
4 files changed, 7 insertions, 1 deletions
diff --git a/client/ipa-client-install b/client/ipa-client-install
index 535fe65da..f22e653b4 100755
--- a/client/ipa-client-install
+++ b/client/ipa-client-install
@@ -2289,6 +2289,10 @@ def install(options, env, fstore, statestore):
# when installing with '--no-sssd' option, check whether nss-ldap is installed
if not options.sssd:
+ if not os.path.exists(paths.PAM_KRB5_SO):
+ root_logger.error("The pam_krb5 package must be installed")
+ return CLIENT_INSTALL_ERROR
+
(nssldap_installed, nosssd_files) = nssldap_exists()
if not nssldap_installed:
root_logger.error("One of these packages must be installed: " +
diff --git a/freeipa.spec.in b/freeipa.spec.in
index 589060bc6..3b0e4b201 100644
--- a/freeipa.spec.in
+++ b/freeipa.spec.in
@@ -326,7 +326,6 @@ Requires: cyrus-sasl-gssapi%{?_isa}
Requires: ntp
Requires: krb5-workstation
Requires: authconfig
-Requires: pam_krb5
Requires: curl
# NIS domain name config: /usr/lib/systemd/system/*-domainname.service
Requires: initscripts
diff --git a/ipaplatform/base/paths.py b/ipaplatform/base/paths.py
index f927a7a99..025bed6b0 100644
--- a/ipaplatform/base/paths.py
+++ b/ipaplatform/base/paths.py
@@ -191,11 +191,13 @@ class BasePathNamespace(object):
USR_LIB_DIRSRV = "/usr/lib/dirsrv"
LIB_FIREFOX = "/usr/lib/firefox"
LIBSOFTHSM2_SO = "/usr/lib/pkcs11/libsofthsm2.so"
+ PAM_KRB5_SO = "/usr/lib/security/pam_krb5.so"
LIB_SYSTEMD_SYSTEMD_DIR = "/usr/lib/systemd/system/"
BIND_LDAP_SO_64 = "/usr/lib64/bind/ldap.so"
USR_LIB_DIRSRV_64 = "/usr/lib64/dirsrv"
LIB64_FIREFOX = "/usr/lib64/firefox"
LIBSOFTHSM2_SO_64 = "/usr/lib64/pkcs11/libsofthsm2.so"
+ PAM_KRB5_SO_64 = "/usr/lib64/security/pam_krb5.so"
DOGTAG_IPA_CA_RENEW_AGENT_SUBMIT = "/usr/libexec/certmonger/dogtag-ipa-ca-renew-agent-submit"
DOGTAG_IPA_RENEW_AGENT_SUBMIT = "/usr/libexec/certmonger/dogtag-ipa-renew-agent-submit"
IPA_SERVER_GUARD = "/usr/libexec/certmonger/ipa-server-guard"
diff --git a/ipaplatform/redhat/paths.py b/ipaplatform/redhat/paths.py
index b80a1b47a..b27b065ad 100644
--- a/ipaplatform/redhat/paths.py
+++ b/ipaplatform/redhat/paths.py
@@ -32,6 +32,7 @@ class RedHatPathNamespace(BasePathNamespace):
# https://docs.python.org/2/library/platform.html#cross-platform
if sys.maxsize > 2**32:
LIBSOFTHSM2_SO = BasePathNamespace.LIBSOFTHSM2_SO_64
+ PAM_KRB5_SO = BasePathNamespace.PAM_KRB5_SO_64
paths = RedHatPathNamespace()