gumbarros / DevWidgets

DevWidgets is a Flutter application with several tools such as generators, formatters and converters for developers. It's directly inspired by DevToys.
https://gumbarros.github.io/DevWidgets
MIT License
153 stars 13 forks source link

Build with dependencies of lower versions #21

Open momobobe opened 1 year ago

momobobe commented 1 year ago

The AppImage and portable package report requirement of a minimum glibc version 2.34, which is unable to reach on Debian 11. Maybe flatpak is a workaround, but I think it's still necessary and doable to lower the dependency versions for better compatibility, as Debian 11 is not so old yet.

gumbarros commented 1 year ago

Hello @momobobe !

I want to help you on this, but I don't have the knowledge on the native dependencies on Linux. The steps I use to generate a AppImage from the Flutter app:

          cp -r portable DevWidgets.AppDir
          wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
          sudo apt install libfuse2
          chmod +x ./appimagetool-x86_64.AppImage
          cp -r linux/appimage_assets/* DevWidgets.AppDir/
          chmod +x DevWidgets.AppDir/AppRun
          ./appimagetool-x86_64.AppImage DevWidgets.AppDir/

app_image_assets: https://github.com/gumbarros/DevWidgets/tree/main/linux/appimage_assets

Do you know where I can change glibc version?

momobobe commented 1 year ago

Pardon me as not a developer, I just find this https://docs.appimage.org/reference/best-practices.html#binaries-compiled-on-old-enough-base-system and the common sense tells me, it's mainly caused by the version of system for building, since compilers simply pick the dependency installed in system. Perhaps you can change runs-on: ubuntu-latest to runs-on: ubuntu-20.04 in build-deploy.yml. But I'm afraid this is just a temporary and very limited workaround, since Github would remove older Ubuntu images as version bumps. Maybe a long-term solution is to build in docker with image of even older Ubuntu or other distros. Also maybe some configurations can be set on the Flutter side, but I don't really know how Flutter works.

Hope this helps.