On Sunday, April 25, 2021 at 1:53:03 PM UTC-5 Samuel Lelievre wrote:


Marc Culler's SageMath-macOS app could provide inspiration for that.


After having done some research on this, my preference would be to package 
Sage as an AppImage, and I have plans for doing that.  An AppImage needs to 
be relocatable, and I believe that the scripts I use for the macOS app to 
make it relocatable would be easily adapted to do the same thing on linux.  
I have not built an AppImage for Sage yet, but as a warmup I packaged 
SnapPy as a linux AppImage, and that was successful.  It is very easy to 
work with AppImages.  They are not sandboxed in the way that a snap or 
flatpak is sandboxed (e.g. restricting where files can be read from or 
written to), which I view as a plus, but they do not need to depend on any 
local libraries other than the C runtime.

The Sage macOS app is technically a GUI app, since it opens one window 
which is used to launch Sage, but there is no GUI provided for Sage 
itself.  The GUI is a few lines of tkinter code which could be re-used on 
linux.  So my plan would be to make the linux AppImage work the same way as 
the macOS app, with essentially the same code.

 An AppImage is a single file which is an ELF executable (although you must 
run chmod +x after downloading it) and which also contains an appended 
(compressed) squashfs filesystem that includes all code and libraries 
needed to run the main program.  It works completely in user space and need 
not require any external system packages.  The AppImage can go anywhere 
(although ~/bin is a recommended location).  It can also be easily 
integrated with an XDG desktop system by just adding a .desktop file and an 
icon.  (The Snappy AppImage installs those two files if run with an option 
--install.)

Ideally one would  build the appimage on a manylinux docker image so that 
it would be compatible at least with 5 year old linux systems. 

 The Appimage executable simply mounts the squashfs filesystem and execs 
the main program, which can be a script, from a standard location in the 
filesystem.  It requires FUSE to mount the filesystem, which unfortunately 
mans that it will not work on WSL since, supposedly, WSL does not support 
FUSE.
 
- Marc

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/sage-devel/88bf4d1f-f440-4d93-9c77-7420c1017392n%40googlegroups.com.

Reply via email to