[Github-comments] [geany/geany] Feature request: Please provide an AppImage for Geany (#1303)

Colomban Wendling notifications at xxxxx
Tue Nov 15 18:51:55 UTC 2016


> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20161115/033a7eac/attachment.html>


More information about the Github-comments mailing list