Running multiple versions under Linux?

Tags: #<Tag:0x00007f0a3fe88c08> #<Tag:0x00007f0a3fe88a78>


In Linux, is there a way to run legacy versions of MyPaint alongside the latest version? Perhaps having the latest version installed through repositories/PPAs while legacy versions are also accessible in a separate folder somewhere in the system? I found the downloads for all previous versions of MyPaint at GitHub, but I’m not really sure how to set up the contents of the .tar archives or how to compile from source.

I’ve spent some time working with MyPaint 1.2.0, and I like the new tools and features such as the new inking tool, bucket fill and improved symmetry options. But I still have concerns about how overall performance seems to have changed. MyPaint 1.1 felt very responsive: the brush strokes were applied instantaneously and it really felt like drawing/painting on a traditional canvas. When I tried 1.2.0 in both Linux and Windows, there’s a very slight lag with each stroke (even with the latest build under Windows, haven’t tried the latest update for Linux yet). It feels like the strokes take a fraction of a second before being rendered on the canvas, and they can’t quite keep up with the cursor like in 1.1.

For now, I’d like to keep using version 1.1 for my usual works while still trying out 1.2 as bugs/optimizations are sorted out over time. Alternatively, I have access to two dual-boot systems that both run Linux Mint 17.x Cinnamon and Windows 8.1, so I can also install 1.2 in a different OS/system altogether.


Mypaint explicitly supports this, to aid development.
You will need to be able to build mypaint yourself, though (so, have scons, gcc, and the other things listed in installed).

note: the below is written with the presumption that your system MyPaint has just been updated to 1.2, and you want to use 1.1 as the “non-systemwide” version.

All you need to do is to get a copy of the source of the version of mypaint you want, build it (but NOT install it – ie. execute scons build but not scons install) , and run it from the directory you unpacked it into (eg cd ~/directory/i/put/mypaint/in/; ./mypaint). The standard ‘application launcher’ creation process can take care of launching it correctly, once you do your testing and make sure things are behaving as expected – you just set the “Working directory” field appropriately, and “Command” to ./mypaint

However, because brushes in particular are not 100% backwards compatible between the versions, as well as a few other things, you probably also want to use separate configuration directories, rather than sharing config between the versions.
The -c option (as in ./mypaint -c ~/.config/mypaint-1.1) supports that need; you may also want to move the MyPaint 1.2 config directory from the old style location ~/.mypaint' to the new-style~/.config/mypaint`, for more consistency.

Honestly, the hardest / fiddliest part of doing this is just to make sure that all your resources in config directories are version-appropriate. Since you’re looking at “upgrading”, not downgrading, that really shouldn’t be much of an issue if you just copy in the contents of your old config directory into your new config directory.



Thanks for the advice. I haven’t tried to compile anything from source yet, so this is all new to me. Maybe I’ll make it a weekend project and see if I can set up both version 1.1 and 1.2 in my secondary system. :slightly_smiling: