Hi there,
at the moment I am struggling to get D-Bus interaction between two sailjailed apps working.
I try to call a D-Bus method of app A inside app B.
App B accessing Interface in app A:
DBusInterface {
id: dbusInterface
service: "org.nubecula.sailhub"
iface: "org.nubecula.sailhub"
path: "/"
}
...
dbusInterface.call("addStar", ["black-sheep-dev", "harbour-hafenschau"])
Heres the desktop file of app B:
[Desktop Entry]
Type=Application
Icon=harbour-hafenschau
Exec=sailjail -p harbour-hafenschau.desktop /usr/bin/harbour-hafenschau
Name=Hafenschau
Categories=Network
[X-Sailjail]
OrganizationName=org.nubecula
ApplicationName=hafenschau
Permissions=Documents;Internet;Sharing;WebView;Audio
ExecDBus=/usr/bin/harbour-hafenschau -prestart
Heres the desktop file of app A:
[Desktop Entry]
Type=Application
Icon=harbour-sailhub
Exec=sailjail -p harbour-sailhub.desktop /usr/bin/harbour-sailhub
Name=SailHub
[X-Sailjail]
OrganizationName=org.nubecula
ApplicationName=sailhub
Permissions=Internet
ExecDBus=/usr/bin/harbour-sailhub -prestart
When I call the method of app A from a non jailed app or over console with dbus-send everything works as expected. So it belongs to the permissions of app B?!?
Inside the sailjail permissions readme I found this:
Blockquote
They grant access to certain data paths, D-Bus interfaces, socket types and application binaries. Currently applications must define all needed permissions in desktop file and all of them are granted at launch.
What I need to add to desktop file of app B to get access to the D-Bus Interface of app A?
Or do I need to add something special to desktop file of app A?
Is it supported at all granting access to an other apps D-Bus interface?
Is it maybe forbidden in the future?
Do I need to ship a sailjail permission file or something like that?
This drives me crazy!
Hope somebody can help?!?