Blob Blame History Raw
%global pypi_name csvkit
%global project_owner onyxfish
%global github_name csvkit
%global commit bf18815796a306d34171422f1445323b526ba14f
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global sum Suite of utilities for converting to and working with CSV
%global desc csvkit is a suite of utilities for converting to and working with CSV, the king \
of tabular file formats.


Name:           python-%{pypi_name}
Version:        0.9.1
Release:        6.git%{shortcommit}%{?dist}
Summary:        %{sum}

License:        MIT
URL:            https://pypi.python.org/pypi/%{pypi_name}
Source0:        https://github.com/%{project_owner}/%{github_name}/archive/%{commit}/%{github_name}-%{commit}.tar.gz

# Plans to improve deps and their version: https://github.com/onyxfish/csvkit/issues/490
Patch0:          correct-requires.patch
# See https://github.com/onyxfish/csvkit/issues/469
Patch1:          correct-build-on-koji.patch

BuildArch:      noarch

%description
%{desc}

%package -n     python2-%{pypi_name}
BuildRequires:  python2-devel
BuildRequires:  python-nose
BuildRequires:  python-xlrd >= 0.7.1
BuildRequires:  python-sqlalchemy
BuildRequires:  python2-openpyxl
BuildRequires:  python-six
BuildRequires:  python-dateutil
BuildRequires:  python2-dbf
BuildRequires:  python-enum34
Requires:       python-xlrd >= 0.7.1
Requires:       python-sqlalchemy
Requires:       python2-openpyxl
Requires:       python-six
Requires:       python-dateutil
Requires:       python2-dbf
Requires:       python-enum34
Summary:        %{sum}
%{?python_provide:%python_provide python2-%{pypi_name}}

%description -n python2-%{pypi_name}
%{desc}


%package -n     python3-%{pypi_name}
Summary:        %{sum}
BuildRequires:  python3-devel
BuildRequires:  python3-nose
BuildRequires:  python3-xlrd >= 0.7.1
BuildRequires:  python3-sqlalchemy
BuildRequires:  python3-openpyxl
BuildRequires:  python3-six
BuildRequires:  python3-dateutil
Requires:       python3-xlrd >= 0.7.1
Requires:       python3-sqlalchemy
Requires:       python3-openpyxl
Requires:       python3-six
Requires:       python3-dateutil
%{?python_provide:%python_provide python3-%{pypi_name}}

%description -n python3-%{pypi_name}
%{desc}


%package doc
BuildRequires:  python-sphinx-doc
BuildRequires:  python-sphinx_rtd_theme
Summary:        %{sum}

%description doc
%{desc}

Documentation package

%prep
%setup -q -n %{github_name}-%{commit}
rm -rf *.egg-info
# Fix non-executable-script
find csvkit -name \*.py -type f | xargs sed -i '1{\@^#!/usr/bin/env python@d}'
%patch0 -p1
%patch1 -p1


%build
%py2_build
%py3_build

cd docs
make html
make man


%install
#  install python3 first to have unversioned binaries for python 3
%py3_install
pushd %{buildroot}%{_bindir}  # Enter buildroot bindir to ease symlink creation
bins=($(ls *))
for bin in ${bins[@]}; do
    mv "${bin}" "${bin}-%{python3_version}"
    name=${bin##*/}
    ln -s "${name}-%{python3_version}" "${bin}-3"
done
popd


%py2_install
pushd %{buildroot}%{_bindir}
for bin in ${bins[@]}; do
    name=${bin##*/}
    ln -s "${name}" "${bin}-2"
    ln -s "${name}" "${bin}-%{python2_version}"
done
popd

mkdir -p %{buildroot}%{_mandir}/man1
for file in docs/_build/man/*.1; do
    install -p -m0644 ${file} %{buildroot}%{_mandir}/man1/
done

# Remove useful files in doc
rm docs/_build/html/.buildinfo

# Correct permissions in doc
chmod -x examples/realdata/census_2000/VROUTFSJ.TXt


%check
export LC_ALL='en_US.utf8'
nosetests-%{python2_version} tests -v
nosetests-%{python3_version} tests -v


%files -n python2-%{pypi_name}
%license COPYING
%doc README CHANGELOG AUTHORS
%exclude %{_bindir}/*-3
%exclude %{_bindir}/*-%{python3_version}
%{_bindir}/*
%{_mandir}/man1/*
%{python2_sitelib}/%{pypi_name}-%{version}-py%{python2_version}.egg-info/
%{python2_sitelib}/%{pypi_name}/

%files -n python3-%{pypi_name}
%license COPYING
%doc README CHANGELOG AUTHORS
%{_bindir}/*-3
%{_bindir}/*-%{python3_version}
%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info/
%{python3_sitelib}/%{pypi_name}/

%files doc
%license COPYING
%doc README CHANGELOG AUTHORS docs/_build/html examples

%changelog
* Mon Jul 11 2016 Julien Enselme <jujens@jujens.eu> - 0.9.1-6.gitbf18815
- Correct typo in comment

* Sat Feb 6 2016 Julien Enselme <jujens@jujens.eu> - 0.9.1-5.gitbf18815
- Correct some rpmlint warnings

* Sun Jan 24 2016 Julien Enselme <jujens@jujens.eu> - 0.9.1-4.gitbf18815
- Correct build on rawhide.

* Sun Jan 24 2016 Julien Enselme <jujens@jujens.eu> - 0.9.1-3.gitbf18815
- Move unversionned binaries to python2 subpackage.

* Wed Nov 25 2015 Julien Enselme <jujens@jujens.eu> - 0.9.1-2.gitbf18815
- Add python-enum34 to the Requires for python 2 subpackage

* Mon Nov 9 2015 Julien Enselme <jujens@jujens.eu> - 0.9.1-1.gitbf18815
- Inital package