AttributeError: 'UserDirectory' object has no attribute 'value_name'

Description:

Due to a change in how pygobject >= 3.51.0 handles unregistered enums, mypaint throws an exception on start. Upstream is integrating with Ubuntu's shipped version of pyglib and friends. This is our problem.

Additional info:

  • package version(s):
    • mypaint 2.0.1-6
    • pygobject >= 3.51.0

There is a patch available to fix this. https://github.com/wobbol/mypaint/commit/3b682d5898f4a6b709a2cd1a4d2b1b9288277cd6

reference to when pygobject changed its behavior in its news file. https://gitlab.gnome.org/GNOME/pygobject/-/blob/1c675e47a160662e5247a387dcd35e0d36b3c4d2/NEWS#L32

  • config and/or log files:
$ mypaint --version
INFO: mypaint: Installation layout: conventional POSIX-like structure with prefix '/usr'
Traceback (most recent call last):
  File "/usr/bin/mypaint", line 309, in <module>
    main.main(
    ~~~~~~~~~^
        datapath,
        ^^^^^^^^^
    ...<4 lines>...
        debug=debug,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/mypaint/gui/main.py", line 133, in main
    lib.glib.init_user_dir_caches()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/mypaint/lib/glib.py", line 193, in init_user_dir_caches
    k.value_name,
    ^^^^^^^^^^^^
AttributeError: 'UserDirectory' object has no attribute 'value_name'

Steps to reproduce:

  1. Open mypaint with its standard out visible
  2. Observe python exception
Edited by Robert