%global package_name psycopg %global src_name %{package_name}3 %global _description %{expand: Psycopg 3 is a PostgreSQL database adapter for the Python programming language. Psycopg 3 presents a familiar interface for everyone who has used Psycopg 2 or any other DB-API 2.0 database adapter, but allows to use more modern PostgreSQL and Python features.} Name: python-%{src_name} Version: 3.0.11 Release: 1%{?dist} Summary: Psycopg 3 is a modern implementation of a PostgreSQL adapter for Python License: LGPLv3 URL: https://www.psycopg.org/%{src_name}/ Source0: https://github.com/%{package_name}/%{package_name}/archive/refs/tags/%{version}.tar.gz BuildRequires: python3-devel # Required for running tests BuildRequires: libpq BuildArch: noarch %description %_description %package -n python3-%{src_name} Requires: libpq Summary: %{SUMMARY} %description -n python3-%{src_name} %_description %prep %autosetup -p1 -n %{package_name}-%{version}/%{package_name} # Remove unused packages for tests and versions not available # in Fedora sed -i '/pproxy/d' setup.py # This package is removed as the code coverage does not have # to be tested sed -i '/pytest-cov/d' setup.py # This line removes the version since it is not supported # in Fedora, introduces breaking changes in package sed -i -r 's/(pytest-asyncio).*",/\1",/' setup.py # Remove versions to ensure build on Fedora 35 # These versions should not be needed as always in # upstream, there are versions with no breaking changes %if 0%{?fedora} < 36 sed -i -r 's/(wheel).*/\1"\]/' pyproject.toml sed -i -r 's/(pytest) >=.*",/\1",/' setup.py sed -i -r 's/(pytest-randomly).*",/\1",/' setup.py %endif # Tests fail when installed since DNS configuration is not # available sed -i '/dnspython/d' setup.py %generate_buildrequires %pyproject_buildrequires -x test %build %pyproject_wheel %install %pyproject_install %pyproject_save_files %{package_name} # Prepare the test folder for pytest pushd ../tests/ # Remove failing tests rm test_typing.py test_module.py # Remove all files in pool/ folder except the fix_pool.py. # The pool/fix_pool.py is in conftest.py as plugin find pool/ ! -name 'fix_pool.py' -type f -exec rm -f {} + popd %check %if 0%{?fedora} > 36 # Launchs tests with correctly set pytest-asyncio which # corrects the breaking change caused by the version %pytest ../tests/ --asyncio-mode=auto %else # Python 36 and lower do not have the version which breaks # the process available yet %pytest ../tests/ %endif %files -n python3-%{src_name} -f %{pyproject_files} %doc ../README.rst %license LICENSE.txt %changelog * Fri May 13 2022 Ondrej Sloup - 3.0.11-2 - Add support for Fedora 35 and 36 - Remove spaces at the end of the file - Pray that Friday 13 will not break anything * Thu Apr 28 2022 Ondrej Sloup - 3.0.11-1 - Create package from git source (#2079251)