TagStudio icon indicating copy to clipboard operation
TagStudio copied to clipboard

Switch Linux CI to python docker image

Open Leseratte10 opened this issue 1 year ago • 2 comments

Currently, the build CI for Linux uses Github's Ubuntu 22.04 VM image. Ubuntu 22.04 comes with Glibc 2.35, so this means that the Linux builds of TagStudio will only run on distributions that also come with Glibc >= 2.35.

This PR changes that around so Githubs VM image is still being used, but inside that image it uses a Debian Bullseye docker container image with Python 3.12. Bullseye is a fair bit older and comes with Glibc 2.31.

This change should add support for running TagStudio under Debian Bullseye (11), Ubuntu 20.04 (Focal) and Rocky Linux 9 (see #386), and any other Linux distributions coming with glibc < 2.35 and >= 2.31.

I'm not sure if this change will have unintended side effects, but at least for me, TagStudio built with this change will actually start on Ubuntu 20.04 where before it just complained about a wrong Glibc version.

EDIT: Is this the correct target branch or should this target alpha-v9.4? Looks like the CI is a bit different between the two branches.

Leseratte10 avatar Sep 09 '24 17:09 Leseratte10

Have you test that TagStudio works on Debian 11/Rocky 9/Ubuntu 20.04? TagStudio interface is written using PySide 6 (Qt6 for Python). Neither Debian 11, Rocky 9, or Ubuntu 20.04 have packages for qt6. I'm not able to test this myself presently, but one of the top results for "qt6 Ubuntu 20.04" is the OBS project dropping support for Ubuntu 20.04 because of Qt6 [obsproject/obs-studio/discussions/9055]. Thanks!

seakrueger avatar Sep 09 '24 21:09 seakrueger

Have you test that TagStudio works on Debian 11/Rocky 9/Ubuntu 20.04? TagStudio interface is written using PySide 6 (Qt6 for Python). Neither Debian 11, Rocky 9, or Ubuntu 20.04 have packages for qt6. I'm not able to test this myself presently, but one of the top results for "qt6 Ubuntu 20.04" is the OBS project dropping support for Ubuntu 20.04 because of Qt6 [obsproject/obs-studio/discussions/9055]. Thanks!

I have not fully tested every functionality but I did make sure that it does start and the GUI shows up on my 20.04 install. I'll give it another go in a fresh new 20.04 VM to make sure it's not just working because of my weird config.

EDIT: I tested in a VM with a completely fresh install of Ubuntu 20.04.6. I had to install libxcb-cursor0 because it complained that that was missing, but then it started just fine, I can create a library and see files and add tags, so I'd say it works on 20.04.

Also, there's other software like Calibre 6 that's also written in Python and uses Qt6, and that works on Ubuntu 20.04 just fine as well, so I'm not sure what the issue with OBS or related projects is.

Leseratte10 avatar Sep 10 '24 05:09 Leseratte10

Getting around to some of these stale issues. I believe the reason we ever used Ubuntu 22.04 as the runner in the beginning is that the 20.04 runner had some sort of issue in building (it has been some time, so details have slipped my mind). Whatever it was, it wouldn't even get to the point of building, which I guess something about this container works around.

To gauge the scope of things, here is a list of distros that are still supported and shipping a GLIBC below 3.35:

Distribution End-of-Life Date Upgrade Available
CentOS Stream 9 31 May 2027
Debian 11 (Bullseye) 31 August 2026
Rocky Linux 9 31 May 2032
Ubuntu 20.04 31 May 2025

That essentially leaves Rocky Linux 9 being the sole distro with any significant support window, and no upgrade available, with the reason for its behavior seemingly for the sake of supporting enterprise usage. Unfortunately, we aren't going to shift CI to support a tiny group of users on this system, to give potential issues for everyone else. We do have build information on our documentation page if one does wish to have an executable for their outdated system: https://docs.tagstud.io/install/#building

xarvex avatar Mar 12 '25 08:03 xarvex