Subject: python-txtorcon: Build failure (Sequence not in collection in Python 3.10)

From: Ivan Vilata i Balaguer <[email-masked]>
Date: Fri, 5 May 2023 19:49:43 +0200

Hi!  Building `python-txtorcon` 19.0.0 fails in the version of Guix shown
below:

```
$ LANG=C guix describe
Generation 56   May 02 2023 11:25:26    (current)
  guix 3f8c489
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 3f8c4899a9a67bb509a603bd21dcfcfab88c0e8e
```

This is not <https://issues.guix.gnu.org/62924>, but an error caused by Python
3.10 completely removing abstract classes from `collections`.  This is the
final part of the build log:

```
starting phase `sanity-check'
validating 'txtorcon' /gnu/store/082pb14w482w6i175p7dxzwj60wnsqjs-python-txtorcon-19.0.0/lib/python3.10/site-packages
...checking requirements: OK
...trying to load module twisted: OK
...trying to load module txtorcon: ERROR:
Traceback (most recent call last):
  File "/gnu/store/iqsjkp55pcx5bfcp2jm9yj5rlx9a0whd-sanity-check.py", line 73, in <module>
    importlib.import_module(name)
  File "/gnu/store/dy3xh053ahkhrp2jamggq8cpsyvp8mg0-python-3.10.7/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/gnu/store/082pb14w482w6i175p7dxzwj60wnsqjs-python-txtorcon-19.0.0/lib/python3.10/site-packages/txtorcon/__init__.py", line 16, in <module>
    from txtorcon.controller import connect
  File "/gnu/store/082pb14w482w6i175p7dxzwj60wnsqjs-python-txtorcon-19.0.0/lib/python3.10/site-packages/txtorcon/controller.py", line 14, in <module>
    from collections import Sequence
ImportError: cannot import name 'Sequence' from 'collections' (/gnu/store/dy3xh053ahkhrp2jamggq8cpsyvp8mg0-python-3.10.7/lib/python3.10/collections/__init__.py)
error: in phase 'sanity-check': uncaught exception:
%exception #<&invoke-error program: "python" arguments: ("/gnu/store/iqsjkp55pcx5bfcp2jm9yj5rlx9a0whd-sanity-check.py" "/gnu/store/082pb14w482w6i175p7dxzwj60wnsqjs-python-txtorcon-19.0.0/lib/python3.10/site-packages") exit-status: 1 term-signal: #f stop-signal: #f> 
phase `sanity-check' failed after 0.7 seconds
command "python" "/gnu/store/iqsjkp55pcx5bfcp2jm9yj5rlx9a0whd-sanity-check.py" "/gnu/store/082pb14w482w6i175p7dxzwj60wnsqjs-python-txtorcon-19.0.0/lib/python3.10/site-packages" failed with status 1
```

It was reported in <https://github.com/meejah/txtorcon/issues/336> and fixed
in <https://github.com/meejah/txtorcon/commit/cc7ed186>, and incorporated to
version 20.0.0 as noted here:
<https://github.com/meejah/txtorcon/releases/tag/v20.0.0>.

Thanks and good weekend!

-- 
Ivan Vilata i Balaguer -- https://elvil.net/