Description of problem: Calibre fails to launch
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Launch Calibre from application list or by running 'calibre' from a shell
QSocketNotifier: Can only be used with threads started with QThread
Traceback (most recent call last):
File "/usr/bin/calibre", line 20, in <module>
File "/usr/lib64/calibre/calibre/gui_launch.py", line 72, in calibre
File "/usr/lib64/calibre/calibre/gui2/main.py", line 542, in main
listener = create_listener()
File "/usr/lib64/calibre/calibre/gui2/main.py", line 513, in create_listener
File "/usr/lib64/calibre/calibre/utils/ipc/server.py", line 109, in __init__
AttributeError: 'NoneType' object has no attribute 'cancel'
"QSocketNotifier" line appears to be unrelated
Bug appears to be fixed upstream in v4.15.0 (commmit 7b6416ac6522fc40f24f6baf3ca552b17a8b91d6)
*** This bug has been marked as a duplicate of bug 1840780 ***
I am encountering this exact same bug, I have the latest update of calibre... can someone please explain further how to fix this bug?
The answer is buried in the thread on the duplicate bug (# 1840780), but to save you time, the patch is at https://github.com/kovidgoyal/calibre/commit/7b6416ac6522fc40f24f6baf3ca552b17a8b91d6. Edit your /usr/lib/calibre/calibre/utils/ipc/server.py (or wherever you have it installed, try "locate ipc/server.py" to find the path) to check the time of self._listener._unlink before calling its cancel() method, as shown in the GitHub patch.
Alternatively, it sounds like downgrading Python to an older version or upgrading Calibre to a newer one may take care of the issue, but this is a quick and easy fix with negligible risk of upsetting anything else, if you're not prepared to abandon your distro's default Python/Calibre packages.