MinLL / GameInterfaceForToys

Scripts to control toys for Skyrim and other games.
29 stars 10 forks source link

PySimpleGUI is now proprietary trialware, mitigation recommended #22

Closed inertaert closed 1 month ago

inertaert commented 8 months ago

Hey @MinLL,

The developer of PySimpleGUI has turned it into proprietary trialware for versions 5.0 and later.

(Hacker News discussion here: https://news.ycombinator.com/item?id=39369353)

"PySimpleGUI" in requirements.txt currently defaults to the latest version:

$ pip show PySimpleGUI
Name: PySimpleGUI
Version: 5.0.2
Summary: Python GUIs for Humans! PySimpleGUI is the top-rated Python application development environment. Launched in 2018 and actively developed, maintained, and supported in 2024. Transforms tkinter, Qt, WxPython, and Remi into a simple, intuitive, and fun experience for both hobbyists and expert users.
Home-page: https://www.PySimpleGUI.com
Author: PySimpleSoft Inc.
Author-email:
License: Proprietary
...

First-time users of GameInterfaceForToys are therefore greeted with a 30 day trial period notification:

https://github.com/MinLL/GameInterfaceForToys/assets/109687441/6322ddfe-83ba-400f-b35d-00cb23588fab

install1

Accepting the license agreement starts a 30-day timer, which ostensibly blocks users from using GIFT after the time is up. [1]

This is unnecessary. I suggest that PySimpleGUI be pinned to the most recent GPL version (source code mirrored here) in requirements.txt as a temporary stopgap measure: PySimpleGUI==4.60.5

Pull request here: https://github.com/MinLL/GameInterfaceForToys/pull/23

This downgrade does not seem to introduce any regression bugs in GIFT.

Note that all older versions of PySimpleGUI might soon be entirely deleted from PyPI, according to https://github.com/PySimpleGUI/PySimpleGUI/issues/6680#issuecomment-1953730853.

Best regards

[1] FYI, if you wish to test this yourself, the license/timer is tracked globally in the file _PySimpleGUI_settings_global_.json, located at one of the following user settings paths depending on OS:

DEFAULT_USER_SETTINGS_WIN_PATH = r'~\AppData\Local\PySimpleGUI\settings'
DEFAULT_USER_SETTINGS_LINUX_PATH = r'~/.config/PySimpleGUI/settings'
DEFAULT_USER_SETTINGS_MAC_PATH = r'~/Library/Application Support/PySimpleGUI/settings'
DEFAULT_USER_SETTINGS_UNKNOWN_OS_PATH = r'~/Library/Application Support/PySimpleGUI/settings'
DEFAULT_USER_SETTINGS_PATH = None  # value set by user to override all paths above
DEFAULT_USER_SETTINGS_PYSIMPLEGUI_PATH = None  # location of the global PySimpleGUI settings
DEFAULT_USER_SETTINGS_PYSIMPLEGUI_FILENAME = '_PySimpleGUI_settings_global_.json'  # location of the global PySimpleGUI settings
...