Blob Blame History Raw
# Conditional for release and snapshot builds. Uncomment for release-builds.
%global rel_build 1

# Failsafe backport of Python2-macros for RHEL <= 6
%{!?python_sitelib:	%global python_sitelib		%(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python_sitearch:	%global python_sitearch		%(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%{!?python_version:	%global python_version		%(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])")}
%{!?__python2:		%global __python2		%{__python}}
%{!?python2_sitelib:	%global python2_sitelib		%{python_sitelib}}
%{!?python2_sitearch:	%global python2_sitearch	%{python_sitearch}}
%{!?python2_version:	%global python2_version		%{python_version}}

# Settings used for build from snapshots.
%{!?rel_build:%global commit		282578b9ef65aa2ec72153d6eb1fcff5c273a42f}
%{!?rel_build:%global commit_date	20121007}
%{!?rel_build:%global shortcommit	%(c=%{commit};echo ${c:0:7})}
%{!?rel_build:%global gitver		git%{commit_date}-%{shortcommit}}
%{!?rel_build:%global gitrel		.git%{commit_date}.%{shortcommit}}
%{!?rel_build:%global gittar		%{name}-%{version}-%{gitver}.tar.gz}
%{?rel_build: %global gittar		%{name}-%{version}.tar.gz}

# Can we build a Py3-pkg?
%if 0%{?fedora} || 0%{?rhel} >= 8
%global with_python3 1
%endif #0%{?fedora} || 0%{?rhel} >= 8

%global common_description						\
The NGram class extends the Python 'set' class with efficient fuzzy	\
search for members by means of an N-gram similarity measure.  It	\
also has static methods to compare a pair of strings.			\
									\
The N-grams are character based not word-based, and the class does	\
not implement a language model, merely searching for members by		\
string similarity.

%global pypi_name ngram

Name:			python-%{pypi_name}
Version:		3.3.0
Release:		4%{?gitrel}%{?dist}
Summary:		Set-based subclass providing fuzzy search based on N-grams

License:		LGPLv3+
URL:			https://github.com/gpoulter/%{name}
# Sources for release-builds.
%{?rel_build:Source0:	%{url}/archive/%{version}.tar.gz#/%{gittar}}
# Sources for snapshot-builds.
%{!?rel_build:Source0:	%{url}/archive/%{commit}.tar.gz#/%{gittar}}

BuildArch:		noarch

BuildRequires:		python-nose
BuildRequires:		python2-devel

%if 0%{?rhel} && 0%{?rhel} <= 6
BuildRequires:		python-argparse

Requires:		python-argparse
%endif #0%{?rhel} && 0%{?rhel} <= 6

%description
%{common_description}


%package doc
Summary:		Documentation-files for %{name}

# On RHEL <= 6 we need sphinx-10-build from EPEL.
%if 0%{?fedora} || 0%{?rhel} >= 7
BuildRequires:		python-sphinx
%else #0%{?fedora} || 0%{?rhel} >= 7
BuildRequires:		python-sphinx10
%endif #0%{?fedora} || 0%{?rhel} >= 7

%description doc
This package contains the documentation-files for %{name}.


%if 0%{?with_python3}
%package -n python3-%{pypi_name}
Summary:		Set-based subclass providing fuzzy search based on N-grams

BuildRequires:		python3-devel
BuildRequires:		python3-nose

%description -n python3-%{pypi_name}
%{common_description}
%endif #0%{?with_python3}


%prep
%setup -q%{!?rel_build:n %{name}-%{commit}}
rm -rf *%{pypi_name}*.egg-info

# On RHEL <= 6 we need sphinx-10-build from EPEL.
%if 0%{?rhel} && 0%{?rhel} <= 6
sed -i -e 's!sphinx-build$!%{_bindir}/sphinx-1.0-build!' docs/Makefile
%endif #0%{?rhel} && 0%{?rhel} <= 6

# Fix path to script in testsuite.
sed -i -e 's!csvjoin.py!scripts/&!g' tests/test_csvjoin.py

%if 0%{?with_python3}
rm -rf %{py3dir}
cp -a . %{py3dir}
%endif #0%{?with_python3}


%build
%{__python2} setup.py build

# Build the autodocs.
pushd docs
make %{?_smp_mflags} html
rm -f _build/html/.buildinfo
find _build/html -type f -print0 | xargs -0 sed -i -e 's!\r$!!'
popd

# Build the Python3-version.
%if 0%{?with_python3}
pushd %{py3dir}
%{__python3} setup.py build
popd
%endif #0%{?with_python3}


%install
# Prefer the scripts in %%{_bindir} from Python2-pkg.
%if 0%{?with_python3}
pushd %{py3dir}
%{__python3} setup.py install -O1 --skip-build --root %{buildroot}
rm -f %{buildroot}%{_bindir}/*
popd
%endif #0%{?with_python3}

%{__python2} setup.py install -O1 --skip-build --root %{buildroot}

# Fixup the hashbang in Python-scripts.
# Remove the file-ext from Python-scripts.
for _file in %{buildroot}/%{_bindir}/*
do
  _new="`echo ${_file} | sed -e 's!.py$!!'`"
  sed -e '1s@^#!.*python$@#!%{__python2}@' < ${_file} > ${_new} &&	\
  chmod 0755 ${_new} &&							\
  touch -r ${_file} ${_new} &&						\
  rm -f ${_file}
done


%check
export PYTHONPATH="`pwd`"
nosetests -v

%if 0%{?with_python3}
pushd %{py3dir}
export PYTHONPATH="`pwd`"
nosetests-%{python3_version} -v
popd
%endif #0%{?with_python3}
 
%files
%doc COPYING* README
%{_bindir}/csvjoin
%{python2_sitelib}/%{pypi_name}.py*
%{python2_sitelib}/%{pypi_name}-%{version}-py%{python2_version}.egg-info

%files doc
%doc COPYING* README docs/_build/html

%if 0%{?with_python3}
%files -n python3-%{pypi_name}
%doc COPYING* README
%{python3_sitelib}/__pycache__/%{pypi_name}.cpython-%(echo %{python3_version} | sed -e 's!\.!!g').py?
%{python3_sitelib}/%{pypi_name}.py*
%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info
%endif #0%{?with_python3}


%changelog
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Wed May 28 2014 Kalev Lember <kalevlember@gmail.com> - 3.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4

* Fri May 09 2014 Björn Esser <bjoern.esser@gmail.com> - 3.3.0-1
- initial rpm release (#1096188)