From 1f55c076925193068e34d2e67993c64901bf6f8c Mon Sep 17 00:00:00 2001 From: Alexandre Pujol Date: Sun, 23 Mar 2025 12:31:43 +0100 Subject: [PATCH] build: automatically include bus/own-* abstraction when required. --- pkg/prebuild/directive/dbus.go | 3 +++ pkg/prebuild/directive/dbus_test.go | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/prebuild/directive/dbus.go b/pkg/prebuild/directive/dbus.go index 8cea267d1..39cd06e57 100644 --- a/pkg/prebuild/directive/dbus.go +++ b/pkg/prebuild/directive/dbus.go @@ -110,6 +110,9 @@ func (d Dbus) own(rules map[string]string) aa.Rules { interfaces := getInterfaces(rules) res := aa.Rules{ + &aa.Include{ + IsMagic: true, Path: "abstractions/bus/own-" + rules["bus"], + }, &aa.Dbus{ Access: []string{"bind"}, Bus: rules["bus"], Name: rules["name"], }, diff --git a/pkg/prebuild/directive/dbus_test.go b/pkg/prebuild/directive/dbus_test.go index 7aaa21607..0844fd745 100644 --- a/pkg/prebuild/directive/dbus_test.go +++ b/pkg/prebuild/directive/dbus_test.go @@ -8,7 +8,9 @@ import ( "testing" ) -const dbusOwnSystemd1 = ` dbus bind bus=system name=org.freedesktop.systemd1{,.*}, +const dbusOwnSystemd1 = ` include + + dbus bind bus=system name=org.freedesktop.systemd1{,.*}, dbus receive bus=system path=/org/freedesktop/systemd1{,/**} interface=org.freedesktop.systemd1{,.*} peer=(name="@{busname}"), @@ -71,7 +73,9 @@ func TestDbus_Apply(t *testing.T) { Raw: " #aa:dbus own bus=session name=com.rastersoft.ding interface+=org.gtk.Actions", }, profile: " #aa:dbus own bus=session name=com.rastersoft.ding interface+=org.gtk.Actions", - want: ` dbus bind bus=session name=com.rastersoft.ding{,.*}, + want: ` include + + dbus bind bus=session name=com.rastersoft.ding{,.*}, dbus receive bus=session path=/com/rastersoft/ding{,/**} interface=com.rastersoft.ding{,.*} peer=(name="@{busname}"),