diff options
75 files changed, 352 insertions, 346 deletions
diff --git a/hst/hst_test.go b/hst/hst_test.go index 83ea225e..388bddf9 100644 --- a/hst/hst_test.go +++ b/hst/hst_test.go @@ -14,6 +14,8 @@ import ( "hakurei.app/message" ) +//go:generate env CGO_ENABLED=0 go build . + func TestAppError(t *testing.T) { t.Parallel() diff --git a/internal/rosa/azalea/azalea.go b/internal/rosa/azalea/azalea.go index bd24ef4e..5e044214 100644 --- a/internal/rosa/azalea/azalea.go +++ b/internal/rosa/azalea/azalea.go @@ -121,10 +121,7 @@ func (p *parser) parseVal() (v Val) { type Array []Val // A KV holds a key/value pair. -type KV struct { - K String - V Val -} +type KV struct{ K, V Val } // An Arg represents an argument of [Func]. type Arg struct { @@ -235,9 +232,8 @@ func (p *parser) parseExpr() any { p.scan() return v - case scanner.String: - pair := KV{K: p.parseString()} - p.scan() + default: + pair := KV{K: p.parseVal()} switch p.tok { case ';': break @@ -252,9 +248,6 @@ func (p *parser) parseExpr() any { panic(ExprError(p.tok)) } v = append(v, pair) - - default: - panic(ExprError(p.tok)) } } diff --git a/internal/rosa/azalea/azalea_test.go b/internal/rosa/azalea/azalea_test.go index 73330412..6e184737 100644 --- a/internal/rosa/azalea/azalea_test.go +++ b/internal/rosa/azalea/azalea_test.go @@ -44,10 +44,15 @@ func TestParse(t *testing.T) { {"empty pairs", `{}`, []any{[]KV(nil)}, nil}, {"short kv", `{"\x00":v;}`, []any{[]KV{ - {K: "\x00", V: Val{Ident("v")}}, + {K: Val{String("\x00")}, V: Val{Ident("v")}}, }}, nil}, {"truncated kv", `{"\x00"`, nil, ExprError(scanner.EOF)}, - {"ident kv", `{v="";}`, nil, ExprError(scanner.Ident)}, + {"ident kv", `{v:"";}`, []any{[]KV{ + {K: Val{Ident("v")}, V: Val{String("")}}, + }}, nil}, + {"append kv", `{v+"\x00"+_v:"";}`, []any{[]KV{ + {K: Val{Ident("v"), String("\x00"), Ident("_v")}, V: Val{String("")}}, + }}, nil}, {"empty array", `[]`, []any{Array(nil)}, nil}, {"integer array", `[9]`, []any{Array{{Int(9)}}}, nil}, @@ -100,15 +105,15 @@ func TestParse(t *testing.T) { Args: []Arg{ {K: []Ident{Ident("configure")}, V: Val{[]KV{ - {K: String("disable-multilib")}, - {K: String("enable-default-pie")}, - {K: String("disable-nls")}, - {K: String("with-gnu-as")}, - {K: String("with-gnu-ld")}, - {K: String("with-system-zlib")}, - {K: String("enable-languages"), V: Val{String("c,c++,go")}}, - {K: String("with-native-system-header-dir"), V: Val{String("/system/include")}}, - {K: String("with-multilib-list"), V: Val{Func{ + {K: Val{String("disable-multilib")}}, + {K: Val{String("enable-default-pie")}}, + {K: Val{String("disable-nls")}}, + {K: Val{String("with-gnu-as")}}, + {K: Val{String("with-gnu-ld")}}, + {K: Val{String("with-system-zlib")}}, + {K: Val{String("enable-languages")}, V: Val{String("c,c++,go")}}, + {K: Val{String("with-native-system-header-dir")}, V: Val{String("/system/include")}}, + {K: Val{String("with-multilib-list")}, V: Val{Func{ Ident: Ident("arch"), Args: []Arg{ diff --git a/internal/rosa/azalea/evaluate.go b/internal/rosa/azalea/evaluate.go index 9b7b08d0..1fb730f3 100644 --- a/internal/rosa/azalea/evaluate.go +++ b/internal/rosa/azalea/evaluate.go @@ -200,7 +200,6 @@ func (e EvaluationError) Error() string { } var ( - // IdentTools is a special array argument in a package declaration whose // values of [Ident] are kept as is when passed to a [PF]. IdentTools = unique.Make(Ident("tools")) @@ -317,9 +316,10 @@ func evaluateAny(d PF, s []Frame, expr, rp any) bool { case []KV: r := make([][2]string, 0, len(e)) for i := range e { - var _r string - if e[i].V == nil || evaluate(d, s, e[i].V, &_r) { - r = append(r, [2]string{string(e[i].K), _r}) + var _r [2]string + if evaluate(d, s, e[i].K, &_r[0]) && + (e[i].V == nil || evaluate(d, s, e[i].V, &_r[1])) { + r = append(r, _r) } } store(rp, r) diff --git a/internal/rosa/cmake.go b/internal/rosa/cmake.go index 2095c47a..049688e5 100644 --- a/internal/rosa/cmake.go +++ b/internal/rosa/cmake.go @@ -97,24 +97,25 @@ func (attr *CMakeHelper) script(t Toolchain, name string) string { cache = append(cache, attr.Cache...) var cross string + sysroot := Prefix + "/" + t.Arch() 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=` + sysroot + ` \ + -DCMAKE_C_COMPILER=` + Prefix + `/bin/clang \ + -DCMAKE_C_FLAGS='--target=` + target + ` --sysroot=` + sysroot + `' \ + -DCMAKE_CXX_COMPILER=` + Prefix + `/bin/clang++ \ + -DCMAKE_CXX_FLAGS='--target=` + target + ` --sysroot=` + sysroot + `' \ + -DCMAKE_ASM_COMPILER=` + Prefix + `/bin/clang \ + -DCMAKE_ASM_FLAGS='--target=` + target + ` --sysroot=` + sysroot + `' \` } return ` cmake -G ` + generate + ` \ -Wno-author -Wno-unused-cli \` + cross + ` -DCMAKE_C_COMPILER_TARGET='` + target + `' \ - -DCMAKE_C_FLAGS='--target=` + target + `' \ -DCMAKE_CXX_COMPILER_TARGET='` + target + `' \ - -DCMAKE_CXX_FLAGS='--target=` + target + `' \ -DCMAKE_ASM_COMPILER_TARGET='` + target + `' \ - -DCMAKE_ASM_FLAGS='--target=` + target + `' \ -DCMAKE_INSTALL_LIBDIR=lib \ ` + strings.Join(slices.Collect(func(yield func(string) bool) { for _, v := range cache { @@ -123,7 +124,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..866ee094 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, @@ -77,7 +77,8 @@ func init() { finalEnv []string ) - switch arch := t.Arch(); arch { + arch := t.Arch() + switch arch { case "amd64": bootstrapEarly = []pkg.Artifact{t.New("go", "1.4-bootstrap", newTar( "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz", @@ -91,9 +92,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,70 +103,35 @@ 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") default: - panic("unsupported target " + t.arch) + panic("unsupported target " + arch) } go119 := t.newGo( "1.19.13", "MpXfAzOlxdEW_XHmss2IpErg7rJiBsAD9WGgjNo26FXsIyc2gShcz0UJawhEj0IT", - append(bootstrapEnv, "CGO_ENABLED=0"), ` -rm \ - crypto/tls/handshake_client_test.go \ - cmd/pprof/pprof_test.go \ - os/os_unix_test.go -sed -i \ - 's/os\.Getenv("GCCGO")$/"nonexistent"/' \ - go/internal/gccgoimporter/importer_test.go -echo \ - 'type syscallDescriptor = int' >> \ - os/rawconn_test.go -`, bootstrapEarly...) + append(bootstrapEnv, "CGO_ENABLED=0"), "", bootstrapEarly...) go121 := t.newGo( "1.21.13", "YtrDka402BOAEwywx03Vz4QlVwoBiguJHzG7PuythMCPHXS8CVMLvzmvgEbu4Tzu", - []string{"CGO_ENABLED=0"}, ` -sed -i \ - 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,/system/bin/linker,' \ - cmd/link/internal/`+t.arch+`/obj.go - -rm \ - crypto/tls/handshake_client_test.go \ - crypto/tls/handshake_server_test.go \ - os/os_unix_test.go -echo \ - 'type syscallDescriptor = int' >> \ - os/rawconn_test.go -`, go119, + []string{"CGO_ENABLED=0"}, "", go119, ) go123 := t.newGo( "1.23.12", "wcI32bl1tkqbgcelGtGWPI4RtlEddd-PTd76Eb-k7nXA5LbE9yTNdIL9QSOOxMOs", - []string{"CGO_ENABLED=0"}, ` -sed -i \ - 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,/system/bin/linker,' \ - cmd/link/internal/`+t.arch+`/obj.go -`, go121, + []string{"CGO_ENABLED=0"}, "", go121, ) go125 := t.newGo( version, checksum, - []string{"CGO_ENABLED=0"}, ` -sed -i \ - 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,/system/bin/linker,' \ - cmd/link/internal/`+t.arch+`/obj.go - -rm \ - os/root_unix_test.go \ - net/smtp/smtp_test.go -`, go123, + []string{"CGO_ENABLED=0"}, "", go123, ) return &meta, go125 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..4bac9c3e 100644 --- a/internal/rosa/meson.go +++ b/internal/rosa/meson.go @@ -60,10 +60,31 @@ 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+`', + + '--start-no-unused-arguments', + '-Wl,-rpath-link=`+Prefix+`/`+arch+`/system/lib', + '--end-no-unused-arguments' + ] +cpp = [ + 'clang++', + '--target=`+target+`', + '--sysroot=`+Prefix+`/`+arch+`', + + '--start-no-unused-arguments', + '-Wl,-rpath-link=`+Prefix+`/`+arch+`/system/lib', + '--end-no-unused-arguments' + ] pkg-config = ['pkg-config'] -exe_wrapper = ['qemu-`+t.linuxArch()+`', '-L', '/system/`+arch+`'] +llvm-config = [ + 'qemu-`+t.linuxArch()+`', + '-L', '`+Prefix+`/`+arch+`', + '`+Prefix+`/`+arch+Prefix+`/bin/llvm-config' + ] +exe_wrapper = ['qemu-`+t.linuxArch()+`', '-L', '`+Prefix+`/`+arch+`'] # Other binaries ar = ['llvm-ar'] @@ -73,10 +94,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 +176,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 +184,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..79874b86 100644 --- a/internal/rosa/package/argp-standalone.az +++ b/internal/rosa/package/argp-standalone.az @@ -11,13 +11,13 @@ package argp-standalone { }; env = [ - "CC=cc -std=gnu89 -fPIC", + "CFLAGS=-std=gnu89 -fPIC", ]; 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..2abd1b53 100644 --- a/internal/rosa/package/cmake/package.az +++ b/internal/rosa/package/cmake/package.az @@ -2,12 +2,12 @@ package cmake-source { description = "CMake source tree"; exclude = true; - version# = "4.4.4"; + version# = "4.4.5"; output = remoteGitHubRelease { suffix = "Kitware/CMake"; tag = "v"+version; name = "cmake-"+version+".tar.gz"; - checksum = "I7vJROVzty0xtoWvDQzR5JpnEl-gO-1kXd-qIO2lWgj65Hgyd4kA08mM1wk5l8z3"; + checksum = "J8E_lGNBLFWBHvHgiZIzBcbIl0Ja2eZq8aS6z6HX4TclVabRRYToyxhLkX3LECcj"; compress = gzip; }; patches = [ @@ -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/elfutils.az b/internal/rosa/package/elfutils.az index 002209c8..88defc6f 100644 --- a/internal/rosa/package/elfutils.az +++ b/internal/rosa/package/elfutils.az @@ -12,9 +12,9 @@ package elfutils { }; env = [ - "CC=cc" + + "CFLAGS=" + // nonstandard glibc extension - " -DFNM_EXTMATCH=0", + "-DFNM_EXTMATCH=0", ]; exec = make { 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/flex.az b/internal/rosa/package/flex.az index 78bba323..9be72188 100644 --- a/internal/rosa/package/flex.az +++ b/internal/rosa/package/flex.az @@ -2,6 +2,7 @@ package flex { description = "scanner generator for lexing in C and C++"; website = "https://github.com/westes/flex"; anitya = 819; + latest = anityaFallback; version# = "2.6.4"; source = remoteGitHubRelease { 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..15598ee6 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"; }; } @@ -480,10 +480,10 @@ package parallel { website = "https://www.gnu.org/software/parallel"; anitya = 5448; - version# = "20260922"; + version# = "20261022"; source = remoteTar { url = "https://mirrors.kernel.org/gnu/parallel/parallel-"+version+".tar.bz2"; - checksum = "4M2gBy-esCSvR9ub6SUnoVHz7p3ZDhdeJXm7yv2C4iJQdXyVNkYqgusPFsvH8MCp"; + checksum = "RpcFBfcpCyLBScWf6GAenqJJuMh7msOkgkc5OX7zKcDEi9G59g-_D7-U6QOcEbVU"; compress = bzip2; }; 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..6ec5249b 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,34 +22,33 @@ 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,' \ - cmd/link/internal/`+arch+`/obj.go - +set +u +. ./make.bash "$@" --no-banner +set -u +`; + check = ` +mkdir /lib && ln -s ../system/lib/ld-musl-`+llvmArch+`.so.1 /lib/ rm \ os/root_unix_test.go \ runtime/crash_cgo_test.go \ cmd/cgo/internal/testsanitizers/tsan_test.go \ cmd/cgo/internal/testsanitizers/cshared_test.go -set +u -. ./make.bash "$@" --no-banner -set -u +bash run.bash --no-rebuild `; - check = "bash run.bash --no-rebuild\n"; 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/amd64.config b/internal/rosa/package/kernel/amd64.config index 30cad9ec..d225563e 100644 --- a/internal/rosa/package/kernel/amd64.config +++ b/internal/rosa/package/kernel/amd64.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.18.58 Kernel Configuration +# Linux/x86 6.18.59 Kernel Configuration # CONFIG_CC_VERSION_TEXT="Rosa OS clang version 23.1.4" CONFIG_GCC_VERSION=0 diff --git a/internal/rosa/package/kernel/arm64.config b/internal/rosa/package/kernel/arm64.config index c9146f25..a3781679 100644 --- a/internal/rosa/package/kernel/arm64.config +++ b/internal/rosa/package/kernel/arm64.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.18.58 Kernel Configuration +# Linux/arm64 6.18.59 Kernel Configuration # CONFIG_CC_VERSION_TEXT="Rosa OS clang version 23.1.4" CONFIG_GCC_VERSION=0 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 3f5c5c36..10aeb63f 100644 --- a/internal/rosa/package/kernel/package.az +++ b/internal/rosa/package/kernel/package.az @@ -3,10 +3,10 @@ package kernel-source { website = "https://kernel.org"; exclude = true; - version# = "6.18.58"; + version# = "6.18.59"; output = remoteTar { url = "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"+version+".tar.gz"; - checksum = "Sv7N_LByk-wUXphGWhSmfLVnjNAbybcNzqTkT7iZWPZ-k6bLZ3xP4nMF_Z0Y4vCv"; + checksum = "e-OfydG1EoUUuOCLHZn2XXt1h3ONKo9fg67IAcYSfU-3c8HrBXJ259AtdC8CZdk0"; compress = gzip; }; } @@ -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/kernel/ppc64le.config b/internal/rosa/package/kernel/ppc64le.config index de517e88..feab9155 100644 --- a/internal/rosa/package/kernel/ppc64le.config +++ b/internal/rosa/package/kernel/ppc64le.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/powerpc 6.18.58 Kernel Configuration +# Linux/powerpc 6.18.59 Kernel Configuration # CONFIG_CC_VERSION_TEXT="Rosa OS clang version 23.1.4" CONFIG_GCC_VERSION=0 diff --git a/internal/rosa/package/kernel/riscv64.config b/internal/rosa/package/kernel/riscv64.config index cbd0372d..2c7b46ef 100644 --- a/internal/rosa/package/kernel/riscv64.config +++ b/internal/rosa/package/kernel/riscv64.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/riscv 6.18.58 Kernel Configuration +# Linux/riscv 6.18.59 Kernel Configuration # CONFIG_CC_VERSION_TEXT="Rosa OS clang version 23.1.4" CONFIG_GCC_VERSION=0 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/libdisplay-info.az b/internal/rosa/package/libdisplay-info.az index 8780bc10..b953203b 100644 --- a/internal/rosa/package/libdisplay-info.az +++ b/internal/rosa/package/libdisplay-info.az @@ -12,6 +12,8 @@ package libdisplay-info { }; exec = meson {}; - tools = [ diffutils ]; - inputs = [ hwdata ]; + tools = [ + diffutils, + hwdata, + ]; } diff --git a/internal/rosa/package/libglvnd.az b/internal/rosa/package/libglvnd.az index 9be9e2a9..4fe49ecd 100644 --- a/internal/rosa/package/libglvnd.az +++ b/internal/rosa/package/libglvnd.az @@ -13,6 +13,8 @@ package libglvnd { exec = meson { setup = { + "c_link_args": "-Wl,--allow-shlib-undefined"; + "x11": "enabled"; "glx": "enabled"; }; 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/libva.az b/internal/rosa/package/libva.az index 463220d6..1d3c8c12 100644 --- a/internal/rosa/package/libva.az +++ b/internal/rosa/package/libva.az @@ -25,4 +25,6 @@ package libva { wayland, kernel-headers, ]; + + tools = [ wayland ]; } 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/lvm2/package.az b/internal/rosa/package/lvm2/package.az index cc0ccef3..b9f1a66c 100644 --- a/internal/rosa/package/lvm2/package.az +++ b/internal/rosa/package/lvm2/package.az @@ -3,11 +3,11 @@ package lvm2 { website = "https://sourceware.org/lvm2"; anitya = 5354; - version# = "2.03.43"; + version# = "2.03.44"; source = remoteTar { url = "https://mirrors.kernel.org/sourceware/lvm2/releases/LVM2."+version+".tgz"; compress = gzip; - checksum = "W98OpJpTiLc-wO7CHh08UQ8nc-gNEj3kr84IzOv2QDoYfnonVVj-Lt_NZLJi_vi5"; + checksum = "tipsZ9ntuQEudgexoW4Cr8XUhguDCR5cvWZL6h3FNNuToS-RQEjBOwfAczP65ZCL"; }; patches = [ "fix-stdio-usage.patch", 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/mesa/package.az b/internal/rosa/package/mesa/package.az index b15bb880..4541f987 100644 --- a/internal/rosa/package/mesa/package.az +++ b/internal/rosa/package/mesa/package.az @@ -4,12 +4,12 @@ package mesa { anitya = 1970; latest = anityaFallback; - version# = "26.2.5"; + version# = "26.2.6"; source = remoteGitLab { domain = "gitlab.freedesktop.org"; suffix = "mesa/mesa"; ref = "mesa-"+version; - checksum = "uGxr-ED_AydefaUMuVWnIFtT6F8COqbKvQbmsVwKn0VKEZL-nbUHuvHvP-YuCr5v"; + checksum = "ZoXoatmuxmAEEyYeOIsUcRtUP0I74zWu9jx1R-K-L9PX5Cbip9Ve3tId3jDRmbx6"; }; patches = [ "include.patch" ]; @@ -90,15 +90,22 @@ package mesa { }; }; - inputs = [ - m4, + tools = [ python-packaging, python-mako, python-pyyaml, python-pycparser, + + m4, glslang, - spirv-llvm-translator, + flex, + bison, + wayland, + ]; + inputs = [ + llvm, + spirv-llvm-translator, zlib, zstd, gzip, @@ -108,8 +115,6 @@ package mesa { libva, libdrm, elfutils, - bison, - flex, lm_sensors, libconfig, libdisplay-info, 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/pipewire/package.az b/internal/rosa/package/pipewire/package.az index 30967468..8952b9ea 100644 --- a/internal/rosa/package/pipewire/package.az +++ b/internal/rosa/package/pipewire/package.az @@ -38,12 +38,12 @@ package pipewire { website = "https://pipewire.org"; anitya = 57357; - version# = "1.6.10"; + version# = "1.6.11"; source = remoteGitLab { domain = "gitlab.freedesktop.org"; suffix = "pipewire/pipewire"; ref = version; - checksum = "2HBIEZmwVFWvj-RJfKypCIBfk0njwHEGHX5NZefeFdt-w5pSliPXe0CSjKE7p8Xv"; + checksum = "UrYdClqxul7GBAVrC_YCFu-R2PrhutWSl9FNhSuDDpLlA60fvtHMd-lbzCOn51gk"; }; exec = meson { 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 873f438e..0330b796 100644 --- a/internal/rosa/package/python/package.az +++ b/internal/rosa/package/python/package.az @@ -6,11 +6,11 @@ package python { // too many inputs; early variant available bootstrap = false; - version# = "3.15.1"; + version# = "3.15.2"; source = remoteTar { url = "https://www.python.org/ftp/python/"+version+ "/Python-"+version+".tgz"; - checksum = "SP9sQT5VtgMtYtLat4rw695B69TrmkIEqZ4oNtS8l7r2looA9M2-_IJDvZENwUQy"; + checksum = "qHOrzLUDUB7eiGd5sH0YugDbynZXseXfdTe0ooxZ_cdTcvNEI1fUStyXN08lh2z8"; compress = gzip; }; patches = [ "zipfile-no-default-strict_timestamps.patch" ]; @@ -44,19 +44,22 @@ package python { // broken on almost everything other than amd64 "test_c_stack_unwind", + + // broken since 3.15.2, no test output + "test_profiling", ]; sep = " -x "; }, // _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 ]; @@ -119,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 = [ @@ -254,11 +257,11 @@ package python-flit-core { website = "https://flit.pypa.io"; anitya = 44841; - version# = "4.1.0"; + version# = "4.2.0"; source = remoteGitHub { suffix = "pypa/flit"; tag = version; - checksum = "c-iUN-XyUB-1jF4CYaQaMNa5W0G4c3UcpjQcwSI9KOZFQ_my3ebpPjBvfVchjywC"; + checksum = "VYFbcB8pG5y5b5QySFSc1lZU_CQSyWzdKIOr6nkwF3pXkCbEb7h9P50hOdWR9zE1"; }; exec = pip { @@ -400,11 +403,11 @@ package python-hatchling { website = "https://hatch.pypa.io"; anitya = 16137; - version# = "1.18.1"; + version# = "1.18.2"; source = remoteGitHub { suffix = "pypa/hatch"; tag = "hatch-v"+version; - checksum = "MQHbzLg0Vo9Wp8oNwFqzyr6Z8xIqI8uxp1r_sue5r_QMI6Ryfx4wXJWpQQgdmUdJ"; + checksum = "xDuaXaVU2bNxxxSYAl_vZr8qNrLiLTgVwnEgg_8hWDlv5CW7wJAaO9iClVWNLVif"; }; exec = pip { @@ -474,11 +477,11 @@ package python-pytest { website = "https://pytest.org"; anitya = 3765; - version# = "9.1.1"; + version# = "9.2.0"; source = remoteGitHub { suffix = "pytest-dev/pytest"; tag = version; - checksum = "PnsF2mxJDF1d1MeYfMmlrSa_OlI92F8OPlSVA-lqsh4ggRZiAHjbTdO_jfNox065"; + checksum = "YSH-4UpyaGM4_dH77QVU-Ddz5eqO02GBNL07zML6h6iN0uRmfMD1hgqgpufXdwu5"; }; env = [ @@ -583,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/qemu/package.az b/internal/rosa/package/qemu/package.az index 2c090e9e..0a4e415f 100644 --- a/internal/rosa/package/qemu/package.az +++ b/internal/rosa/package/qemu/package.az @@ -3,10 +3,10 @@ package qemu { website = "https://www.qemu.org"; anitya = 13607; - version# = "11.1.2"; + version# = "11.1.3"; source = remoteTar { url = "https://download.qemu.org/qemu-"+version+".tar.bz2"; - checksum = "PA9KeH0ifsIUJDTEq0_zLiysF9nlQXUTQsEx7cRzJiC1P4-u-AKCD-uanbyVASMJ"; + checksum = "olUrXSfu14TllzMTH4mIXOtGDtcZbhktADSs-CadbfCJsXaQCylPQB-cKKVVnDyS"; compress = bzip2; }; patches = [ diff --git a/internal/rosa/package/spirv.az b/internal/rosa/package/spirv.az index 8cfb33f7..33a4816a 100644 --- a/internal/rosa/package/spirv.az +++ b/internal/rosa/package/spirv.az @@ -32,7 +32,10 @@ package spirv-tools { exec = cmake { cache = { - "SPIRV-Headers_SOURCE_DIR": "/system"; + "SPIRV-Headers_SOURCE_DIR": arch { + default = ""; + cross = prefix+"/"+arch; + }+prefix; }; }; @@ -53,7 +56,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 +149,11 @@ 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": arch { + default = ""; + cross = prefix+"/"+arch; + }+prefix; + "LLVM_EXTERNAL_LIT": prefix+"/bin/lit"; "LLVM_INCLUDE_TESTS": "ON"; }; }; @@ -157,5 +163,8 @@ package spirv-llvm-translator { lit, ]; - inputs = [ spirv-tools ]; + inputs = [ + llvm, + spirv-tools, + ]; } 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..2c286f6a 100644 --- a/internal/rosa/package/tamago.az +++ b/internal/rosa/package/tamago.az @@ -21,25 +21,25 @@ 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,' \ - cmd/link/internal/` + arch + `/obj.go +set +u +. ./make.bash "$@" --no-banner +set -u +`; + check = ` +mkdir /lib && ln -s ../system/lib/ld-musl-`+llvmArch+`.so.1 /lib/ rm \ os/root_unix_test.go \ cmd/cgo/internal/testsanitizers/tsan_test.go \ cmd/cgo/internal/testsanitizers/cshared_test.go -set +u -. ./make.bash "$@" --no-banner -set -u +bash run.bash --no-rebuild `; - check = "bash run.bash --no-rebuild\n"; install = "../bin/go tool dist banner # print build info"; }; 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/package/x.az b/internal/rosa/package/x.az index b1fa9a73..59820aed 100644 --- a/internal/rosa/package/x.az +++ b/internal/rosa/package/x.az @@ -36,10 +36,9 @@ package libxtrans { automake, libtool, pkgconf, + util-macros, ]; - inputs = [ util-macros ]; - unlikely = true; } @@ -190,12 +189,12 @@ package libxcb-util { exec = make {}; - tools = [ pkgconf ]; - - inputs = [ + tools = [ + pkgconf, util-macros, - xcb, ]; + + inputs = [ xcb ]; } package libxcb-image { @@ -230,12 +229,12 @@ package libxcb-render-util { exec = make {}; - tools = [ pkgconf ]; - - inputs = [ + tools = [ + pkgconf, util-macros, - xcb, ]; + + inputs = [ xcb ]; } package libX11 { @@ -264,10 +263,13 @@ package libX11 { automake, libtool, pkgconf, + util-macros, + + // XTRANS_CONNECTION_FLAGS + libxtrans, ]; inputs = [ - util-macros, libxtrans, xorgproto, xcb, @@ -295,12 +297,10 @@ package libXext { automake, libtool, pkgconf, - ]; - - inputs = [ util-macros, - libX11, ]; + + inputs = [ libX11 ]; } package libXfixes { @@ -324,10 +324,10 @@ package libXfixes { automake, libtool, pkgconf, + util-macros, ]; inputs = [ - util-macros, xorgproto, libX11, ]; @@ -354,12 +354,10 @@ package libXrender { automake, libtool, pkgconf, - ]; - - inputs = [ util-macros, - libX11, ]; + + inputs = [ libX11 ]; } package libxshmfence { @@ -383,12 +381,10 @@ package libxshmfence { automake, libtool, pkgconf, - ]; - - inputs = [ util-macros, - xorgproto, ]; + + inputs = [ xorgproto ]; } package libXxf86vm { @@ -412,10 +408,10 @@ package libXxf86vm { automake, libtool, pkgconf, + util-macros, ]; inputs = [ - util-macros, libXext, xorgproto, ]; @@ -442,10 +438,10 @@ package libXrandr { automake, libtool, pkgconf, + util-macros, ]; inputs = [ - util-macros, libXext, libXrender, xorgproto, @@ -473,9 +469,8 @@ package font-util { automake, libtool, pkgconf, + util-macros, ]; - - inputs = [ util-macros ]; } package libfontenc { @@ -500,12 +495,10 @@ package libfontenc { libtool, pkgconf, font-util, - ]; - - inputs = [ util-macros, - xorgproto, ]; + + inputs = [ xorgproto ]; } package libxkbfile { @@ -548,12 +541,10 @@ package xkbcomp { libtool, pkgconf, byacc, - ]; - - inputs = [ util-macros, - libxkbfile, ]; + + inputs = [ libxkbfile ]; } package libXfont2 { @@ -577,10 +568,10 @@ package libXfont2 { automake, libtool, pkgconf, + util-macros, ]; inputs = [ - util-macros, freetype, xorgproto, libxtrans, @@ -625,12 +616,10 @@ package libXdmcp { automake, libtool, pkgconf, - ]; - - inputs = [ util-macros, - xorgproto, ]; + + inputs = [ xorgproto ]; } package xkeyboard-config { 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), |
