> We recommend to _bundle everything that cannot be reasonably expected to be > part of each target system (default install) in a recent enough version_. > This means that if you build on an old enough build system, we can expect > something like glibc to "be part of each target system in a recent enough > version". However, if you build on a very recent build system, this may not > hold true, because your build artifacts will require a too new glibc version > which "cannot be reasonably expected to be part of each target system in a > recent enough version". So as always, it depends.
Yes, I'm well aware about binary compatibility. > For practical reasons, I maintain a list of > [libraries](https://github.com/probonopd/AppImages/blob/master/excludelist) > and [debs](https://github.com/probonopd/AppImages/blob/master/excludedeblist) > that I currently assume to "be part of each target system". I see you list GTK+2 as a base library, so the bundle shouldn't require much libraries. > These lists are not perfect, however, so if you think that > `libpangoft2-1.0.so.0` should be added, you may well be right. PangoFT is a GTK2 dependency, so there's no reason to bundle it more. We don't depend on it directly either, only through GTK. > Effectively, it is exactly what you'd do if you target the macOS or Windows > platforms. Unfortunately those are terribly painful, so it's not really a selling point :) > AppImage is a self-mounting filesystem that simply executes what you put > inside. It's up to you what you put inside, […] Well, actually it seems far less "magical" than I hoped for, and a lot more like a mere unpack-and-run type of thing. For example, the need to patch everything under the installation directory to create relative installation directories. BTW, about that: * running `sed` on binary files requires care. Basically, you need to make sure that `LANG=C` (IIRC), otherwise it might not work and/or mess up the result. * running `sed` is hacky, but also might catch inappropriate things, in the string */usr* ever happens in something else than a path to a bundled data file/library. I somewhat had the crazy hope there was a way to somehow overlay a filesystem over `/` for the context of an app, and so that it would really be transparent. --- Anyway, it doesn't change much yet. At least for setting it up initially, we probably would need someone motivated -- and sorry, knowing exactly what he/she's doing. I'm not dismissing any effort here, and I definitely know that many things come with trial and error, I'm just saying that it'll likely take more time to end up with a "good" result. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/geany/geany/issues/1303#issuecomment-260731250