Bug 1370926

Summary: calibre does not work in Fedora 25
Product: [Fedora] Fedora Reporter: Hans de Goede <hdegoede>
Component: calibreAssignee: Kevin Fenzi <kevin>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 25CC: chkr, frankly3d, helio, kevin, nushio, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: calibre-2.65.1-1.fc25 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-02 23:28:56 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Hans de Goede 2016-08-28 13:30:22 UTC
calibre does not work in Fedora 25, the rawhide version does work. Please also build the 2.65.1 version for F25.

Comment 1 Kevin Fenzi 2016-08-28 16:42:07 UTC
In what way does it not work? crash on start?

Since the move to qt5, it seems pretty sensitive to the rest of the qt5 stack (ie, changes there cause a need for a rebuild). 

I can (and will) rebuild the newest, just curious what is causing it to fail so I can watch that more closely...

Comment 2 Hans de Goede 2016-08-28 18:27:46 UTC
[hans@shalem ~]$ calibre
Traceback (most recent call last):
  File "/usr/bin/calibre", line 20, in <module>
    sys.exit(calibre())
  File "/usr/lib64/calibre/calibre/gui_launch.py", line 62, in calibre
    main(args)
  File "/usr/lib64/calibre/calibre/gui2/main.py", line 495, in main
    app, opts, args = init_qt(args)
  File "/usr/lib64/calibre/calibre/gui2/main.py", line 101, in init_qt
    app = Application(args, override_program_name=override)
  File "/usr/lib64/calibre/calibre/gui2/__init__.py", line 886, in __init__
    self.load_calibre_style()
  File "/usr/lib64/calibre/calibre/gui2/__init__.py", line 997, in load_calibre_style
    self.pi.load_style(icon_map)
TypeError: a dict value has type 'unicode' but 'QString' is expected

So yes crash on startup :)

Comment 3 Hans de Goede 2016-08-28 18:29:25 UTC
p.s.

It has issues under Wayland too, it seems that qt defaults to using native wayland and that is not exactly stable yet ?

It started under Wayland for me (with the rawhide build), but when I clicked on a book in the list it crashed with some qt wayland error. I've just switched back to Gnome on X for now to workaround this.

Comment 4 Fedora Update System 2016-08-28 18:31:42 UTC
calibre-2.65.1-1.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-358bc46d83

Comment 5 Kevin Fenzi 2016-08-28 18:34:05 UTC
Yeah, thats a qt thing... please try the above update and it should work. 

I know about the wayland crash. I need to file it upstream. Basically it's assuming that the backend is always X11, when it's not. 

"some apps wrongly assume they run in X11 (and would ever do), and cast the
GdkDisplay to a GdkX11Display, unfortunately with gtk3 and Wayland, that
depends on the backend in use, and in Wayland with gtk3, a GdkDisplay is not a
GdkX11Display, too bad for the broken app"

You can work around it with: 

GDK_BACKEND=x11 calibre

Comment 6 Hans de Goede 2016-08-28 18:39:36 UTC
(In reply to Kevin Fenzi from comment #5)
> Yeah, thats a qt thing... please try the above update and it should work. 

I can confirm that this fixes things for me.

> I know about the wayland crash. I need to file it upstream. Basically it's
> assuming that the backend is always X11, when it's not. 
> 
> "some apps wrongly assume they run in X11 (and would ever do), and cast the
> GdkDisplay to a GdkX11Display, unfortunately with gtk3 and Wayland, that
> depends on the backend in use, and in Wayland with gtk3, a GdkDisplay is not
> a
> GdkX11Display, too bad for the broken app"
> 
> You can work around it with: 
> 
> GDK_BACKEND=x11 calibre

Ok, maybe install calibre as calibre.bin, or under /usr/libexec and have a wrapper like this ? :

#!/bin/sh

export GDK_BACKEND=x11
exec /usr/libexec/calibre "$@"

As a workaround? Fedora 25 may ship with gnome on wayland as default, so it seems important to workaround this at least.

Comment 7 Kevin Fenzi 2016-08-28 19:49:14 UTC
This issue looks like a python-qt5 issue. 

I've filed upstream: 

https://bugreports.qt.io/browse/QTBUG-55583

If it's not fixed closer to f25 release then yeah, we may have to do some kind of wrapper. ;(

Comment 8 Fedora Update System 2016-08-29 09:03:36 UTC
calibre-2.65.1-1.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-358bc46d83

Comment 9 Fedora Update System 2016-09-02 23:28:49 UTC
calibre-2.65.1-1.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.