I’ve uploaded for review Kate to become a classic snap. This is in response to a bug reported by the app maintainers. Kate is has many plugins which turn it into an IDE so it uses arbitrary external apps such as revision control systems. This needs classic mode.
It also adds a dbus interface for org.kde.Kate which is needed for running kate as a QtSingleApplication
Kate as classic makes sense to me as well, for the reasons given. Note to @alexmurray, @emitorino and @pfsmorigo - you can consider this publisher vetted (I and others have done so in the past).
It is blocked since the snap.yaml still includes various plugs and slots however with classic confinement these are not needed so should be removed - then the snap should pass automated review.
I’m confused by plugs in classic snaps. I’ve removed all the mentioned plugs except the content snap.
The Kate snap needs to plug into the kde-frameworks-5-qt-5-15-core20 snap to get its libraries but it won’t allow upload with a plug confinement 'classic' not allowed with plugs/slots. Won’t it break if I upload without this plug?
Unfortunately classic snaps cannot use content interfaces. It is our plan to some day enable this but currently, even if you installed a classic snap with a content interface plug and connected it, nothing happens.
You could still request to have the store allow uploading your snap with this plug and then manually adjust paths to find the content interface slot side from the content snap and then load stuff from the content interface but that would not work out of the box with the extension as far as I know.
@jriddel I am not able to reproduce this issue - on a fresh machine I did the following:
$ sudo snap install --classic kate
$ dbus-monitor --session # to be able to capture the dbus address
$ kate &
$ dbus-send --print-reply --session --dest=org.kde.kate-3889 /MainApplication org.kde.Kate.Application.openUrl string:file:///home/amurray/.bashrc string:utf-8
method return time=1620960710.769885 sender=:1.108 -> destination=:1.110 serial=84 reply_serial=2
boolean true
I notice in your output the following: label=“snap.kate.kate (enforce)” - this indicates that the snap is running under confinement - however it the classic version of kate is installed this should instead be in complain mode: