GIMP Plugins from third parties


#1

I’m the publisher of the GIMP snap.

I would like to provide the ability for plugins, such as g’mic and darktable, to be integrated with GIMP without shipping them inside the GIMP snap itself. These plugins can be variously python scripts, binary libraries, and so on. Some of them require compilation. As such I cannot anticipate every dependency that they may require to ship those within the GIMP snap. I would like to allow third-parties to create and maintain their own plugins independently of the GIMP snap.

So the question is, how can I expose the GIMP plugin capability to third parties?

@evan asked me to tag @niemeyer.


#2

I thought that is a valid reason to make GIMP a classic confined snap…?


#3

@zyga I think you might have put some thoughts how to do plugins via the content interface at some point, could you comment on this when you have some time


#4

as far as I understand it, the content interface is unsuited to this, because all the plugins would have to be under the same publisher as the gimp snap (i.e. published by me).


#5

I thought that restriction was just for auto-connection and a user could still manually connect the content interface for two snaps from different publishers.


#6

That’s the default policy, either manual connection or different policy overrides for specific snaps could be implemented. The starting point is whether content could help and how its use would look like.


#7

I’m receiving conflicting messages here. @evan is of the opinion that manual connection is not possible unless the snaps are both from the same publisher (unless I misunderstood our discussion on this)


#8

This is the base-declaration policy for content:

  content:
    allow-installation:
      slot-snap-type:
        - app
        - gadget
    allow-connection:
      plug-attributes:
        content: $SLOT(content)
    allow-auto-connection:
      plug-publisher-id:
        - $SLOT_PUBLISHER_ID
      plug-attributes:
        content: $SLOT(content)

publisher plays a role only on auto-connection. Anyway even if that wasn’t the case, I don’t think we should focus too much on policy for now, that is malleable if we have reasons to. The question is whether content itself is usable/not too brittle for the task at hand.


#9

With appropriate application design we can do plugins. This is not documented yet apart from a design forum post elsewhere. The key is to use the new content interface syntax involving the “source” section. This allows the new aggregation logic to kick-in.

I need to document this better.