xpra icon
Bug tracker and wiki

Opened 4 months ago

Last modified 5 weeks ago

#1748 assigned enhancement

[Packaging Request] Linux binaries in 'AppImage' format

Reported by: Kurt Owned by: Antoine Martin
Priority: major Milestone: 3.0
Component: packaging Version: 2.2.x
Keywords: Cc:

Description (last modified by Antoine Martin)

I would like to use the latest+greatest Xpra version on Debian Linux (Stretch) and openSUSE Tumbleweed.

However, on Debian it is version 0.17.6 only which I can obtain through the official repository. For Tumbleweed, I cannot find xpra at all!

An very user-friendly option would be a Linux binary packaged as an "AppImage". If you never heard of that: you can compare this to a .dmg package for macOS, with the difference that:

  • where the DMG requires (a very simple) installation process, the AppImage does not need "installation" at all (only setting the executable bit) and
  • where the installed .dmg expands into an "*.app" directory, an AppImage remains a compressed SquashFS file system packaged into a single file even during execution time (when it is automatically FUSE-mounted to a temporary mount point and run via simple embedded "AppRun" helper binary).

AppImages implement the elegant "One App == One File" paradigm. They have the following properties:

  • do not need root privileges to get them working;
  • do not need a package management system to get them "installed";
  • do not need any pre-requisite "platform" or package manager to work;
  • one and the same AppImage can work on multiple Linux distributions released in the last 3-4 years;
  • AppImages work from any location (even thumbdrives or remotely mounted SMB/Samba, SSHFS, NFS or other shares);
  • AppImages can be automatically upgraded to the newest version via a (zsync-powered) binary delta download mechanism if the AppImage packagers embed a suitable "updateinfo" string into the package).

AppImages are relatively simple to package with the help of the AppImageKit tools provided on GitHub here: AppImageKit on GitHub and linuxdeployqt on GitHub.

I'm sure the AppImageKit developers hanging around in IRC will be happy to help should you be interested to implement this: #AppImage channel on Freenode.

Change History (2)

comment:1 Changed 4 months ago by Antoine Martin

Description: modified (diff)
Milestone: 3.0
Status: newassigned

I would like to use the latest+greatest Xpra version on Debian Linux (Stretch) and openSUSE Tumbleweed.

FYI: the latest version of xpra is always available in the xpra repositories for all distribution supported, including Debian Stretch.

As for supporting appimage or even flatpak, it would be great but there are a number of issues:

  • first and foremost:

https://imgs.xkcd.com/comics/standards.png
We will need to continue to package for the ~50 platform+distro+arch combinations we support, only adding to the packaging workload and maintenance burden.

  • this is not a workable solution for servers, which need to integrate with the system as a service (logind+udev, selinux, printing integration, etc)

On the other hand, it may simplify the issue of supporting out of date distros like centos6.

comment:2 Changed 5 weeks ago by Antoine Martin

centos6 could be used as a base for the appimage, the difficulty is that we would need to build:

  • python 2.7 (or even python 3.6 if we want to target gtk3)
  • latest gtk2
  • dozens of media libraries
  • gstreamer 1.x (since 0.10 is no longer supported in xpra)
  • ~50 python modules

The total number of packages we would need to build is probably similar to what we do on macos, and that's ~130!
This can be used as reference too, see the jhbuild modulesets: https://xpra.org/trac/browser/xpra/trunk/osx/jhbuild.
And maybe we can use jhbuild on centos to leverage the work already done? Worth a try.

Note: See TracTickets for help on using tickets.