|
Björn Esser |
09a261b |
# Conditional for release and snapshot builds. Uncomment for release-builds.
|
|
Björn Esser |
09a261b |
%global rel_build 1
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
# Failsafe backport of Python2-macros for RHEL <= 6
|
|
Björn Esser |
09a261b |
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
|
Björn Esser |
09a261b |
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
|
|
Björn Esser |
09a261b |
%{!?python_version: %global python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])")}
|
|
Björn Esser |
09a261b |
%{!?__python2: %global __python2 %{__python}}
|
|
Björn Esser |
09a261b |
%{!?python2_sitelib: %global python2_sitelib %{python_sitelib}}
|
|
Björn Esser |
09a261b |
%{!?python2_sitearch: %global python2_sitearch %{python_sitearch}}
|
|
Björn Esser |
09a261b |
%{!?python2_version: %global python2_version %{python_version}}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
# Settings used for build from snapshots.
|
|
Björn Esser |
09a261b |
%{!?rel_build:%global commit 282578b9ef65aa2ec72153d6eb1fcff5c273a42f}
|
|
Björn Esser |
09a261b |
%{!?rel_build:%global commit_date 20121007}
|
|
Björn Esser |
09a261b |
%{!?rel_build:%global shortcommit %(c=%{commit};echo ${c:0:7})}
|
|
Björn Esser |
09a261b |
%{!?rel_build:%global gitver git%{commit_date}-%{shortcommit}}
|
|
Björn Esser |
09a261b |
%{!?rel_build:%global gitrel .git%{commit_date}.%{shortcommit}}
|
|
Björn Esser |
09a261b |
%{!?rel_build:%global gittar %{name}-%{version}-%{gitver}.tar.gz}
|
|
Björn Esser |
09a261b |
%{?rel_build: %global gittar %{name}-%{version}.tar.gz}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
# Can we build a Py3-pkg?
|
|
Björn Esser |
09a261b |
%if 0%{?fedora} || 0%{?rhel} >= 8
|
|
Björn Esser |
09a261b |
%global with_python3 1
|
|
Björn Esser |
09a261b |
%endif #0%{?fedora} || 0%{?rhel} >= 8
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%global common_description \
|
|
Björn Esser |
09a261b |
The NGram class extends the Python 'set' class with efficient fuzzy \
|
|
Björn Esser |
09a261b |
search for members by means of an N-gram similarity measure. It \
|
|
Björn Esser |
09a261b |
also has static methods to compare a pair of strings. \
|
|
Björn Esser |
09a261b |
\
|
|
Björn Esser |
09a261b |
The N-grams are character based not word-based, and the class does \
|
|
Björn Esser |
09a261b |
not implement a language model, merely searching for members by \
|
|
Björn Esser |
09a261b |
string similarity.
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%global pypi_name ngram
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
Name: python-%{pypi_name}
|
|
Björn Esser |
09a261b |
Version: 3.3.0
|
|
Björn Esser |
09a261b |
Release: 1%{?gitrel}%{?dist}
|
|
Björn Esser |
09a261b |
Summary: Set-based subclass providing fuzzy search based on N-grams
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
License: LGPLv3+
|
|
Björn Esser |
09a261b |
URL: https://github.com/gpoulter/%{name}
|
|
Björn Esser |
09a261b |
# Sources for release-builds.
|
|
Björn Esser |
09a261b |
%{?rel_build:Source0: %{url}/archive/%{version}.tar.gz#/%{gittar}}
|
|
Björn Esser |
09a261b |
# Sources for snapshot-builds.
|
|
Björn Esser |
09a261b |
%{!?rel_build:Source0: %{url}/archive/%{commit}.tar.gz#/%{gittar}}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
BuildArch: noarch
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
BuildRequires: python-nose
|
|
Björn Esser |
09a261b |
BuildRequires: python2-devel
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%if 0%{?rhel} && 0%{?rhel} <= 6
|
|
Björn Esser |
09a261b |
BuildRequires: python-argparse
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
Requires: python-argparse
|
|
Björn Esser |
09a261b |
%endif #0%{?rhel} && 0%{?rhel} <= 6
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%description
|
|
Björn Esser |
09a261b |
%{common_description}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%package doc
|
|
Björn Esser |
09a261b |
Summary: Documentation-files for %{name}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
# On RHEL <= 6 we need sphinx-10-build from EPEL.
|
|
Björn Esser |
09a261b |
%if 0%{?fedora} || 0%{?rhel} >= 7
|
|
Björn Esser |
09a261b |
BuildRequires: python-sphinx
|
|
Björn Esser |
09a261b |
%else #0%{?fedora} || 0%{?rhel} >= 7
|
|
Björn Esser |
09a261b |
BuildRequires: python-sphinx10
|
|
Björn Esser |
09a261b |
%endif #0%{?fedora} || 0%{?rhel} >= 7
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%description doc
|
|
Björn Esser |
09a261b |
This package contains the documentation-files for %{name}.
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%if 0%{?with_python3}
|
|
Björn Esser |
09a261b |
%package -n python3-%{pypi_name}
|
|
Björn Esser |
09a261b |
Summary: Set-based subclass providing fuzzy search based on N-grams
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
BuildRequires: python3-devel
|
|
Björn Esser |
09a261b |
BuildRequires: python3-nose
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%description -n python3-%{pypi_name}
|
|
Björn Esser |
09a261b |
%{common_description}
|
|
Björn Esser |
09a261b |
%endif #0%{?with_python3}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%prep
|
|
Björn Esser |
09a261b |
%setup -q%{!?rel_build:n %{name}-%{commit}}
|
|
Björn Esser |
09a261b |
rm -rf *%{pypi_name}*.egg-info
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
# On RHEL <= 6 we need sphinx-10-build from EPEL.
|
|
Björn Esser |
09a261b |
%if 0%{?rhel} && 0%{?rhel} <= 6
|
|
Björn Esser |
09a261b |
sed -i -e 's!sphinx-build$!%{_bindir}/sphinx-1.0-build!' docs/Makefile
|
|
Björn Esser |
09a261b |
%endif #0%{?rhel} && 0%{?rhel} <= 6
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
# Fix path to script in testsuite.
|
|
Björn Esser |
09a261b |
sed -i -e 's!csvjoin.py!scripts/&!g' tests/test_csvjoin.py
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%if 0%{?with_python3}
|
|
Björn Esser |
09a261b |
rm -rf %{py3dir}
|
|
Björn Esser |
09a261b |
cp -a . %{py3dir}
|
|
Björn Esser |
09a261b |
%endif #0%{?with_python3}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%build
|
|
Björn Esser |
09a261b |
%{__python2} setup.py build
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
# Build the autodocs.
|
|
Björn Esser |
09a261b |
pushd docs
|
|
Björn Esser |
09a261b |
make %{?_smp_mflags} html
|
|
Björn Esser |
09a261b |
rm -f _build/html/.buildinfo
|
|
Björn Esser |
09a261b |
find _build/html -type f -print0 | xargs -0 sed -i -e 's!\r$!!'
|
|
Björn Esser |
09a261b |
popd
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
# Build the Python3-version.
|
|
Björn Esser |
09a261b |
%if 0%{?with_python3}
|
|
Björn Esser |
09a261b |
pushd %{py3dir}
|
|
Björn Esser |
09a261b |
%{__python3} setup.py build
|
|
Björn Esser |
09a261b |
popd
|
|
Björn Esser |
09a261b |
%endif #0%{?with_python3}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%install
|
|
Björn Esser |
09a261b |
# Prefer the scripts in %%{_bindir} from Python2-pkg.
|
|
Björn Esser |
09a261b |
%if 0%{?with_python3}
|
|
Björn Esser |
09a261b |
pushd %{py3dir}
|
|
Björn Esser |
09a261b |
%{__python3} setup.py install -O1 --skip-build --root %{buildroot}
|
|
Björn Esser |
09a261b |
rm -f %{buildroot}%{_bindir}/*
|
|
Björn Esser |
09a261b |
popd
|
|
Björn Esser |
09a261b |
%endif #0%{?with_python3}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%{__python2} setup.py install -O1 --skip-build --root %{buildroot}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
# Fixup the hashbang in Python-scripts.
|
|
Björn Esser |
09a261b |
# Remove the file-ext from Python-scripts.
|
|
Björn Esser |
09a261b |
for _file in %{buildroot}/%{_bindir}/*
|
|
Björn Esser |
09a261b |
do
|
|
Björn Esser |
09a261b |
_new="`echo ${_file} | sed -e 's!.py$!!'`"
|
|
Björn Esser |
09a261b |
sed -e '1s@^#!.*python$@#!%{__python2}@' < ${_file} > ${_new} && \
|
|
Björn Esser |
09a261b |
chmod 0755 ${_new} && \
|
|
Björn Esser |
09a261b |
touch -r ${_file} ${_new} && \
|
|
Björn Esser |
09a261b |
rm -f ${_file}
|
|
Björn Esser |
09a261b |
done
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%check
|
|
Björn Esser |
09a261b |
export PYTHONPATH="`pwd`"
|
|
Björn Esser |
09a261b |
nosetests -v
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%if 0%{?with_python3}
|
|
Björn Esser |
09a261b |
pushd %{py3dir}
|
|
Björn Esser |
09a261b |
export PYTHONPATH="`pwd`"
|
|
Björn Esser |
09a261b |
nosetests-%{python3_version} -v
|
|
Björn Esser |
09a261b |
popd
|
|
Björn Esser |
09a261b |
%endif #0%{?with_python3}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%files
|
|
Björn Esser |
09a261b |
%doc COPYING* README
|
|
Björn Esser |
09a261b |
%{_bindir}/csvjoin
|
|
Björn Esser |
09a261b |
%{python2_sitelib}/%{pypi_name}.py*
|
|
Björn Esser |
09a261b |
%{python2_sitelib}/%{pypi_name}-%{version}-py%{python2_version}.egg-info
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%files doc
|
|
Björn Esser |
09a261b |
%doc COPYING* README docs/_build/html
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%if 0%{?with_python3}
|
|
Björn Esser |
09a261b |
%files -n python3-%{pypi_name}
|
|
Björn Esser |
09a261b |
%doc COPYING* README
|
|
Björn Esser |
09a261b |
%{python3_sitelib}/__pycache__/%{pypi_name}.cpython-%(echo %{python3_version} | sed -e 's!\.!!g').py?
|
|
Björn Esser |
09a261b |
%{python3_sitelib}/%{pypi_name}.py*
|
|
Björn Esser |
09a261b |
%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info
|
|
Björn Esser |
09a261b |
%endif #0%{?with_python3}
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
|
|
Björn Esser |
09a261b |
%changelog
|
|
Björn Esser |
09a261b |
* Fri May 09 2014 Björn Esser <bjoern.esser@gmail.com> - 3.3.0-1
|
|
Björn Esser |
09a261b |
- initial rpm release (#1096188)
|