<div dir="ltr"><span class="im" style="font-size:12.8px"><div>Hi Thomas, and sorry for the duplicate message, at first I replied privately instead of posting to the list</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>>><br>>> As to what degree do you "trust" those plugins and their authors?<br>><br>><br>> I don't know most of them.<br>> There are a few developers who I have contact with, but technically I can't<br>> trust any of them.<br>> It's completely up to the end user whether to install certain plugin, or not<br>> -- the same way as he would install an application downloaded from the<br>> internet.<br>><br><br></div>Now that triggers a question for me: How do end users resolve<br>dependencies of plugins today?<br>Do they just assume that the downloaded plugins bring along whatever<br>they need? Or do they rely<br>on the package manager to resolve dependencies ad hoc?<br></blockquote><div><br></div></span><div style="font-size:12.8px">When the users download binaries, they usually only rely on the "system" libraries, like GTK, GLIBC, etc, and statically link everything else.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">However, many plugins require certain libraries to be installed in the system, and won't load otherwise.</div><div style="font-size:12.8px">Of course, these plugins only dynamically link to the libraries with stable API and which support backwards compatibility.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Example being the plugin for supporting Jack, or Qt.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I'm not aware of any popular linux distributions, that ship my application or its plugins, so there's no answer to the package manager question.</div><span class="im" style="font-size:12.8px"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>In any case: It seems to me that shipping your application and its<br>core plugins as a snap is certainly possible.<br></blockquote><div><br></div></span><div style="font-size:12.8px">Yes, I mentioned in one of the previous conversations, that this part works fine.</div><span class="im" style="font-size:12.8px"><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">For installing 3rd party plugins: Why not have an "app" or command on<br>your snap that takes care of copying files and folders<br>to the right place in the writable parts of the snap. I'm thinking<br>along the lines of:<br><br>  yourapp.install-plugin /path/to/file/or/folder<br></blockquote><div><br></div></span><div style="font-size:12.8px">Yes, I think we figured out that part already in the previous round (or maybe I figured this out by talking with someone else).</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">However, the plugins won't be able to access the libraries from within sandbox, so they won't work.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">As far as I understand, the way to solve this would be to package such plugins as snap packages.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">However, at this time I don't know how to make the host application find those plugins (i.e. how to enumerate any external plugins installed via snap).</div><span class="im" style="font-size:12.8px"><div><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>That would also help your users in that they don't need to know about<br>a specific directory to place plugins into.<br></blockquote><div><br></div></span><div style="font-size:12.8px">That's more a usability problem, than a technical one.</div><div style="font-size:12.8px">And yes, I agree that usability can be improved this way.</div><div style="font-size:12.8px">But that won't make the plugins work :)</div><span class="im" style="font-size:12.8px"><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>> Yeah, so the answer is "a plugin which is using Qt5 could work, but it would<br>> need to be in snap package, and has to ship its own version of Qt5" as an<br>> example?<br><br></div>Yup, but that comes back to my question: How are dependencies for the plugins<br>handled today?<br></blockquote><div><br></div></span><div style="font-size:12.8px">They are not handled in any way. Basically, you download a plugin, and you need to make sure that e.g. Qt is installed.</div><div style="font-size:12.8px">If Qt is not installed -- dlopen would fail, and the plugin would be ignored.</div><span class="im" style="font-size:12.8px"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>Access to common shared directories in the user's home directory is possible.<br>I think that should solve the problem of supporting old plugin installations.<br></blockquote><div><br></div></span><div style="font-size:12.8px">OK, that's good to know. I couldn't make this work, but I think I needed to update my Ubuntu installation.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Anyway, I think that I have enough information for now.<br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thanks for all the responses, and best regards!</div></div>