aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rosa')
-rw-r--r--internal/rosa/cmake.go10
-rw-r--r--internal/rosa/etc.go2
-rw-r--r--internal/rosa/go.go26
-rw-r--r--internal/rosa/llvm.go14
-rw-r--r--internal/rosa/make.go8
-rw-r--r--internal/rosa/meson.go16
-rw-r--r--internal/rosa/package/argp-standalone.az4
-rw-r--r--internal/rosa/package/awk.az4
-rw-r--r--internal/rosa/package/bzip2.az2
-rw-r--r--internal/rosa/package/cmake/package.az2
-rw-r--r--internal/rosa/package/curl.az2
-rw-r--r--internal/rosa/package/db.az2
-rw-r--r--internal/rosa/package/firmware.az4
-rw-r--r--internal/rosa/package/fuse/package.az2
-rw-r--r--internal/rosa/package/gcc/package.az6
-rw-r--r--internal/rosa/package/git.az2
-rw-r--r--internal/rosa/package/glib/package.az2
-rw-r--r--internal/rosa/package/gnu.az2
-rw-r--r--internal/rosa/package/gnutls/package.az2
-rw-r--r--internal/rosa/package/go.az14
-rw-r--r--internal/rosa/package/hakurei.az38
-rw-r--r--internal/rosa/package/images/package.az2
-rw-r--r--internal/rosa/package/iproute2.az6
-rw-r--r--internal/rosa/package/kernel/depmod2
-rw-r--r--internal/rosa/package/kernel/package.az29
-rw-r--r--internal/rosa/package/kmod.az4
-rw-r--r--internal/rosa/package/libaio.az4
-rw-r--r--internal/rosa/package/libbpf.az2
-rw-r--r--internal/rosa/package/libcap.az2
-rw-r--r--internal/rosa/package/libucontext.az2
-rw-r--r--internal/rosa/package/llvm/package.az4
-rw-r--r--internal/rosa/package/lm_sensors.az4
-rw-r--r--internal/rosa/package/lua/conf-prefix.patch2
-rw-r--r--internal/rosa/package/lua/lua.pc2
-rw-r--r--internal/rosa/package/lua/package.az10
-rw-r--r--internal/rosa/package/make.az2
-rw-r--r--internal/rosa/package/mksh.az12
-rw-r--r--internal/rosa/package/muon/package.az2
-rw-r--r--internal/rosa/package/musl/package.az12
-rw-r--r--internal/rosa/package/ncurses.az2
-rw-r--r--internal/rosa/package/ninja.az4
-rw-r--r--internal/rosa/package/noto.az2
-rw-r--r--internal/rosa/package/nss.az12
-rw-r--r--internal/rosa/package/openssl.az2
-rw-r--r--internal/rosa/package/perl.az6
-rw-r--r--internal/rosa/package/pkgconf.az2
-rw-r--r--internal/rosa/package/python/package.az10
-rw-r--r--internal/rosa/package/spirv.az8
-rw-r--r--internal/rosa/package/squashfs-tools.az2
-rw-r--r--internal/rosa/package/tamago.az8
-rw-r--r--internal/rosa/package/toybox.az14
-rw-r--r--internal/rosa/package/unzip.az4
-rw-r--r--internal/rosa/package/util-linux.az6
-rw-r--r--internal/rosa/perl.go2
-rw-r--r--internal/rosa/python.go4
-rw-r--r--internal/rosa/rosa.go25
-rw-r--r--internal/rosa/state.go4
57 files changed, 195 insertions, 189 deletions
diff --git a/internal/rosa/cmake.go b/internal/rosa/cmake.go
index 2095c47a..47fe7268 100644
--- a/internal/rosa/cmake.go
+++ b/internal/rosa/cmake.go
@@ -100,10 +100,10 @@ func (attr *CMakeHelper) script(t Toolchain, name string) string {
if t.cross() {
cross = `
-DCMAKE_SYSTEM_NAME=Linux \
- -DCMAKE_SYSROOT=/system/` + t.arch + ` \
- -DCMAKE_C_COMPILER=/system/bin/clang \
- -DCMAKE_CXX_COMPILER=/system/bin/clang++ \
- -DCMAKE_ASM_COMPILER=/system/bin/clang \`
+ -DCMAKE_SYSROOT=` + Prefix + `/` + t.arch + ` \
+ -DCMAKE_C_COMPILER=` + Prefix + `/bin/clang \
+ -DCMAKE_CXX_COMPILER=` + Prefix + `/bin/clang++ \
+ -DCMAKE_ASM_COMPILER=` + Prefix + `/bin/clang \`
}
return `
@@ -123,7 +123,7 @@ cmake -G ` + generate + ` \
}
}
}), " \\\n\t") + ` \
- -DCMAKE_INSTALL_PREFIX=/system \
+ -DCMAKE_INSTALL_PREFIX=` + Prefix + ` \
'/usr/src/` + name + `/` + filepath.Join(attr.Append...) + `'
cmake --build . --parallel=` + jobsE + ` -- ` + loadFlagE + `
DESTDIR=/work cmake --install .
diff --git a/internal/rosa/etc.go b/internal/rosa/etc.go
index 0af51830..83c4ac4a 100644
--- a/internal/rosa/etc.go
+++ b/internal/rosa/etc.go
@@ -34,7 +34,7 @@ func (a cureEtc) Cure(t *pkg.FContext) (err error) {
{"hosts", "127.0.0.1 localhost cure cure-net\n"},
{"passwd", `root:x:0:0:System administrator:/proc/nonexistent:/bin/sh
cure:x:1023:1023:Cure:/usr/src:/bin/sh
-nobody:x:65534:65534:Overflow user:/proc/nonexistent:/system/bin/false
+nobody:x:65534:65534:Overflow user:/proc/nonexistent:` + Prefix + `/bin/false
`},
{"group", `root:x:0:
cure:x:1023:
diff --git a/internal/rosa/go.go b/internal/rosa/go.go
index dac77aa7..71d552e2 100644
--- a/internal/rosa/go.go
+++ b/internal/rosa/go.go
@@ -22,7 +22,7 @@ func (t Toolchain) newGo(
Env: slices.Concat([]string{
"CC=cc",
"GOCACHE=/tmp/gocache",
- "GOROOT_BOOTSTRAP=/system/go",
+ "GOROOT_BOOTSTRAP=" + Prefix + "/go",
"TMPDIR=/dev/shm/go",
}, env),
@@ -30,9 +30,9 @@ func (t Toolchain) newGo(
}, &GenericHelper{
InPlace: true,
Build: `
-mkdir /work/system/ "${TMPDIR}"
-cp -r . /work/system/go
-cd /work/system/go/src/
+mkdir /work` + Prefix + `/ "${TMPDIR}"
+cp -r . /work` + Prefix + `/go
+cd /work` + Prefix + `/go/src/
chmod -R +w ..
` + script + `
set +u
@@ -42,11 +42,11 @@ set -u
Install: `
../bin/go tool dist banner # print build info
-mkdir /work/system/bin
+mkdir /work` + Prefix + `/bin
ln -s \
../go/bin/go \
../go/bin/gofmt \
- /work/system/bin
+ /work` + Prefix + `/bin
`,
},
_bash,
@@ -91,9 +91,9 @@ func init() {
}, &GenericHelper{
InPlace: true,
Build: `
-mkdir /work/system/
-cp -r . /work/system/go
-cd /work/system/go/src/
+mkdir /work` + Prefix + `/
+cp -r . /work` + Prefix + `/go
+cd /work` + Prefix + `/go/src/
mkdir -p /var/tmp/
./make.bash
`,
@@ -102,7 +102,7 @@ mkdir -p /var/tmp/
)}
case "arm64", "riscv64":
- bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP=/system")
+ bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP="+Prefix)
bootstrapEarly = t.Append(bootstrapEarly, H("gcc"))
finalEnv = append(finalEnv, "CGO_ENABLED=0")
@@ -131,7 +131,7 @@ echo \
"YtrDka402BOAEwywx03Vz4QlVwoBiguJHzG7PuythMCPHXS8CVMLvzmvgEbu4Tzu",
[]string{"CGO_ENABLED=0"}, `
sed -i \
- 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,`+Prefix+`/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
rm \
@@ -149,7 +149,7 @@ echo \
"wcI32bl1tkqbgcelGtGWPI4RtlEddd-PTd76Eb-k7nXA5LbE9yTNdIL9QSOOxMOs",
[]string{"CGO_ENABLED=0"}, `
sed -i \
- 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,`+Prefix+`/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
`, go121,
)
@@ -159,7 +159,7 @@ sed -i \
checksum,
[]string{"CGO_ENABLED=0"}, `
sed -i \
- 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,`+Prefix+`/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
rm \
diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go
index 019d2cf6..dacb9098 100644
--- a/internal/rosa/llvm.go
+++ b/internal/rosa/llvm.go
@@ -94,7 +94,7 @@ func init() {
{"CLANG_DEFAULT_RTLIB", "compiler-rt"},
{"CLANG_DEFAULT_UNWINDLIB", "libunwind"},
{"CLANG_DEFAULT_CXX_STDLIB", "libc++"},
- {"CLANG_CONFIG_FILE_SYSTEM_DIR", "/system/etc/clang"},
+ {"CLANG_CONFIG_FILE_SYSTEM_DIR", Prefix + "/etc/clang"},
}
common := []KV{
@@ -266,7 +266,7 @@ func init() {
Paths: paths,
ScriptEarly: `
-rm -f /system/bin/clang++.cfg
+rm -f ` + Prefix + `/bin/clang++.cfg
`,
Tools: P{
@@ -283,11 +283,11 @@ rm -f /system/bin/clang++.cfg
Cache: cache,
Script: `
-ln -s ld.lld /work/system/bin/ld
-ln -s clang /work/system/bin/cc
-ln -s clang /work/system/bin/cpp
-ln -s clang++ /work/system/bin/c++
-cat << EOF > /work/system/bin/clang++.cfg
+ln -s ld.lld /work` + Prefix + `/bin/ld
+ln -s clang /work` + Prefix + `/bin/cc
+ln -s clang /work` + Prefix + `/bin/cpp
+ln -s clang++ /work` + Prefix + `/bin/c++
+cat << EOF > /work` + Prefix + `/bin/clang++.cfg
-static-libstdc++
-Wl,--exclude-libs,libunwind.a:libc++.a:libc++experimental.a:libc++abi.a
EOF
diff --git a/internal/rosa/make.go b/internal/rosa/make.go
index 877648c0..7a8bdec9 100644
--- a/internal/rosa/make.go
+++ b/internal/rosa/make.go
@@ -120,7 +120,7 @@ func (attr *MakeHelper) script(t Toolchain, name string) string {
attr = new(MakeHelper)
}
cross, arch := t.cross(), t.Arch()
- sysroot := "/system/" + arch
+ sysroot := Prefix + "/" + arch
var configure string
target := t.triple()
@@ -129,7 +129,7 @@ func (attr *MakeHelper) script(t Toolchain, name string) string {
export CC='clang --target=` + target + ` --sysroot=` + sysroot + `'
export CXX='clang++ --target=` + target + ` --sysroot=` + sysroot + `'
export PKG_CONFIG_SYSROOT_DIR='` + sysroot + `'
-export PKG_CONFIG_LIBDIR='` + sysroot + `/system/lib/pkgconfig:` + sysroot + `/system/share/pkgconfig'
+export PKG_CONFIG_LIBDIR='` + sysroot + Prefix + `/lib/pkgconfig:` + sysroot + Prefix + `/share/pkgconfig'
`
}
configure += attr.ScriptConfigureEarly
@@ -142,7 +142,7 @@ export PKG_CONFIG_LIBDIR='` + sysroot + `/system/lib/pkgconfig:` + sysroot + `/s
}
if attr.ForceAutoconf || attr.ConfigureName == "" {
configure += ` \
- --prefix=/system`
+ --prefix=` + Prefix
host := target
build := host
if cross {
@@ -160,7 +160,7 @@ export PKG_CONFIG_LIBDIR='` + sysroot + `/system/lib/pkgconfig:` + sysroot + `/s
}
if !attr.OmitSysroot && cross {
configure += ` \
- --with-sysroot='/system/` + arch + `'`
+ --with-sysroot='` + Prefix + `/` + arch + `'`
}
configure += ` \
--host=` + host
diff --git a/internal/rosa/meson.go b/internal/rosa/meson.go
index 9231880a..5e64bf62 100644
--- a/internal/rosa/meson.go
+++ b/internal/rosa/meson.go
@@ -60,10 +60,10 @@ func (*MesonHelper) paths(t Toolchain) []pkg.ExecPath {
false, pkg.NewFile("mfile-"+arch, []byte(`# meson env2mfile
[binaries]
# Compilers
-c = ['clang', '--target=`+target+`', '--sysroot=/system/`+arch+`']
-cpp = ['clang++', '--target=`+target+`', '--sysroot=/system/`+arch+`']
+c = ['clang', '--target=`+target+`', '--sysroot=`+Prefix+`/`+arch+`']
+cpp = ['clang++', '--target=`+target+`', '--sysroot=`+Prefix+`/`+arch+`']
pkg-config = ['pkg-config']
-exe_wrapper = ['qemu-`+t.linuxArch()+`', '-L', '/system/`+arch+`']
+exe_wrapper = ['qemu-`+t.linuxArch()+`', '-L', '`+Prefix+`/`+arch+`']
# Other binaries
ar = ['llvm-ar']
@@ -73,10 +73,10 @@ strip = ['llvm-strip']
[built-in options]
[properties]
-sys_root = '/system/`+arch+`'
+sys_root = '`+Prefix+`/`+arch+`'
pkg_config_libdir = [
- '/system/`+arch+`/system/lib/pkgconfig',
- '/system/`+arch+`/system/share/pkgconfig'
+ '`+Prefix+`/`+arch+Prefix+`/lib/pkgconfig',
+ '`+Prefix+`/`+arch+Prefix+`/share/pkgconfig'
]
[host_machine]
@@ -155,7 +155,7 @@ func (attr *MesonHelper) script(t Toolchain, name string) string {
var setupArgs string
if t.cross() {
- setupArgs += " --cross-file=/system/mfile"
+ setupArgs += " --cross-file=" + Prefix + "/mfile"
}
return `
@@ -163,7 +163,7 @@ func (attr *MesonHelper) script(t Toolchain, name string) string {
` + strings.Join(slices.Collect(func(yield func(string) bool) {
for _, v := range append([]KV{
{"wrap_mode", "nofallback"},
- {"prefix", "/system"},
+ {"prefix", Prefix},
{"buildtype", "release"},
}, attr.Setup...) {
s := v[0]
diff --git a/internal/rosa/package/argp-standalone.az b/internal/rosa/package/argp-standalone.az
index c8a2943e..a3a2fd62 100644
--- a/internal/rosa/package/argp-standalone.az
+++ b/internal/rosa/package/argp-standalone.az
@@ -16,8 +16,8 @@ package argp-standalone {
exec = make {
install = `
-install -D -m644 /usr/src/argp-standalone/argp.h /work/system/include/argp.h
-install -D -m755 libargp.a /work/system/lib/libargp.a
+install -D -m644 /usr/src/argp-standalone/argp.h /work`+prefix+`/include/argp.h
+install -D -m755 libargp.a /work`+prefix+`/lib/libargp.a
`;
};
diff --git a/internal/rosa/package/awk.az b/internal/rosa/package/awk.az
index b572f7a4..770d82ae 100644
--- a/internal/rosa/package/awk.az
+++ b/internal/rosa/package/awk.az
@@ -19,8 +19,8 @@ package awk {
chdir = false;
configure = nil;
make = [ "YACC='yacc -d -b awkgram'" ];
- preCheck = "install -vD a.out /system/bin/awk\n";
- install = "install -vD a.out /work/system/bin/awk";
+ preCheck = "install -vD a.out "+prefix+"/bin/awk\n";
+ install = "install -vD a.out /work"+prefix+"/bin/awk";
};
tools = [
diff --git a/internal/rosa/package/bzip2.az b/internal/rosa/package/bzip2.az
index 2b8e3362..ce5e5bd2 100644
--- a/internal/rosa/package/bzip2.az
+++ b/internal/rosa/package/bzip2.az
@@ -19,6 +19,6 @@ package bzip2 {
configure = nil;
make = [ "CC=cc" ];
check = nil;
- install = "make PREFIX=/work/system install";
+ install = "make PREFIX=/work"+prefix+" install";
};
}
diff --git a/internal/rosa/package/cmake/package.az b/internal/rosa/package/cmake/package.az
index 38d2c286..c2666ecb 100644
--- a/internal/rosa/package/cmake/package.az
+++ b/internal/rosa/package/cmake/package.az
@@ -30,7 +30,7 @@ package cmake-early {
configureName = "/usr/src/cmake-early/bootstrap";
configure = {
- "prefix": "/system";
+ "prefix": prefix;
"parallel": jobsE;
"--";
"-DCMAKE_USE_OPENSSL": "OFF";
diff --git a/internal/rosa/package/curl.az b/internal/rosa/package/curl.az
index 0f10763d..17632548 100644
--- a/internal/rosa/package/curl.az
+++ b/internal/rosa/package/curl.az
@@ -17,7 +17,7 @@ package curl {
exec = make {
configure = {
"with-openssl";
- "with-ca-bundle": "/system/etc/ssl/certs/ca-bundle.crt";
+ "with-ca-bundle": prefix+"/etc/ssl/certs/ca-bundle.crt";
"disable-smb";
};
diff --git a/internal/rosa/package/db.az b/internal/rosa/package/db.az
index d4f9fe4d..3ba533a7 100644
--- a/internal/rosa/package/db.az
+++ b/internal/rosa/package/db.az
@@ -30,6 +30,6 @@ touch \
"with-repmgr-ssl": "no";
};
check = [ "examples_c" ];
- postInstall = "rm -r /work/system/docs";
+ postInstall = "rm -r /work"+prefix+"/docs";
};
}
diff --git a/internal/rosa/package/firmware.az b/internal/rosa/package/firmware.az
index f003e370..b225b42c 100644
--- a/internal/rosa/package/firmware.az
+++ b/internal/rosa/package/firmware.az
@@ -27,14 +27,14 @@ package firmware {
configure = nil;
make = [
- "DESTDIR=/work/system",
+ "DESTDIR=/work"+prefix,
"install-zst",
];
// requires pre-commit
check = nil;
- install = "make " + jobsFlagE + " " + loadFlagE + " DESTDIR=/work/system dedup";
+ install = "make " + jobsFlagE + " " + loadFlagE + " DESTDIR=/work"+prefix+" dedup";
};
tools = [
diff --git a/internal/rosa/package/fuse/package.az b/internal/rosa/package/fuse/package.az
index 3e43c3c6..b73432a3 100644
--- a/internal/rosa/package/fuse/package.az
+++ b/internal/rosa/package/fuse/package.az
@@ -18,7 +18,7 @@ package fuse {
"default_library": "both";
"tests": "true";
"useroot": "false";
- "initscriptdir": "/system/etc";
+ "initscriptdir": prefix+"/etc";
};
};
diff --git a/internal/rosa/package/gcc/package.az b/internal/rosa/package/gcc/package.az
index 5f618ba7..da669713 100644
--- a/internal/rosa/package/gcc/package.az
+++ b/internal/rosa/package/gcc/package.az
@@ -41,8 +41,8 @@ package gcc {
exclusive = true;
early = `
-ln -s system/lib /
-ln -s system/lib /work/
+ln -s `+prefixR+`/lib /
+ln -s `+prefixR+`/lib /work/
`;
exec = make {
@@ -54,7 +54,7 @@ ln -s system/lib /work/
"with-gnu-ld";
"with-system-zlib";
"enable-languages": "c,c++,go";
- "with-native-system-header-dir": "/system/include";
+ "with-native-system-header-dir": prefix+"/include";
"with-multilib-list": arch {
amd64, arm64 = "''";
diff --git a/internal/rosa/package/git.az b/internal/rosa/package/git.az
index b6e1558f..22c2cf09 100644
--- a/internal/rosa/package/git.az
+++ b/internal/rosa/package/git.az
@@ -13,7 +13,7 @@ package git {
early = `
# test suite assumes apache
-rm -f /system/bin/httpd
+rm -f `+prefix+`/bin/httpd
`;
// uses source tree as scratch space
diff --git a/internal/rosa/package/glib/package.az b/internal/rosa/package/glib/package.az
index 7f3040e0..9c531283 100644
--- a/internal/rosa/package/glib/package.az
+++ b/internal/rosa/package/glib/package.az
@@ -13,7 +13,7 @@ package glib {
files = {
"/etc/machine-id": "stub-machine-id-fhs";
- "/system/var/lib/dbus/machine-id": "stub-machine-id";
+ prefix+"/var/lib/dbus/machine-id": "stub-machine-id";
};
exec = meson {
diff --git a/internal/rosa/package/gnu.az b/internal/rosa/package/gnu.az
index 5481e1f0..57705cef 100644
--- a/internal/rosa/package/gnu.az
+++ b/internal/rosa/package/gnu.az
@@ -313,7 +313,7 @@ package bash {
configure = {
"without-bash-malloc";
};
- postInstall = "ln -s bash /work/system/bin/sh\n";
+ postInstall = "ln -s bash /work"+prefix+"/bin/sh\n";
};
}
diff --git a/internal/rosa/package/gnutls/package.az b/internal/rosa/package/gnutls/package.az
index 9ab17176..05080d7f 100644
--- a/internal/rosa/package/gnutls/package.az
+++ b/internal/rosa/package/gnutls/package.az
@@ -27,7 +27,7 @@ echo 'int main(){return 0;}' > tests/mini-dtls-fragments.c
"disable-doc";
"disable-openssl-compatibility";
- "with-default-trust-store-file": "/system/etc/ssl/certs/ca-bundle.crt";
+ "with-default-trust-store-file": prefix+"/etc/ssl/certs/ca-bundle.crt";
"with-default-trust-store-pkcs11": "pkcs11:";
"with-zlib": "link";
diff --git a/internal/rosa/package/go.az b/internal/rosa/package/go.az
index 8b5abed4..4f284341 100644
--- a/internal/rosa/package/go.az
+++ b/internal/rosa/package/go.az
@@ -13,7 +13,7 @@ package go {
env = [
"CC=cc",
"GOCACHE=/tmp/gocache",
- "GOROOT_BOOTSTRAP=/system/go",
+ "GOROOT_BOOTSTRAP="+prefix+"/go",
"TMPDIR=/dev/shm/go",
];
@@ -22,13 +22,13 @@ package go {
exec = generic {
chdir = false;
build = `
-mkdir /work/system/ "${TMPDIR}"
-cp -r . /work/system/go
-cd /work/system/go/src/
+mkdir /work`+prefix+`/ "${TMPDIR}"
+cp -r . /work`+prefix+`/go
+cd /work`+prefix+`/go/src/
chmod -R +w ..
sed -i \
- 's,/lib/ld-musl-`+llvmArch+`.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+llvmArch+`.so.1,`+prefix+`/bin/linker,' \
cmd/link/internal/`+arch+`/obj.go
rm \
@@ -45,11 +45,11 @@ set -u
install = `
../bin/go tool dist banner # print build info
-mkdir /work/system/bin
+mkdir /work`+prefix+`/bin
ln -s \
../go/bin/go \
../go/bin/gofmt \
- /work/system/bin
+ /work`+prefix+`/bin
`;
};
diff --git a/internal/rosa/package/hakurei.az b/internal/rosa/package/hakurei.az
index acb356f4..a9283d96 100644
--- a/internal/rosa/package/hakurei.az
+++ b/internal/rosa/package/hakurei.az
@@ -29,29 +29,29 @@ package hakurei {
exec = generic {
chdir = false;
cross = `
-export CC='clang --target=`+triple+` --sysroot=/system/`+arch+`'
-export CXX='clang++ --target=`+triple+` --sysroot=/system/`+arch+`'
-export PKG_CONFIG_SYSROOT_DIR='/system/`+arch+`'
-export PKG_CONFIG_LIBDIR='/system/`+arch+`/system/lib/pkgconfig:/system/`+arch+`/system/share/pkgconfig'
+export CC='clang --target=`+triple+` --sysroot=`+prefix+`/`+arch+`'
+export CXX='clang++ --target=`+triple+` --sysroot=`+prefix+`/`+arch+`'
+export PKG_CONFIG_SYSROOT_DIR='`+prefix+`/`+arch+`'
+export PKG_CONFIG_LIBDIR='`+prefix+`/`+arch+prefix+`/lib/pkgconfig:`+prefix+`/`+arch+prefix+`/share/pkgconfig'
`;
build = `
-mkdir -p /work/system/libexec/hakurei/
+mkdir -p /work`+prefix+`/libexec/hakurei/
echo "Building hakurei for $(go env GOOS)/`+arch+`."
go generate ./...
-GOARCH='`+arch+`' go build -trimpath -tags=rosa -o /work/system/libexec/hakurei -ldflags="-s -w
+GOARCH='`+arch+`' go build -trimpath -tags=rosa -o /work`+prefix+`/libexec/hakurei -ldflags="-s -w
-buildid=
-linkmode external
-extldflags=-static
-X hakurei.app/internal/info.buildVersion=$(cat cmd/dist/VERSION)
- -X hakurei.app/internal/info.hakureiPath=/system/bin/hakurei
- -X hakurei.app/internal/info.hsuPath=/system/bin/hsu
+ -X hakurei.app/internal/info.hakureiPath=`+prefix+`/bin/hakurei
+ -X hakurei.app/internal/info.hsuPath=`+prefix+`/bin/hsu
" ./cmd/hakurei ./cmd/sharefs
echo "Building hsu for $(go env GOOS)/$(go env GOARCH)."
-GOARCH='`+arch+`' CGO_ENABLED=0 go build -trimpath -tags=rosa -o /work/system/libexec/hakurei -ldflags="-s -w
+GOARCH='`+arch+`' CGO_ENABLED=0 go build -trimpath -tags=rosa -o /work`+prefix+`/libexec/hakurei -ldflags="-s -w
-buildid=
- -X main.hakureiPath=/system/bin/hakurei
+ -X main.hakureiPath=`+prefix+`/bin/hakurei
" ./cmd/hsu`;
check = `
echo
@@ -59,8 +59,8 @@ echo '##### Testing hakurei.'
go test -ldflags='-buildid= -linkmode external -extldflags=-static' ./...
echo`;
install = `
-mkdir -p /work/system/bin/
-(cd /work/system/libexec/hakurei && mv \
+mkdir -p /work`+prefix+`/bin/
+(cd /work`+prefix+`/libexec/hakurei && mv \
hakurei \
sharefs \
../../bin/)
@@ -109,10 +109,10 @@ package hakurei-dist {
chdir = false;
cross = `
export HAKUREI_ARCH='`+arch+`'
-export HAKUREI_SYSROOT='/system/`+arch+`'
+export HAKUREI_SYSROOT='`+prefix+`/`+arch+`'
-export PKG_CONFIG_SYSROOT_DIR='/system/`+arch+`'
-export PKG_CONFIG_LIBDIR='/system/`+arch+`/system/lib/pkgconfig:/system/`+arch+`/system/share/pkgconfig'
+export PKG_CONFIG_SYSROOT_DIR='`+prefix+`/`+arch+`'
+export PKG_CONFIG_LIBDIR='`+prefix+`/`+arch+``+prefix+`/lib/pkgconfig:`+prefix+`/`+arch+``+prefix+`/share/pkgconfig'
`;
build = `
NAME=make`;
@@ -213,10 +213,10 @@ package earlyinit {
chdir = false;
cross = `
export GOARCH='`+arch+`'
-export CC='clang --target=`+triple+` --sysroot=/system/`+arch+`'
-export CXX='clang++ --target=`+triple+` --sysroot=/system/`+arch+`'
-export PKG_CONFIG_SYSROOT_DIR='/system/`+arch+`'
-export PKG_CONFIG_LIBDIR='/system/`+arch+`/system/lib/pkgconfig:/system/`+arch+`/system/share/pkgconfig'
+export CC='clang --target=`+triple+` --sysroot=`+prefix+`/`+arch+`'
+export CXX='clang++ --target=`+triple+` --sysroot=`+prefix+`/`+arch+`'
+export PKG_CONFIG_SYSROOT_DIR='`+prefix+`/`+arch+`'
+export PKG_CONFIG_LIBDIR='`+prefix+`/`+arch+prefix+`/lib/pkgconfig:`+prefix+`/`+arch+prefix+`/share/pkgconfig'
`;
build = `
echo '# Building earlyinit.'
diff --git a/internal/rosa/package/images/package.az b/internal/rosa/package/images/package.az
index 631f5622..e3c2fb72 100644
--- a/internal/rosa/package/images/package.az
+++ b/internal/rosa/package/images/package.az
@@ -37,7 +37,7 @@ package system-image {
overlay = "/mnt";
exec = generic {
- build = "mksquashfs /mnt/system /work/system.img";
+ build = "mksquashfs /mnt"+prefix+" /work/system.img";
};
tools = [ squashfs-tools ];
diff --git a/internal/rosa/package/iproute2.az b/internal/rosa/package/iproute2.az
index 46265ed3..a29a6903 100644
--- a/internal/rosa/package/iproute2.az
+++ b/internal/rosa/package/iproute2.az
@@ -13,8 +13,8 @@ package iproute2 {
env = [
"CC=cc",
- "PREFIX=/system",
- "SBINDIR=/system/sbin",
+ "PREFIX="+prefix,
+ "SBINDIR="+prefix+"/sbin",
];
enterSource = true;
writable = true;
@@ -25,7 +25,7 @@ package iproute2 {
// drop default autoconf options
configureName = "./configure";
configure = {
- "prefix": "/system";
+ "prefix": prefix;
"color": "auto";
};
make = [ "CC=cc", "YACC=yacc" ];
diff --git a/internal/rosa/package/kernel/depmod b/internal/rosa/package/kernel/depmod
index d4a7663c..ec0ef6f9 100644
--- a/internal/rosa/package/kernel/depmod
+++ b/internal/rosa/package/kernel/depmod
@@ -1,2 +1,2 @@
#!/bin/sh
-exec /system/sbin/depmod -m /lib/modules "$@"
+exec depmod -m /lib/modules "$@"
diff --git a/internal/rosa/package/kernel/package.az b/internal/rosa/package/kernel/package.az
index aafb71db..10aeb63f 100644
--- a/internal/rosa/package/kernel/package.az
+++ b/internal/rosa/package/kernel/package.az
@@ -60,14 +60,14 @@ package kernel-headers {
}+"'",
"LLVM=1",
`HOSTLDFLAGS="${LDFLAGS:-''}"`,
- "INSTALL_HDR_PATH=/work/system",
+ "INSTALL_HDR_PATH=/work"+prefix,
"headers_install",
];
check = nil;
install = `
cat \
/usr/src/version.h > \
- /work/system/include/linux/version.h
+ /work`+prefix+`/include/linux/version.h
`;
};
@@ -98,23 +98,21 @@ package kernel {
riscv64 = "riscv64.config";
};
- ".installkernel": "installkernel";
- ".depmod": "depmod";
+ "/sbin/installkernel": "installkernel";
+ // kernel is not aware of kmod moduledir
+ "/sbin/depmod": "depmod";
- "/system/oldconfig": "oldconfig";
+ prefix+"/oldconfig": "oldconfig";
};
env = [
- "PATH=/system/sbin",
+ "PATH="+prefix+"/sbin",
];
early = `
install -Dm0400 \
/usr/src/.config \
/tmp/kbuild/.config
-install -Dm0500 \
- /usr/src/.installkernel \
- /sbin/installkernel
`;
exclusive = true;
@@ -154,11 +152,6 @@ if [ -n "${ROSA_MAKE_TARGET+x}" ]; then
exit 0
fi
-# kernel is not aware of kmod moduledir
-install -Dm0500 \
- /usr/src/.depmod \
- /sbin/depmod
-
make \
` + jobsFlagE + ` \
` + loadFlagE + ` \
@@ -168,10 +161,10 @@ make \
` + _kernelArch + ` \
INSTALL_PATH=/work \
install \
- INSTALL_MOD_PATH=/work/system \
+ INSTALL_MOD_PATH=/work`+prefix+` \
DEPMOD=/sbin/depmod \
modules_install
-rm -v "/work/system/lib/modules/$(make -f /usr/src/kernel/Makefile kernelversion)/build"
+rm -v "/work`+prefix+`/lib/modules/$(make -f /usr/src/kernel/Makefile kernelversion)/build"
`;
};
@@ -210,8 +203,8 @@ package gen_init_cpio {
exec = generic {
chdir = false;
build = `
-mkdir -p /work/system/bin/
-cc -o /work/system/bin/gen_init_cpio usr/gen_init_cpio.c
+mkdir -p /work`+prefix+`/bin/
+cc -o /work`+prefix+`/bin/gen_init_cpio usr/gen_init_cpio.c
`;
};
}
diff --git a/internal/rosa/package/kmod.az b/internal/rosa/package/kmod.az
index 732d3340..e7787d8f 100644
--- a/internal/rosa/package/kmod.az
+++ b/internal/rosa/package/kmod.az
@@ -13,8 +13,8 @@ package kmod {
exec = meson {
setup = {
- "moduledir": "/system/lib/modules";
- "sysconfdir": "/system/etc";
+ "moduledir": prefix+"/lib/modules";
+ "sysconfdir": prefix+"/etc";
"bashcompletiondir": "no";
"fishcompletiondir": "no";
"xz": "disabled";
diff --git a/internal/rosa/package/libaio.az b/internal/rosa/package/libaio.az
index ee408872..c61be33d 100644
--- a/internal/rosa/package/libaio.az
+++ b/internal/rosa/package/libaio.az
@@ -15,7 +15,7 @@ package libaio {
writable = true;
chmod = true;
- env = [ "PATH=/system/sbin" ];
+ env = [ "PATH="+prefix+"/sbin" ];
bin = [ "bash" ];
exec = make {
chdir = false;
@@ -26,7 +26,7 @@ package libaio {
"-Wno-gnu-designator "+
"-Wno-#warnings' ";
check = [ "partcheck" ];
- install = "make prefix=/work/system install";
+ install = "make prefix=/work"+prefix+" install";
};
tools = [
diff --git a/internal/rosa/package/libbpf.az b/internal/rosa/package/libbpf.az
index 8c21b7e9..b86c3631 100644
--- a/internal/rosa/package/libbpf.az
+++ b/internal/rosa/package/libbpf.az
@@ -10,7 +10,7 @@ package libbpf {
checksum = "vpacRQrLgXtttQw0fwv3fcJ-FRHbly38CcLPJyXd2MsKr8gsfp1K6bBVelxZZj52";
};
- env = [ "PREFIX=/system" ];
+ env = [ "PREFIX="+prefix ];
early = "cd src";
writable = true;
chmod = true;
diff --git a/internal/rosa/package/libcap.az b/internal/rosa/package/libcap.az
index 86bdc63a..e71eec28 100644
--- a/internal/rosa/package/libcap.az
+++ b/internal/rosa/package/libcap.az
@@ -17,7 +17,7 @@ package libcap {
chmod = true;
env = [
- "prefix=/system",
+ "prefix="+prefix,
"lib=lib",
];
diff --git a/internal/rosa/package/libucontext.az b/internal/rosa/package/libucontext.az
index 4af0a68f..58c03903 100644
--- a/internal/rosa/package/libucontext.az
+++ b/internal/rosa/package/libucontext.az
@@ -21,6 +21,6 @@ package libucontext {
configure = nil;
make = [ "ARCH=" + linuxArch ];
- install = "make prefix=/system DESTDIR=/work install";
+ install = "make prefix="+prefix+" DESTDIR=/work install";
};
}
diff --git a/internal/rosa/package/llvm/package.az b/internal/rosa/package/llvm/package.az
index 6b02d6e9..007b94c3 100644
--- a/internal/rosa/package/llvm/package.az
+++ b/internal/rosa/package/llvm/package.az
@@ -87,10 +87,10 @@ message(NOTICE "${LLVM_VERSION_MAJOR}")
};
test = nil;
postInstall = `
-mkdir -p "/work/system/lib/clang/$LLVM_VERSION_MAJOR/lib/"
+mkdir -p "/work`+prefix+`/lib/clang/$LLVM_VERSION_MAJOR/lib/"
ln -s \
'../../../`+triple+`' \
- "/work/system/lib/clang/$LLVM_VERSION_MAJOR/lib/"
+ "/work`+prefix+`/lib/clang/$LLVM_VERSION_MAJOR/lib/"
`;
};
diff --git a/internal/rosa/package/lm_sensors.az b/internal/rosa/package/lm_sensors.az
index 2b6b58dc..4d764cd6 100644
--- a/internal/rosa/package/lm_sensors.az
+++ b/internal/rosa/package/lm_sensors.az
@@ -19,9 +19,9 @@ package lm_sensors {
exec = make {
chdir = false;
configure = nil;
- make = [ "CC=cc", "ETCDIR=/system/etc", "PREFIX=/system" ];
+ make = [ "CC=cc", "ETCDIR="+prefix+"/etc", "PREFIX="+prefix ];
check = [ "CC=cc", "check" ];
- install = "make DESTDIR=/work PREFIX=/system install";
+ install = "make DESTDIR=/work PREFIX="+prefix+" install";
};
tools = [
diff --git a/internal/rosa/package/lua/conf-prefix.patch b/internal/rosa/package/lua/conf-prefix.patch
index cb7bbe5f..7dbc8050 100644
--- a/internal/rosa/package/lua/conf-prefix.patch
+++ b/internal/rosa/package/lua/conf-prefix.patch
@@ -7,7 +7,7 @@ index 96a7780..0bfa66c 100644
#else /* }{ */
-#define LUA_ROOT "/usr/local/"
-+#define LUA_ROOT "/system/"
++#define LUA_ROOT "@ROSA_PREFIX@/"
#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/"
#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/"
diff --git a/internal/rosa/package/lua/lua.pc b/internal/rosa/package/lua/lua.pc
index 0bc54c70..58958743 100644
--- a/internal/rosa/package/lua/lua.pc
+++ b/internal/rosa/package/lua/lua.pc
@@ -1,6 +1,6 @@
# lua.pc -- pkg-config data for Lua
-prefix=/system
+prefix=@ROSA_PREFIX@
INSTALL_BIN=${prefix}/bin
INSTALL_INC=${prefix}/include
INSTALL_LIB=${prefix}/lib
diff --git a/internal/rosa/package/lua/package.az b/internal/rosa/package/lua/package.az
index 54d5abe6..033af0fe 100644
--- a/internal/rosa/package/lua/package.az
+++ b/internal/rosa/package/lua/package.az
@@ -22,15 +22,19 @@ package lua {
exec = make {
chdir = false;
configure = nil;
+ preMake = `
+sed -i 's|@ROSA_PREFIX@|`+prefix+`|g' src/luaconf.h
+`;
make = [ "CC='clang -fPIC'", "all" ];
check = [ "test" ];
install = `
-make INSTALL_TOP=/work/system install
-mkdir /work/system/lib/pkgconfig
+make INSTALL_TOP=/work`+prefix+` install
+mkdir /work`+prefix+`/lib/pkgconfig
sed \
-e "s|@MAJOR_VER@|$(cc -P -E -include src/lua.h - <<< LUA_VERSION_MAJOR_N | tail -n 1)|g" \
-e "s|@MINOR_VER@|$(cc -P -E -include src/lua.h - <<< LUA_VERSION_MINOR_N | tail -n 1)|g" \
- ../lua.pc > /work/system/lib/pkgconfig/lua.pc
+ -e "s|@ROSA_PREFIX@|`+prefix+`|g" \
+ ../lua.pc > /work`+prefix+`/lib/pkgconfig/lua.pc
`;
};
diff --git a/internal/rosa/package/make.az b/internal/rosa/package/make.az
index 5142b079..cf2d72c7 100644
--- a/internal/rosa/package/make.az
+++ b/internal/rosa/package/make.az
@@ -19,7 +19,7 @@ package make-early {
exec = generic {
build = `/usr/src/make-early/configure \
- --prefix=/system \
+ --prefix=`+prefix+` \
--host='`+triple+`' \
--target='`+triple+`' \
--build='`+hostTriple+`' \
diff --git a/internal/rosa/package/mksh.az b/internal/rosa/package/mksh.az
index 6bd3e9cc..600991cb 100644
--- a/internal/rosa/package/mksh.az
+++ b/internal/rosa/package/mksh.az
@@ -12,12 +12,12 @@ package mksh {
env = [
"LDSTATIC=-static",
- "CPPFLAGS=-DMKSH_DEFAULT_PROFILEDIR=\\\"/system/etc\\\"",
+ "CPPFLAGS=-DMKSH_DEFAULT_PROFILEDIR=\\\""+prefix+"/etc\\\"",
];
exec = generic {
cross = `
-export CC='clang --target=`+triple+` --sysroot=/system/`+arch+`'
+export CC='clang --target=`+triple+` --sysroot=`+prefix+`/`+arch+`'
`;
build = `sh /usr/src/mksh/Build.sh -r
CPPFLAGS="${CPPFLAGS} -DMKSH_BINSHPOSIX -DMKSH_BINSHREDUCED" \
@@ -25,12 +25,12 @@ sh /usr/src/mksh/Build.sh -r -L
`;
check = "./test.sh -C regress:no-ctty\n";
install = `
-mkdir -p /work/system/bin/
-cp -v mksh /work/system/bin/
-cp -v lksh /work/system/bin/sh
+mkdir -p /work`+prefix+`/bin/
+cp -v mksh /work`+prefix+`/bin/
+cp -v lksh /work`+prefix+`/bin/sh
mkdir -p /work/bin/
-ln -vs ../system/bin/sh /work/bin/
+ln -vs ..`+prefix+`/bin/sh /work/bin/
`;
};
diff --git a/internal/rosa/package/muon/package.az b/internal/rosa/package/muon/package.az
index 775a9a73..588a4c8d 100644
--- a/internal/rosa/package/muon/package.az
+++ b/internal/rosa/package/muon/package.az
@@ -47,7 +47,7 @@ chmod -R +w subprojects/meson-tests
build = `
(cd /usr/src/muon && CC=cc ./bootstrap.sh /boot)
/boot/muon-bootstrap setup \
- -Dprefix=/system \
+ -Dprefix=`+prefix+` \
-Dbuildtype=release \
-Dlibcurl=disabled \
-Dlibarchive=disabled \
diff --git a/internal/rosa/package/musl/package.az b/internal/rosa/package/musl/package.az
index fac7c781..d3192308 100644
--- a/internal/rosa/package/musl/package.az
+++ b/internal/rosa/package/musl/package.az
@@ -43,8 +43,8 @@ package musl {
"LDFLAGS=" + earlyLDFLAGS,
];
early = `
-[ -e '/system/`+arch+`' ] && \
- ln -s ../../../../`+arch+`/system/lib/`+triple+` /system/lib/clang/*/lib || true
+[ -e '`+prefix+`/`+arch+`' ] && \
+ ln -s ../../../../`+arch+prefix+`/lib/`+triple+` `+prefix+`/lib/clang/*/lib || true
`;
exec = make {
@@ -56,11 +56,11 @@ package musl {
};
check = nil;
postInstall = `
-mkdir -p /work/system/bin
+mkdir -p /work`+prefix+`/bin
COMPAT_LINKER_NAME="ld-musl-`+llvmArch+`.so.1"
-ln -vs ../lib/libc.so /work/system/bin/linker
-ln -vs ../lib/libc.so /work/system/bin/ldd
-ln -vs libc.so "/work/system/lib/${COMPAT_LINKER_NAME}"
+ln -vs ../lib/libc.so /work`+prefix+`/bin/linker
+ln -vs ../lib/libc.so /work`+prefix+`/bin/ldd
+ln -vs libc.so "/work`+prefix+`/lib/${COMPAT_LINKER_NAME}"
rm -v "/work/lib/${COMPAT_LINKER_NAME}"
rmdir -v /work/lib
`;
diff --git a/internal/rosa/package/ncurses.az b/internal/rosa/package/ncurses.az
index 9295f4b7..62149637 100644
--- a/internal/rosa/package/ncurses.az
+++ b/internal/rosa/package/ncurses.az
@@ -22,7 +22,7 @@ package ncurses {
check = nil;
postInstall = `
-find /work/system/lib \
+find /work`+prefix+`/lib \
-type f \
-name '*.a' \
-exec objcopy --enable-deterministic-archives {} \;
diff --git a/internal/rosa/package/ninja.az b/internal/rosa/package/ninja.az
index da5fa715..4c419ded 100644
--- a/internal/rosa/package/ninja.az
+++ b/internal/rosa/package/ninja.az
@@ -29,8 +29,8 @@ python3 /usr/src/ninja/configure.py \
check = "./ninja_test";
install = `
-mkdir -p /work/system/bin/
-cp ninja /work/system/bin/`;
+mkdir -p /work`+prefix+`/bin/
+cp ninja /work`+prefix+`/bin/`;
};
tools = [
diff --git a/internal/rosa/package/noto.az b/internal/rosa/package/noto.az
index 6fc8e125..838d222b 100644
--- a/internal/rosa/package/noto.az
+++ b/internal/rosa/package/noto.az
@@ -14,7 +14,7 @@ package noto {
exec = generic {
chdir = false;
install = `
-DEST=/work/system/share/fonts/noto
+DEST=/work`+prefix+`/share/fonts/noto
for font in $(ls -d fonts/*/); do
if [[ -d "$font"unhinted/variable-ttf ]]; then
install -m444 -vDt "$DEST" "$font"unhinted/variable-ttf/*.ttf
diff --git a/internal/rosa/package/nss.az b/internal/rosa/package/nss.az
index 4f4d4d9a..d7f99135 100644
--- a/internal/rosa/package/nss.az
+++ b/internal/rosa/package/nss.az
@@ -21,14 +21,14 @@ package nss-cacert {
exec = generic {
chdir = false;
build = `
-mkdir -p /work/system/etc/ssl/{certs/unbundled,certs/hashed,trust-source}
+mkdir -p /work`+prefix+`/etc/ssl/{certs/unbundled,certs/hashed,trust-source}
buildcatrust \
--certdata_input lib/ckfw/builtins/certdata.txt \
- --ca_bundle_output /work/system/etc/ssl/certs/ca-bundle.crt \
- --ca_standard_bundle_output /work/system/etc/ssl/certs/ca-no-trust-rules-bundle.crt \
- --ca_unpacked_output /work/system/etc/ssl/certs/unbundled \
- --ca_hashed_unpacked_output /work/system/etc/ssl/certs/hashed \
- --p11kit_output /work/system/etc/ssl/trust-source/ca-bundle.trust.p11-kit
+ --ca_bundle_output /work`+prefix+`/etc/ssl/certs/ca-bundle.crt \
+ --ca_standard_bundle_output /work`+prefix+`/etc/ssl/certs/ca-no-trust-rules-bundle.crt \
+ --ca_unpacked_output /work`+prefix+`/etc/ssl/certs/unbundled \
+ --ca_hashed_unpacked_output /work`+prefix+`/etc/ssl/certs/hashed \
+ --p11kit_output /work`+prefix+`/etc/ssl/trust-source/ca-bundle.trust.p11-kit
`;
};
diff --git a/internal/rosa/package/openssl.az b/internal/rosa/package/openssl.az
index da99b82c..03ae677b 100644
--- a/internal/rosa/package/openssl.az
+++ b/internal/rosa/package/openssl.az
@@ -23,7 +23,7 @@ package openssl {
configureName = "/usr/src/openssl/Configure";
configure = {
- "prefix": "/system";
+ "prefix": prefix;
"libdir": "lib";
"openssldir": "etc/ssl";
"": "no-docs";
diff --git a/internal/rosa/package/perl.az b/internal/rosa/package/perl.az
index 3009c75b..828fcab4 100644
--- a/internal/rosa/package/perl.az
+++ b/internal/rosa/package/perl.az
@@ -16,7 +16,7 @@ package perl {
writable = true;
chmod = true;
early = `
-chmod +w /system/bin && rm -f /system/bin/ps # perl does not like toybox ps
+chmod +w `+prefix+`/bin && rm -f `+prefix+`/bin/ps # perl does not like toybox ps
function disable_test {
echo 'print STDOUT "1..0 # Skip broken test\n";' > "$1"
@@ -35,7 +35,7 @@ disable_test ext/POSIX/t/time.t
configureName = "./Configure";
configure = {
"-des";
- "Dprefix": "/system";
+ "Dprefix": prefix;
"Dcc": "clang";
"Dcflags": "--std=gnu99";
"Dldflags": `"${LDFLAGS:-''}"`;
@@ -73,7 +73,7 @@ package perl-Module-Build {
exec = generic {
chdir = false;
build = `
-perl Build.PL --prefix=/system
+perl Build.PL --prefix=`+prefix+`
./Build build`;
check = `
./Build test`;
diff --git a/internal/rosa/package/pkgconf.az b/internal/rosa/package/pkgconf.az
index 35485b72..1b8bcbf7 100644
--- a/internal/rosa/package/pkgconf.az
+++ b/internal/rosa/package/pkgconf.az
@@ -11,6 +11,6 @@ package pkgconf {
};
exec = meson {
- postInstall = "ln -s pkgconf /work/system/bin/pkg-config";
+ postInstall = "ln -s pkgconf /work"+prefix+"/bin/pkg-config";
};
}
diff --git a/internal/rosa/package/python/package.az b/internal/rosa/package/python/package.az
index 40fabe25..4dc3d5ee 100644
--- a/internal/rosa/package/python/package.az
+++ b/internal/rosa/package/python/package.az
@@ -52,14 +52,14 @@ package python {
},
// _ctypes appears to infer something from the linker name
- "LDFLAGS=-Wl,--dynamic-linker=/system/lib/"+
+ "LDFLAGS=-Wl,--dynamic-linker="+prefix+"/lib/"+
"ld-musl-"+llvmArch+".so.1",
];
exec = make {
configure = { "enable-optimizations"; };
check = [ "test" ];
- postInstall = "ln -s python3 /work/system/bin/python";
+ postInstall = "ln -s python3 /work"+prefix+"/bin/python";
};
tools = [ pkg-config ];
@@ -122,13 +122,13 @@ package python-early {
},
// _ctypes appears to infer something from the linker name
- "LDFLAGS=-Wl,--dynamic-linker=/system/lib/" +
+ "LDFLAGS=-Wl,--dynamic-linker="+prefix+"/lib/" +
"ld-musl-"+llvmArch+".so.1",
];
exec = make {
check = [ "test" ];
- postInstall = "ln -s python3 /work/system/bin/python";
+ postInstall = "ln -s python3 /work"+prefix+"/bin/python";
};
inputs = [
@@ -586,7 +586,7 @@ package python-pycparser {
// test case hard codes gcc
early = `
-ln -s clang /system/bin/gcc
+ln -s clang `+prefix+`/bin/gcc
`;
exec = pip {};
diff --git a/internal/rosa/package/spirv.az b/internal/rosa/package/spirv.az
index 8cfb33f7..2b934933 100644
--- a/internal/rosa/package/spirv.az
+++ b/internal/rosa/package/spirv.az
@@ -32,7 +32,7 @@ package spirv-tools {
exec = cmake {
cache = {
- "SPIRV-Headers_SOURCE_DIR": "/system";
+ "SPIRV-Headers_SOURCE_DIR": prefix;
};
};
@@ -53,7 +53,7 @@ package spirv-llvm-translator {
};
// litArgs emits shell syntax
- early = "rm -f /system/bin/clang++.cfg\nexport LIT_OPTS=" + litArgs {
+ early = "rm -f "+prefix+"/bin/clang++.cfg\nexport LIT_OPTS=" + litArgs {
verbose = true;
skipChecks = arch {
@@ -146,8 +146,8 @@ package spirv-llvm-translator {
"CMAKE_SKIP_BUILD_RPATH": "ON";
"BUILD_SHARED_LIBS": "ON";
"LLVM_SPIRV_ENABLE_LIBSPIRV_DIS": "ON";
- "LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR": "/system";
- "LLVM_EXTERNAL_LIT": "/system/bin/lit";
+ "LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR": prefix;
+ "LLVM_EXTERNAL_LIT": prefix+"/bin/lit";
"LLVM_INCLUDE_TESTS": "ON";
};
};
diff --git a/internal/rosa/package/squashfs-tools.az b/internal/rosa/package/squashfs-tools.az
index 145c1cb9..27282c1c 100644
--- a/internal/rosa/package/squashfs-tools.az
+++ b/internal/rosa/package/squashfs-tools.az
@@ -31,7 +31,7 @@ package squashfs-tools {
chdir = false;
configure = nil;
check = nil;
- install = "make INSTALL_PREFIX=/work/system install";
+ install = "make INSTALL_PREFIX=/work"+prefix+" install";
};
tools = [ sed ];
diff --git a/internal/rosa/package/tamago.az b/internal/rosa/package/tamago.az
index 627823bd..bb0e14e1 100644
--- a/internal/rosa/package/tamago.az
+++ b/internal/rosa/package/tamago.az
@@ -21,13 +21,13 @@ package tamago {
exec = generic {
chdir = false;
build = `
-mkdir /work/system/
-cp -r . /work/system/tamago
-cd /work/system/tamago/src
+mkdir /work`+prefix+`/
+cp -r . /work`+prefix+`/tamago
+cd /work`+prefix+`/tamago/src
chmod -R +w ..
sed -i \
- 's,/lib/ld-musl-`+llvmArch+`.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+llvmArch+`.so.1,`+prefix+`/bin/linker,' \
cmd/link/internal/` + arch + `/obj.go
rm \
diff --git a/internal/rosa/package/toybox.az b/internal/rosa/package/toybox.az
index 2c695ad0..43faceee 100644
--- a/internal/rosa/package/toybox.az
+++ b/internal/rosa/package/toybox.az
@@ -53,11 +53,11 @@ sed -i \
];
checkEarly = false;
- install = "PREFIX=/work/system/bin make install_flat";
+ install = "PREFIX=/work"+prefix+"/bin make install_flat";
postInstall = `
mkdir -p /work/usr/bin
-ln -s ../../system/bin/env /work/usr/bin
+ln -s ../..`+prefix+`/bin/env /work/usr/bin
`;
};
@@ -92,9 +92,9 @@ chmod +w /bin/
ln -rs "$(which bash)" /bin/ || true
if [ -n "${CC+x}" ]; then
- echo '#!/bin/sh' > '/system/bin/`+llvmArch+`-cc'
- echo "exec $CC "'"$@"' >> '/system/bin/`+llvmArch+`-cc'
- chmod +x '/system/bin/`+llvmArch+`-cc'
+ echo '#!/bin/sh' > '`+prefix+`/bin/`+llvmArch+`-cc'
+ echo "exec $CC "'"$@"' >> '`+prefix+`/bin/`+llvmArch+`-cc'
+ chmod +x '`+prefix+`/bin/`+llvmArch+`-cc'
unset CC
export CROSS_COMPILE=`+llvmArch+`-
fi
@@ -126,11 +126,11 @@ CONFIG_DIFF=y
];
checkEarly = false;
- install = "PREFIX=/work/system/bin make install_flat";
+ install = "PREFIX=/work"+prefix+"/bin make install_flat";
postInstall = `
mkdir -p /work/usr/bin
-ln -s ../../system/bin/env /work/usr/bin
+ln -s ../..`+prefix+`/bin/env /work/usr/bin
`;
};
diff --git a/internal/rosa/package/unzip.az b/internal/rosa/package/unzip.az
index 3bc8ae8b..9d4ea5b6 100644
--- a/internal/rosa/package/unzip.az
+++ b/internal/rosa/package/unzip.az
@@ -24,8 +24,8 @@ package unzip {
build = `unix/configure
make -f unix/Makefile generic1`;
install = `
-mkdir -p /work/system/bin/
-mv unzip /work/system/bin/
+mkdir -p /work`+prefix+`/bin/
+mv unzip /work`+prefix+`/bin/
`;
};
diff --git a/internal/rosa/package/util-linux.az b/internal/rosa/package/util-linux.az
index 8beff173..4d803226 100644
--- a/internal/rosa/package/util-linux.az
+++ b/internal/rosa/package/util-linux.az
@@ -32,9 +32,9 @@ package util-linux {
"enable-fs-paths-default": join {
elems = [
- "/system/sbin",
- "/system/sbin/fs.d",
- "/system/sbin/fs",
+ prefix+"/sbin",
+ prefix+"/sbin/fs.d",
+ prefix+"/sbin/fs",
];
sep = ":";
};
diff --git a/internal/rosa/perl.go b/internal/rosa/perl.go
index 6cb87149..972281b6 100644
--- a/internal/rosa/perl.go
+++ b/internal/rosa/perl.go
@@ -39,7 +39,7 @@ func (attr *MakeMakerHelper) script(t Toolchain, name string) string {
}
script := `perl Makefile.PL \
- PREFIX=/system
+ PREFIX=` + Prefix + `
make \
` + jobsFlagE + ` \
` + loadFlagE
diff --git a/internal/rosa/python.go b/internal/rosa/python.go
index 8b363d87..11174030 100644
--- a/internal/rosa/python.go
+++ b/internal/rosa/python.go
@@ -69,7 +69,7 @@ func (attr *PipHelper) script(t Toolchain, name string) string {
if attr.Install {
script += `pip3 install \
--no-index \
- --prefix=/system \
+ --prefix=` + Prefix + ` \
--no-build-isolation \
'` + sourcePath.String() + `'
`
@@ -90,7 +90,7 @@ func (attr *PipHelper) script(t Toolchain, name string) string {
return `
pip3 install \
--no-index \
- --prefix=/system \
+ --prefix=` + Prefix + ` \
--root=/work \` + extra + `
'` + sourcePath.String() + `'
` + script
diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go
index c730127b..71755ef9 100644
--- a/internal/rosa/rosa.go
+++ b/internal/rosa/rosa.go
@@ -45,12 +45,19 @@ func mustDecode(s string) pkg.Checksum {
// KV is a key-value pair of strings.
type KV = [2]string
+const (
+ // prefixR is the Rosa OS installation prefix relative to sysroot.
+ prefixR = "system"
+ // Prefix is the Rosa OS installation prefix.
+ Prefix = "/" + prefixR
+)
+
var (
// AbsUsrSrc is the conventional directory to place source code under.
AbsUsrSrc = fhs.AbsUsr.Append("src")
// AbsSystem is the Rosa OS installation prefix.
- AbsSystem = fhs.AbsRoot.Append("system")
+ AbsSystem = fhs.AbsRoot.Append(prefixR)
)
// linuxArch returns the architecture name used by linux corresponding to arch.
@@ -97,14 +104,14 @@ func (s *S) triple() string { return triple(s.Arch()) }
// earlyLDFLAGS returns LDFLAGS corresponding to triplet.
func (s *S) earlyLDFLAGS(static bool) string {
p := "-fuse-ld=lld " +
- "-L/system/lib -Wl,-rpath=/system/lib " +
- "-L/system/lib/" + s.triple() + " " +
- "-Wl,-rpath=/system/lib/" + s.triple() + " " +
+ "-L" + Prefix + "/lib -Wl,-rpath=" + Prefix + "/lib " +
+ "-L" + Prefix + "/lib/" + s.triple() + " " +
+ "-Wl,-rpath=" + Prefix + "/lib/" + s.triple() + " " +
"-rtlib=compiler-rt " +
"-unwindlib=libunwind " +
"-Wl,--as-needed"
if !static {
- p += " -Wl,--dynamic-linker=/system/bin/linker"
+ p += " -Wl,--dynamic-linker=" + Prefix + "/bin/linker"
}
return p
}
@@ -492,7 +499,7 @@ func (t Toolchain) New(
env = fixupEnviron(env, []string{
lcMessages,
"LDFLAGS=" + t.earlyLDFLAGS(true),
- }, "/system/bin",
+ }, Prefix+"/bin",
"/usr/bin",
)
@@ -524,7 +531,7 @@ func (t Toolchain) New(
)
env = fixupEnviron(env, []string{
lcMessages,
- }, "/system/bin", "/bin")
+ }, Prefix+"/bin", "/bin")
default:
panic("unsupported toolchain " + strconv.Itoa(int(t.stage)))
@@ -638,7 +645,7 @@ ln -s ../bin /usr/`
if t.stage != stageGentoo && len(bin) > 0 {
scriptEarly += "\nchmod +w /bin/" +
- "\n(set -o braceexpand && ln -sf ../system/bin/"
+ "\n(set -o braceexpand && ln -sf .." + Prefix + "/bin/"
if len(bin) > 1 {
scriptEarly += "{'" + strings.Join(bin, "','") + "'}"
} else {
@@ -654,7 +661,7 @@ ln -s ../bin /usr/`
), pkg.Path(
absCureScript, false,
pkg.NewFile(scriptName, []byte(
- "#!/system/bin/sh\n"+
+ "#!"+Prefix+"/bin/sh\n"+
"set -eu -o pipefail\n"+
scriptEarly+helper.script(t, name),
)),
diff --git a/internal/rosa/state.go b/internal/rosa/state.go
index fb7fa4f8..febde19f 100644
--- a/internal/rosa/state.go
+++ b/internal/rosa/state.go
@@ -299,7 +299,7 @@ func Arches(qemu *check.Absolute) iter.Seq2[string, container.BinfmtEntry] {
var interpreter *check.Absolute
if qemu != nil {
interpreter = qemu.Append(
- "system/bin",
+ prefixR+"/bin",
"qemu-"+name,
)
}
@@ -526,6 +526,8 @@ func (s *S) getFrame() azalea.Frame {
}
s.frame.Val = map[unique.Handle[azalea.Ident]]any{
+ k("prefix"): Prefix,
+ k("prefixR"): prefixR,
k("unversioned"): Unversioned,
k("hostTriple"): triple(native),