remyroy / CDDA-Game-Launcher

A Cataclysm: Dark Days Ahead launcher with additional features
MIT License
423 stars 105 forks source link

The launcher takes more space than the game itself thanks to (GPL btw) PyQt #581

Open Maykeye opened 3 years ago

Maykeye commented 3 years ago

Describe the bug When installed, launcher takes ~200M and latest as of right now experimental build of the game takes ~170M.

Expected behavior Expected behavior for launcher is to take order of magnitude less space than the game. Literally an order of magnitude. If game takes 200M, glorified "run" button is expected to be around 20M

The main culprit is PyQt5. Getting rid of it will cut the size in more than half and you will not have GPLv3(PyQt5 uses very viral GPL) code in MIT-licensed project. Win/win.

Screenshots image

CDDA - game directory, ~170M everything else - the launcher, ~200M

remyroy commented 3 years ago

This is a somewhat large change. If you want to get involved and contribute to the launcher by replacing PyQt with a leaner GUI layer, we will welcome your changes and we will support you as best as we can.

dkargin commented 3 years ago

Implementing a {"compact", "native", "consistent", "standalone", "easy to implement"} (standalone = no need to install anything else) UI for all relevant platforms is enormous engineering task. Qt (or any large UI framework) just solves it by neglecting word "compact".

Long story short: reimplementing game launcher using other framework is mostly equal to rewriting this launcher from scratch using that another framework, and that takes some serious effort.

Maykeye commented 3 years ago

Even if PyQt is used, launcher as a whole can not be distributed under MIT as a whole(as it currently does). It must be either GPL or it must not not use PyQt5.

https://www.gnu.org/licenses/gpl-faq.en.html#IfLibraryIsGPL

If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license? (#IfLibraryIsGPL)

...The software modules that link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL. ...

Does tkinter works fine under Mac btw?

remyroy commented 3 years ago

We'll look into migrating away from PyQt to something like PySide6 or PySide2 to comply with licensing. Thanks