diff options
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | Makefile | 9 | ||||
-rw-r--r-- | configure.ac | 35 | ||||
-rw-r--r-- | freeipa.spec.in | 23 | ||||
-rw-r--r-- | ipaplatform/__init__.py.in | 20 | ||||
-rw-r--r-- | ipaplatform/base/services.py | 5 | ||||
-rw-r--r-- | ipaplatform/fedora/__init__.py | 1 | ||||
-rw-r--r-- | ipaplatform/rhel/__init__.py | 1 | ||||
-rw-r--r-- | ipaserver/dcerpc.py | 2 | ||||
-rw-r--r-- | pylint_plugins.py | 20 |
10 files changed, 45 insertions, 76 deletions
diff --git a/.gitignore b/.gitignore index 0a4a83fe0..ac69f97bf 100644 --- a/.gitignore +++ b/.gitignore @@ -74,3 +74,8 @@ freeipa2-dev-doc !/ipapython/Makefile /ipaplatform/__init__.py +/ipaplatform/constants.py +/ipaplatform/paths.py +/ipaplatform/services.py +/ipaplatform/tasks.py +/ipaplatform/setup.py @@ -13,8 +13,6 @@ PRJ_PREFIX=freeipa RPMBUILD ?= $(PWD)/rpmbuild TARGET ?= master -SUPPORTED_PLATFORM ?= fedora - IPA_NUM_VERSION ?= $(shell printf %d%02d%02d $(IPA_VERSION_MAJOR) $(IPA_VERSION_MINOR) $(IPA_VERSION_RELEASE)) # After updating the version in VERSION you should run the version-update @@ -167,13 +165,6 @@ ipapython/version.py: ipapython/version.py.in FORCE ipasetup.py: ipasetup.py.in FORCE sed -e s/__VERSION__/$(IPA_VERSION)/ $< > $@ -ipaplatform/__init__.py: ipaplatform/__init__.py.in FORCE - if [ "$(SUPPORTED_PLATFORM)" != "" ]; then \ - sed -e s/__PLATFORM__/$(SUPPORTED_PLATFORM)/ \ - $< > $@; \ - rm -f ipaplatform/constants.py ipaplatform/paths.py ipaplatform/services.py ipaplatform/tasks.py ; \ - fi - .PHONY: egg_info egg_info: ipapython/version.py ipaplatform/__init__.py ipasetup.py for directory in $(PYPKGDIRS); do \ diff --git a/configure.ac b/configure.ac index 47e9295ff..1f4865c7a 100644 --- a/configure.ac +++ b/configure.ac @@ -309,6 +309,35 @@ if test "x$MSGATTRIB" = "xno"; then fi dnl --------------------------------------------------------------------------- +dnl IPA platform +dnl --------------------------------------------------------------------------- +AC_ARG_WITH([ipaplatform], + [AC_HELP_STRING([--with-ipaplatform], + [IPA platform module to use])], + [IPAPLATFORM=${withval}], + [IPAPLATFORM=""]) +AC_MSG_CHECKING([supported IPA platform]) + +if test "x${IPAPLATFORM}" == "x"; then + if test -r "/etc/os-release"; then + IPAPLATFORM=$(. /etc/os-release; echo "$ID") + else + AC_MSG_ERROR([unable to read /etc/os-release]) + fi + if test "x${IPAPLATFORM}" == "x"; then + AC_MSG_ERROR([unable to find ID variable in /etc/os-release]) + fi +fi + +if test ! -d "ipaplatform/${IPAPLATFORM}"; then + AC_MSG_ERROR([IPA platform ${IPAPLATFORM} is not supported]) +fi + +AC_SUBST([IPAPLATFORM]) +AC_MSG_RESULT([${IPAPLATFORM}]) + + +dnl --------------------------------------------------------------------------- dnl Finish dnl --------------------------------------------------------------------------- @@ -360,6 +389,12 @@ AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) # Files +AC_CONFIG_LINKS([ipaplatform/__init__.py:ipaplatform/$IPAPLATFORM/__init__.py + ipaplatform/constants.py:ipaplatform/$IPAPLATFORM/constants.py + ipaplatform/paths.py:ipaplatform/$IPAPLATFORM/paths.py + ipaplatform/services.py:ipaplatform/$IPAPLATFORM/services.py + ipaplatform/tasks.py:ipaplatform/$IPAPLATFORM/tasks.py + ]) AC_CONFIG_FILES([ asn1/Makefile diff --git a/freeipa.spec.in b/freeipa.spec.in index 495ce92a8..423884ff5 100644 --- a/freeipa.spec.in +++ b/freeipa.spec.in @@ -24,11 +24,6 @@ %global plugin_dir %{_libdir}/dirsrv/plugins %global etc_systemd_dir %{_sysconfdir}/systemd/system %global gettext_domain ipa -%if 0%{?rhel} -%global platform_module rhel -%else -%global platform_module fedora -%endif %define _hardened_build 1 @@ -655,19 +650,8 @@ export JAVA_STACK_SIZE="8m" export CFLAGS="%{optflags} $CFLAGS" export LDFLAGS="%{__global_ldflags} $LDFLAGS" -export SUPPORTED_PLATFORM=%{platform_module} -# Force re-generate of platform support export IPA_VENDOR_VERSION_SUFFIX=-%{release} -rm -f ipapython/version.py -rm -f ipaplatform/services.py -rm -f ipaplatform/tasks.py -rm -f ipaplatform/paths.py -rm -f ipaplatform/constants.py -make LIBDIR=%{_libdir} version-update -./autogen.sh --prefix=%{_usr} --sysconfdir=%{_sysconfdir} --localstatedir=%{_localstatedir} --libdir=%{_libdir} --mandir=%{_mandir} -%if ! %{ONLY_CLIENT} -%endif # ONLY_CLIENT %if ! %{ONLY_CLIENT} make IPA_VERSION_IS_GIT_SNAPSHOT=no LIBDIR=%{_libdir} %{?_smp_mflags} all @@ -686,14 +670,7 @@ make %{?_smp_mflags} client-check VERBOSE=yes LIBDIR=%{_libdir} %install rm -rf %{buildroot} -export SUPPORTED_PLATFORM=%{platform_module} -# Force re-generate of platform support export IPA_VENDOR_VERSION_SUFFIX=-%{release} -rm -f ipapython/version.py -rm -f ipaplatform/services.py -rm -f ipaplatform/tasks.py -rm -f ipaplatform/paths.py -rm -f ipaplatform/constants.py make version-update LIBDIR=%{_libdir} %if ! %{ONLY_CLIENT} make install DESTDIR=%{buildroot} LIBDIR=%{_libdir} diff --git a/ipaplatform/__init__.py.in b/ipaplatform/__init__.py.in deleted file mode 100644 index 9821bf62a..000000000 --- a/ipaplatform/__init__.py.in +++ /dev/null @@ -1,20 +0,0 @@ -# -# Copyright (C) 2015 FreeIPA Contributors see COPYING for license -# -"""Module containing platform-specific functionality. - -ipaplatform.constants -ipaplatform.paths -ipaplatform.services -ipaplatform.tasks -""" -import os - - -NAME = "__PLATFORM__" - -# Create an alias for platform specific modulues, e.g. -# 'import ipaplatform.paths' loads 'ipaplatform/NAME/paths.py'. - -__path__.append( - os.path.join(os.path.dirname(os.path.abspath(__file__)), NAME)) diff --git a/ipaplatform/base/services.py b/ipaplatform/base/services.py index ec38b28a8..750d97953 100644 --- a/ipaplatform/base/services.py +++ b/ipaplatform/base/services.py @@ -483,10 +483,7 @@ class SystemdService(PlatformService): # Objects below are expected to be exported by platform module -def base_service_class_factory(name): - raise NotImplementedError - -service = base_service_class_factory +service = None knownservices = None # System may support more time&date services. FreeIPA supports ntpd only, other diff --git a/ipaplatform/fedora/__init__.py b/ipaplatform/fedora/__init__.py index fb172ed2b..6eb647ed0 100644 --- a/ipaplatform/fedora/__init__.py +++ b/ipaplatform/fedora/__init__.py @@ -20,3 +20,4 @@ ''' This module contains Fedora specific platform files. ''' +NAME = 'fedora' diff --git a/ipaplatform/rhel/__init__.py b/ipaplatform/rhel/__init__.py index f94f06d22..0a56188bf 100644 --- a/ipaplatform/rhel/__init__.py +++ b/ipaplatform/rhel/__init__.py @@ -20,3 +20,4 @@ ''' This module contains RHEL-specific platform files. ''' +NAME = 'rhel' diff --git a/ipaserver/dcerpc.py b/ipaserver/dcerpc.py index a6d10db0f..bd1d8c1ca 100644 --- a/ipaserver/dcerpc.py +++ b/ipaserver/dcerpc.py @@ -58,7 +58,7 @@ from dns.exception import DNSException import pysss_nss_idmap import pysss import six -from ipaplatform.paths import paths # pylint: disable=import-error +from ipaplatform.paths import paths from ldap.filter import escape_filter_chars from time import sleep diff --git a/pylint_plugins.py b/pylint_plugins.py index 6273d2c84..bf357737c 100644 --- a/pylint_plugins.py +++ b/pylint_plugins.py @@ -6,11 +6,9 @@ from __future__ import print_function import copy import sys -import textwrap -from astroid import MANAGER, register_module_extender +from astroid import MANAGER from astroid import scoped_nodes -from astroid.builder import AstroidBuilder def register(linter): @@ -257,19 +255,3 @@ def fix_ipa_classes(cls): fake_class(cls, ipa_class_members[class_name_with_module]) MANAGER.register_transform(scoped_nodes.Class, fix_ipa_classes) - - -def ipaplatform_transform(): - """Module aliases for IpaPlatformImporter - """ - return AstroidBuilder(MANAGER).string_build(textwrap.dedent( - """ - from ipaplatform.base import constants - from ipaplatform.base import paths - from ipaplatform.base import services - from ipaplatform.base import tasks - """ - )) - - -register_module_extender(MANAGER, 'ipaplatform', ipaplatform_transform) |