Sigil-Ebook / Sigil

Sigil is a multi-platform EPUB ebook editor
GNU General Public License v3.0
5.97k stars 578 forks source link

[Bug]: Segfault after opened Epub file #770

Closed l0ddej0kk0 closed 2 months ago

l0ddej0kk0 commented 2 months ago

Bug Description

A few seconds after opening and weirdly displaying KE3.epub, KE3.epub.zip (just rename KE3.epub.zip to KE3.epub, as this was already zip-ed), Segmentation fault (core dumped) occurs. Other .epub's work just fine.

Sigil 2.3.0 is newly built today, build-sigil.sh also attached. build_sigil.sh.zip

Found the 14MB coredump, tell me if /how you want it.

Platform (OS)

Linux

OS Version / Specifics

LinuxMint 22 Virginia (Ubuntu 24 Noble)

What version of Sigil are you using?

2.3.0

Any backtraces or crash reports

2024-09-01T13:18:02.897896+02:00 lapframe kernel: traps: sigil[30550] general protection fault ip:717b625eee32 sp:7ffcb6d6f770 error:0 in libQt6Core.so.6.4.2[717b624a6000+2e8000]
2024-09-01T13:18:05.770230+02:00 lapframe systemd-coredump[30664]: Process 30550 (sigil) of user 1000 dumped core.#012#012Module libudev.so.1 from deb systemd-255.4-1ubuntu8.4.amd64#012Module libsystemd.so.0 from deb systemd-255.4-1ubuntu8.4.amd64#012Module libzstd.so.1 from deb libzstd-1.5.5+dfsg2-2build1.1.amd64#012Stack trace of thread 30550:#012#0  0x0000717b625eee32 _ZN7QStringaSERKS_ (libQt6Core.so.6 + 0x1eee32)#012#1  0x0000619229afe7cf _ZN10MainWindow24ShowLastOpenFileWarningsEv (sigil + 0x5287cf)#012#2  0x0000717b62576683 _ZN7QObject5eventEP6QEvent (libQt6Core.so.6 + 0x176683)#012#3  0x0000717b6338b3b0 _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt6Widgets.so.6 + 0x18b3b0)#012#4  0x0000717b62538448 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x138448)#012#5  0x0000717b62538635 _ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData (libQt6Core.so.6 + 0x138635)#012#6  0x0000717b62733a8f n/a (libQt6Core.so.6 + 0x333a8f)#012#7  0x0000717b5fcf55b5 n/a (libglib-2.0.so.0 + 0x5d5b5)#012#8  0x0000717b5fd54717 n/a (libglib-2.0.so.0 + 0xbc717)#012#9  0x0000717b5fcf4a53 g_main_context_iteration (libglib-2.0.so.0 + 0x5ca53)#012#10 0x0000717b627315ef _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Core.so.6 + 0x3315ef)#012#11 0x0000717b625429a3 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + 0x1429a3)#012#12 0x0000717b6253b35e _ZN16QCoreApplication4execEv (libQt6Core.so.6 + 0x13b35e)#012#13 0x00006192296cd782 main (sigil + 0xf7782)#012#14 0x0000717b61c2a1ca __libc_start_call_main (libc.so.6 + 0x2a1ca)#012#15 0x0000717b61c2a28b __libc_start_main_impl (libc.so.6 + 0x2a28b)#012#16 0x00006192296e6ff5 _start (sigil + 0x110ff5)#012#012Stack trace of thread 30551:#012#0  0x0000717b61d1b4cd __GI___poll (libc.so.6 + 0x11b4cd)#012#1  0x0000717b613e38ca n/a (libxcb.so.1 + 0xc8ca)#012#2  0x0000717b613e528c xcb_wait_for_event (libxcb.so.1 + 0xe28c)#012#3  0x0000717b5c2d27c0 n/a (libQt6XcbQpa.so.6 + 0x557c0)#012#4  0x0000717b6267c48d n/a (libQt6Core.so.6 + 0x27c48d)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30559:#012#0  0x0000717b61c98d61 __futex_abstimed_wait_common64 (libc.so.6 + 0x98d61)#012#1  0x0000717b61c9b7dd __pthread_cond_wait_common (libc.so.6 + 0x9b7dd)#012#2  0x0000717b51f1d7ad n/a (radeonsi_dri.so + 0x11d7ad)#012#3  0x0000717b51efca8b n/a (radeonsi_dri.so + 0xfca8b)#012#4  0x0000717b51f1d6dc n/a (radeonsi_dri.so + 0x11d6dc)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30563:#012#0  0x0000717b61c98d61 __futex_abstimed_wait_common64 (libc.so.6 + 0x98d61)#012#1  0x0000717b61c9b7dd __pthread_cond_wait_common (libc.so.6 + 0x9b7dd)#012#2  0x0000717b51f1d7ad n/a (radeonsi_dri.so + 0x11d7ad)#012#3  0x0000717b51efca8b n/a (radeonsi_dri.so + 0xfca8b)#012#4  0x0000717b51f1d6dc n/a (radeonsi_dri.so + 0x11d6dc)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30564:#012#0  0x0000717b61c98d61 __futex_abstimed_wait_common64 (libc.so.6 + 0x98d61)#012#1  0x0000717b61c9bc7e __pthread_cond_wait_common (libc.so.6 + 0x9bc7e)#012#2  0x0000717b62676b93 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x276b93)#012#3  0x0000717b6267cad2 n/a (libQt6Core.so.6 + 0x27cad2)#012#4  0x0000717b6267c48d n/a (libQt6Core.so.6 + 0x27c48d)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30553:#012#0  0x0000717b61d1b4cd __GI___poll (libc.so.6 + 0x11b4cd)#012#1  0x0000717b5fd5466e n/a (libglib-2.0.so.0 + 0xbc66e)#012#2  0x0000717b5fcf4a53 g_main_context_iteration (libglib-2.0.so.0 + 0x5ca53)#012#3  0x0000717b5fcf4aa9 n/a (libglib-2.0.so.0 + 0x5caa9)#012#4  0x0000717b5fd23c82 n/a (libglib-2.0.so.0 + 0x8bc82)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30558:#012#0  0x0000717b61c98d61 __futex_abstimed_wait_common64 (libc.so.6 + 0x98d61)#012#1  0x0000717b61c9b7dd __pthread_cond_wait_common (libc.so.6 + 0x9b7dd)#012#2  0x0000717b51f1d7ad n/a (radeonsi_dri.so + 0x11d7ad)#012#3  0x0000717b51efca8b n/a (radeonsi_dri.so + 0xfca8b)#012#4  0x0000717b51f1d6dc n/a (radeonsi_dri.so + 0x11d6dc)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30561:#012#0  0x0000717b61c98d61 __futex_abstimed_wait_common64 (libc.so.6 + 0x98d61)#012#1  0x0000717b61c9b7dd __pthread_cond_wait_common (libc.so.6 + 0x9b7dd)#012#2  0x0000717b51f1d7ad n/a (radeonsi_dri.so + 0x11d7ad)#012#3  0x0000717b51efca8b n/a (radeonsi_dri.so + 0xfca8b)#012#4  0x0000717b51f1d6dc n/a (radeonsi_dri.so + 0x11d6dc)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30567:#012#0  0x0000717b61c98d61 __futex_abstimed_wait_common64 (libc.so.6 + 0x98d61)#012#1  0x0000717b61c9bc7e __pthread_cond_wait_common (libc.so.6 + 0x9bc7e)#012#2  0x0000717b62676b93 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x276b93)#012#3  0x0000717b6267cad2 n/a (libQt6Core.so.6 + 0x27cad2)#012#4  0x0000717b6267c48d n/a (libQt6Core.so.6 + 0x27c48d)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30560:#012#0  0x0000717b61c98d61 __futex_abstimed_wait_common64 (libc.so.6 + 0x98d61)#012#1  0x0000717b61c9b7dd __pthread_cond_wait_common (libc.so.6 + 0x9b7dd)#012#2  0x0000717b51f1d7ad n/a (radeonsi_dri.so + 0x11d7ad)#012#3  0x0000717b51efca8b n/a (radeonsi_dri.so + 0xfca8b)#012#4  0x0000717b51f1d6dc n/a (radeonsi_dri.so + 0x11d6dc)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30552:#012#0  0x0000717b61d2725d syscall (libc.so.6 + 0x12725d)#012#1  0x0000717b5fd4e40d g_cond_wait (libglib-2.0.so.0 + 0xb640d)#012#2  0x0000717b5fcbf52b n/a (libglib-2.0.so.0 + 0x2752b)#012#3  0x0000717b5fd27043 n/a (libglib-2.0.so.0 + 0x8f043)#012#4  0x0000717b5fd23c82 n/a (libglib-2.0.so.0 + 0x8bc82)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30554:#012#0  0x0000717b61d1b4cd __GI___poll (libc.so.6 + 0x11b4cd)#012#1  0x0000717b5fd5466e n/a (libglib-2.0.so.0 + 0xbc66e)#012#2  0x0000717b5fcf5f77 g_main_loop_run (libglib-2.0.so.0 + 0x5df77)#012#3  0x0000717b5d378422 n/a (libgio-2.0.so.0 + 0x11a422)#012#4  0x0000717b5fd23c82 n/a (libglib-2.0.so.0 + 0x8bc82)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30557:#012#0  0x0000717b61c98d61 __futex_abstimed_wait_common64 (libc.so.6 + 0x98d61)#012#1  0x0000717b61c9b7dd __pthread_cond_wait_common (libc.so.6 + 0x9b7dd)#012#2  0x0000717b51f1d7ad n/a (radeonsi_dri.so + 0x11d7ad)#012#3  0x0000717b51efca8b n/a (radeonsi_dri.so + 0xfca8b)#012#4  0x0000717b51f1d6dc n/a (radeonsi_dri.so + 0x11d6dc)#012#5  0x0000717b61c9ca94 start_thread (libc.so.6 + 0x9ca94)#012#6  0x0000717b61d29c3c __clone3 (libc.so.6 + 0x129c3c)#012#012Stack trace of thread 30582:#012#0  0x0000717b61c98d61 __futex_abstimed_wait_common64 (libc.so.6 + 0x98d61)#012#1  0x0000717b61c9bc7e __pthread_cond_wait_common (libc.so.6 + 0x9bc7e)#012#2  0x0000717b67c63a34 n/a (libQt6WebEngineCore.so.6 + 0x4263a34)#012#3  0x0000717b67c6450a n/a (libQt6WebEngineCore.so.6 + 0x426450a)#012#4  0x0000717b67c35335 n/a (libQt6WebEngineCore.so.6 + 0x4235335)#012#5  0x0000717b67c3f41b n/a (libQt6WebEngineCore.so.6 + 0x423f41b)#012#6  0x0000717b67c3fa01 n/a (libQt6WebEngine
# probably cut off
l0ddej0kk0 commented 2 months ago

sigil_weird

Sigil window after opening KE3.epub

dougmassay commented 2 months ago

Can confirm ke3.epub crashes Sigil on Arch Linux with Qt6.7.2. I've not delved into it at all, but the epub is a flat structure (which always worked with Sigil in the past ). Perhaps it's an artifact of our Qt6-only restructuring? Will have more time later to investigate.

dougmassay commented 2 months ago

I don't see any visual weirdness when the epub opens, however.

kevinhendricks commented 2 months ago

The error seems to come in:

MainWindow.cpp - ShowLastOpenFileWarning

which means your epub's xhtml file is probably missing its DOCTYPE.

There was a recent fix in that routine that prevents re-entry that was pushed to master.

If your build was built from official Sigil-2.3.0 sources, please try a new build but from Sigil master today and test if your crash still happens.

dougmassay commented 2 months ago

Is URI a valid opf indentifier scheme?

<dc:identifier id="BookId" opf:scheme="URI">G1o8wG284</dc:identifier>

kevinhendricks commented 2 months ago

That epub has 2 problems:

  1. It is an epub2 but has not NCX, Sigil has to create one
  2. It is missing DOCTYPE on its xhtml files.

After opening, you should be seeing these two error messages:

Screenshot 2024-09-01 at 8 59 49 AM Screenshot 2024-09-01 at 9 00 02 AM
kevinhendricks commented 2 months ago

I do not think a URI scheme is allowed there but backtrace is showing the issues in in the warning dialogs that pop up after initial opening.

This all works on macOS.

I will test it on my Manjaro VM

kevinhendricks commented 2 months ago

I can confirm the segfault happens even with the updated code in Sigil master on my Qt 6.7.2 Manjaro box.

I should be able to get a good backtrace.

My complete guess is the problem is that some of the warning messages are being generated in a different thread than the main GUI one.

This one might be tricky to fix given ImportEPUB is multithreaded on purspose for loading speed.

kevinhendricks commented 2 months ago

Here is the complete backtrace. The problem is happening in QString assignment inside the ShowLastLoadWarnings routine in MainWindow.cpp.

Thread 1 "sigil" received signal SIGSEGV, Segmentation fault.
0x00007fffeb00e522 in QString::operator=(QString const&) () from /usr/lib/libQt6Core.so.6
(gdb) bt
#0  0x00007fffeb00e522 in QString::operator=(QString const&) () from /usr/lib/libQt6Core.so.6
#1  0x0000555555ae6a47 in MainWindow::ShowLastOpenFileWarnings() ()
#2  0x0000555555b00f48 in MainWindow::LoadFile(QString const&, bool) ()
#3  0x0000555555b0340c in MainWindow::Open() ()
#4  0x00007fffeaf9e94a in ?? () from /usr/lib/libQt6Core.so.6
#5  0x00007fffeb91a264 in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQt6Gui.so.6
#6  0x00007fffebf1e4f9 in ?? () from /usr/lib/libQt6Widgets.so.6
#7  0x00007fffebf203f3 in ?? () from /usr/lib/libQt6Widgets.so.6
#8  0x00007fffebd9c15e in QWidget::event(QEvent*) () from /usr/lib/libQt6Widgets.so.6
#9  0x00007fffebd4c51c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6
#10 0x00007fffebd519c1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6
#11 0x00007fffeaf41d28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt6Core.so.6
#12 0x00007fffebd43e2d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () from /usr/lib/libQt6Widgets.so.6
#13 0x00007fffebdb2530 in ?? () from /usr/lib/libQt6Widgets.so.6
#14 0x00007fffebdb35f0 in ?? () from /usr/lib/libQt6Widgets.so.6
#15 0x00007fffebd4c51c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6
#16 0x00007fffeaf41d28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt6Core.so.6
#17 0x00007fffeb575df0 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /usr/lib/libQt6Gui.so.6
#18 0x00007fffeb5e4d64 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQt6Gui.so.6
#19 0x00007fffd69f5637 in ?? () from /usr/lib/qt6/plugins/platforms/../../../libQt6XcbQpa.so.6
#20 0x00007fffe9f9aab9 in ?? () from /usr/lib/libglib-2.0.so.0
#21 0x00007fffe9ffc9e7 in ?? () from /usr/lib/libglib-2.0.so.0
#22 0x00007fffe9f99fc5 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#23 0x00007fffeb19fcbd in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQt6Core.so.6
#24 0x00007fffeaf4c01e in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6
#25 0x00007fffeaf4634d in QCoreApplication::exec() () from /usr/lib/libQt6Core.so.6
#26 0x000055555567fc09 in main ()
kevinhendricks commented 2 months ago

Okay, found the bug. Missed a test to handle warnings with no details info. The NCX one is that type of warning.

I will push a fix for this to master.

kevinhendricks commented 2 months ago

This is now fixed in master. Since master has a few other useful fixes, you may way to build from Sigil master from today. If not, you will need to hand apply this change.

diff --git a/src/MainUI/MainWindow.cpp b/src/MainUI/MainWindow.cpp
index a9904137c..d0430e0fd 100644
--- a/src/MainUI/MainWindow.cpp
+++ b/src/MainUI/MainWindow.cpp
@@ -1644,9 +1644,14 @@ void MainWindow::ShowLastOpenFileWarnings()
             QString msg;
             QString details;
             if (!info.isEmpty()) {
-                QStringList warning = info.split(QChar(31));
-                msg = warning[0];
-                details = warning[1];
+                if (info.contains(QChar(31))) {
+                    QStringList warning = info.split(QChar(31), Qt::KeepEmptyParts);
+                    msg = warning[0];
+                    details = warning[1];
+                } else {
+                    msg = info;
+                    details = "";
+                }
                 Utility::DisplayStdWarningDialog( 
                 "<p><b>" %
                 tr("Warning: ") % msg %

Having an epub2 with no NCX is very very rare as it is a required component of epub2, so whatever code built this epub is broken . So we had no test case for this particular type of epub. We do now.

kevinhendricks commented 2 months ago

Thank you for your bug report! The fix is in master and will appear in the next release.

dougmassay commented 2 months ago

Good work! An ncx-less epub2 should be pretty rare, no?

On Sun, Sep 1, 2024, 10:04 AM Kevin Hendricks @.***> wrote:

Okay, found the bug. Missed a test to handle warnings with no details info. The NCX one is that type of warning.

I will push a fix for this to master.

— Reply to this email directly, view it on GitHub https://github.com/Sigil-Ebook/Sigil/issues/770#issuecomment-2323353560, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACG3CXRVYRTJGCGCOKGLZITZUMNFFAVCNFSM6AAAAABNOYMT7KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRTGM2TGNJWGA . You are receiving this because you commented.Message ID: @.***>

l0ddej0kk0 commented 2 months ago

sigil_weird

Sigil window after opening KE3.epub

I tried several other EPUBs now, and every time Sigil's window comes up like this, it will crash. Example: Clarkesworld #216 - Neil Clarke (ed.).epub.zip Again, don't unzip, merely remove the ".zip".

The EPUB creation is using https://chromewebstore.google.com/detail/epubpress-read-the-web-of/pnhdnpnnffpijjbnhnipkehhibchdeok which seems deprecated, though, so i'll probably switch to some other.

Usually, i look for a suitable cover image and metadata, then tell Calibre to polish the EPUB, which creates cover.xhtml, among other things.

The missing DOCTYPE stems probably from these 2 tools.

regards, l0ddej0kk0

l0ddej0kk0 commented 2 months ago

That epub has 2 problems:

  1. It is an epub2 but has not NCX, Sigil has to create one

It does have a navigation.ncx, look in the KE3epub attached earlier.

  1. It is missing DOCTYPE on its xhtml files.

Thats from creating with EpubPress (s.a.) and polishing with Calibre, i guess.

After opening, you should be seeing these two error messages: Screenshot 2024-09-01 at 8 59 49 AM Screenshot 2024-09-01 at 9 00 02 AM

I used to get two different errors with new EPUBs, but with 2.3.0 it's: emptyepub1 (the text about DOCTYPE appears new in 2.3.0) and one other which i cannot seem to reproduce now, about something with the .opf . Using an new empty book Test - Chrome Webstore.epub.zip

regards, l0ddej0kk0

BeckyDTP commented 2 months ago
It does have a navigation.ncx, look in the KE3epub attached earlier.

The existence of a navigation.ncx file is not enough. The name of the NCX file identifier must match the entry in the SPINE section.

Look here:

sigil-opf-ncx-id

l0ddej0kk0 commented 2 months ago

Hi,

just rebuilt from https://github.com/Sigil-Ebook/Sigil/archive/refs/heads/master.zip, but the version stays at 2.3.0. Though i did see in the make install output, that all files were indeed "installed", i.e. older ones overwritten.

Now, the coredump after opening certain EPUBs with the weird window placements seems gone, yay!

Fast work indeed, sir!

As to the two usual warnings on new EPUBs that Sigil has not yet seen before, thats: sigilwarn1 and sigilwarn2

regards, l0ddej0kk0

dougmassay commented 2 months ago

Now that Sigil won't crash, you can easily eliminate the auto-generated ncx by correcting the spine to point to the id of your navigation ncx (as BeckyDTP described). Then save and reopen.

kevinhendricks commented 2 months ago

Those Sigil warnings are correct. As BeckyDTP said, your spine toc attribute does not match the id of the ncx file, it in fact specifies a manifest entry that does not exist in the manifest. Again whatever software generated that epub2 is broken and should not be used.

And as for missing DOCTYPEs, that is a common issue in epub2 epubs generated by Calibre. Kovid is aware of this and decided not to include DOCTYPE even though it is part of the epub specification. That is why Sigil checks and can auto fix those issues (but Sigil will still alert you).

l0ddej0kk0 commented 2 months ago

Hi,

for completeness i maybe should include what Sigil says at a console start:

$ sigil 
Info: 

GL Type: desktop
Surface Type: OpenGL
Surface Profile: CompatibilityProfile
Surface Version: 4.6
QSG RHI Backend: OpenGL
Using Supported QSG Backend: yes
Using Software Dynamic GL: no
Using Multithreaded OpenGL: yes

Init Parameters:
  *  application-name sigil 
  *  browser-subprocess-path /usr/lib/qt6/libexec/QtWebEngineProcess 
  *  create-default-gl-context  
  *  disable-features ConsolidatedMovementXY,InstalledApp,BackgroundFetch,WebOTP,WebPayments,WebUSB,PictureInPicture 
  *  disable-setuid-sandbox  
  *  disable-speech-api  
  *  enable-features NetworkServiceInProcess,TracingServiceInProcess 
  *  enable-threaded-compositing  
  *  in-process-gpu  
  *  use-gl desktop 

regards, l0ddej0kk0

dougmassay commented 2 months ago

That's pretty typical output for a repo supplied Qt/WebEngineProcess.

On Mon, Sep 2, 2024, 9:46 AM Kevin Hendricks @.***> wrote:

Those Sigil warnings are correct. As BeckyDTP said, your spine toc attribute does not match the id of the ncx file, it in fact specifies a manifest entry that does not exist in the manifest. Again whatever software generated that epub2 is broken and should not be used.

And as for missing DOCTYPEs, that is a common issue in epub2 epubs generated by Calibre. Kovid is aware of this and decided not to include DOCTYPE even though it is part of the epub specification. That is why Sigil checks and can auto fix those issues (but Sigil will still alert you).

— Reply to this email directly, view it on GitHub https://github.com/Sigil-Ebook/Sigil/issues/770#issuecomment-2324800621, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACG3CXXF3ZYBQFDWVIVGZA3ZURT4BAVCNFSM6AAAAABNOYMT7KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRUHAYDANRSGE . You are receiving this because you commented.Message ID: @.***>