%{?python_enable_dependency_generator}
%global modname ssh-python
Name: python-%{modname}
Version: 1.0.0
Release: 1%{?dist}
Summary: Bindings for libssh C library
License: GPL-2.0-or-later
URL: https://github.com/ParallelSSH/ssh-python
Source0: %{url}/archive/%{version}/%{modname}-%{version}.tar.gz
Patch0001: 0001-Set-master_doc-to-index-in-conf.py-for-sphinx.patch
# Upstream MR: https://github.com/ParallelSSH/ssh-python/pull/71
Patch0002: 0002-SafeConfigParser_removal_from_Python_3.12.patch
# Versioneer used is extremely old, force version, see above MR for suggestion
Patch0003: 0003-Fix_version_due_to_old_versioneer.patch
BuildRequires: cmake
BuildRequires: gcc
BuildRequires: libssh-devel
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-Cython
BuildRequires: python3-sphinx
BuildRequires: python3-sphinx_rtd_theme
# test dependencies
BuildRequires: python3-pytest
BuildRequires: %{_sbindir}/sshd %{_bindir}/ssh-agent
Recommends: python3-%{modname}-doc
%description
%{summary}.
%package -n python3-%{modname}
Summary: %{summary}
%{?python_provide:%python_provide python3-%{modname}}
%description -n python3-%{modname}
%{summary}.
Python 3 version.
%prep
%autosetup -p1 -n %{modname}-%{version}
# No bundled libs
rm -vrf libssh
sed -i -r 's:build_ssh[(].*:pass:' setup.py
# Remove pre-generated sources
rm $(grep -rl '/\* Generated by Cython')
%build
%py3_build
export HAVE_AGENT_FWD=0
# use build_ext to completely instruct cythonize options
export CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}"
export LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"
export CXXFLAGS="${CXXFLAGS:-${RPM_OPT_FLAGS}}"
%{python3} setup.py build_ext --inplace
%{python3} -msphinx -M html doc _build
%install
%py3_install
# remove 0 length files
rm -f %{buildroot}/%{python3_sitearch}/ssh/__init__.pxd
chmod 0755 %{buildroot}/%{python3_sitearch}/ssh/*.so
%check
# disable some options for sshd running inside mock
echo UsePrivilegeSeparation no >> tests/embedded_server/sshd_config.tmpl
echo StrictModes no >> tests/embedded_server/sshd_config.tmpl
# test_statvfs/test_fstatvfs do not seem to work in mock
rm -f tests/test_sftp.py
%pytest -v tests
%files -n python3-%{modname}
%license COPYING LICENSE
%doc README.rst Changelog.rst
%{python3_sitearch}/ssh_python-*.egg-info/
%{python3_sitearch}/ssh/
%package -n python3-%{modname}-doc
Summary: %{summary} documentation
%description -n python3-%{modname}-doc
%{summary} documentation.
%files -n python3-%{modname}-doc
%doc examples/ _build/html/
%changelog
* Tue Apr 18 2023 Federico Pellegrin <fede@evolware.org> - 1.0.0-1
- Bump to version 1.0.0
- Local patch for Python 3.12 compatibility (fixes rhbz#2165556)
- Fix wrong version in provides (fixes rhbz#2048102)
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.10.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.10.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jun 16 2022 Python Maint <python-maint@redhat.com> - 0.10.0-4
- Rebuilt for Python 3.11
* Thu Jun 16 2022 James Slagle <jslagle@redhat> - 0.10.0-1
- Update to 0.10.0
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 0.9.0-3
- Rebuilt for Python 3.11
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Dec 8 2021 James Slagle <jslagle@redhat.com> - 0.9.0-1
- Initial package