Alcaro / Flips

Floating IPS is a patcher for IPS and BPS files.
Other
334 stars 46 forks source link

Build optimized Linux artifacts #75

Closed Miepee closed 4 months ago

Miepee commented 4 months ago

I'm seperating the optimized builds into seperate PRs, as I'm expecting a bit more discussion on them.

This PR builds release linux versions and uploads them as artifacts. It does so in a linux docker container with a very old GLIBC in order to ensure that the built flips is compatible with as many linux distros as possible. This does not create any release.

Currently the workflow can only be run manually and does not run automatically.

Alcaro commented 4 months ago

runs-on: ubuntu-latest ... dnf install -y gtk3-devel zip? Isn't dnf Redhat/Fedora?

I guess that container thing runs a Redhat inside the Ubuntu. Whatever, doesn't matter, sounds good to me.

https://github.com/Miepee/Flips/actions/runs/9198128366/job/25300131415

/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:66:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses] 66 | void (*__gtk_reserved1);

lol. Fixed since GTK 3.23.0 https://gitlab.gnome.org/GNOME/gtk/-/commit/85fa6ba63105e1a857a914bf76798ff1eda9530c , released June 2018 https://download.gnome.org/sources/gtk+/3.23/ ...but I guess using old libs is the point here.

I usually bump the minimum GTK version in my projects to whatever's shipped on latest Debian stable (3.24.38) and Ubuntu LTS (3.24.33), but I haven't found any new or deprecated functionality that's relevant to Flips, so it still works on old ones.

I can't find anything worth complaining about in the actual PR. Looks good to me.

Miepee commented 4 months ago

I guess that container thing runs a Redhat

It runs on Almalinux which is indeed redhat based.

but I guess using old libs is the point here.

Yeah, i've recently hit a case on another project I helped on, where something built on ubuntu20.04 wouldn't run on the steam deck because their glibc was too old. So I thought it'd be better to take the safe route and build on something older but therefore guarantee there won't be random complains from users because they have a slightly too new glibc.