cristian64 / mkdd-extender

A tool for extending Mario Kart: Double Dash!! with extra courses.
GNU General Public License v3.0
18 stars 4 forks source link

Use System libraries on Linux #16

Open Miepee opened 1 year ago

Miepee commented 1 year ago

Currently, the Linux release ships with a bunch of precompiled libraries. It is usually more secure to use the system libraries, as those get regular updates and vulnerability fixes. ( It'd also make it easier to find the actual executable :) )

Doing this should also fix #4 .

cristian64 commented 1 year ago

I agree that finding the executables in the bundles is a real struggle. Using the system's libraries is not an option, though: most likely the user will be either missing some, or having the wrong version.

The dark style intentionally used in the MKDD Extender has little to do with the bundled Qt library, so I don't think using system libraries would "fix" #4.

Miepee commented 1 year ago

Using the system's libraries is not an option, though: most likely the user will be either missing some, or having the wrong version.

Oh? Which ones? From the little I saw, the libraries all seemed basic that every install would have.

cristian64 commented 1 year ago

Using the system's libraries is not an option, though: most likely the user will be either missing some, or having the wrong version.

Oh? Which ones? From the little I saw, the libraries all seemed basic that every install would have.

The most obvious one is Qt. Different Linux distributions ship with different Qt versions, or even without it. Users would then have to try to install the dependencies themselves in their respective package managers. For those few cases, skilled users can check out the source and run the development version instead.

Furthermore, this is a Python application, whose dependencies, sourced from the PyPI repository, are often detached from the system's package manager. At the moment, the program is compiled via PyInstaller, which creates a standalone bundle that can run without depending on the system's libraries.

Miepee commented 1 year ago

Different Linux distributions ship with different Qt versions, or even without it.

QT is shipped in almost every "user friendly" distro because it's almost as essential as GTK. Too many applications rely on it. It is true though that the QT versions are different, with not only some distro-specific patches, but also that the QT base version (i.e QT6 not being readily available in Debian/Ubuntu, while they are in Arch). But I guess since you're bundling it with PyInstaller, it'd be difficult to tell it to link against system libs instead.