Using snap for application with plugins

Alexey Yakovenko wakeroid at gmail.com
Tue Aug 16 18:08:13 UTC 2016


Hi

(Before I start, I'd like to apologise if this message has duplicates, I
messed up with the mailing list subscription at first).

Many users are requesting snap package format for my music player
application.

I researched this topic, and came up with a list of problems which I could
not solve from documentation or google searches.

So here's a short introduction to my app architecture:

* The main module, which is a console application, which can load and use
plugins of various kinds
* A set of standard plugins, which can link to certain libraries
    * Example plugins: GTK2 UI, GTK3 UI, PulseAudio output, Various input
plugins, etc
* External plugins, which a user may download from internet -- they can be
anything, for example a plugin could implement a UI in Qt4 or Qt5, or
ncurses, or play sound via Jack.
    * It is not known at the time of package creation, what these packages
could be.

So when I'm creating the package, I have a problem -- which UI toolkit to
use, if my app supports any toolkit? It ships with GTK2 and GTK3, but there
are external plugins which add more toolkits. I can't really predict which
toolkit the user wants, and what libraries the plugins will use -- it can
be Qt4 or 5, or ncurses, or anything really.

Another problem. Let's take the jack output plugin as an example..

If the user downloads jack.so (the plugin), and puts it in the folder, the
player won't be able to load it, because the jack client library is not a
part of snap, or because there's no access to jack server, or something
like that, correct?

So, the final question.. Is it just a terrible idea to use snap for this
kind of applications? Or am I misunderstanding something, and all of this
is possible?

I really hope to get some useful "official" answers, which I could forward
to the users which request snap packages :)

Best regards.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/snapcraft/attachments/20160816/9d5d789b/attachment.html>


More information about the Snapcraft mailing list