Use setup.py for ipa-python from William Jon McCann <mccann@jhu.edu>.

This commit is contained in:
Karl MacMillan
-
parent 08855a4d77
commit bd3b07b448
4 changed files with 97 additions and 34 deletions

3
ipa-python/MANIFEST.in Normal file
View File

@@ -0,0 +1,3 @@
include *.conf
include freeipa-python.spec*

View File

@@ -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

View File

@@ -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

62
ipa-python/setup.py Normal file
View File

@@ -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()