mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Move csrgen templates into ipaclient package
csrgen broke packaging of ipaclient for PyPI. All csrgen related resources are now package data of ipaclient package. Package data is accessed with Jinja's PackageLoader() or through pkg_resources. https://pagure.io/freeipa/issue/6714 Signed-off-by: Christian Heimes <cheimes@redhat.com> Reviewed-By: Ben Lipton <blipton@redhat.com> Reviewed-By: Martin Basti <mbasti@redhat.com>
This commit is contained in:
parent
f8d7e37a09
commit
80be181629
@ -463,7 +463,6 @@ AC_CONFIG_FILES([
|
||||
install/share/Makefile
|
||||
install/share/advise/Makefile
|
||||
install/share/advise/legacy/Makefile
|
||||
install/share/csrgen/Makefile
|
||||
install/share/profiles/Makefile
|
||||
install/share/schema.d/Makefile
|
||||
install/ui/Makefile
|
||||
|
@ -1231,13 +1231,6 @@ fi
|
||||
%{_usr}/share/ipa/advise/legacy/*.template
|
||||
%dir %{_usr}/share/ipa/profiles
|
||||
%{_usr}/share/ipa/profiles/*.cfg
|
||||
%dir %{_usr}/share/ipa/csrgen
|
||||
%dir %{_usr}/share/ipa/csrgen/templates
|
||||
%{_usr}/share/ipa/csrgen/templates/*.tmpl
|
||||
%dir %{_usr}/share/ipa/csrgen/profiles
|
||||
%{_usr}/share/ipa/csrgen/profiles/*.json
|
||||
%dir %{_usr}/share/ipa/csrgen/rules
|
||||
%{_usr}/share/ipa/csrgen/rules/*.json
|
||||
%dir %{_usr}/share/ipa/html
|
||||
%{_usr}/share/ipa/html/ffconfig.js
|
||||
%{_usr}/share/ipa/html/ffconfig_page.js
|
||||
@ -1364,6 +1357,9 @@ fi
|
||||
%{python_sitelib}/ipaclient/plugins/*.py*
|
||||
%{python_sitelib}/ipaclient/remote_plugins/*.py*
|
||||
%{python_sitelib}/ipaclient/remote_plugins/2_*/*.py*
|
||||
%{python_sitelib}/ipaclient/csrgen/profiles/*.json
|
||||
%{python_sitelib}/ipaclient/csrgen/rules/*.json
|
||||
%{python_sitelib}/ipaclient/csrgen/templates/*.tmpl
|
||||
%{python_sitelib}/ipaclient-*.egg-info
|
||||
|
||||
|
||||
@ -1384,6 +1380,9 @@ fi
|
||||
%{python3_sitelib}/ipaclient/remote_plugins/__pycache__/*.py*
|
||||
%{python3_sitelib}/ipaclient/remote_plugins/2_*/*.py
|
||||
%{python3_sitelib}/ipaclient/remote_plugins/2_*/__pycache__/*.py*
|
||||
%{python3_sitelib}/ipaclient/csrgen/profiles/*.json
|
||||
%{python3_sitelib}/ipaclient/csrgen/rules/*.json
|
||||
%{python3_sitelib}/ipaclient/csrgen/templates/*.tmpl
|
||||
%{python3_sitelib}/ipaclient-*.egg-info
|
||||
|
||||
%endif # with_python3
|
||||
|
@ -2,7 +2,6 @@ NULL =
|
||||
|
||||
SUBDIRS = \
|
||||
advise \
|
||||
csrgen \
|
||||
profiles \
|
||||
schema.d \
|
||||
$(NULL)
|
||||
|
@ -1,35 +0,0 @@
|
||||
NULL =
|
||||
|
||||
profiledir = $(IPA_DATA_DIR)/csrgen/profiles
|
||||
profile_DATA = \
|
||||
profiles/caIPAserviceCert.json \
|
||||
profiles/userCert.json \
|
||||
$(NULL)
|
||||
|
||||
ruledir = $(IPA_DATA_DIR)/csrgen/rules
|
||||
rule_DATA = \
|
||||
rules/dataDNS.json \
|
||||
rules/dataEmail.json \
|
||||
rules/dataHostCN.json \
|
||||
rules/dataUsernameCN.json \
|
||||
rules/dataSubjectBase.json \
|
||||
rules/syntaxSAN.json \
|
||||
rules/syntaxSubject.json \
|
||||
$(NULL)
|
||||
|
||||
templatedir = $(IPA_DATA_DIR)/csrgen/templates
|
||||
template_DATA = \
|
||||
templates/certutil_base.tmpl \
|
||||
templates/openssl_base.tmpl \
|
||||
templates/openssl_macros.tmpl \
|
||||
$(NULL)
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(profile_DATA) \
|
||||
$(rule_DATA) \
|
||||
$(template_DATA) \
|
||||
$(NULL)
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
*~ \
|
||||
Makefile.in
|
@ -8,6 +8,8 @@ import os.path
|
||||
import pipes
|
||||
import traceback
|
||||
|
||||
import pkg_resources
|
||||
|
||||
import jinja2
|
||||
import jinja2.ext
|
||||
import jinja2.sandbox
|
||||
@ -15,7 +17,6 @@ import six
|
||||
|
||||
from ipalib import errors
|
||||
from ipalib.text import _
|
||||
from ipaplatform.paths import paths
|
||||
from ipapython.ipa_log_manager import log_mgr
|
||||
|
||||
if six.PY3:
|
||||
@ -72,10 +73,14 @@ class Formatter(object):
|
||||
"""
|
||||
base_template_name = None
|
||||
|
||||
def __init__(self, csr_data_dir=paths.CSR_DATA_DIR):
|
||||
self.jinja2 = jinja2.sandbox.SandboxedEnvironment(
|
||||
def __init__(self, csr_data_dir=None):
|
||||
if csr_data_dir is not None:
|
||||
loader = jinja2.FileSystemLoader(
|
||||
os.path.join(csr_data_dir, 'templates')),
|
||||
os.path.join(csr_data_dir, 'templates'))
|
||||
else:
|
||||
loader = jinja2.PackageLoader('ipaclient', 'csrgen/templates')
|
||||
self.jinja2 = jinja2.sandbox.SandboxedEnvironment(
|
||||
loader=loader,
|
||||
extensions=[jinja2.ext.ExprStmtExtension, IPAExtension],
|
||||
keep_trailing_newline=True, undefined=IndexableUndefined)
|
||||
|
||||
@ -277,8 +282,12 @@ class RuleProvider(object):
|
||||
|
||||
|
||||
class FileRuleProvider(RuleProvider):
|
||||
def __init__(self, csr_data_dir=paths.CSR_DATA_DIR):
|
||||
def __init__(self, csr_data_dir=None):
|
||||
self.rules = {}
|
||||
if csr_data_dir is None:
|
||||
self.csr_data_dir = pkg_resources.resource_filename(
|
||||
'ipaclient', 'csrgen')
|
||||
else:
|
||||
self.csr_data_dir = csr_data_dir
|
||||
|
||||
def _rule(self, rule_name, helper):
|
||||
|
@ -43,6 +43,13 @@ if __name__ == '__main__':
|
||||
"ipaclient.remote_plugins.2_156",
|
||||
"ipaclient.remote_plugins.2_164",
|
||||
],
|
||||
package_data={
|
||||
'ipaclient': [
|
||||
'csrgen/profiles/*.json',
|
||||
'csrgen/rules/*.json',
|
||||
'csrgen/templates/*.tmpl',
|
||||
],
|
||||
},
|
||||
install_requires=[
|
||||
"cryptography",
|
||||
"ipalib",
|
||||
@ -56,5 +63,6 @@ if __name__ == '__main__':
|
||||
extras_require={
|
||||
"install": ["ipaplatform"],
|
||||
"otptoken_yubikey": ["yubico", "usb"]
|
||||
}
|
||||
},
|
||||
zip_safe=False,
|
||||
)
|
||||
|
@ -238,7 +238,6 @@ class BasePathNamespace(object):
|
||||
SCHEMA_COMPAT_ULDIF = "/usr/share/ipa/schema_compat.uldif"
|
||||
IPA_JS_PLUGINS_DIR = "/usr/share/ipa/ui/js/plugins"
|
||||
UPDATES_DIR = "/usr/share/ipa/updates/"
|
||||
CSR_DATA_DIR = "/usr/share/ipa/csrgen"
|
||||
DICT_WORDS = "/usr/share/dict/words"
|
||||
CACHE_IPA_SESSIONS = "/var/cache/ipa/sessions"
|
||||
VAR_KERBEROS_KRB5KDC_DIR = "/var/kerberos/krb5kdc/"
|
||||
|
Loading…
Reference in New Issue
Block a user