diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-03-25 05:21:47 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-03-25 05:21:47 +0900 |
| commit | 532feb4bfaa84a57dc8de97f36b13a89610a0584 (patch) | |
| tree | 8883b79734a219a8abff067b120797c0bb68132a /cmd | |
| parent | ec5e91b8c97f02707a70a789ba4af84d51394ea5 (diff) | |
app: merge shim into app package
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/fpkg/main.go | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/cmd/fpkg/main.go b/cmd/fpkg/main.go index 268c2d48..f3310c69 100644 --- a/cmd/fpkg/main.go +++ b/cmd/fpkg/main.go @@ -13,7 +13,7 @@ import ( "git.gensokyo.uk/security/fortify/command" "git.gensokyo.uk/security/fortify/fst" "git.gensokyo.uk/security/fortify/internal" - "git.gensokyo.uk/security/fortify/internal/app/shim" + "git.gensokyo.uk/security/fortify/internal/app" "git.gensokyo.uk/security/fortify/internal/fmsg" "git.gensokyo.uk/security/fortify/internal/sys" "git.gensokyo.uk/security/fortify/sandbox" @@ -62,7 +62,7 @@ func main() { Flag(&flagVerbose, "v", command.BoolFlag(false), "Print debug messages to the console"). Flag(&flagDropShell, "s", command.BoolFlag(false), "Drop to a shell in place of next fortify action") - c.Command("shim", command.UsageInternal, func([]string) error { shim.Main(); return errSuccess }) + c.Command("shim", command.UsageInternal, func([]string) error { app.ShimMain(); return errSuccess }) { var ( @@ -122,7 +122,7 @@ func main() { bundle := loadAppInfo(path.Join(workDir, "bundle.json"), cleanup) pathSet := pathSetByApp(bundle.ID) - app := bundle + a := bundle if s, err := os.Stat(pathSet.metaPath); err != nil { if !os.IsNotExist(err) { cleanup() @@ -135,39 +135,39 @@ func main() { log.Printf("metadata path %q is not a file", pathSet.metaPath) return syscall.EBADMSG } else { - app = loadAppInfo(pathSet.metaPath, cleanup) - if app.ID != bundle.ID { + a = loadAppInfo(pathSet.metaPath, cleanup) + if a.ID != bundle.ID { cleanup() log.Printf("app %q claims to have identifier %q", - bundle.ID, app.ID) + bundle.ID, a.ID) return syscall.EBADE } // sec: should verify credentials } - if app != bundle { + if a != bundle { // do not try to re-install - if app.NixGL == bundle.NixGL && - app.CurrentSystem == bundle.CurrentSystem && - app.Launcher == bundle.Launcher && - app.ActivationPackage == bundle.ActivationPackage { + if a.NixGL == bundle.NixGL && + a.CurrentSystem == bundle.CurrentSystem && + a.Launcher == bundle.Launcher && + a.ActivationPackage == bundle.ActivationPackage { cleanup() log.Printf("package %q is identical to local application %q", - pkgPath, app.ID) + pkgPath, a.ID) return errSuccess } // AppID determines uid - if app.AppID != bundle.AppID { + if a.AppID != bundle.AppID { cleanup() log.Printf("package %q app id %d differs from installed %d", - pkgPath, bundle.AppID, app.AppID) + pkgPath, bundle.AppID, a.AppID) return syscall.EBADE } // sec: should compare version string fmsg.Verbosef("installing application %q version %q over local %q", - bundle.ID, bundle.Version, app.Version) + bundle.ID, bundle.Version, a.Version) } else { fmsg.Verbosef("application %q clean installation", bundle.ID) // sec: should install credentials @@ -268,9 +268,9 @@ func main() { id := args[0] pathSet := pathSetByApp(id) - app := loadAppInfo(pathSet.metaPath, func() {}) - if app.ID != id { - log.Printf("app %q claims to have identifier %q", id, app.ID) + a := loadAppInfo(pathSet.metaPath, func() {}) + if a.ID != id { + log.Printf("app %q claims to have identifier %q", id, a.ID) return syscall.EBADE } @@ -278,7 +278,7 @@ func main() { Prepare nixGL. */ - if app.GPU && flagAutoDrivers { + if a.GPU && flagAutoDrivers { withNixDaemon(ctx, "nix-gl", []string{ "mkdir -p /nix/.nixGL/auto", "rm -rf /nix/.nixGL/auto", @@ -286,11 +286,11 @@ func main() { "nix build --impure " + "--out-link /nix/.nixGL/auto/opengl " + "--override-input nixpkgs path:/etc/nixpkgs " + - "path:" + app.NixGL, + "path:" + a.NixGL, "nix build --impure " + "--out-link /nix/.nixGL/auto/vulkan " + "--override-input nixpkgs path:/etc/nixpkgs " + - "path:" + app.NixGL + "#nixVulkanNvidia", + "path:" + a.NixGL + "#nixVulkanNvidia", }, true, func(config *fst.Config) *fst.Config { config.Confinement.Sandbox.Filesystem = append(config.Confinement.Sandbox.Filesystem, []*fst.FilesystemConfig{ {Src: "/etc/resolv.conf"}, @@ -302,7 +302,7 @@ func main() { }...) appendGPUFilesystem(config) return config - }, app, pathSet, flagDropShellNixGL, func() {}) + }, a, pathSet, flagDropShellNixGL, func() {}) } /* @@ -311,19 +311,19 @@ func main() { argv := make([]string, 1, len(args)) if !flagDropShell { - argv[0] = app.Launcher + argv[0] = a.Launcher } else { argv[0] = shellPath } argv = append(argv, args[1:]...) - config := app.toFst(pathSet, argv, flagDropShell) + config := a.toFst(pathSet, argv, flagDropShell) /* Expose GPU devices. */ - if app.GPU { + if a.GPU { config.Confinement.Sandbox.Filesystem = append(config.Confinement.Sandbox.Filesystem, &fst.FilesystemConfig{Src: path.Join(pathSet.nixPath, ".nixGL"), Dst: path.Join(fst.Tmp, "nixGL")}) appendGPUFilesystem(config) |
