Björn Esser ceb157d
%if 0%{?fedora} || 0%{?rhel} >= 8
Björn Esser ceb157d
%bcond_without python3
Björn Esser ceb157d
%else  # 0#{?fedora} || 0#{?rhel} >= 8
Björn Esser ceb157d
%bcond_with python3
Björn Esser ceb157d
%endif # 0#{?fedora} || 0#{?rhel} >= 8
Björn Esser ceb157d
Björn Esser ceb157d
%global pypi_name evic
Björn Esser ceb157d
%global patch_url https://patch-diff.githubusercontent.com/raw/Ban3/python-evic/pull
Björn Esser ceb157d
Björn Esser b9d95aa
# %%{_udevrulesdir} is not defined during srpm-build.  :/
Björn Esser b9d95aa
%{!?_udevrulesdir:%global _udevrulesdir %{_usr}/lib/udev/rules.d}
Björn Esser b9d95aa
Björn Esser ceb157d
# No tagged releases.  :/
Björn Esser ceb157d
%global commit f916017f987cac6eb90bf25e521455d17d4e3440
Björn Esser ceb157d
%{?commit:%global shortcommit %(c="%{commit}"; /bin/echo ${c:0:7})}
Björn Esser ceb157d
%{?commit:%global git_date 20160814}
Björn Esser ceb157d
%{?commit:%global git_rel .git%{git_date}.%{shortcommit}}
Björn Esser ceb157d
%{?commit:%global git_ver -git%{git_date}-%{shortcommit}}
Björn Esser ceb157d
Björn Esser ceb157d
Björn Esser ceb157d
Name:		python-%{pypi_name}
Björn Esser ceb157d
Version:	0.1
Björn Esser b9d95aa
Release:	0.4%{?git_rel}%{?dist}
Björn Esser ceb157d
Summary:	USB programmer for devices based on the Joyetech Evic VTC Mini
Björn Esser ceb157d
Björn Esser ceb157d
License:	GPLv3+
Björn Esser ceb157d
URL:		https://github.com/Ban3/python-%{pypi_name}
Björn Esser ceb157d
Source0:	%{url}/archive/%{commit}.tar.gz#/%{name}-%{version}%{?git_ver}.tar.gz
Björn Esser ceb157d
Björn Esser ceb157d
# Patches from upstream.
Björn Esser ceb157d
Patch0:		%{patch_url}/23.patch#/%{name}-0.1-new_commands.patch
Björn Esser ceb157d
Patch1:		%{patch_url}/25.patch#/%{name}-0.1-wismec_reuleaux_rx75.patch
Björn Esser ceb157d
Patch2:		%{patch_url}/26.patch#/%{name}-0.1-evic_vtc_dual.patch
Björn Esser ceb157d
Björn Esser ceb157d
BuildArch:	noarch
Björn Esser ceb157d
Björn Esser ceb157d
BuildRequires:	help2man
Björn Esser ceb157d
BuildRequires:	systemd
Björn Esser ceb157d
Björn Esser ceb157d
%description
Björn Esser ceb157d
%{summary}.
Björn Esser ceb157d
Björn Esser ceb157d
%package -n python2-%{pypi_name}
Björn Esser ceb157d
Summary:	%{summary}
Björn Esser ceb157d
Björn Esser ceb157d
BuildRequires:	python-click
Björn Esser ceb157d
BuildRequires:	python2-binstruct
Björn Esser ceb157d
BuildRequires:	python2-bitarray
Björn Esser ceb157d
BuildRequires:	python2-bitstruct
Björn Esser ceb157d
BuildRequires:	python2-devel
Björn Esser ceb157d
BuildRequires:	python2-hidapi
Björn Esser ceb157d
BuildRequires:	python2-pillow
Björn Esser ceb157d
BuildRequires:	python2-setuptools
Björn Esser ceb157d
BuildRequires:	python2-pytest
Björn Esser ceb157d
BuildRequires:	python2-pytest-runner
Björn Esser ceb157d
Björn Esser ceb157d
Requires:	%{_udevrulesdir}
Björn Esser ceb157d
Requires:	python-click
Björn Esser ceb157d
Requires:	python2-binstruct
Björn Esser ceb157d
Requires:	python2-bitarray
Björn Esser ceb157d
Requires:	python2-bitstruct
Björn Esser ceb157d
Requires:	python2-hidapi
Björn Esser ceb157d
Requires:	python2-pillow
Björn Esser ceb157d
Björn Esser ceb157d
%{?python_provide:%python_provide python2-%{pypi_name}}
Björn Esser ceb157d
Björn Esser ceb157d
%description -n python2-%{pypi_name}
Björn Esser ceb157d
%{summary}.
Björn Esser ceb157d
Björn Esser ceb157d
Björn Esser ceb157d
%if %{with python3}
Björn Esser ceb157d
%package -n python3-%{pypi_name}
Björn Esser ceb157d
Summary:	%{summary}
Björn Esser ceb157d
Björn Esser ceb157d
BuildRequires:	python3-binstruct
Björn Esser ceb157d
BuildRequires:	python3-bitarray
Björn Esser ceb157d
BuildRequires:	python3-bitstruct
Björn Esser ceb157d
BuildRequires:	python3-click
Björn Esser ceb157d
BuildRequires:	python3-devel
Björn Esser ceb157d
BuildRequires:	python3-hidapi
Björn Esser ceb157d
BuildRequires:	python3-pillow
Björn Esser ceb157d
BuildRequires:	python3-setuptools
Björn Esser ceb157d
BuildRequires:	python3-pytest
Björn Esser ceb157d
BuildRequires:	python3-pytest-runner
Björn Esser ceb157d
Björn Esser ceb157d
Requires:	%{_udevrulesdir}
Björn Esser ceb157d
Requires:	python3-binstruct
Björn Esser ceb157d
Requires:	python3-bitarray
Björn Esser ceb157d
Requires:	python3-bitstruct
Björn Esser ceb157d
Requires:	python3-click
Björn Esser ceb157d
Requires:	python3-hidapi
Björn Esser ceb157d
Requires:	python3-pillow
Björn Esser ceb157d
Björn Esser ceb157d
%{?python_provide:%python_provide python3-%{pypi_name}}
Björn Esser ceb157d
Björn Esser ceb157d
%description -n python3-%{pypi_name}
Björn Esser ceb157d
%{summary}.
Björn Esser ceb157d
%endif # with python3
Björn Esser ceb157d
Björn Esser ceb157d
Björn Esser ceb157d
%prep
Björn Esser ceb157d
%autosetup -p 1 %{?commit:-n %{name}-%{commit}}
Björn Esser ceb157d
Björn Esser ceb157d
Björn Esser ceb157d
%build
Björn Esser ceb157d
%py2_build
Björn Esser ceb157d
%if %{with python3}
Björn Esser ceb157d
%py3_build
Björn Esser ceb157d
%endif # with python3
Björn Esser ceb157d
Björn Esser ceb157d
Björn Esser ceb157d
%install
Björn Esser ceb157d
%py2_install
Björn Esser ceb157d
Björn Esser ceb157d
# Rename files installed in %%{_bindir}.
Björn Esser ceb157d
files=""
Björn Esser ceb157d
for f in %{buildroot}%{_bindir}/* ; do
Björn Esser ceb157d
	/bin/ln ${f} ${f}-%{python2_version}
Björn Esser ceb157d
	files="${files##' '} ${f}"
Björn Esser ceb157d
done
Björn Esser ceb157d
Björn Esser ceb157d
%if %{with python3}
Björn Esser ceb157d
# Remove left-overs from %%py2_install.
Björn Esser ceb157d
%{__rm} -fr ${files}
Björn Esser ceb157d
Björn Esser ceb157d
%py3_install
Björn Esser ceb157d
Björn Esser ceb157d
# Rename files installed in %%{_bindir}.
Björn Esser ceb157d
for f in %{buildroot}%{_bindir}/* ; do
Björn Esser ceb157d
	/bin/ln ${f} ${f}-%{python3_version}
Björn Esser ceb157d
done
Björn Esser ceb157d
Björn Esser ceb157d
# Remove clutter in %%{_bindir}.
Björn Esser ceb157d
%{__rm} -f %{buildroot}%{_bindir}/*-%{python2_version}-%{python3_version}
Björn Esser ceb157d
Björn Esser ceb157d
# Needed for help2man.
Björn Esser ceb157d
PYTHONPATH="%{buildroot}/%{python3_sitelib}:${PYTHONPATH}"
Björn Esser ceb157d
%endif # with python3
Björn Esser ceb157d
Björn Esser ceb157d
# Needed for help2man.
Björn Esser ceb157d
PYTHONPATH="%{buildroot}/%{python2_sitelib}:${PYTHONPATH}"
Björn Esser ceb157d
export PYTHONPATH="${PYTHONPATH%%':'}"
Björn Esser ceb157d
Björn Esser ceb157d
# Generate man-pages.
Björn Esser ceb157d
%{__mkdir} -p %{buildroot}%{_mandir}/man1				\
Björn Esser ceb157d
	%{buildroot}%{_udevrulesdir}
Björn Esser ceb157d
for f in %{buildroot}%{_bindir}/* ; do
Björn Esser ceb157d
	file="$(%{_bindir}/basename ${f})"
Björn Esser ceb157d
	LC_ALL=en_US.utf-8 LANG=en_US.utf-8 %{_bindir}/help2man		\
Björn Esser ceb157d
		-o "%{buildroot}%{_mandir}/man1/${file}.1" -s 1 -N	\
Björn Esser ceb157d
		--version-string="%{version}" --no-discard-stderr ${f}
Björn Esser ceb157d
done
Björn Esser ceb157d
Björn Esser ceb157d
# Install udev-rules.
Björn Esser ceb157d
%{__mv} %{buildroot}%{_usr}/udev/*					\
Björn Esser ceb157d
	%{buildroot}%{_udevrulesdir}
Björn Esser ceb157d
%{__rm} -fr %{buildroot}%{_usr}/udev
Björn Esser ceb157d
Björn Esser ceb157d
%if %{with python3}
Björn Esser ceb157d
# Remove clutter from man-page generation.
Björn Esser ceb157d
%{__rm} -fv %{buildroot}%{python3_sitelib}/%{pypi_name}/*.py{c,o}
Björn Esser ceb157d
%{_bindir}/find %{buildroot}%{python2_sitelib}/%{pypi_name}		\
Björn Esser ceb157d
	-name '__pycache__' -print0 | %{_bindir}/xargs -0 %{__rm} -rfv
Björn Esser ceb157d
%endif # with python3
Björn Esser ceb157d
Björn Esser ceb157d
Björn Esser ceb157d
%check
Björn Esser ceb157d
%{__python2} setup.py test
Björn Esser ceb157d
%if %{with python3}
Björn Esser ceb157d
LC_ALL=en_US.utf-8 LANG=en_US.utf-8 %{__python3} setup.py test
Björn Esser ceb157d
%endif
Björn Esser ceb157d
Björn Esser ceb157d
Björn Esser ceb157d
%files -n python2-%{pypi_name}
Björn Esser ceb157d
%license LICENSE
Björn Esser ceb157d
%doc README.rst
Björn Esser ceb157d
%if %{with python3}
Björn Esser ceb157d
%{_bindir}/*-%{python2_version}
Björn Esser ceb157d
%{_mandir}/man1/*-%{python2_version}.1.*
Björn Esser ceb157d
%else  # with python3
Björn Esser ceb157d
%{_bindir}/*
Björn Esser ceb157d
%{_mandir}/man1/*.1.*
Björn Esser ceb157d
%endif # with python3
Björn Esser ceb157d
%{_udevrulesdir}/*.rules
Björn Esser ceb157d
%{python2_sitelib}/%{pypi_name}
Björn Esser ceb157d
%{python2_sitelib}/%{pypi_name}-%{version}-py%{python2_version}.egg-info
Björn Esser ceb157d
Björn Esser ceb157d
%if %{with python3}
Björn Esser ceb157d
%files -n python3-%{pypi_name}
Björn Esser ceb157d
%license LICENSE
Björn Esser ceb157d
%doc README.rst
Björn Esser ceb157d
%exclude %{_bindir}/*-%{python2_version}
Björn Esser ceb157d
%exclude %{_mandir}/man1/*-%{python2_version}.1.*
Björn Esser ceb157d
%{_bindir}/*
Björn Esser ceb157d
%{_mandir}/man1/*.1.*
Björn Esser ceb157d
%{_udevrulesdir}/*.rules
Björn Esser ceb157d
%{python3_sitelib}/%{pypi_name}
Björn Esser ceb157d
%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info
Björn Esser ceb157d
%endif # with python3
Björn Esser ceb157d
Björn Esser ceb157d
Björn Esser ceb157d
%changelog
Björn Esser b9d95aa
* Mon Oct 24 2016 Björn Esser <fedora@besser82.io> - 0.1-0.4.git20160814.f916017
Björn Esser b9d95aa
- %%{_udevrulesdir} is not defined during srpm-build
Björn Esser b9d95aa
Björn Esser ceb157d
* Mon Oct 24 2016 Björn Esser <fedora@besser82.io> - 0.1-0.3.git20160814.f916017
Björn Esser ceb157d
- Initial import (rhbz 1387834)
Björn Esser ceb157d
Björn Esser ceb157d
* Mon Oct 24 2016 Björn Esser <fedora@besser82.io> - 0.1-0.2.git20160814.f916017
Björn Esser ceb157d
- Changes suggested during review (rhbz 1387834)
Björn Esser ceb157d
- Add BuildRequires: systemd
Björn Esser ceb157d
- Use %%{_udevrulesdir}
Björn Esser ceb157d
- Don't mark udev-rules as %%config(noreplace)
Björn Esser ceb157d
Björn Esser ceb157d
* Fri Oct 21 2016 Björn Esser <fedora@besser82.io> - 0.1-0.1.git20160814.f916017
Björn Esser ceb157d
- Initial package (rhbz 1387834)