Port all setup.py to setuptools

All setup.py files are now using setuptools through a common file
ipasetup.py. The file is auto-generated and contain all common
settings.

Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Petr Spacek <pspacek@redhat.com>
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
This commit is contained in:
Christian Heimes
2016-10-04 13:23:22 +02:00
committed by Petr Vobornik
parent 8f98fa1bd5
commit 4cd83fb51c
23 changed files with 383 additions and 453 deletions

11
.gitignore vendored
View File

@@ -39,8 +39,12 @@ freeipa2-dev-doc
/freeipa.spec
!/Makefile
/dist/
/*/dist/
/RELEASE
/rpmbuild/
# Build
/ipasetup.py
*.egg-info
# Subdirectories
/daemons/ipa-otpd/ipa-otpd
@@ -64,16 +68,9 @@ freeipa2-dev-doc
/client/ipa-join
/client/ipa-rmkeytab
/ipatests/setup.py
/ipaclient/setup.py
/ipalib/setup.py
!/ipalib/Makefile
/ipapython/setup.py
/ipapython/version.py
!/ipapython/Makefile
/ipaplatform/__init__.py
/ipaplatform/setup.py

View File

@@ -1,2 +0,0 @@
include COPYING TODO lite-server.py
include tests/*/*.py

View File

@@ -6,6 +6,7 @@ include VERSION
SUBDIRS=asn1 daemons install ipapython ipalib
CLIENTDIRS=ipapython ipalib client asn1
CLIENTPYDIRS=ipaclient ipaplatform
PYPKGDIRS=$(CLIENTPYDIRS) ipalib ipapython ipaserver ipatests
PRJ_PREFIX=freeipa
@@ -74,6 +75,10 @@ all: bootstrap-autogen server tests
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
# empty target to force executation
.PHONY=FORCE
FORCE:
client: client-autogen
@for subdir in $(CLIENTDIRS); do \
(cd $$subdir && $(MAKE) all) || exit 1; \
@@ -161,31 +166,40 @@ test:
release-update:
if [ ! -e RELEASE ]; then echo 0 > RELEASE; fi
version-update: release-update
ipapython/version.py: ipapython/version.py.in FORCE
sed -e s/__VERSION__/$(IPA_VERSION)/ $< > $@
sed -i -e "s:__NUM_VERSION__:$(IPA_NUM_VERSION):" $@
sed -i -e "s:__VENDOR_VERSION__:$(IPA_VENDOR_VERSION):" $@
sed -i -e "s:__API_VERSION__:$(IPA_API_VERSION_MAJOR).$(IPA_API_VERSION_MINOR):" $@
grep -Po '(?<=default: ).*' API.txt | sed -n -i -e "/__DEFAULT_PLUGINS__/!{p;b};r /dev/stdin" $@
touch -r $< $@
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 \
pushd $${directory} ; \
$(PYTHON) setup.py egg_info $(EXTRA_SETUP); \
popd ; \
done
version-update: release-update ipapython/version.py ipaplatform/__init__.py ipasetup.py egg_info
sed -e s/__VERSION__/$(IPA_VERSION)/ -e s/__RELEASE__/$(IPA_RPM_RELEASE)/ \
freeipa.spec.in > freeipa.spec
sed -e s/__VERSION__/$(IPA_VERSION)/ version.m4.in \
> version.m4
sed -e s/__VERSION__/$(IPA_VERSION)/ ipapython/setup.py.in \
> ipapython/setup.py
sed -e s/__VERSION__/$(IPA_VERSION)/ ipaplatform/setup.py.in \
> ipaplatform/setup.py
sed -e s/__VERSION__/$(IPA_VERSION)/ ipalib/setup.py.in \
> ipalib/setup.py
sed -e s/__VERSION__/$(IPA_VERSION)/ ipapython/version.py.in \
> ipapython/version.py
sed -e s/__VERSION__/$(IPA_VERSION)/ ipatests/setup.py.in \
> ipatests/setup.py
sed -e s/__VERSION__/$(IPA_VERSION)/ ipaclient/setup.py.in \
> ipaclient/setup.py
sed -e s/__NUM_VERSION__/$(IPA_NUM_VERSION)/ install/ui/src/libs/loader.js.in \
> install/ui/src/libs/loader.js
sed -i -e "s:__API_VERSION__:$(IPA_API_VERSION_MAJOR).$(IPA_API_VERSION_MINOR):" install/ui/src/libs/loader.js
sed -i -e "s:__NUM_VERSION__:$(IPA_NUM_VERSION):" ipapython/version.py
sed -i -e "s:__VENDOR_VERSION__:$(IPA_VENDOR_VERSION):" ipapython/version.py
sed -i -e "s:__API_VERSION__:$(IPA_API_VERSION_MAJOR).$(IPA_API_VERSION_MINOR):" ipapython/version.py
grep -Po '(?<=default: ).*' API.txt | sed -n -i -e "/__DEFAULT_PLUGINS__/!{p;b};r /dev/stdin" ipapython/version.py
touch -r ipapython/version.py.in ipapython/version.py
sed -e s/__VERSION__/$(IPA_VERSION)/ daemons/ipa-version.h.in \
> daemons/ipa-version.h
sed -i -e "s:__NUM_VERSION__:$(IPA_NUM_VERSION):" daemons/ipa-version.h
@@ -194,27 +208,22 @@ version-update: release-update
sed -e s/__VERSION__/$(IPA_VERSION)/ client/version.m4.in \
> client/version.m4
if [ "$(SUPPORTED_PLATFORM)" != "" ]; then \
sed -e s/__PLATFORM__/$(SUPPORTED_PLATFORM)/ \
ipaplatform/__init__.py.in > ipaplatform/__init__.py; \
fi
if [ "$(SKIP_API_VERSION_CHECK)" != "yes" ]; then \
./makeapi --validate && \
./makeaci --validate; \
fi
server: version-update
$(PYTHON) setup.py build
cd ipaserver && $(PYTHON) setup.py build
cd ipaplatform && $(PYTHON) setup.py build
server-install: server
if [ "$(DESTDIR)" = "" ]; then \
$(PYTHON) setup.py install; \
(cd ipaplatform && $(PYTHON) setup.py install); \
(cd ipaserver && $(PYTHON) setup.py install) || exit 1; \
(cd ipaplatform && $(PYTHON) setup.py install) || exit 1; \
else \
$(PYTHON) setup.py install --root $(DESTDIR); \
(cd ipaplatform && $(PYTHON) setup.py install --root $(DESTDIR)); \
(cd ipaserver && $(PYTHON) setup.py install --root $(DESTDIR)) || exit 1; \
(cd ipaplatform && $(PYTHON) setup.py install --root $(DESTDIR)) || exit 1; \
fi
tests: version-update tests-man-autogen
@@ -296,6 +305,7 @@ clean: version-update
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
rm -rf ipasetup.py ipasetup.py?
rm -f *~
distclean: version-update

5
ipaclient/setup.cfg Normal file
View File

@@ -0,0 +1,5 @@
[bdist_wheel]
universal = 1
[metadata]
license_file = ../COPYING

45
ipaclient/setup.py Normal file
View File

@@ -0,0 +1,45 @@
#!/usr/bin/python2
# Copyright (C) 2007 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA client library
FreeIPA is a server for identity, policy, and audit.
"""
import os
import sys
# include ../ for ipasetup.py
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from ipasetup import ipasetup # noqa: E402
ipasetup(
name="ipaclient",
doc=__doc__,
scripts=['../ipa'],
package_dir={'ipaclient': ''},
packages=[
"ipaclient",
"ipaclient.plugins",
"ipaclient.remote_plugins",
"ipaclient.remote_plugins.2_49",
"ipaclient.remote_plugins.2_114",
"ipaclient.remote_plugins.2_156",
"ipaclient.remote_plugins.2_164",
],
)

View File

@@ -1,80 +0,0 @@
#!/usr/bin/python2
# Copyright (C) 2007 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA client library
FreeIPA is a server for identity, policy, and audit.
"""
DOCLINES = __doc__.split("\n")
import os
import sys
CLASSIFIERS = """\
Intended Audience :: System Environment/Base
License :: GPL
Programming Language :: Python
Operating System :: POSIX
Operating System :: Unix
"""
# BEFORE importing distutils, remove MANIFEST. distutils doesn't properly
# update it when the contents of directories change.
if os.path.exists('MANIFEST'):
os.remove('MANIFEST')
def setup_package():
from distutils.core import setup
old_path = os.getcwd()
local_path = os.path.dirname(os.path.abspath(sys.argv[0]))
os.chdir(local_path)
sys.path.insert(0,local_path)
try:
setup(
name = "ipaclient",
version = "__VERSION__",
license = "GPL",
url = "http://www.freeipa.org/",
description = DOCLINES[0],
long_description = "\n".join(DOCLINES[2:]),
download_url = "http://www.freeipa.org/page/Downloads",
classifiers=[line for line in CLASSIFIERS.split('\n') if line],
platforms = ["Linux", "Solaris", "Unix"],
package_dir = {'ipaclient': ''},
packages = [
"ipaclient",
"ipaclient.plugins",
"ipaclient.remote_plugins",
"ipaclient.remote_plugins.2_49",
"ipaclient.remote_plugins.2_114",
"ipaclient.remote_plugins.2_156",
"ipaclient.remote_plugins.2_164",
],
scripts=['../ipa'],
)
finally:
del sys.path[0]
os.chdir(old_path)
return
if __name__ == '__main__':
setup_package()

View File

@@ -16,10 +16,9 @@ install:
fi
clean:
rm -f *~ *.pyc __pycache__/
rm -rf *~ *.pyc __pycache__/
distclean: clean
rm -f setup.py
maintainer-clean: distclean
rm -rf build

5
ipalib/setup.cfg Normal file
View File

@@ -0,0 +1,5 @@
[bdist_wheel]
universal = 1
[metadata]
license_file = ../COPYING

38
ipalib/setup.py Normal file
View File

@@ -0,0 +1,38 @@
#!/usr/bin/python2
# Copyright (C) 2007 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA common python library
FreeIPA is a server for identity, policy, and audit.
"""
import os
import sys
# include ../ for ipasetup.py
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from ipasetup import ipasetup # noqa: E402
ipasetup(
name="ipalib",
doc=__doc__,
package_dir={'ipalib': ''},
packages=[
"ipalib",
],
)

View File

@@ -1,71 +0,0 @@
#!/usr/bin/python2
# Copyright (C) 2007 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA common python library
FreeIPA is a server for identity, policy, and audit.
"""
DOCLINES = __doc__.split("\n")
import os
import sys
CLASSIFIERS = """\
Intended Audience :: System Environment/Base
License :: GPL
Programming Language :: Python
Operating System :: POSIX
Operating System :: Unix
"""
# BEFORE importing distutils, remove MANIFEST. distutils doesn't properly
# update it when the contents of directories change.
if os.path.exists('MANIFEST'):
os.remove('MANIFEST')
def setup_package():
from distutils.core import setup
old_path = os.getcwd()
local_path = os.path.dirname(os.path.abspath(sys.argv[0]))
os.chdir(local_path)
sys.path.insert(0,local_path)
try:
setup(
name = "ipalib",
version = "__VERSION__",
license = "GPL",
url = "http://www.freeipa.org/",
description = DOCLINES[0],
long_description = "\n".join(DOCLINES[2:]),
download_url = "http://www.freeipa.org/page/Downloads",
classifiers=[line for line in CLASSIFIERS.split('\n') if line],
platforms = ["Linux", "Solaris", "Unix"],
package_dir = {'ipalib': ''},
packages = ["ipalib"],
)
finally:
del sys.path[0]
os.chdir(old_path)
return
if __name__ == '__main__':
setup_package()

5
ipaplatform/setup.cfg Normal file
View File

@@ -0,0 +1,5 @@
[bdist_wheel]
universal = 1
[metadata]
license_file = ../COPYING

42
ipaplatform/setup.py Normal file
View File

@@ -0,0 +1,42 @@
#!/usr/bin/python2
# Copyright (C) 2014 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA platform
FreeIPA is a server for identity, policy, and audit.
"""
import os
import sys
# include ../ for ipasetup.py
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from ipasetup import ipasetup # noqa: E402
ipasetup(
name="ipaplatform",
doc=__doc__,
package_dir={'ipaplatform': ''},
packages=[
"ipaplatform",
"ipaplatform.base",
"ipaplatform.fedora",
"ipaplatform.redhat",
"ipaplatform.rhel"
],
)

View File

@@ -1,79 +0,0 @@
#!/usr/bin/python2
# Copyright (C) 2014 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA platform
FreeIPA is a server for identity, policy, and audit.
"""
DOCLINES = __doc__.split("\n")
import os
import sys
CLASSIFIERS = """\
Development Status :: 4 - Beta
Intended Audience :: System Environment/Base
License :: GPL
Programming Language :: Python
Operating System :: POSIX
Operating System :: Unix
"""
# BEFORE importing distutils, remove MANIFEST. distutils doesn't properly
# update it when the contents of directories change.
if os.path.exists('MANIFEST'):
os.remove('MANIFEST')
def setup_package():
from distutils.core import setup
old_path = os.getcwd()
local_path = os.path.dirname(os.path.abspath(sys.argv[0]))
os.chdir(local_path)
sys.path.insert(0, local_path)
try:
setup(
name = "ipaplatform",
version = "__VERSION__",
license = "GPL",
author = "FreeIPA Developers",
author_email = "freeipa-devel@redhat.com",
maintainer = "FreeIPA Developers",
maintainer_email = "freeipa-devel@redhat.com",
url = "http://www.freeipa.org/",
description = DOCLINES[0],
long_description = "\n".join(DOCLINES[2:]),
download_url = "http://www.freeipa.org/page/Downloads",
classifiers=[line for line in CLASSIFIERS.split('\n') if line],
package_dir = {'ipaplatform': ''},
packages = ["ipaplatform",
"ipaplatform.base",
"ipaplatform.fedora",
"ipaplatform.redhat",
"ipaplatform.rhel"],
)
finally:
del sys.path[0]
os.chdir(old_path)
return
if __name__ == '__main__':
setup_package()

View File

@@ -20,13 +20,13 @@ install:
done
clean:
rm -f *~ *.pyc __pycache__/
rm -rf *~ *.pyc __pycache__/
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
distclean: clean
rm -f setup.py ipa-python.spec version.py
rm -f ipa-python.spec version.py
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done

5
ipapython/setup.cfg Normal file
View File

@@ -0,0 +1,5 @@
[bdist_wheel]
universal = 1
[metadata]
license_file = ../COPYING

41
ipapython/setup.py Executable file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/python2
# Copyright (C) 2007 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA python support library
FreeIPA is a server for identity, policy, and audit.
"""
import os
import sys
# include ../ for ipasetup.py
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from ipasetup import ipasetup # noqa: E402
ipasetup(
name="ipapython",
doc=__doc__,
package_dir={'ipapython': ''},
packages=[
"ipapython",
"ipapython.dnssec",
"ipapython.secrets",
"ipapython.install"
],
)

View File

@@ -1,79 +0,0 @@
#!/usr/bin/python2
# Copyright (C) 2007 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA python support library
FreeIPA is a server for identity, policy, and audit.
"""
DOCLINES = __doc__.split("\n")
import os
import sys
CLASSIFIERS = """\
Development Status :: 4 - Beta
Intended Audience :: System Environment/Base
License :: GPL
Programming Language :: Python
Operating System :: POSIX
Operating System :: Unix
"""
# BEFORE importing distutils, remove MANIFEST. distutils doesn't properly
# update it when the contents of directories change.
if os.path.exists('MANIFEST'):
os.remove('MANIFEST')
def setup_package():
from distutils.core import setup
old_path = os.getcwd()
local_path = os.path.dirname(os.path.abspath(sys.argv[0]))
os.chdir(local_path)
sys.path.insert(0,local_path)
try:
setup(
name = "ipapython",
version = "__VERSION__",
license = "GPL",
author = "Karl MacMillan, et.al.",
author_email = "kmacmill@redhat.com",
maintainer = "freeIPA Developers",
maintainer_email = "freeipa-devel@redhat.com",
url = "http://www.freeipa.org/",
description = DOCLINES[0],
long_description = "\n".join(DOCLINES[2:]),
download_url = "http://www.freeipa.org/page/Downloads",
classifiers=[line for line in CLASSIFIERS.split('\n') if line],
platforms = ["Linux", "Solaris", "Unix"],
package_dir = {'ipapython': ''},
packages = ["ipapython",
"ipapython.dnssec",
"ipapython.secrets",
"ipapython.install"],
)
finally:
del sys.path[0]
os.chdir(old_path)
return
if __name__ == '__main__':
setup_package()

5
ipaserver/setup.cfg Normal file
View File

@@ -0,0 +1,5 @@
[bdist_wheel]
universal = 1
[metadata]
license_file = ../COPYING

View File

@@ -20,18 +20,23 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
Python-level packaging using distutils.
Python-level packaging using setuptools
"""
import os
import sys
from distutils.core import setup
import ipalib
# include ../ for ipasetup.py and ipalib
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import ipalib # noqa: E402
from ipasetup import ipasetup # noqa: E402
setup(
ipasetup(
name='freeipa',
doc=__doc__,
version=ipalib.__version__,
license='GPLv3+',
url='http://freeipa.org/',
package_dir={'ipaserver': ''},
packages=[
'ipaserver',
'ipaserver.advise',

71
ipasetup.py.in Normal file
View File

@@ -0,0 +1,71 @@
#!/usr/bin/python2
# Copyright (C) 2014 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import os
import sys
common_args = dict(
version="__VERSION__",
license="GPL",
author="FreeIPA Developers",
author_email="freeipa-devel@redhat.com",
maintainer="FreeIPA Developers",
maintainer_email="freeipa-devel@redhat.com",
url="http://www.freeipa.org/",
download_url="http://www.freeipa.org/page/Downloads",
platforms=["Linux", "Solaris", "Unix"],
classifiers=[
"Development Status :: 5 - Production/Stable",
("Topic :: System :: Systems Administration :: "
"Authentication/Directory :: LDAP"),
"Topic :: Internet :: Name Service (DNS)",
"Intended Audience :: System Environment/Base",
"License :: GPL",
"Programming Language :: Python",
"Operating System :: POSIX",
"Operating System :: Unix",
],
)
local_path = os.path.dirname(os.path.abspath(sys.argv[0]))
old_path = os.path.abspath(os.getcwd())
def ipasetup(name, doc, **kwargs):
doclines = doc.split("\n")
setup_kwargs = common_args.copy()
setup_kwargs.update(
name=name,
description=doclines[0],
long_description="\n".join(doclines[:2]),
**kwargs
)
# exclude setup helpers from getting installed
epd = setup_kwargs.setdefault('exclude_package_data', {})
epd.setdefault('', []).extend(['*/setup.py', '*/ipasetup.py'])
os.chdir(local_path)
try:
# BEFORE importing distutils, remove MANIFEST. distutils doesn't
# properly update it when the contents of directories change.
if os.path.isfile('MANIFEST'):
os.unlink('MANIFEST')
from setuptools import setup
return setup(**setup_kwargs)
finally:
os.chdir(old_path)

5
ipatests/setup.cfg Normal file
View File

@@ -0,0 +1,5 @@
[bdist_wheel]
universal = 1
[metadata]
license_file = ../COPYING

60
ipatests/setup.py Normal file
View File

@@ -0,0 +1,60 @@
#!/usr/bin/python2
# Copyright (C) 2007 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA tests
FreeIPA is a server for identity, policy, and audit.
"""
import os
import sys
# include ../ for ipasetup.py
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from ipasetup import ipasetup # noqa: E402
ipasetup(
name="ipatests",
doc=__doc__,
package_dir={'ipatests': ''},
packages=[
"ipatests",
"ipatests.pytest_plugins",
"ipatests.test_cmdline",
"ipatests.test_install",
"ipatests.test_integration",
"ipatests.test_ipalib",
"ipatests.test_ipapython",
"ipatests.test_ipaserver",
"ipatests.test_ipaserver.test_install",
"ipatests.test_pkcs10",
"ipatests.test_webui",
"ipatests.test_xmlrpc",
"ipatests.test_xmlrpc.tracker"
],
scripts=['ipa-run-tests', 'ipa-test-config', 'ipa-test-task'],
package_data={
'ipatests': ['pytest.ini'],
'ipatests.test_install': ['*.update'],
'ipatests.test_integration': ['scripts/*'],
'ipatests.test_ipalib': ['data/*'],
'ipatests.test_pkcs10': ['*.csr'],
"ipatests.test_ipaserver": ['data/*'],
'ipatests.test_xmlrpc': ['data/*'],
}
)

View File

@@ -1,97 +0,0 @@
#!/usr/bin/python2
# Copyright (C) 2007 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""FreeIPA tests
FreeIPA is a server for identity, policy, and audit.
"""
DOCLINES = __doc__.split("\n")
import os
import sys
CLASSIFIERS = """\
Development Status :: 4 - Beta
Intended Audience :: System Environment/Base
License :: GPL
Programming Language :: Python
Operating System :: POSIX
Operating System :: Unix
"""
# BEFORE importing distutils, remove MANIFEST. distutils doesn't properly
# update it when the contents of directories change.
if os.path.exists('MANIFEST'):
os.remove('MANIFEST')
def setup_package():
from distutils.core import setup
old_path = os.getcwd()
local_path = os.path.dirname(os.path.abspath(sys.argv[0]))
os.chdir(local_path)
sys.path.insert(0, local_path)
try:
setup(
name = "ipatests",
version = "__VERSION__",
license = "GPL",
author = "FreeIPA Developers",
author_email = "freeipa-devel@redhat.com",
maintainer = "FreeIPA Developers",
maintainer_email = "freeipa-devel@redhat.com",
url = "http://www.freeipa.org/",
description = DOCLINES[0],
long_description = "\n".join(DOCLINES[2:]),
download_url = "http://www.freeipa.org/page/Downloads",
classifiers=[line for line in CLASSIFIERS.split('\n') if line],
package_dir = {'ipatests': ''},
packages = ["ipatests",
"ipatests.pytest_plugins",
"ipatests.test_cmdline",
"ipatests.test_install",
"ipatests.test_integration",
"ipatests.test_ipalib",
"ipatests.test_ipapython",
"ipatests.test_ipaserver",
"ipatests.test_ipaserver.test_install",
"ipatests.test_pkcs10",
"ipatests.test_webui",
"ipatests.test_xmlrpc",
"ipatests.test_xmlrpc.tracker"],
scripts=['ipa-run-tests', 'ipa-test-config', 'ipa-test-task'],
package_data = {
'ipatests': ['pytest.ini'],
'ipatests.test_install': ['*.update'],
'ipatests.test_integration': ['scripts/*'],
'ipatests.test_ipalib': ['data/*'],
'ipatests.test_pkcs10': ['*.csr'],
"ipatests.test_ipaserver": ['data/*'],
'ipatests.test_xmlrpc': ['data/*'],
}
)
finally:
del sys.path[0]
os.chdir(old_path)
return
if __name__ == '__main__':
setup_package()