summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl MacMillan <kmacmill@redhat.com>2007-10-16 15:16:04 -0400
committerKarl MacMillan <kmacmill@redhat.com>2007-10-16 15:16:04 -0400
commitbd3b07b448f3724b9abf7a4eb3b84143258a0252 (patch)
tree7bd29d7ce9a33253acdf29b0cbcafd14d832c368
parent08855a4d770bb29f8f8737182e157faed29fc965 (diff)
downloadfreeipa-bd3b07b448f3724b9abf7a4eb3b84143258a0252.tar.gz
freeipa-bd3b07b448f3724b9abf7a4eb3b84143258a0252.tar.xz
freeipa-bd3b07b448f3724b9abf7a4eb3b84143258a0252.zip
Use setup.py for ipa-python from William Jon McCann <mccann@jhu.edu>.
-rw-r--r--ipa-python/MANIFEST.in3
-rwxr-xr-xipa-python/freeipa-python.spec33
-rwxr-xr-xipa-python/freeipa-python.spec.in33
-rw-r--r--ipa-python/setup.py62
4 files changed, 97 insertions, 34 deletions
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()