Creating a snap package for Sonic 3.0


#1

Hi i want also to install sonic pi 3.1 on my ubuntu 16.04 and i’ve see that for @samaaron to much linux flavor is a pain.

So why not making a snap for all the linux distribution ?

https://docs.snapcraft.io/build-snaps/

https://snapcraft.io/

I will try to do one wednesday.

Seems to be the best solution for all the linux flavor in one repo.

Btw thanks for this awsome piece of work :slight_smile:


Introduction - Will Stephenson
#2

That would be great.
If you try it out then I suggest you use the release tag 3.0.1 on GitHub i.e. https://github.com/samaaron/sonic-pi/tree/v3.0.1 as the source. Sam has already moved the latest commits onto 3.1dev and there has been a significant change to the layout of the folders and a requirement for scsynth 3.9, both of which alter the build process. Better to have everyone with the latest release version at present.


#3

I’d love to see something like this happen - especially if it can make releasing for and supporting multiple Linux distros more feasible than it currently is.

The main issue right now is configuring the audio stack. Jack in particular seems to be a bit tricksy depending on which way the wind is blowing and the current phase of the moon…

Robin is correct that the latest master commit on GitHub requires SuperCollider v3.9-beta - which I assume there’s no package for at this stage. However, if it’s possible to package apps using snap ion a similar way than macOS and Windows - it might be much easier to just increase the package size and ship with a SuperCollider binary in the release itself. Sonic Pi makes it pretty easy to do exactly that (and also for any of the other binary dependencies such as Erlang and Ruby).


#4

I would like to help with this if possible. Snap (as I understand it) uses containers like Docker under the hood and my recent experience with getting Sonic Pi running in Docker might help.

While researching I saw that this Snap might be a good candidate to copy from https://github.com/kz6fittycent/clementine It’s an audio application with a Qt4 GUI - Sonic Pi uses Qt 5 - and there’s a detailed thread about what the packager had to do in here https://forum.snapcraft.io/t/snap-works-on-one-machine-but-not-on-another/2059/52

My only issue is that I’ll need to setup a proper Ubuntu install but I’ve been wanting to try this for a while anyway. @bussiere let me know if you make any progress on this. My docker work is here https://github.com/xavriley/sonic-pi-docker/blob/master/Dockerfile and (more recent) here https://github.com/xavriley/sonic-pi-docker/blob/server_rendering/Dockerfile.worker if that helps.


#5

Thanks i will be looking at this


#6

Did anyone make any progress with this one ?


#7

I have tried but it’s a lot of work. It’s still in my mind to do but I’d appreciate all the help I can get.

In particular if any Linux users want to try packaging some dependencies on Sonic Pi into a snap package that should make it easier to piece things together, for example making a standalone snap for SuperCollider

I’m gathering some links on the topic here https://www.gettoby.com/p/jhawz59pw9sd Let me know if anyone else is making progress