Syncplay / syncplay

Client/server to synchronize media playback on mpv/VLC/MPC-HC/MPC-BE on many computers
http://syncplay.pl/
Apache License 2.0
2.11k stars 215 forks source link

Syncplay does not launch at all when downloaded and compiled #656

Closed catfromplan9 closed 8 months ago

catfromplan9 commented 8 months ago

Describe the bug A clear and concise description of what the bug is.

To Reproduce Steps to reproduce the behavior:

  1. Run syncplay command
  2. See error

Expected behavior Working software

Version and platform:

Gentoo package is completely broken and has been for the past week. I uninstalled half the packages on my system to get out of dependency hell because QtPy shiboken2 and a million other pyshit packages need Qt 5.15.11 not Qt 5.15.12. Anyway, now I try to compile it normally and it just doesn't run. Here is my error. Thank you for your time.

Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created.
Traceback (most recent call last):
  File "/usr/bin/syncplay", line 19, in <module>
    ep_client.main()
  File "/usr/lib/syncplay/syncplay/ep_client.py", line 8, in main
    SyncplayClientManager().run()
  File "/usr/lib/syncplay/syncplay/clientManager.py", line 9, in run
    config = ConfigurationGetter().getConfiguration()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/syncplay/syncplay/ui/ConfigurationGetter.py", line 556, in getConfiguration
    self._forceGuiPrompt()
  File "/usr/lib/syncplay/syncplay/ui/ConfigurationGetter.py", line 457, in _forceGuiPrompt
    for key, value in list(self._promptForMissingArguments().items()):
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/syncplay/syncplay/ui/ConfigurationGetter.py", line 422, in _promptForMissingArguments
    gc.run()
  File "/usr/lib/syncplay/syncplay/ui/GuiConfiguration.py", line 42, in run
    dialog = ConfigDialog(self.config, self._availablePlayerPaths, self.error, self.defaultConfig)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/syncplay/syncplay/ui/GuiConfiguration.py", line 1427, in __init__
    self.setWindowFlags(self.windowFlags() & Qt.WindowCloseButtonHint & ~Qt.WindowContextHelpButtonHint)
TypeError: 'PySide2.QtCore.Qt.WindowFlags' object cannot be interpreted as an integer
Et0h commented 8 months ago

Syncplay has no official Gentoo package. If someone is maintaining an unofficial package then you will want to raise any issues you have with their package with the maintainer.

The official builds of Syncplay 1.7.1 are listed at https://syncplay.pl/syncplay-1-7-1-release/

I don't use Linux, but my guess is that your problem is that there is an incompatibility between the version of Python being used by Syncplay and the version of PySide being used by Syncplay. See discussions at: https://github.com/Syncplay/syncplay/issues/633 and https://github.com/Syncplay/syncplay/pull/645

See the recently updated https://syncplay.pl/guide/install/ for instructions on how to install Syncplay from source on Linux. This notes that for GUI Linux users on Python <3.12 Syncplay require PySide2 (>=5.11.0 except for 5.15.0) and for those on Python >=3.12 Syncplay requires PySide6, but it is possible that this needs updating to address Python 3.11.

catfromplan9 commented 8 months ago

Trying to learn pyenv now because apparently the recommended way to fix python being trash is to containerize it. I pity the developers of syncplay for having to work with such an awful language. Thanks for your help.