From 334c930969db89f3f85b002da5c2f69e5277973b Mon Sep 17 00:00:00 2001
From: Alexandre Pujol <alexandre@pujol.io>
Date: Sat, 30 Mar 2024 18:17:55 +0000
Subject: [PATCH] fix(profile): temporary allow  environment in profile
 transition.

Turn out this is the actual source of issues #80 #235:
- Some programs do not start well with scrub the environment
- Not related to dbus (but dbus was affected)
- May concern a lot of profiles

As a temporary solution, we convert all Px in px while we find out a proper solution.
---
 pkg/prebuild/builder/dev.go | 35 +++++++++++++++++++++++++++++++++++
 pkg/prebuild/prebuild.go    |  1 +
 2 files changed, 36 insertions(+)
 create mode 100644 pkg/prebuild/builder/dev.go

diff --git a/pkg/prebuild/builder/dev.go b/pkg/prebuild/builder/dev.go
new file mode 100644
index 00000000..3f4840b4
--- /dev/null
+++ b/pkg/prebuild/builder/dev.go
@@ -0,0 +1,35 @@
+// apparmor.d - Full set of apparmor profiles
+// Copyright (C) 2021-2024 Alexandre Pujol <alexandre@pujol.io>
+// SPDX-License-Identifier: GPL-2.0-only
+
+package builder
+
+import (
+	"github.com/roddhjav/apparmor.d/pkg/prebuild/cfg"
+	"github.com/roddhjav/apparmor.d/pkg/util"
+)
+
+var (
+	regDev = util.ToRegexRepl([]string{
+		`PUx`, `pux`,
+		`Px`, `px`,
+		`Ux`, `ux`,
+	})
+)
+
+type Dev struct {
+	cfg.Base
+}
+
+func init() {
+	RegisterBuilder(&Dev{
+		Base: cfg.Base{
+			Keyword: "dev",
+			Msg:     "Apply test development changes",
+		},
+	})
+}
+
+func (b Dev) Apply(profile string) string {
+	return regDev.Replace(profile)
+}
diff --git a/pkg/prebuild/prebuild.go b/pkg/prebuild/prebuild.go
index e5fb1fa9..412f465e 100644
--- a/pkg/prebuild/prebuild.go
+++ b/pkg/prebuild/prebuild.go
@@ -28,6 +28,7 @@ func init() {
 
 	// Build tasks applied by default
 	builder.Register("userspace")
+	builder.Register("dev")
 
 	switch cfg.Distribution {
 	case "ubuntu":