234 lines
7.8 KiB
RPMSpec
234 lines
7.8 KiB
RPMSpec
%{?!_without_python2:%global with_python2 0%{?_with_python2:1} || (0%{?fedora} < 30 && 0%{?rhel} < 8)}
|
|
%{?!_without_python3:%global with_python3 0%{?_with_python3:1} || !0%{?rhel} || 0%{?rhel} >= 7}
|
|
|
|
%global srcname vcstool
|
|
|
|
Name: python-%{srcname}
|
|
Version: 0.2.2
|
|
Release: 1%{?dist}
|
|
Summary: Tool to invoke vcs commands on multiple repositories
|
|
|
|
License: ASL 2.0
|
|
URL: https://github.com/dirk-thomas/%{srcname}
|
|
Source0: https://github.com/dirk-thomas/%{srcname}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
|
|
|
# Used only for testing
|
|
Source1: %{name}-0.1.37-older_git_syntax.sed
|
|
|
|
BuildArch: noarch
|
|
|
|
%description
|
|
Vcstool is a version control system (VCS) tool, designed to make working with
|
|
multiple repositories easier.
|
|
|
|
Note: This tool should not be confused with vcstools (with a trailing s) which
|
|
provides a Python API for interacting with different version control systems.
|
|
The biggest differences between the two are:
|
|
|
|
- vcstool doesn't use any state beside the repository working copies available
|
|
in the filesystem.
|
|
- The file format of vcstool export uses the relative paths of the repositories
|
|
as keys in YAML which avoids collisions by design.
|
|
- vcstool has significantly less lines of code than vcstools including the
|
|
command line tools built on top.
|
|
|
|
|
|
%if 0%{?with_python2}
|
|
%package -n python2-%{srcname}
|
|
Summary: %{summary}
|
|
BuildRequires: git
|
|
BuildRequires: python2-devel
|
|
BuildRequires: python2-pytest
|
|
BuildRequires: python2-pyyaml
|
|
BuildRequires: python2-setuptools
|
|
%{?python_provide:%python_provide python2-%{srcname}}
|
|
|
|
%if %{undefined python_disable_dependency_generator}
|
|
Requires: python2-pyyaml
|
|
Requires: python2-setuptools
|
|
%endif # python_disable_dependency_generator
|
|
|
|
%if 0%{?fedora}
|
|
Recommends: git
|
|
%endif # fedora
|
|
|
|
%description -n python2-%{srcname}
|
|
Vcstool is a version control system (VCS) tool, designed to make working with
|
|
multiple repositories easier.
|
|
|
|
Note: This tool should not be confused with vcstools (with a trailing s) which
|
|
provides a Python API for interacting with different version control systems.
|
|
The biggest differences between the two are:
|
|
|
|
- vcstool doesn't use any state beside the repository working copies available
|
|
in the filesystem.
|
|
- The file format of vcstool export uses the relative paths of the repositories
|
|
as keys in YAML which avoids collisions by design.
|
|
- vcstool has significantly less lines of code than vcstools including the
|
|
command line tools built on top.
|
|
%endif # with_python2
|
|
|
|
|
|
%if 0%{?with_python3}
|
|
%package -n python%{python3_pkgversion}-%{srcname}
|
|
Summary: %{summary}
|
|
BuildRequires: git
|
|
BuildRequires: python%{python3_pkgversion}-devel
|
|
BuildRequires: python%{python3_pkgversion}-pytest
|
|
BuildRequires: python%{python3_pkgversion}-PyYAML
|
|
BuildRequires: python%{python3_pkgversion}-setuptools
|
|
%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}}
|
|
|
|
%if %{undefined python_disable_dependency_generator}
|
|
Requires: python%{python3_pkgversion}-PyYAML
|
|
Requires: python%{python3_pkgversion}-setuptools
|
|
%endif # python_disable_dependency_generator
|
|
|
|
%if 0%{?fedora}
|
|
Recommends: git
|
|
%endif # fedora
|
|
|
|
%description -n python%{python3_pkgversion}-%{srcname}
|
|
Vcstool is a version control system (VCS) tool, designed to make working with
|
|
multiple repositories easier.
|
|
|
|
Note: This tool should not be confused with vcstools (with a trailing s) which
|
|
provides a Python API for interacting with different version control systems.
|
|
The biggest differences between the two are:
|
|
|
|
- vcstool doesn't use any state beside the repository working copies available
|
|
in the filesystem.
|
|
- The file format of vcstool export uses the relative paths of the repositories
|
|
as keys in YAML which avoids collisions by design.
|
|
- vcstool has significantly less lines of code than vcstools including the
|
|
command line tools built on top.
|
|
%endif # with_python3
|
|
|
|
|
|
%prep
|
|
%autosetup -p1 -n %{srcname}-%{version}
|
|
|
|
%if 0%{?rhel} && 0%{?rhel} < 8
|
|
# Test case touch-ups for older git versions
|
|
sed -i -f %{SOURCE1} test/*.txt
|
|
%endif
|
|
|
|
|
|
%build
|
|
%if 0%{?with_python2}
|
|
%py2_build
|
|
%endif # with_python2
|
|
|
|
%if 0%{?with_python3}
|
|
%py3_build
|
|
%endif # with_python3
|
|
|
|
|
|
%install
|
|
# There are three extra things we're doing here:
|
|
# 1. Making each executable available with a -X and -X.Y suffix
|
|
# 2. Giving each python version a directory of executables for %%check
|
|
# 3. Integrating with the bash-completion package
|
|
|
|
install -d %{buildroot}%{_datadir}/bash-completion/completions %{buildroot}%{_bindir}
|
|
|
|
%if 0%{?with_python2}
|
|
%py2_install -- --install-scripts %{_bindir}2
|
|
|
|
echo -n "" > py2_bins
|
|
for f in `ls %{buildroot}%{_bindir}2`; do
|
|
mv %{buildroot}%{_bindir}2/$f %{buildroot}%{_bindir}/$f-%{python2_version}
|
|
ln -s $f-%{python2_version} %{buildroot}%{_bindir}/$f-2
|
|
%if !(0%{?with_python3})
|
|
ln -s $f-%{python2_version} %{buildroot}%{_bindir}/$f
|
|
echo "%{_bindir}/$f" >> py2_bins
|
|
%endif # with_python3
|
|
echo -e "%{_bindir}/$f-2\n%{_bindir}/$f-%{python2_version}" >> py2_bins
|
|
done
|
|
|
|
# Integrate bash completion with the bash-completion package
|
|
cp -f %{buildroot}%{_datadir}/%{srcname}-completion/vcs.bash %{buildroot}%{_datadir}/bash-completion/completions/vcs
|
|
ln -sf vcs %{buildroot}%{_datadir}/bash-completion/completions/vcs-2
|
|
ln -s vcs %{buildroot}%{_datadir}/bash-completion/completions/vcs-%{python2_version}
|
|
%endif # with_python2
|
|
|
|
%if 0%{?with_python3}
|
|
%py3_install -- --install-scripts %{_bindir}%{python3_pkgversion}
|
|
|
|
echo -n "" > py3_bins
|
|
for f in `ls %{buildroot}%{_bindir}%{python3_pkgversion}`; do
|
|
mv %{buildroot}%{_bindir}%{python3_pkgversion}/$f %{buildroot}%{_bindir}/$f-%{python3_version}
|
|
ln -s $f-%{python3_version} %{buildroot}%{_bindir}/$f-3
|
|
ln -s $f-%{python3_version} %{buildroot}%{_bindir}/$f
|
|
echo -e "%{_bindir}/$f\n%{_bindir}/$f-3\n%{_bindir}/$f-%{python3_version}" >> py3_bins
|
|
done
|
|
|
|
# Integrate bash completion with the bash-completion package
|
|
cp -f %{buildroot}%{_datadir}/%{srcname}-completion/vcs.bash %{buildroot}%{_datadir}/bash-completion/completions/vcs
|
|
ln -sf vcs %{buildroot}%{_datadir}/bash-completion/completions/vcs-3
|
|
ln -s vcs %{buildroot}%{_datadir}/bash-completion/completions/vcs-%{python3_version}
|
|
%endif # with_python3
|
|
|
|
|
|
%check
|
|
# We skip two classes of test:
|
|
# 1. Code style
|
|
# 2. Tests which require network access
|
|
%define pytest_options \\\
|
|
--ignore=test/test_flake8.py \\\
|
|
--ignore test/test_commands.py \\\
|
|
test
|
|
|
|
%if 0%{?with_python2}
|
|
%{__python2} -m pytest %pytest_options
|
|
%endif # with_python2
|
|
|
|
%if 0%{?with_python3}
|
|
%{__python3} -m pytest %pytest_options
|
|
%endif # with_python3
|
|
|
|
|
|
%if 0%{?with_python2}
|
|
%files -n python2-%{srcname} -f py2_bins
|
|
%license LICENSE
|
|
%doc CONTRIBUTING.md README.rst
|
|
%{python2_sitelib}/%{srcname}/
|
|
%{python2_sitelib}/%{srcname}-%{version}-py%{python2_version}.egg-info/
|
|
%{_datadir}/%{srcname}-completion
|
|
%{_datadir}/bash-completion/completions/vcs
|
|
%{_datadir}/bash-completion/completions/vcs-2
|
|
%{_datadir}/bash-completion/completions/vcs-%{python2_version}
|
|
%endif # with_python2
|
|
|
|
%if 0%{?with_python3}
|
|
%files -n python%{python3_pkgversion}-%{srcname} -f py3_bins
|
|
%license LICENSE
|
|
%doc CONTRIBUTING.md README.rst
|
|
%{python3_sitelib}/%{srcname}/
|
|
%{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info/
|
|
%{_datadir}/%{srcname}-completion
|
|
%{_datadir}/bash-completion/completions/vcs
|
|
%{_datadir}/bash-completion/completions/vcs-3
|
|
%{_datadir}/bash-completion/completions/vcs-%{python3_version}
|
|
%endif # with_python3
|
|
|
|
|
|
%changelog
|
|
* Wed Jul 17 2019 Scott K Logan <logans@cottsay.net> - 0.2.2-1
|
|
- Update to 0.2.2
|
|
|
|
* Mon Jun 10 2019 Scott K Logan <logans@cottsay.net> - 0.2.1-1
|
|
- Update to 0.2.1 (rhbz#1718722)
|
|
|
|
* Mon Mar 18 2019 Scott K Logan <logans@cottsay.net> - 0.1.40-1
|
|
- Update to 0.1.40
|
|
- Drop python3_other subpackage
|
|
|
|
* Tue Feb 19 2019 Scott K Logan <logans@cottsay.net> - 0.1.39-1
|
|
- Update to 0.1.39
|
|
|
|
* Thu Jan 17 2019 Scott K Logan <logans@cottsay.net> - 0.1.38-1
|
|
- Update to 0.1.38
|
|
|
|
* Tue Oct 16 2018 Scott K Logan <logans@cottsay.net> - 0.1.37-1
|
|
- Initial package
|