Bug 2291930

Summary: F41FailsToInstall: Multiple packages built from python-sqlalchemy1.4
Product: [Fedora] Fedora Reporter: Fedora Fails To Install <fti-bugs>
Component: python-sqlalchemy1.4Assignee: Ben Beasley <code>
Status: CLOSED RAWHIDE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: code, gwync, nphilipp
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-sqlalchemy1.4-1.4.52-6.fc41 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-06-19 17:19:32 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2260877, 2244836, 2291495, 2291629, 2291929, 2291940    

Description Fedora Fails To Install 2024-06-12 11:30:20 UTC
Hello,

Please note that this comment was generated automatically by https://pagure.io/releng/blob/main/f/scripts/ftbfs-fti/follow-policy.py
If you feel that this output has mistakes, please open an issue at https://pagure.io/releng/

Your package (python-sqlalchemy1.4) Fails To Install in Fedora 41:

can't install python3-sqlalchemy1.4+aiomysql:
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+aiomysql-1.4.52-1.fc41.x86_64
  - nothing provides (python3.12dist(greenlet) < 0.4.17 or python3.12dist(greenlet) > 0.4.17) needed by python3-sqlalchemy1.4+aiomysql-1.4.52-1.fc41.x86_64
  - nothing provides python3.12dist(aiomysql) >= 0.2 needed by python3-sqlalchemy1.4+aiomysql-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4+aiosqlite:
  - nothing provides python3.12dist(aiosqlite) needed by python3-sqlalchemy1.4+aiosqlite-1.4.52-1.fc41.x86_64
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+aiosqlite-1.4.52-1.fc41.x86_64
  - nothing provides (python3.12dist(greenlet) < 0.4.17 or python3.12dist(greenlet) > 0.4.17) needed by python3-sqlalchemy1.4+aiosqlite-1.4.52-1.fc41.x86_64
  - nothing provides (python3.12dist(typing-extensions) < 3.10.0.1 or python3.12dist(typing-extensions) > 3.10.0.1) needed by python3-sqlalchemy1.4+aiosqlite-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4+asyncio:
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+asyncio-1.4.52-1.fc41.x86_64
  - nothing provides (python3.12dist(greenlet) < 0.4.17 or python3.12dist(greenlet) > 0.4.17) needed by python3-sqlalchemy1.4+asyncio-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4+mssql_pymssql:
  - nothing provides python3.12dist(pymssql) needed by python3-sqlalchemy1.4+mssql_pymssql-1.4.52-1.fc41.x86_64
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+mssql_pymssql-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4+mssql_pyodbc:
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+mssql_pyodbc-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4+mysql:
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+mysql-1.4.52-1.fc41.x86_64
  - nothing provides python3.12dist(mysqlclient) >= 1.4 needed by python3-sqlalchemy1.4+mysql-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4+postgresql:
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+postgresql-1.4.52-1.fc41.x86_64
  - nothing provides python3.12dist(psycopg2) >= 2.7 needed by python3-sqlalchemy1.4+postgresql-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4+postgresql_asyncpg:
  - nothing provides python3.12dist(asyncpg) needed by python3-sqlalchemy1.4+postgresql_asyncpg-1.4.52-1.fc41.x86_64
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+postgresql_asyncpg-1.4.52-1.fc41.x86_64
  - nothing provides (python3.12dist(greenlet) < 0.4.17 or python3.12dist(greenlet) > 0.4.17) needed by python3-sqlalchemy1.4+postgresql_asyncpg-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4+postgresql_pg8000:
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+postgresql_pg8000-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4+pymysql:
  - nothing provides python3.12dist(pymysql) needed by python3-sqlalchemy1.4+pymysql-1.4.52-1.fc41.x86_64
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4+pymysql-1.4.52-1.fc41.x86_64
  
can't install python3-sqlalchemy1.4:
  - nothing provides python(abi) = 3.12 needed by python3-sqlalchemy1.4-1.4.52-1.fc41.x86_64
  - nothing provides (python3.12dist(greenlet) < 0.4.17 or python3.12dist(greenlet) > 0.4.17) needed by python3-sqlalchemy1.4-1.4.52-1.fc41.x86_64
  
If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem.


If you don't react accordingly to the policy for FTBFS/FTI bugs (https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/), your package may be orphaned in 8+ weeks.


P.S. The data was generated solely from koji buildroot, so it might be newer than the latest compose or the content on mirrors. To reproduce, use the koji/local repo only, e.g. in mock:

    $ mock -r fedora-41-x86_64 --config-opts mirrored=False install python3-sqlalchemy1.4+aiomysql python3-sqlalchemy1.4+aiosqlite python3-sqlalchemy1.4+asyncio python3-sqlalchemy1.4+mssql_pymssql python3-sqlalchemy1.4+mssql_pyodbc python3-sqlalchemy1.4+mysql python3-sqlalchemy1.4+postgresql python3-sqlalchemy1.4+postgresql_asyncpg python3-sqlalchemy1.4+postgresql_pg8000 python3-sqlalchemy1.4+pymysql python3-sqlalchemy1.4


P.P.S. If this bug has been reported in the middle of upgrading multiple dependent packages, please consider using side tags: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#updating-inter-dependent-packages

Thanks!

Comment 1 Ben Beasley 2024-06-16 12:18:59 UTC
Building the compiled extension failed:

  lib/sqlalchemy/cextension/resultproxy.c: In function ‘tuplegetter_new’:
  lib/sqlalchemy/cextension/resultproxy.c:831:10: error: implicit declaration of function ‘_PyArg_NoKeywords’ [-Wimplicit-function-declaration]
    831 |     if (!_PyArg_NoKeywords("tuplegetter", kwds))
        |          ^~~~~~~~~~~~~~~~~
  ***************************************************************************
  command '/usr/bin/gcc' failed with exit code 1
  WARNING: The C extension could not be compiled, speedups are not enabled.
  Failure information, if any, is above.
  Retrying the build without the C extension now.
  ***************************************************************************

For this, see: https://github.com/python/cpython/issues/110964

The build system just keeps going after this, and we end up without a compiled extension. Most of the tests pass, but there are a handful of failures:

FAILED test/orm/test_mapper.py::MapperTest::test_synonym_nonexistent_attr - A...
FAILED test/ext/test_serializer.py::ColumnPropertyWParamTest::test_deserailize_colprop
FAILED test/ext/test_serializer.py::SerializeTest::test_aliases - AttributeEr...
FAILED test/ext/test_serializer.py::SerializeTest::test_annotated_one - Attri...
FAILED test/ext/test_serializer.py::SerializeTest::test_any - AttributeError:...
FAILED test/ext/test_serializer.py::SerializeTest::test_attribute - Attribute...
FAILED test/ext/test_serializer.py::SerializeTest::test_columns - AttributeEr...
FAILED test/ext/test_serializer.py::SerializeTest::test_expression - Attribut...
FAILED test/ext/test_serializer.py::SerializeTest::test_mapper - AttributeErr...
FAILED test/ext/test_serializer.py::SerializeTest::test_orm_join - AttributeE...
FAILED test/ext/test_serializer.py::SerializeTest::test_query_one - Attribute...
FAILED test/ext/test_serializer.py::SerializeTest::test_query_three - Attribu...
FAILED test/ext/test_serializer.py::SerializeTest::test_query_two - Attribute...
FAILED test/ext/test_serializer.py::SerializeTest::test_tables - AttributeErr...
FAILED test/ext/test_serializer.py::SerializeTest::test_unicode - AttributeEr...
========= 15 failed, 15198 passed, 2407 skipped in 1355.79s (0:22:35) ==========

It looks like these are all due to something like:

  […]
  File "/builddir/build/BUILD/python-sqlalchemy1.4-1.4.52-build/SQLAlchemy-1.4.52/lib/sqlalchemy/ext/serializer.py", line 174, in dumps
    pickler = Serializer(buf, protocol)
  File "/builddir/build/BUILD/python-sqlalchemy1.4-1.4.52-build/SQLAlchemy-1.4.52/lib/sqlalchemy/ext/serializer.py", line 113, in Serializer
    pickler.persistent_id = persistent_id
    ^^^^^^^^^^^^^^^^^^^^^
AttributeError: '_pickle.Pickler' object attribute 'persistent_id' is read-only

Comment 2 Ben Beasley 2024-06-16 12:36:51 UTC
If we don’t want the build to keep going after building the C extension fails, we can set the environment variable REQUIRE_SQLALCHEMY_CEXT.

> export REQUIRE_SQLALCHEMY_CEXT=1

This seems wise to me.

Comment 3 Ben Beasley 2024-06-16 14:01:40 UTC
I’m almost ready to open a PR for this.

Comment 5 Nils Philippsen 2024-06-19 16:12:49 UTC
(In reply to Ben Beasley from comment #4)
> https://src.fedoraproject.org/rpms/python-sqlalchemy1.4/pull-request/1

Many thanks for fixing this!

Comment 6 Nils Philippsen 2024-06-19 17:19:32 UTC
Miro built the fixed package. This leaves python-pg8000 which isn’t yet available for Python 3.13 (and a whole chain of its deps):

--- 8< ---
Failed to resolve the transaction:
Problem: conflicting requests
  - nothing provides ((python3.13dist(pg8000) < 1.29 or python3.13dist(pg8000) > 1.29) with python3.13dist(pg8000) >= 1.16.6) needed by python3-sqlalchemy1.4+postgresql_pg8000-1.4.52-6.fc41.x86_64 from @commandline
--- >8 ---

I’ll close the bug, again many thanks!