From bd3b07b448f3724b9abf7a4eb3b84143258a0252 Mon Sep 17 00:00:00 2001 From: Karl MacMillan Date: Tue, 16 Oct 2007 15:16:04 -0400 Subject: Use setup.py for ipa-python from William Jon McCann . --- ipa-python/MANIFEST.in | 3 ++ ipa-python/freeipa-python.spec | 33 ++++++++++----------- ipa-python/freeipa-python.spec.in | 33 ++++++++++----------- ipa-python/setup.py | 62 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 97 insertions(+), 34 deletions(-) create mode 100644 ipa-python/MANIFEST.in create mode 100644 ipa-python/setup.py diff --git a/ipa-python/MANIFEST.in b/ipa-python/MANIFEST.in new file mode 100644 index 00000000..49f2126a --- /dev/null +++ b/ipa-python/MANIFEST.in @@ -0,0 +1,3 @@ +include *.conf +include freeipa-python.spec* + diff --git a/ipa-python/freeipa-python.spec b/ipa-python/freeipa-python.spec index f2403582..5a3985aa 100755 --- a/ipa-python/freeipa-python.spec +++ b/ipa-python/freeipa-python.spec @@ -1,3 +1,6 @@ +%define pyver %(%{__python} -c 'import sys ; print sys.version[:3]') +%define pynext %(%{__python} -c 'print %{pyver} + 0.1') + Name: freeipa-python Version: 0.4.0 Release: 1%{?dist} @@ -6,16 +9,12 @@ Summary: FreeIPA authentication server Group: System Environment/Base License: GPL URL: http://www.freeipa.org -Source0: %{name}-%{version}.tgz +Source0: http://www.freeipa.org/downloads/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch - -Requires: python PyKerberos - -%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} - -%define pkgpythondir %{python_sitelib}/ipa -%define configdir /etc/ipa +BuildRequires: python >= 0:%{pyver}, python < 0:%{pynext} +Requires: python >= 0:%{pyver}, python < 0:%{pynext} +Requires: PyKerberos %description FreeIPA is a server for identity, policy, and audit. @@ -23,22 +22,22 @@ FreeIPA is a server for identity, policy, and audit. %prep %setup -q +%build +%{__python} setup.py build + %install rm -rf %{buildroot} -mkdir -p %{buildroot}%{pkgpythondir} -mkdir -p %{buildroot}%{configdir} - -make install DESTDIR=%{buildroot} - +%{__python} setup.py install -O1 --root=%{buildroot} --record=INSTALLED_FILES +sed 's|^\(.*\.pyo\)$|%ghost \1|' < INSTALLED_FILES > %{name}-%{version}.files +find $RPM_BUILD_ROOT%{_libdir}/python%{pyver}/site-packages/* -type d \ + | sed "s|^$RPM_BUILD_ROOT|%dir |" >> %{name}-%{version}.files %clean rm -rf %{buildroot} - -%files +%files -f %{name}-%{version}.files %defattr(-,root,root,-) -%{pkgpythondir}/* -%config(noreplace) %{configdir}/ipa.conf +%config(noreplace) %{_sysconfdir}/ipa.conf %changelog diff --git a/ipa-python/freeipa-python.spec.in b/ipa-python/freeipa-python.spec.in index 5da3fbfa..ed78ec0c 100755 --- a/ipa-python/freeipa-python.spec.in +++ b/ipa-python/freeipa-python.spec.in @@ -1,3 +1,6 @@ +%define pyver %(%{__python} -c 'import sys ; print sys.version[:3]') +%define pynext %(%{__python} -c 'print %{pyver} + 0.1') + Name: freeipa-python Version: VERSION Release: 1%{?dist} @@ -6,16 +9,12 @@ Summary: FreeIPA authentication server Group: System Environment/Base License: GPL URL: http://www.freeipa.org -Source0: %{name}-%{version}.tgz +Source0: http://www.freeipa.org/downloads/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch - -Requires: python PyKerberos - -%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} - -%define pkgpythondir %{python_sitelib}/ipa -%define configdir /etc/ipa +BuildRequires: python >= 0:%{pyver}, python < 0:%{pynext} +Requires: python >= 0:%{pyver}, python < 0:%{pynext} +Requires: PyKerberos %description FreeIPA is a server for identity, policy, and audit. @@ -23,22 +22,22 @@ FreeIPA is a server for identity, policy, and audit. %prep %setup -q +%build +%{__python} setup.py build + %install rm -rf %{buildroot} -mkdir -p %{buildroot}%{pkgpythondir} -mkdir -p %{buildroot}%{configdir} - -make install DESTDIR=%{buildroot} - +%{__python} setup.py install -O1 --root=%{buildroot} --record=INSTALLED_FILES +sed 's|^\(.*\.pyo\)$|%ghost \1|' < INSTALLED_FILES > %{name}-%{version}.files +find $RPM_BUILD_ROOT%{_libdir}/python%{pyver}/site-packages/* -type d \ + | sed "s|^$RPM_BUILD_ROOT|%dir |" >> %{name}-%{version}.files %clean rm -rf %{buildroot} - -%files +%files -f %{name}-%{version}.files %defattr(-,root,root,-) -%{pkgpythondir}/* -%config(noreplace) %{configdir}/ipa.conf +%config(noreplace) %{_sysconfdir}/ipa.conf %changelog diff --git a/ipa-python/setup.py b/ipa-python/setup.py new file mode 100644 index 00000000..3dfee122 --- /dev/null +++ b/ipa-python/setup.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +"""FreeIPA python support library + +FreeIPA is a server for identity, policy, and audit. +""" + +DOCLINES = __doc__.split("\n") + +import os +import sys +import distutils.sysconfig + +CLASSIFIERS = """\ +Development Status :: 4 - Beta +Intended Audience :: System Environment/Base +License :: GPL +Programming Language :: C +Programming Language :: Python +Operating System :: POSIX +Operating System :: Unix +Operating System :: MacOS +""" + +# 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 = "freeipa-python", + version = "0.4", + license = "GPL", + author = "Karl MacMillan, et.al.", + author_email = "kmacmillan@mentalrootkit.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=filter(None, CLASSIFIERS.split('\n')), + platforms = ["Linux", "Solaris", "Mac OS-X", "Unix"], + package_dir = {'ipa': ''}, + packages = [ "ipa" ], + data_files = [('/etc/ipa', ['ipa.conf'])] + ) + finally: + del sys.path[0] + os.chdir(old_path) + return + +if __name__ == '__main__': + setup_package() -- cgit