container: use absolute for pathname

This is simultaneously more efficient and less error-prone. This change caused minor API changes in multiple other packages.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2025-08-11 02:52:32 +09:00
parent 41ac2be965
commit e99d7affb0
37 changed files with 839 additions and 706 deletions

View File

@@ -12,7 +12,7 @@ func Template() *Config {
return &Config{
ID: "org.chromium.Chromium",
Path: container.FHSRun + "current-system/sw/bin/chromium",
Path: container.AbsFHSRun.Append("current-system/sw/bin/chromium"),
Args: []string{
"chromium",
"--ignore-gpu-blocklist",
@@ -46,12 +46,12 @@ func Template() *Config {
DirectWayland: false,
Username: "chronos",
Shell: container.FHSRun + "current-system/sw/bin/zsh",
Data: container.FHSVarLib + "hakurei/u0/org.chromium.Chromium",
Dir: "/data/data/org.chromium.Chromium",
Shell: container.AbsFHSRun.Append("current-system/sw/bin/zsh"),
Data: container.AbsFHSVarLib.Append("hakurei/u0/org.chromium.Chromium"),
Dir: container.MustAbs("/data/data/org.chromium.Chromium"),
ExtraPerms: []*ExtraPermConfig{
{Path: container.FHSVarLib + "hakurei/u0", Ensure: true, Execute: true},
{Path: container.FHSVarLib + "hakurei/u0/org.chromium.Chromium", Read: true, Write: true, Execute: true},
{Path: container.AbsFHSVarLib.Append("hakurei/u0"), Ensure: true, Execute: true},
{Path: container.AbsFHSVarLib.Append("hakurei/u0/org.chromium.Chromium"), Read: true, Write: true, Execute: true},
},
Identity: 9,
@@ -77,20 +77,20 @@ func Template() *Config {
"GOOGLE_DEFAULT_CLIENT_ID": "77185425430.apps.googleusercontent.com",
"GOOGLE_DEFAULT_CLIENT_SECRET": "OTJgUOQcT7lO7GsGZq2G4IlT",
},
Filesystem: []*FilesystemConfig{
{Dst: container.FHSTmp, Src: SourceTmpfs, Write: true},
{Src: "/nix/store"},
{Src: container.FHSRun + "current-system"},
{Src: container.FHSRun + "opengl-driver"},
{Src: container.FHSVar + "db/nix-channels"},
{Src: container.FHSVarLib + "hakurei/u0/org.chromium.Chromium",
Dst: "/data/data/org.chromium.Chromium", Write: true, Must: true},
{Src: container.FHSDev + "dri", Device: true},
Filesystem: []FilesystemConfig{
{Dst: container.AbsFHSTmp, Src: container.AbsNonexistent, Write: true},
{Src: container.MustAbs("/nix/store")},
{Src: container.AbsFHSRun.Append("current-system")},
{Src: container.AbsFHSRun.Append("opengl-driver")},
{Src: container.AbsFHSVar.Append("db/nix-channels")},
{Src: container.AbsFHSVarLib.Append("hakurei/u0/org.chromium.Chromium"),
Dst: container.MustAbs("/data/data/org.chromium.Chromium"), Write: true, Must: true},
{Src: container.AbsFHSDev.Append("dri"), Device: true},
},
Link: [][2]string{{container.FHSRunUser + "65534", container.FHSRunUser + "150"}},
AutoRoot: container.FHSVarLib + "hakurei/base/org.debian",
Link: []LinkConfig{{container.AbsFHSRunUser.Append("65534"), container.FHSRunUser + "150"}},
AutoRoot: container.AbsFHSVarLib.Append("hakurei/base/org.debian"),
RootFlags: container.BindWritable,
Etc: container.FHSEtc,
Etc: container.AbsFHSEtc,
AutoEtc: true,
},
}