johnfactotum / foliate

Read e-books in style
https://johnfactotum.github.io/foliate/
GNU General Public License v3.0
6.1k stars 282 forks source link

Requiring WebKit2 but it has 2 versions available; use imports.gi.versions to pick one #812

Closed mnm-bit closed 2 years ago

mnm-bit commented 2 years ago

Gjs-Message: 14:39:23.857: JS WARNING: [resource:///com/github/johnfactotum/Foliate/js/main.js 23]: Requiring WebKit2 but it has 2 versions available; use imports.gi.versions to pick one

Skydancer9 commented 2 years ago

Same issue over here.

`$ com.github.johnfactotum.Foliate --verbose Gjs-Message: 12:16:10.916: JS WARNING: [resource:///com/github/johnfactotum/Foliate/js/main.js 23]: Requiring WebKit2 but it has 2 versions available; use imports.gi.versions to pick one

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.909: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.909: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.909: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.909: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): GLib-GObject-WARNING **: 12:16:11.916: cannot register existing type 'TrackerSparqlConnection'

(com.github.johnfactotum.Foliate:7479): GLib-CRITICAL **: 12:16:11.916: g_once_init_leave: assertion 'result != 0' failed

(com.github.johnfactotum.Foliate:7479): GLib-GObject-CRITICAL **: 12:16:11.916: g_type_register_static: assertion 'parent_type > 0' failed

(com.github.johnfactotum.Foliate:7479): GLib-GObject-WARNING **: 12:16:11.916: cannot add private field to invalid (non-instantiatable) type ''

(com.github.johnfactotum.Foliate:7479): GLib-CRITICAL **: 12:16:11.916: g_once_init_leave: assertion 'result != 0' failed

(com.github.johnfactotum.Foliate:7479): GLib-GObject-CRITICAL **: 12:16:11.916: g_object_new_with_properties: assertion 'G_TYPE_IS_OBJECT (object_type)' failed

(com.github.johnfactotum.Foliate:7479): Tracker-CRITICAL **: 12:16:11.926: tracker_sparql_backend_load_plugins: assertion 'self != NULL' failed`

mnm-bit commented 2 years ago

Same issue over here.

  • Foliate version: 2.6.3
  • latest Manjaro (Arch) Linux

`$ com.github.johnfactotum.Foliate --verbose Gjs-Message: 12:16:10.916: JS WARNING: [resource:///com/github/johnfactotum/Foliate/js/main.js 23]: Requiring WebKit2 but it has 2 versions available; use imports.gi.versions to pick one

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.909: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.909: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.909: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.909: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): CRITICAL : 12:16:11.910: g_irepository_find_by_name: assertion 'typelib != NULL' failed

(com.github.johnfactotum.Foliate:7479): GLib-GObject-WARNING **: 12:16:11.916: cannot register existing type 'TrackerSparqlConnection'

(com.github.johnfactotum.Foliate:7479): GLib-CRITICAL **: 12:16:11.916: g_once_init_leave: assertion 'result != 0' failed

(com.github.johnfactotum.Foliate:7479): GLib-GObject-CRITICAL **: 12:16:11.916: g_type_register_static: assertion 'parent_type > 0' failed

(com.github.johnfactotum.Foliate:7479): GLib-GObject-WARNING **: 12:16:11.916: cannot add private field to invalid (non-instantiatable) type ''

(com.github.johnfactotum.Foliate:7479): GLib-CRITICAL **: 12:16:11.916: g_once_init_leave: assertion 'result != 0' failed

(com.github.johnfactotum.Foliate:7479): GLib-GObject-CRITICAL **: 12:16:11.916: g_object_new_with_properties: assertion 'G_TYPE_IS_OBJECT (object_type)' failed

(com.github.johnfactotum.Foliate:7479): Tracker-CRITICAL **: 12:16:11.926: tracker_sparql_backend_load_plugins: assertion 'self != NULL' failed`

Flatpak version doesn't have this problem, working good

johnfactotum commented 2 years ago

Probably already fixed with #808. I'll try and make a release soon.

archisman-panigrahi commented 2 years ago

Till a new version is released, Arch/Manjaro users can install the foliate-git AUR package.

nihil39 commented 2 years ago

Till a new version is released, Arch/Manjaro users can install the foliate-git AUR package.

Isn't that package outdated?

aur/foliate-git 1.5.3.r10.gd35e3e6-1 (+7 0.20) A simple and modern GTK eBook reader

By the way, I'm having the same problem I think

Gjs-Message: 11:39:43.176: JS WARNING: [resource:///com/github/johnfactotum/Foliate/js/main.js 23]: Requiring WebKit2 but it has 2 versions available; use imports.gi.versions to pick one

(com.github.johnfactotum.Foliate:119222): libsoup-ERROR **: 11:39:43.251: libsoup3 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported. zsh: trace trap (core dumped) foliate

archisman-panigrahi commented 2 years ago

Isn't that package outdated?

No, the version number of -git packages are updated during building. See the note about VCS packages. https://wiki.archlinux.org/title/Arch_User_Repository#Flagging_packages_out-of-date

nihil39 commented 2 years ago

Isn't that package outdated?

No, the version number of -git packages are updated during building. See the note about VCS packages. https://wiki.archlinux.org/title/Arch_User_Repository#Flagging_packages_out-of-date

Ok, thanks. I installed the aur git package, but it doesn't seem to work. https://dpaste.org/QB9J

archisman-panigrahi commented 2 years ago

The log you posted says it installed successfully. Does it not run? Is there any error message when you run it from terminal?

It works for me in Manjaro.

On Sun, 5 Dec, 2021, 5:02 pm nihil39, @.***> wrote:

Isn't that package outdated?

No, the version number of -git packages are updated during building. See the note about VCS packages. https://wiki.archlinux.org/title/Arch_User_Repository#Flagging_packages_out-of-date

Ok, thanks. I installed the aur git package, but it doesn't seem to work. https://dpaste.org/QB9J

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/johnfactotum/foliate/issues/812#issuecomment-986213042, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXL2XFXM7USJI32CSEPWD3UPNEUVANCNFSM5IZBSP3A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

nihil39 commented 2 years ago

The log you posted says it installed successfully. Does it not run? Is there any error message when you run it from terminal? It works for me in Manjaro. On Sun, 5 Dec, 2021, 5:02 pm nihil39, @.***> wrote: Isn't that package outdated? No, the version number of -git packages are updated during building. See the note about VCS packages. https://wiki.archlinux.org/title/Arch_User_Repository#Flagging_packages_out-of-date Ok, thanks. I installed the aur git package, but it doesn't seem to work. https://dpaste.org/QB9J — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#812 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXL2XFXM7USJI32CSEPWD3UPNEUVANCNFSM5IZBSP3A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

There simply is no executable that can be launched.

_foliate zsh: command not found: foliate

foliate-git zsh command not found: foliate-git_

It was not the case when I installed the non git package

archisman-panigrahi commented 2 years ago

You need to launch it with com.github.johnfactotum.Foliate. Does it not launch from the .desktop shortcut in the menu?

The official Arch package has a shortcut foliate, which the -git package does not have.

nihil39 commented 2 years ago

You need to launch it with com.github.johnfactotum.Foliate. Does it not launch from the .desktop shortcut in the menu? The official Arch package has a shortcut foliate, which the -git package does not have.

Thank you, this is what happens launching foliate with that command https://dpaste.org/rccd

nihil39 commented 2 years ago

You need to launch it with com.github.johnfactotum.Foliate. Does it not launch from the .desktop shortcut in the menu? The official Arch package has a shortcut foliate, which the -git package does not have.

Thank you, this is what happens launching foliate with that command https://dpaste.org/rccd

I solved the issue disabling tracker

dconf write /com/github/johnfactotum/Foliate/library/use-tracker false

foliate-git now works on arch linux

Looking forward to a new stable release.

Thanks for the support

r0bis commented 2 years ago

Disabling tracker works for the offical arch version in manjaro as well. Just curious - why is tracker needed here?

johnfactotum commented 2 years ago

It's only used to get the location of a book when opening books from the Library.

Without Tracker, if you moved or renamed the file, you won't be able to open the book from Foliate's Library view until you've reopened the book (from e.g. the file manager), at which point Foliate know the new location of the file. Or you'd need to manually edit the location of the file.

With Tracker, Foliate will ask it for the location of the book with its unique identifier, and fallback to Foliate's internal location info only if Tracker does not know about the book.

r0bis commented 2 years ago

Thanks, that makes sense. Foliate looks great - elegant and minimalistic. But I am wondering if Foliate is not being a tiny bit too ambitious. In my workflow I use Calibre for library management and would open the book from Calibre - which tells Foliate the location (I think), or I would open a book directly from file manager. I would not expect Foliate to know where the file is if I renamed it.

Foliate's interface for reading is easily the best I have seen; for me the most important thing would be management of annotations - especially if they can be embedded in the book - i.e. be portable with the book. Just my two cents and Happy New Year!

johnfactotum commented 2 years ago

Yeah, that's how I use Foliate, too. I always open books from the file manager. In fact Foliate didn't get a library view until v2.2.0.

for me the most important thing would be management of annotations - especially if they can be embedded in the book - i.e. be portable with the book.

Technically it is possible to embed annotations, but in keeping with the "only a viewer" design, it would be best if the file itself isn't modified.

So really this is the root of the issue.

So it's a very slippery slope from reader to manager. See also my comments in #730.

Note that another way that is popular among e-book apps is storing a copy of the book. This method is used by Calibre, Apple Books, Thorium, etc. Doing this ensures that annotations and other data can be reliably attached to the book itself. It's a pretty heavy handed approach that will never be adopted by Foliate.

Of course, nothing says that annotations have to be attached to books at all. That's something I've sometimes wondered. To keep things as simple as possible, Foliate could, for example, explicitly require that you store and load annotation files separately from the book. That would be kind of inconvenient, to be sure. But this explicitness also means that the user would have no doubt as to how the annotations are stored. And it affords flexibility—e.g., with this you could easily store multiple independent sets or versions of annotations for the same book.

r0bis commented 2 years ago

Thank you! A really great amount of thought has gone into this. The way I view Calibre - it is my library manager and I really like that it stores a copy in a central place (I know where it is anyhow) - the problem for Calibre though is that their system does not work well across filsystem boundary - it gets problematic if you want to store your books on home network, then you have to use Calibre Server which comes with problems of a dedicated reader.

I think the best things work by anology to the analogue world - if it is my e-book I am happy to have annotations in it; even more so - I can share them with friends/colleagues in the same book. Since it is actually digital - there should be an easy possibility to delete (and export) all annotations - to return the book to the pristine state so to speak - to let it be read by a friend who makes different annotations. Ability to delete/export would deal with different sets of notes for the same book. The annotation comparison would then benefit from a diff like tool :) - but that is a separate thing.

Overall the biggest problem is that no reader works well across all platforms. E-books (mainly PDFs - because they are so standard and print well and EPUBs - because they can be edited, they flow and can be so small) are good to read on:

  1. your laptop or computer (Foliate) +: powerful, good screen, other apps readily available. -: heavy to lug around
  2. your eInk tablet (e.g. Boox Note - with Neo Reader) +: non-flickering screen. -: most apps not optimised for eInk (Moon+)
  3. your other tablet or phone (Android - Moon+ reader) +: ubiquitous access (can read the same book on public transport)

If one wants to keep their notes (i.e. their knowledge work) - it becomes hard over time - and mostly because there is not a modern reader that would work across platforms, or that would allow seamless annotation exchange (as a minimum you have to know what text you annotated and what note you wrote). So from that perspective it is a good idea if the notes are embedded in PDFs and EPUBs in some standard way. Sadly there unlikely is a standard way to deal with notes in ePubs - maybe apart from putting in custom footnote type things. I know that Calibre desktop reader can embed annotations inside ePubs, when I looked into it, their way of doing so seemed pretty good.

johnfactotum commented 2 years ago

Well, when it comes to interoperability, the lack of standards is the biggest problem. Or rather, there is one Web Annotation standard, which AFAIK isn't actually supported by any reading system. Or rather, the biggest problem is that most reading systems don't even bother to document how they store annotations. I can't find anything on how Calibre does it, for example.

But if what you need is a truly cross-platform reader, I think the best option would be to build one with nothing but Web technologies. Then it could run on any system that can run a modern browser engine. For storing and syncing the data one can use (or make) something like PouchDB. (There's just one catch—most browsers probably won't allow you to store gigabytes of data inside IndexedDB. So you'd probably store annotations data only, and sync book data using some external program.) Another way would be to embed the data in the EPUB file, but then you'd have to get write permission of the file, which currently isn't well supported across browsers, I believe.

The craziest thing about this approach is that you can even embed the whole app (which would be just a regular HTML file) inside the EPUB, in case you want to read the book where you can't install any apps nor have internet access. You can even embed the whole app inside the pages of a book if the reader supports scripting. EPUB-ception.

r0bis commented 2 years ago

Thanks, that is very interesting. A reader embeddable in EPUB files would be quite something. But from the other I realize that I am not alone in trying to make use of various differing pieces of software where it comes to eBooks and professional work.

johnfactotum commented 2 years ago

Forgot to close this. Should be fixed in 2.6.4.