Hi elf,
basically the AppImage contains a squashfs partition which gets mounted
like any other device when you run it. Egg installations/updates get put
in the same location as they would with a normally installed Chicken,
so, /usr/lib64/chicken/11 or similar. Compiler and interpreter do both
work, at least for very basic things I did a quick test with. The
compiler will use your system's C/C++ compiler.
Linking is something I have not gotten to yet; the main library is
inside the AppImage, so statically linked binaries should work properly,
but for dynamic linking I suppose I'll have to provide a command to
extract the library to the libdir.
Finding external dependencies also works just the same as with a
normally installed Chicken. Nothing gets sandboxed.
On 28.09.22 21:52, [email protected] wrote:
Hi!
I love the idea, but a few questions:
1) How does this handle egg installation/updates?
2) Do both the compiler and interpreter work?
3) How do binaries built with csc work, in terms of linking and including?
4) How do eggs handle finding external dependencies?
All of these should make it (painfully) obvious that I don't know anything
about AppImage, so if you can explain in more detail or send links to clarify,
it would be most appreciated.
Thanks!
-elf
From: Daniel Ziltener <[email protected]>
To: [email protected]
Date: 28 Sep 2022 22:37:59
Subject: Request for feedback: Chicken as a self-contained AppImage
Hello Chickeners!
I had a "why not?" idea recently. I'm maintaining the RPM packages for Chicken, and I
thought "why not pack Chicken into an AppImage?" - and that's what I did!
For those who don't know AppImages: they are single-file volumes (think ISO or
DMG) but executable, and they work, without any further requirements apart from
FUSE (to mount the embedded SquashFS), on every Linux distribution. You
download an AppImage, rename it if you want, make it executable, and it's ready
for use. (if you have AppImageUpdate installed, you can even automatically
check for and get updates).
So in this case, I packed a little script into the AppImage, since Chicken has
a whole bunch of executables. The AppImage is being built on OpenSUSE's OBS
service, and a download page is on https://www.appimagehub.com/p/1911578/ ,
where you'll also find further description on how to use it.
Try it out if you like, and let me know about your thoughts, bugs to fix, or
improvements to make. A bit later I will link it on the installation page of
the Chicken wiki.
Best regards,
Daniel