From 53e9dd6aa933c1a5b43da83a88d5e07bf27285bf Mon Sep 17 00:00:00 2001 From: Ophestra Date: Wed, 28 Oct 2026 03:05:09 +0900 Subject: internal/rosa: do not hard code prefix This allows the prefix to be changed, at runtime if needed. Signed-off-by: Ophestra --- internal/rosa/package/argp-standalone.az | 4 +-- internal/rosa/package/awk.az | 4 +-- internal/rosa/package/bzip2.az | 2 +- internal/rosa/package/cmake/package.az | 2 +- internal/rosa/package/curl.az | 2 +- internal/rosa/package/db.az | 2 +- internal/rosa/package/firmware.az | 4 +-- internal/rosa/package/fuse/package.az | 2 +- internal/rosa/package/gcc/package.az | 6 ++--- internal/rosa/package/git.az | 2 +- internal/rosa/package/glib/package.az | 2 +- internal/rosa/package/gnu.az | 2 +- internal/rosa/package/gnutls/package.az | 2 +- internal/rosa/package/go.az | 14 +++++------ internal/rosa/package/hakurei.az | 38 ++++++++++++++--------------- internal/rosa/package/images/package.az | 2 +- internal/rosa/package/iproute2.az | 6 ++--- internal/rosa/package/kernel/depmod | 2 +- internal/rosa/package/kernel/package.az | 29 +++++++++------------- internal/rosa/package/kmod.az | 4 +-- internal/rosa/package/libaio.az | 4 +-- internal/rosa/package/libbpf.az | 2 +- internal/rosa/package/libcap.az | 2 +- internal/rosa/package/libucontext.az | 2 +- internal/rosa/package/llvm/package.az | 4 +-- internal/rosa/package/lm_sensors.az | 4 +-- internal/rosa/package/lua/conf-prefix.patch | 2 +- internal/rosa/package/lua/lua.pc | 2 +- internal/rosa/package/lua/package.az | 10 +++++--- internal/rosa/package/make.az | 2 +- internal/rosa/package/mksh.az | 12 ++++----- internal/rosa/package/muon/package.az | 2 +- internal/rosa/package/musl/package.az | 12 ++++----- internal/rosa/package/ncurses.az | 2 +- internal/rosa/package/ninja.az | 4 +-- internal/rosa/package/noto.az | 2 +- internal/rosa/package/nss.az | 12 ++++----- internal/rosa/package/openssl.az | 2 +- internal/rosa/package/perl.az | 6 ++--- internal/rosa/package/pkgconf.az | 2 +- internal/rosa/package/python/package.az | 10 ++++---- internal/rosa/package/spirv.az | 8 +++--- internal/rosa/package/squashfs-tools.az | 2 +- internal/rosa/package/tamago.az | 8 +++--- internal/rosa/package/toybox.az | 14 +++++------ internal/rosa/package/unzip.az | 4 +-- internal/rosa/package/util-linux.az | 6 ++--- 47 files changed, 135 insertions(+), 138 deletions(-) (limited to 'internal/rosa/package') 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 = ":"; }; -- cgit v1.3.1