Yes, that's exactly what I was talking about. This code should be somewhere in the code path that is taken when MComix is run on Windows while frozen by Pyinstaller. From what I can see, PyInstaller is set up to run mcomixstarter.py. This file calls mcomix.__main__.main(). Unfortunately, the mentioned code above is in if __name__ == '__main__', while it was in main() previously when the freeze support was supposedly still working.
Yes, that's exactly what I was talking about. This code should be somewhere in the code path that is taken when MComix is run on Windows while frozen by Pyinstaller. From what I can see, PyInstaller is set up to run mcomixstarter.py. This file calls mcomix.main.main(). Unfortunately, the mentioned code above is in if __name__ == '__main__', while it was in main() previously when the freeze support was supposedly still working.
Come to think of it, it seems kind of strange that we have freeze_support() in code paths that are never run on Windows and frozen environment. Maybe we should move it to mcomixstarter.py and just be done with it?
Maybe I was mistaken - it seems that the relevant code was refactored out in a4092eb4f2927ce5d600444d0b10c308148ca34d and is no no longer called when running mcomixstarter.py, which happens when MComix is frozen for Windows.
Looks like this is a bug related to the new version of Pyinstaller on Windows, in combination with multiprocessing used by the PDF extractor. The internet claims that calling multiprocessing.freeze_support() is supposed to fix this problem, and we are in fact already calling that function. I can confirm that running the "unfrozen" version from source on Windows also does not exhibit the problem.
Before I take a closer look at this admittedly huge pull request, may I ask how much of it (if any) was written with or by GenAI tooling?
Out of interest, the minimum required version of GdkPixbuf that would be required for this to work is 2.43.2 according to https://blogs.gnome.org/sophieh/2025/06/13/making-gnomes-gdkpixbuf-image-loading-safer/. Is that right?
Thank you, this looks like a very good change for PDF reading!