Distributing MyPaint as an AppImage and/or Snap Package

I think it would be awesome to Distribute MyPaint as an AppImage on our Github Release Page. It’s distro agnostic and could be easily installed with a bash script. On the flip side its portable meaning people could bring it to Linux Conventions and meetings on a USB stick and be able to demonstrate it without having to fuss with the package manager. Basically this can be our official build we support for Linux.

What are your guys thoughts? Should we give this a shot? What could be the hurdles we need to overcome to make this possible?

1 Like

Another Benefit of using AppImages on Linux is that we wouldn’t have to deal with GTK and GDK breaking MyPaint with every version release.

That would be awesome.
Especially nightly/continuous builds.

Does MyPaint master build on CentOS 6? That would be the preferred build system because the resulting AppImage will run on most halfway recent distributions. See pkg2appimage/recipes at master · AppImageCommunity/pkg2appimage · GitHub for examples of how to put together an AppImage.

We could also distribute the package as a Snap Package as well too. I’m experimenting with mypaint on this so I’ll let you know how that goes. If the snap package is feasible, I’ll talk to @achadwick about creating a repository were we can store the yml files and push the snap package to the Ubuntu store.

CentOS 6 is ancient. It doesn’t even support GTK3, see Install GTK3 in CentOS 6.5 - CentOS

Our Travis CI stuff currently builds on Trusty, but its libgtk is too old for the (runtime-only) Python GUI code. Happy to accept patches to it though, if these things need automating.

Anyone know of a Linux CI solution with a modern-ish GTK (3.12+) and support for build artefact access?

I don’t have time to investigate any new builds myself, but I am happy to add people to @mypaint/packagers and make repositories for them.

This pull request, when merged, will generate and upload an AppImage of each commit. It does so by bundling MyPaint, Python, and the required Python modules inside the AppImage.

My Pull Request seems to be stuck, is anything wrong with it?

I merged it, but it now breaks the build. Can you have a look?

Seems to be working now, I just downloaded the AppImage of your latest build from the transfer.sh URL in the Travis CI build log:

https://transfer.sh/14JBKD/mypaint-glibc2.15-x86-64.appimage

It is running well for me on elementary_OS_0.3_freya_amd64.iso.

I’ve started a new thread about creating a snap package for MyPaint:
https://community.mypaint.org/t/creating-a-mypaint-snap-package/605

The AppImages get built and uploaded upon each push to GitHub, the latest one being transfer.sh/jO4gQ/mypaint-glibc2.15-x86-64.appimage

It would be nice if the AppImage could be provided for download on Releases · mypaint/mypaint · GitHub too, because otherwise people won’t find it.

I think that is in the roadmap. Right Now @achadwick is working on a way to replace scons as a build dep. with MyPaint. Once that is committed, we’ll have to update all the CI tools and documentation to support it. After that I think we can work on getting test builds in the hands of users faster.