%global commit 54418dbd886821a5ac70062c9dd22833f933a5bf
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global realname vcstools
%if 0%{?fedora} > 12
%global with_python3 1
%else
%{!?__python2: %global __python2 /usr/bin/python2}
%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")}
%{!?python2_version: %global python2_version %(%{__python2} -c "from sys import stdout, version; stdout.write(version[:3])")}
%endif
Name: python-%{realname}
Version: 0.1.40
Release: 1%{?dist}
Summary: Version Control System tools for Python
License: BSD
URL: http://www.ros.org/wiki/vcstools
Source0: https://github.com/%{realname}/%{realname}/archive/%{commit}/%{realname}-%{version}-%{shortcommit}.tar.gz
BuildArch: noarch
BuildRequires: bzr
BuildRequires: git
BuildRequires: mercurial
BuildRequires: python2-coverage
BuildRequires: python2-dateutil
BuildRequires: python2-devel
BuildRequires: python2-mock
BuildRequires: python2-nose
%if 0%{?rhel} && 0%{?rhel} <= 6
BuildRequires: python-sphinx10
%else
BuildRequires: python2-sphinx
%endif
BuildRequires: python2-pyyaml
BuildRequires: subversion
%description
The vcstools module provides a Python API for interacting with different
version control systems (VCS/SCMs). The VcsClient class provides an API
for seamless interacting with Git, Mercurial (Hg), Bzr and SVN. The focus
of the API is manipulating on-disk checkouts of source-controlled trees.
Its main use is to support the rosinstall tool.
%package -n python2-%{realname}
Summary: Version Control System tools for Python
%{?python_provide:%python_provide python2-%{realname}}
Requires: bzr
Requires: git
Requires: mercurial
Requires: python2-dateutil
Requires: python2-pyyaml
Requires: subversion
%description -n python2-%{realname}
The vcstools module provides a Python API for interacting with different
version control systems (VCS/SCMs). The VcsClient class provides an API
for seamless interacting with Git, Mercurial (Hg), Bzr and SVN. The focus
of the API is manipulating on-disk checkouts of source-controlled trees.
Its main use is to support the rosinstall tool.
%if 0%{?with_python3}
%package -n python3-%{realname}
Summary: Version Control System tools for Python
BuildRequires: python3-coverage
BuildRequires: python3-dateutil
BuildRequires: python3-devel
BuildRequires: python3-mock
BuildRequires: python3-nose
BuildRequires: python3-setuptools
BuildRequires: python3-sphinx
BuildRequires: python3-PyYAML
Requires: bzr
Requires: git
Requires: mercurial
Requires: python3-dateutil
Requires: python3-PyYAML
Requires: subversion
%{?python_provide:%python_provide python3-%{realname}}
%description -n python3-%{realname}
The vcstools module provides a Python API for interacting with different
version control systems (VCS/SCMs). The VcsClient class provides an API
for seamless interacting with Git, Mercurial (Hg), Bzr and SVN. The focus
of the API is manipulating on-disk checkouts of source-controlled trees.
Its main use is to support the rosinstall tool.
%endif # with_python3
%prep
%setup -qn %{realname}-%{commit}
sed -i 's/haiku/default/' doc/conf.py
sed -i 's/:special-members://' doc/vcstools.rst
%if 0%{?with_python3}
rm -rf %{py3dir}
cp -a . %{py3dir}
find %{py3dir} -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python3}|'
%endif # with_python3
find -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python}|'
%build
%{__python2} setup.py build
%if 0%{?rhel} && 0%{?rhel} <= 6
make -C doc html man SPHINXBUILD=sphinx-1.0-build
%else
make -C doc html man
%endif
rm -f doc/_build/html/.buildinfo
%if 0%{?with_python3}
pushd %{py3dir}
%{__python3} setup.py build
make -C doc html man SPHINXBUILD=sphinx-build-%{python3_version}
rm -f doc/_build/html/.buildinfo
popd
%endif # with_python3
%install
%{__python2} setup.py install --root %{buildroot}
mkdir -p %{buildroot}%{_mandir}/man1
chmod -x doc/_build/man/%{realname}.1
install -p -m 0644 doc/_build/man/%{realname}.1 %{buildroot}%{_mandir}/man1/
%if 0%{?with_python3}
pushd %{py3dir}
%{__python3} setup.py install --skip-build --root %{buildroot}
rm -rf %{buildroot}%{python3_sitelib}/setuptools/tests
mkdir -p %{buildroot}%{_mandir}/man1
chmod -x doc/_build/man/%{realname}.1
install -p -m 0644 doc/_build/man/%{realname}.1 %{buildroot}%{_mandir}/man1/python3-%{realname}.1
popd
%endif # with_python3
%check
export GIT_AUTHOR_EMAIL="foo@example.com"
export GIT_AUTHOR_NAME="Foo Bar"
export GIT_COMMITTER_EMAIL="foo@example.com"
export GIT_COMMITTER_NAME="Foo Bar"
export HGUSER="Foo Bar <foo@example.com>"
export LANG=en_US.UTF-8
# Exclude 5 tests which access remote data
# Exclude a test with a bad unicode conversion on python2.6 machines (filed upstream)
%if "%{python2_version}" == "2.6"
nosetests --with-coverage --cover-package %{realname} -w test \
-e "^(test_git_subm|test_url_matches_with_shortcut|test_checkout|test_checkout_dir_exists|test_checkout_version|test_get_url_by_reading|test_shell_command_verbose)$"
%else
nosetests --with-coverage --cover-package %{realname} -w test \
-e "^(test_git_subm|test_url_matches_with_shortcut|test_checkout|test_checkout_dir_exists|test_checkout_version|test_get_url_by_reading)$"
%endif
%if 0%{?with_python3}
pushd %{py3dir}
nosetests-%{python3_version} --with-coverage --cover-package %{realname} -w test \
-e "^(test_git_subm|test_url_matches_with_shortcut|test_checkout|test_checkout_dir_exists|test_checkout_version|test_get_url_by_reading)$"
popd
%endif # with_python3
%files -n python2-%{realname}
%doc doc/_build/html LICENSE
%{python2_sitelib}/%{realname}
%{python2_sitelib}/%{realname}-%{version}-py?.?.egg-info
%{_mandir}/man1/%{realname}.1.gz
%if 0%{?with_python3}
%files -n python3-%{realname}
%doc doc/_build/html LICENSE
%{python3_sitelib}/%{realname}
%{python3_sitelib}/%{realname}-%{version}-py?.?.egg-info
%{_mandir}/man1/python3-%{realname}.1.gz
%endif # with_python3
%changelog
* Mon Jul 23 2018 Rich Mattes <richmattes@gmail.com> - 0.1.40-1
- Update to release 0.1.40 (rhbz#1532912)
- Disable broken unit test (rhbz#1556280)
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.39-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 0.1.39-7
- Rebuilt for Python 3.7
* Mon Mar 26 2018 Iryna Shcherbina <ishcherb@redhat.com> - 0.1.39-6
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.39-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.39-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.39-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 0.1.39-2
- Rebuild for Python 3.6
* Thu Oct 20 2016 Rich Mattes <richmattes@gmail.com> - 0.1.39-1
- Update to 0.1.39 (rhbz#1376312)
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.38-4
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.38-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.38-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
* Tue Oct 20 2015 Rich Mattes <richmattes@gmail.com> - 0.1.38-1
- Update to release 0.1.38 (rhbz#1271028)
* Sun Sep 13 2015 Rich Mattes <richmattes@gmail.com> - 0.1.37-1
- Update to release 0.1.37 (rhbz#1259100)
- Remove upstreamed patch
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.36-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sun Dec 14 2014 Scott K Logan <logans@cottsay.net> - 0.1.36-1
- Update to release 0.1.36
- Update to python packaging guidelines
- Add check section
- Add patch for test fixes
- Add bzr, git, mercurial and subversion to Requires
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.35-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Wed May 28 2014 Kalev Lember <kalevlember@gmail.com> - 0.1.35-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4
* Mon May 19 2014 Scott K Logan <logans@cottsay.net> - 0.1.35-1
- Update to release 0.1.35
* Sun Feb 09 2014 Rich Mattes <richmattes@gmail.com> - 0.1.32-2
- Added python 3 support
* Sat Feb 08 2014 Rich Mattes <richmattes@gmail.com> - 0.1.32-1
- Update to release 0.1.32
* Mon Aug 19 2013 Rich Mattes <richmattes@gmail.com> - 0.1.31-1
- Update to release 0.1.31
- Update to github sourceurl guidelines
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.30-2.20130318git963c121
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Mar 18 2013 Rich Mattes <richmattes@gmail.com> - 0.1.30-1.20130318git963c121
- Update to release 0.1.30
- Updated upstream URL
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.26-2.20130102gitd41568f
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Wed Jan 02 2013 Rich Mattes <richmattes@gmail.com> - 0.1.26-1.20130102gitd41568f
- Update to release 0.1.26
* Fri Oct 26 2012 Rich Mattes <richmattes@gmail.com> - 0.1.24-1.20121026gitba30262
- Update to release 0.1.24
* Tue Aug 28 2012 Rich Mattes <richmattes@gmail.com> - 0.1.21-1.20120828hg0fba0588
- Update to release 0.1.21
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.17-4.20120606hg6205f4fc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Fri Jun 08 2012 Rich Mattes <richmattes@gmail.com> - 0.1.17-3.20120606hg6205f4fc
- Added el6 support
- Enabled unit tests
* Wed Jun 06 2012 Rich Mattes <richmattes@gmail.com> - 0.1.17-2.20120606hg6205f4fc
- Update package release to include hg checkout info
- Remove el5 specific RPM_BUILD_ROOT removal from install section
* Tue Jun 05 2012 Rich Mattes <richmattes@gmail.com> - 0.1.17-1
- Update to release 0.1.17
* Wed Apr 25 2012 Rich Mattes <richmattes@gmail.com> - 0.1.4-1
- Initial package