Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch Linux CI to python docker image #479

Closed
wants to merge 2 commits into from

Conversation

Leseratte10
Copy link

@Leseratte10 Leseratte10 commented Sep 9, 2024

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.

@CyanVoxel CyanVoxel added Type: CI Continuous Integration / workflows System: Linux For Linux/BSD distributions Status: Review Needed A review of this is needed labels Sep 9, 2024
@seakrueger
Copy link
Collaborator

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!

@Leseratte10
Copy link
Author

Leseratte10 commented Sep 10, 2024

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.

Copy link
Contributor

@yedpodtrzitko yedpodtrzitko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont have linux machine to test this, but it looks legit to me 🤷

@CyanVoxel CyanVoxel removed the Status: Review Needed A review of this is needed label Dec 5, 2024
@xarvex
Copy link
Member

xarvex commented Mar 12, 2025

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 xarvex closed this Mar 12, 2025
@xarvex xarvex added the Type: Wontfix This will not be worked on label Mar 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
System: Linux For Linux/BSD distributions Type: CI Continuous Integration / workflows Type: Wontfix This will not be worked on
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants