I broke Lutris when writing an installer

Any help would be appreciated, including “hey dummy, don’t do _______ do _______ instead”.

Situation;


At the end of running the installer script (when I expect that everything has been installed) I get the message;

TypeError: ‘<’ not supported between instances of ‘NoneType’ and ‘NoneType’

This happens after the game installs and Lutris kicks off an update of the Wine environment.

At this point, Lutris can’t be used even if restarted; closing and running Lutris from the shell returns this output;

$ lutris 
Traceback (most recent call last):
  File "/usr/bin/lutris", line 29, in <module>
    from lutris.gui.application import Application
  File "/usr/lib/python3.6/site-packages/lutris/gui/application.py", line 32, in <module>
    from lutris.platforms import update_platforms
  File "/usr/lib/python3.6/site-packages/lutris/platforms.py", line 29, in <module>
    _init_platforms()
  File "/usr/lib/python3.6/site-packages/lutris/platforms.py", line 14, in _init_platforms
    runner = runners.import_runner(runner_name)()
  File "/usr/lib/python3.6/site-packages/lutris/runners/wine.py", line 486, in __init__
    'default': get_default_version(),
  File "/usr/lib/python3.6/site-packages/lutris/runners/wine.py", line 325, in get_default_version
    installed_versions = get_wine_versions()
  File "/usr/lib/python3.6/site-packages/lutris/runners/wine.py", line 304, in get_wine_versions
    dirs = version_sort(os.listdir(WINE_DIR), reverse=True)
  File "/usr/lib/python3.6/site-packages/lutris/util/strings.py", line 49, in version_sort
    return sorted(versions, key=version_key, reverse=reverse)
TypeError: '<' not supported between instances of 'NoneType' and 'NoneType'

Nuking or renaming the /home/[username]/.local/share/lutris directory allows Lutris to run either from the shell or from clicking on an installer from lutris.net, but the app is not available.


Here is the installer;

game:
exe: /home/alongton/Games/fallout-3/drive_c/Program Files/Bethesda Softworks/Fallout
3/Fallout3.exe
prefix: $GAMEDIR
installer:

  • insert-disc:
    requires: setup.exe
  • task:
    arch: win32
    name: create_prefix
    prefix: $GAMEDIR
  • task:
    executable: $DISC/setup.exe
    name: wineexec
    prefix: $GAMEDIR
  • task:
    app: quartz
    name: winetricks
  • task:
    key: VideoPciDeviceID
    name: set_regedit
    path: HKEY_CURRENT_USER\Software\Wine\Direct3D
    prefix: $GAMEDIR
    type: REG_DWORD
    value: ‘00000402’
  • task:
    key: VideoPciVendorID
    name: set_regedit
    path: HKEY_CURRENT_USER\Software\Wine\Direct3D
    prefix: $GAMEDIR
    type: REG_DWORD
    value: 000010de
    wine:
    version: 1.9.1

The registry keys and the wine version are required to work around problems with Intel HD graphics and 32bit libs under more recent versions of Wine. Note that the “wine:” section was originally at the top of the script, but the web editor moved it to the bottom after a save.

I havent dicked with registry hacks (yet) but I do notice that you have ticks on one and not the other.

Also as a tip for debugging and the user knowing what is going on, for each tast set the name to something more useful. Such as “Installing Quartz” and “Setting Registry for mind reading powers”, etc.