FS#78333 - [python-urwid][alot] alot fails to start in [testing]

Attached to Project: Arch Linux
Opened by Lukas Fleischer (lfleischer) - Saturday, 29 April 2023, 19:06 GMT
Last edited by David Runge (dvzrv) - Monday, 01 May 2023, 17:21 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To David Runge (dvzrv)
Levente Polyak (anthraxx)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description: alot is broken in [testing]; a rebuild of python-urwid from a more recent Git commit seems like a likely root cause.


Additional info:
* package version(s) - python-urwid 2.1.2.r41.g0c0ea37-1, alot 0.10-6

Steps to reproduce:

1. alot 0.10-6; python-urwid 2.1.2.r41.g0c0ea37-1 (in [testing])
2. Run alot

```
Traceback (most recent call last):
File "/usr/bin/alot", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/lib/python3.11/site-packages/alot/__main__.py", line 137, in main
UI(dbman, cmdstring)
File "/usr/lib/python3.11/site-packages/alot/ui.py", line 96, in __init__
self.root_widget = urwid.AttrMap(mainframe, global_att)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/urwid/decoration.py", line 175, in __init__
self.attr_map = {None: attr_map}
^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/urwid/decoration.py", line 210, in set_attr_map
raise AttrMapError(
urwid.decoration.AttrMapError: None:AttrSpec('default', 'default') attribute mapping is invalid. Attributes must be hashable
```
This task depends upon

Closed by  David Runge (dvzrv)
Monday, 01 May 2023, 17:21 GMT
Reason for closing:  Fixed
Additional comments about closing:  This should now be fixed with python-urwid 2.1.2.r55.gbac20db-1
Comment by David Runge (dvzrv) - Sunday, 30 April 2023, 09:18 GMT
@lfleischer: Thanks for the ticket! This may also affect other consumers of python-urwid. Did you check others?

Please don't link to external non-privacy conserving paste services (especially if the snippet is so short) though :)
Comment by David Runge (dvzrv) - Sunday, 30 April 2023, 13:33 GMT
I was able to find the commit that breaks this for alot: https://github.com/urwid/urwid/commit/9976f338c122a208b8a9108590ea525086cdd5a1

We could revert to the previous commit https://github.com/urwid/urwid/commit/3cfa240252ab1efc74772ae45d8c6efe0b4acb39 and introduce an epoch.
Comment by David Runge (dvzrv) - Sunday, 30 April 2023, 17:46 GMT
Upstream suggests bumping up to https://github.com/urwid/urwid/commit/350ee5c47ff565d3b0d25b1c3cbddbfb2a0a2a4f instead.
Testing with `alot`, that seems to work, but then `khal` is broken.

Downgrading to the aforementioned commit is probably more sane.
Comment by David Runge (dvzrv) - Sunday, 30 April 2023, 20:12 GMT
As tracking the various issues gets a bit complicated I have opened a ticket for khal being broken on python-urwid's latest commit on its default branch [1].
As it stands currently I believe it is unfortunately the best to downgrade to https://github.com/urwid/urwid/commit/3cfa240252ab1efc74772ae45d8c6efe0b4acb39 unless upstream comes up with a solution to this problem soonish.

[1] https://github.com/urwid/urwid/issues/548