Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
fdca05487c
|
|||
|
89db730bb9
|
|||
|
5161fc24ec
|
|||
|
e1f16e7720
|
|||
|
8e9b3a2ed1
|
|||
|
fd0a81b304
|
|||
|
1d6d89a11a
|
|||
|
6a6fdab92d
|
|||
|
67c67574e8
|
|||
|
79be25433b
|
|||
|
a4d78e8a32
|
|||
|
ab3c37f75a
|
|||
|
e6757fe254
|
|||
|
b0f0d9e060
|
|||
|
ce58895a0d
|
|||
|
3c78551b24
|
|||
|
223e8e56b3
|
@@ -210,6 +210,10 @@ func main() {
|
||||
&cm.attr.Jobs,
|
||||
"jobs", command.IntFlag(0),
|
||||
"Preferred number of jobs to run, when applicable",
|
||||
).Flag(
|
||||
&cm.attr.Load,
|
||||
"load-average", command.IntFlag(0),
|
||||
"Preferred load average number, when applicable",
|
||||
).Flag(
|
||||
&cm.base,
|
||||
"d", command.StringFlag("$MBF_CACHE_DIR"),
|
||||
|
||||
+8
-26
@@ -56,16 +56,15 @@ ln -s \
|
||||
|
||||
func init() {
|
||||
const (
|
||||
version = "1.26.4"
|
||||
checksum = "fpqJlxa41wKRtbnviYNLk9VxgcL-5oIEDxsriF8svU6kNwQW70oRRA9gTz_ImVoB"
|
||||
version = "1.25.12"
|
||||
checksum = "XNrGD_boJl2-El_a_T3BuTcMin_WPoU-FGddcNG8dcXA8n2QuxZB7kaUaCWu60QX"
|
||||
)
|
||||
meta := Metadata{
|
||||
Name: "go",
|
||||
Description: "the Go programming language toolchain",
|
||||
Name: "go-bootstrap",
|
||||
Description: "the Go programming language toolchain (bootstrap)",
|
||||
Website: "https://go.dev",
|
||||
Version: version,
|
||||
|
||||
ID: 1227,
|
||||
Exclude: true,
|
||||
}
|
||||
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
|
||||
var (
|
||||
@@ -152,8 +151,8 @@ sed -i \
|
||||
)
|
||||
|
||||
go125 := t.newGo(
|
||||
"1.25.11",
|
||||
"cnqAQ8wpVZXcM6nHAfSqFkIW4L3H73ALB9rBfKUBbfgg4_pOF3I9zOZARgYQ6MR2",
|
||||
version,
|
||||
checksum,
|
||||
[]string{"CGO_ENABLED=0"}, `
|
||||
sed -i \
|
||||
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
@@ -165,23 +164,6 @@ rm \
|
||||
`, go123,
|
||||
)
|
||||
|
||||
return &meta, t.newGo(
|
||||
version,
|
||||
checksum,
|
||||
finalEnv, `
|
||||
sed -i \
|
||||
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+t.arch+`/obj.go
|
||||
sed -i \
|
||||
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
|
||||
internal/runtime/gc/scan/scan_amd64.go
|
||||
|
||||
rm \
|
||||
os/root_unix_test.go \
|
||||
cmd/cgo/internal/testsanitizers/tsan_test.go \
|
||||
cmd/cgo/internal/testsanitizers/cshared_test.go
|
||||
`, go125,
|
||||
)
|
||||
|
||||
return &meta, go125
|
||||
})
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
)
|
||||
|
||||
func TestLLVMInputs(t *testing.T) {
|
||||
const wantInputCount = 553
|
||||
const wantInputCount = 550
|
||||
|
||||
_, llvm := rosa.Native().Std().MustLoad(rosa.H("llvm"))
|
||||
var n int
|
||||
|
||||
@@ -58,6 +58,7 @@ func (attr *MesonHelper) script(t Toolchain, name string) string {
|
||||
if !attr.SkipTest && t.opts&OptSkipCheck == 0 {
|
||||
scriptTest = `
|
||||
meson test \
|
||||
` + jobsFlagE + ` \
|
||||
-t 10 \
|
||||
--print-errorlogs`
|
||||
if attr.InteractiveTest {
|
||||
@@ -91,7 +92,9 @@ meson setup \
|
||||
}
|
||||
}), " \\\n\t") + ` \
|
||||
. '/usr/src/` + name + `'
|
||||
meson compile` + scriptCompiled + scriptTest + `
|
||||
meson compile \
|
||||
` + jobsFlagE + ` \
|
||||
` + loadFlagE + scriptCompiled + scriptTest + `
|
||||
meson install \
|
||||
--destdir=/work
|
||||
` + attr.Script
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/Tests/BootstrapTest.cmake b/Tests/BootstrapTest.cmake
|
||||
index 137de78bc1..b4da52e664 100644
|
||||
--- a/Tests/BootstrapTest.cmake
|
||||
+++ b/Tests/BootstrapTest.cmake
|
||||
@@ -9,7 +9,7 @@ if(NOT nproc EQUAL 0)
|
||||
endif()
|
||||
message(STATUS "running bootstrap: ${bootstrap} ${ninja_arg} ${parallel_arg}")
|
||||
execute_process(
|
||||
- COMMAND ${bootstrap} ${ninja_arg} ${parallel_arg}
|
||||
+ COMMAND ${bootstrap} ${ninja_arg} ${parallel_arg} -- -DCMAKE_USE_OPENSSL=OFF
|
||||
WORKING_DIRECTORY "${bin_dir}"
|
||||
RESULT_VARIABLE result
|
||||
)
|
||||
@@ -3,18 +3,15 @@ package cmake {
|
||||
website = "https://cmake.org";
|
||||
anitya = 306;
|
||||
|
||||
version# = "4.3.4";
|
||||
version# = "4.4.0";
|
||||
source = remoteGitHubRelease {
|
||||
suffix = "Kitware/CMake";
|
||||
tag = "v"+version;
|
||||
name = "cmake-"+version+".tar.gz";
|
||||
checksum = "6A50pqarKDXKOCv7ffKMvWJWmNTVp_ep8KoaWwNdg-RYQRddgKbxayHveTo6jZ_7";
|
||||
checksum = "ZL0Y19_mSJWsl3dMjRRQJAaCvl4_PqbwpgUC1aBA-cdVdrK_gt4ylpUM2GMoQMku";
|
||||
compress = gzip;
|
||||
};
|
||||
patches = [
|
||||
"bootstrap-test-no-openssl.patch",
|
||||
"disable-broken-tests-musl.patch",
|
||||
];
|
||||
patches = [ "disable-broken-tests-musl.patch" ];
|
||||
|
||||
// test suite expects writable source tree
|
||||
writable = true;
|
||||
@@ -32,6 +29,7 @@ package cmake {
|
||||
"--";
|
||||
"-DCMAKE_USE_OPENSSL": "OFF";
|
||||
"-DCMake_TEST_NO_NETWORK": "ON";
|
||||
"-DCMake_TEST_BOOTSTRAP": "OFF";
|
||||
};
|
||||
|
||||
check = [
|
||||
|
||||
@@ -3,12 +3,12 @@ package fontconfig {
|
||||
website = "https://www.freedesktop.org/wiki/Software/fontconfig";
|
||||
anitya = 827;
|
||||
|
||||
version# = "2.18.1";
|
||||
version# = "2.18.2";
|
||||
source = remoteGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
suffix = "fontconfig/fontconfig";
|
||||
ref = version;
|
||||
checksum = "S3FJfh-PeZ2_YgNrUqL0H2G4Wf_ilj5HpIGV2oURnkK672AQHpWk526bNtRHwyJt";
|
||||
checksum = "P8YoQunIynBhc3gdDyPkImw_GGYoy1U4aX0jTnpkgtLmU4nqIgUyeqCH3-rNzpTd";
|
||||
};
|
||||
|
||||
exec = make {
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From 45929774c3d5c084cc478afba63c77cf67a68bd7 Mon Sep 17 00:00:00 2001
|
||||
From: khr@golang.org <khr@golang.org>
|
||||
Date: Wed, 18 Feb 2026 09:09:57 -0800
|
||||
Subject: [PATCH] internal/runtime/gc/scan: require popcnt for x86
|
||||
|
||||
The GOAMD64=v1 test disables popcnt instructions, which is a feature
|
||||
this package's amd64 assembly uses.
|
||||
|
||||
Fixes #77674
|
||||
|
||||
Change-Id: I7be9bb665838f5da50275f96ef3df398412bb44a
|
||||
Reviewed-on: https://go-review.googlesource.com/c/go/+/746640
|
||||
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
|
||||
Reviewed-by: Michael Knyszek <mknyszek@google.com>
|
||||
Reviewed-by: Keith Randall <khr@google.com>
|
||||
Auto-Submit: Keith Randall <khr@golang.org>
|
||||
---
|
||||
|
||||
diff --git a/src/internal/runtime/gc/scan/scan_amd64.go b/src/internal/runtime/gc/scan/scan_amd64.go
|
||||
index c03021c7d4..544b237770 100644
|
||||
--- a/src/internal/runtime/gc/scan/scan_amd64.go
|
||||
+++ b/src/internal/runtime/gc/scan/scan_amd64.go
|
||||
@@ -39,4 +39,5 @@ var avx512ScanPackedReqsMet = cpu.X86.HasAVX512VL &&
|
||||
cpu.X86.HasGFNI &&
|
||||
cpu.X86.HasAVX512BITALG &&
|
||||
cpu.X86.HasAVX512DQ && // for kmovb, see #79871
|
||||
- cpu.X86.HasAVX512VBMI
|
||||
+ cpu.X86.HasAVX512VBMI &&
|
||||
+ cpu.X86.HasPOPCNT
|
||||
@@ -0,0 +1,135 @@
|
||||
From 06f90ebfa6f3e0a744584513e2786988b26569da Mon Sep 17 00:00:00 2001
|
||||
From: Damien Neil <dneil@google.com>
|
||||
Date: Wed, 08 Jul 2026 11:11:48 -0700
|
||||
Subject: [PATCH] os: properly handle trailing / in Root.MkdirAll
|
||||
|
||||
MkdirAll("dir/") should create "dir", not return an error.
|
||||
|
||||
Fixes #80308
|
||||
|
||||
Change-Id: I75458c30b6cb94be3a3d368f6024caef6a6a6964
|
||||
---
|
||||
|
||||
diff --git a/src/os/root_noopenat.go b/src/os/root_noopenat.go
|
||||
index 228b580..a84e952 100644
|
||||
--- a/src/os/root_noopenat.go
|
||||
+++ b/src/os/root_noopenat.go
|
||||
@@ -158,6 +158,9 @@
|
||||
if err := checkPathEscapes(r, name); err == errPathEscapes {
|
||||
return &PathError{Op: "mkdirat", Path: name, Err: err}
|
||||
}
|
||||
+ if name == "" {
|
||||
+ return &PathError{Op: "mkdirat", Path: name, Err: syscall.ENOENT}
|
||||
+ }
|
||||
prefix := r.root.name + string(PathSeparator)
|
||||
if err := MkdirAll(prefix+name, perm); err != nil {
|
||||
if pe, ok := err.(*PathError); ok {
|
||||
diff --git a/src/os/root_openat.go b/src/os/root_openat.go
|
||||
index d7c9334..92865e4 100644
|
||||
--- a/src/os/root_openat.go
|
||||
+++ b/src/os/root_openat.go
|
||||
@@ -167,6 +167,12 @@
|
||||
fi, e := r.Stat(fullname)
|
||||
if e == nil && fi.Mode().IsDir() {
|
||||
err = nil
|
||||
+ } else if e == nil {
|
||||
+ err = syscall.ENOTDIR
|
||||
+ } else if !IsNotExist(e) {
|
||||
+ // EPERM, ELOOP, etc.,
|
||||
+ // probably more useful than EEXIST.
|
||||
+ err = e
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -177,7 +183,12 @@
|
||||
}
|
||||
return struct{}{}, &PathError{Op: "mkdirat", Err: err}
|
||||
}
|
||||
- _, err := doInRoot(r, fullname, 0, openDirFunc, openLastComponentFunc)
|
||||
+ flags := uint(doInRootCreatingDirectory)
|
||||
+ switch runtime.GOOS {
|
||||
+ case "linux", "windows":
|
||||
+ flags = doInRootNoHandleTerminalSlash // see rootMkdir
|
||||
+ }
|
||||
+ _, err := doInRoot(r, fullname, flags, openDirFunc, openLastComponentFunc)
|
||||
if err != nil {
|
||||
if _, ok := err.(*PathError); !ok {
|
||||
err = &PathError{Op: "mkdirat", Path: fullname, Err: err}
|
||||
diff --git a/src/os/root_test.go b/src/os/root_test.go
|
||||
index 5e0acf9..33a2f33 100644
|
||||
--- a/src/os/root_test.go
|
||||
+++ b/src/os/root_test.go
|
||||
@@ -585,6 +585,11 @@
|
||||
|
||||
func TestRootMkdirAll(t *testing.T) {
|
||||
for _, test := range rootTestCases {
|
||||
+ if test.name == "directory does not exist" {
|
||||
+ // Test expects error, mkdirall creates the missing directory.
|
||||
+ // TestRootMultiMkdirAll covers this case better anyway, just skip.
|
||||
+ continue
|
||||
+ }
|
||||
test.run(t, func(t *testing.T, target string, root *os.Root) {
|
||||
wantError := test.wantError
|
||||
if test.ltarget != "" {
|
||||
@@ -593,7 +598,7 @@
|
||||
wantError = true
|
||||
}
|
||||
|
||||
- err := root.Mkdir(test.open, 0o777)
|
||||
+ err := root.MkdirAll(test.open, 0o777)
|
||||
if errEndsTest(t, err, wantError, "root.MkdirAll(%q)", test.open) {
|
||||
return
|
||||
}
|
||||
@@ -3133,6 +3138,52 @@
|
||||
})
|
||||
}
|
||||
|
||||
+func TestRootMultiMkdirAllShallow(t *testing.T) {
|
||||
+ runRootMultiTest(t, func(t *testing.T, test *rootMultiTest) (string, error) {
|
||||
+ return testRootMultiMkdirAll(t, test, test.targetPath)
|
||||
+ })
|
||||
+}
|
||||
+
|
||||
+func TestRootMultiMkdirAllDeep(t *testing.T) {
|
||||
+ runRootMultiTest(t, func(t *testing.T, test *rootMultiTest) (string, error) {
|
||||
+ targetPath := test.targetPath
|
||||
+ if len(targetPath) > 0 && os.IsPathSeparator(targetPath[len(targetPath)-1]) {
|
||||
+ targetPath += "a/b/"
|
||||
+ } else {
|
||||
+ targetPath += "/a/b"
|
||||
+ }
|
||||
+ return testRootMultiMkdirAll(t, test, targetPath)
|
||||
+ })
|
||||
+}
|
||||
+
|
||||
+func testRootMultiMkdirAll(t *testing.T, test *rootMultiTest, targetPath string) (string, error) {
|
||||
+ var mkdirAll = os.MkdirAll
|
||||
+ if test.root != nil {
|
||||
+ mkdirAll = test.root.MkdirAll
|
||||
+ }
|
||||
+
|
||||
+ test.setOp("MkdirAll(%q, 0o777)", targetPath)
|
||||
+ gotErr := mkdirAll(targetPath, 0o777)
|
||||
+
|
||||
+ switch {
|
||||
+ case test.root != nil && test.target.lescapes():
|
||||
+ // "mkdir ../target", or equivalent escaping path.
|
||||
+ test.wantError(t, gotErr, os.ErrPathEscapes)
|
||||
+ case test.root != nil && test.target.escapes():
|
||||
+ // "mkdir ../target", or equivalent escaping path.
|
||||
+ test.wantError(t, gotErr, errAny)
|
||||
+ return "", errSkipRootConsistencyCheck
|
||||
+ case test.root != nil && test.target.kind == testFileSymlink && test.target.target.kind == testFileAbsent && targetPath != test.targetPath:
|
||||
+ // A minor inconsistency between Root.MkdirAll and os.MkdirAll:
|
||||
+ // When an intermediate component of the tree being constructed is a
|
||||
+ // dangling symlink, Root.MkdirAll will follow the symlink and create
|
||||
+ // its target directory, while os.MkdirAll will fail with an error.
|
||||
+ return "", errSkipRootConsistencyCheck
|
||||
+ default:
|
||||
+ }
|
||||
+ return "", gotErr
|
||||
+}
|
||||
+
|
||||
func TestRootMultiRename(t *testing.T) {
|
||||
if runtime.GOOS == "wasip1" {
|
||||
switch os.Getenv("GOWASIRUNTIME") {
|
||||
@@ -0,0 +1,63 @@
|
||||
package go {
|
||||
description = "the Go programming language toolchain";
|
||||
website = "https://go.dev";
|
||||
anitya = 1227;
|
||||
|
||||
version# = "1.26.5";
|
||||
source = remoteTar {
|
||||
url = "https://go.dev/dl/go"+version+".src.tar.gz";
|
||||
checksum = "13yt1u_NGOd62LO-WZ8W6CUXodOrEF5CdkiTTiH9E635IHn1luvlXYjsHpBXNFSw";
|
||||
compress = gzip;
|
||||
};
|
||||
|
||||
patches = [
|
||||
// https://go.dev/issue/77674
|
||||
"746640.patch",
|
||||
// https://go.dev/issue/80308
|
||||
"799064.patch",
|
||||
];
|
||||
|
||||
env = [
|
||||
"CC=cc",
|
||||
"GOCACHE=/tmp/gocache",
|
||||
"GOROOT_BOOTSTRAP=/system/go",
|
||||
"TMPDIR=/dev/shm/go",
|
||||
];
|
||||
|
||||
enterSource = true;
|
||||
|
||||
exec = generic {
|
||||
inPlace = true;
|
||||
build = `
|
||||
mkdir /work/system/ "${TMPDIR}"
|
||||
cp -r . /work/system/go
|
||||
cd /work/system/go/src/
|
||||
chmod -R +w ..
|
||||
|
||||
sed -i \
|
||||
's,/lib/ld-musl-`+linuxArch+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+arch+`/obj.go
|
||||
|
||||
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
|
||||
`;
|
||||
check = "bash run.bash --no-rebuild\n";
|
||||
install = `
|
||||
../bin/go tool dist banner # print build info
|
||||
|
||||
mkdir /work/system/bin
|
||||
ln -s \
|
||||
../go/bin/go \
|
||||
../go/bin/gofmt \
|
||||
/work/system/bin
|
||||
`;
|
||||
};
|
||||
|
||||
inputs = [ bash, go-bootstrap ];
|
||||
}
|
||||
@@ -3,12 +3,12 @@ package libffi {
|
||||
website = "https://sourceware.org/libffi";
|
||||
anitya = 1611;
|
||||
|
||||
version# = "3.6.0";
|
||||
version# = "3.7.0";
|
||||
source = remoteGitHubRelease {
|
||||
suffix = "libffi/libffi";
|
||||
tag = "v"+version;
|
||||
name = "libffi-"+version+".tar.gz";
|
||||
checksum = "y3H_jP_eoByznlztjvni3wDfGA4CIJoOh3eRnzjnE3G3Ms3AWk53oOZxkbruvLxM";
|
||||
checksum = "rzzmrenVrc8eBd7Cl1oVTAEmvpiHdQVpmYs3W0Ao1bKKmmYvxuUAyjZ2OjG53G48";
|
||||
compress = gzip;
|
||||
};
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@ package libva {
|
||||
website = "https://01.org/vaapi";
|
||||
anitya = 1752;
|
||||
|
||||
version# = "2.24.0";
|
||||
version# = "2.24.1";
|
||||
source = remoteGitHub {
|
||||
suffix = "intel/libva";
|
||||
tag = version;
|
||||
checksum = "Jb5bdeHXLPPTWFlmauKDZlfAjFiXiILs17Pp7F8kAiyctFiDItpzYY0prIlnW7mu";
|
||||
checksum = "4IdXxvDFLvl_7lXbJne4_TQA4PZhG89MZXLyvQEkGSb4LcX7CGLrMOjRNZOWb9d6";
|
||||
};
|
||||
|
||||
exec = meson {
|
||||
|
||||
@@ -20,6 +20,13 @@ package ncurses {
|
||||
|
||||
// "tests" are actual demo programs, not a test suite.
|
||||
skipCheck = true;
|
||||
|
||||
postInstall = `
|
||||
find /work/system/lib \
|
||||
-type f \
|
||||
-name '*.a' \
|
||||
-exec objcopy --enable-deterministic-archives {} \;
|
||||
`;
|
||||
};
|
||||
|
||||
inputs = [ pkg-config ];
|
||||
|
||||
@@ -302,11 +302,11 @@ package python-hatchling {
|
||||
website = "https://hatch.pypa.io";
|
||||
anitya = 16137;
|
||||
|
||||
version# = "1.17.0";
|
||||
version# = "1.17.1";
|
||||
source = remoteGitHub {
|
||||
suffix = "pypa/hatch";
|
||||
tag = "hatch-v"+version;
|
||||
checksum = "fK85G542FXEXTP1QZNVhhfp8_Y8f9u1DAyeeFO3PWyv3JLTCPdPl9WTz8Ov6tfYp";
|
||||
checksum = "FK9PkGIkL3wyVFHOKrx9lSRqoevuQ_TFrN-pMqsoFKsh5eim4pfzx7MvL3ioif9o";
|
||||
};
|
||||
|
||||
exec = pip {
|
||||
|
||||
@@ -3,12 +3,12 @@ package wayland {
|
||||
website = "https://wayland.freedesktop.org";
|
||||
anitya = 10061;
|
||||
|
||||
version# = "1.25.0";
|
||||
version# = "1.25.91";
|
||||
source = remoteGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
suffix = "wayland/wayland";
|
||||
ref = version;
|
||||
checksum = "q-4dYXme46JPgLGtXAxyZGTy7udll9RfT0VXtcW2YRR1WWViUhvdZXZneXzLqpCg";
|
||||
checksum = "SvltMSgObMdDmRoqlSRg_TlKoemR3R-uXtRlRE8bvdw6MFxFp69f0geLOJvahyLT";
|
||||
};
|
||||
|
||||
writable = true;
|
||||
|
||||
@@ -3,12 +3,12 @@ package wlroots {
|
||||
website = "https://gitlab.freedesktop.org/wlroots/wlroots";
|
||||
anitya = 18357;
|
||||
|
||||
version# = "0.20.1";
|
||||
version# = "0.20.2";
|
||||
source = remoteGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
suffix = "wlroots/wlroots";
|
||||
ref = version;
|
||||
checksum = "NQAn59GTXYBE4JHkgKnOUGZi9TGKcIrgH0khj53zDUj0whIQvNAc-sE_8xWYF66a";
|
||||
checksum = "TDDJLXJ83uZEu-81LZeDlM0f1wNxaFd4Xn2q1NlKhm7IAEHnZJQHSdLmJIC4As_e";
|
||||
};
|
||||
|
||||
exec = meson {
|
||||
|
||||
@@ -576,12 +576,12 @@ package libXfont2 {
|
||||
website = "https://gitlab.freedesktop.org/xorg/lib/libxfont";
|
||||
anitya = 17165;
|
||||
|
||||
version# = "2.0.7";
|
||||
version# = "2.0.8";
|
||||
source = remoteGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
suffix = "xorg/lib/libxfont";
|
||||
ref = "libXfont2-"+version;
|
||||
checksum = "jv9BZNA02493KB8j1lfAErF5SA3ZFcAhm3_UVJ--Bp1maz-vNprl_wXpkHApBi9M";
|
||||
checksum = "8bYRkoiDkbZC2nFs0cOlcmLUNKS6_ZkDTrxas2KxxCJm_PsUD_E58HkMCmGfPGkp";
|
||||
};
|
||||
|
||||
exec = make {
|
||||
@@ -695,12 +695,12 @@ package xserver {
|
||||
website = "https://gitlab.freedesktop.org/xorg/xserver";
|
||||
anitya = 5250;
|
||||
|
||||
version# = "21.1.23";
|
||||
version# = "21.1.24";
|
||||
source = remoteGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
suffix = "xorg/xserver";
|
||||
ref = "xorg-server-"+version;
|
||||
checksum = "-hXqyWClfhoRYilXFruZFPCdT4bdYVn8S4BFW6teHqyuSjL2nxx3Fy7yhP2hJDZ6";
|
||||
checksum = "ueBiwKIOHZkSmJPzxAeze_SJHt4QxEHQTk1kMkic-GYxC7Fs41ckwgVzcwr2N3ca";
|
||||
};
|
||||
|
||||
exec = meson {
|
||||
@@ -773,12 +773,12 @@ package xwayland {
|
||||
website = "https://gitlab.freedesktop.org/xorg/xserver";
|
||||
anitya = 180949;
|
||||
|
||||
version# = "24.1.12";
|
||||
version# = "24.1.13";
|
||||
source = remoteGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
suffix = "xorg/xserver";
|
||||
ref = "xwayland-"+version;
|
||||
checksum = "0D0bs8EbDzlyLIULvm6lizqzdx4g1-umdbjVVO7zk-cS1kVIaSkKronCqj95tz-A";
|
||||
checksum = "dZpEGlcPJ72TBCtnR1mvquvN4iUypGvGJ4tN9hpa-ljux28EkSCQRlQHLPRijz36";
|
||||
};
|
||||
|
||||
bin = [ "bash" ];
|
||||
|
||||
+23
-17
@@ -10,6 +10,7 @@ import (
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
"unsafe"
|
||||
|
||||
"hakurei.app/fhs"
|
||||
"hakurei.app/internal/pkg"
|
||||
@@ -332,7 +333,7 @@ func (s *S) HasStageEarly() (ok bool) {
|
||||
}
|
||||
|
||||
// NewPatchedSource returns [pkg.Artifact] of source with patches applied. If
|
||||
// passthrough is true, source is returned as is for zero length patches.
|
||||
// passthrough is true, source is returned as is for zero-length patches.
|
||||
func (t Toolchain) NewPatchedSource(
|
||||
name string,
|
||||
source pkg.Artifact,
|
||||
@@ -346,29 +347,34 @@ func (t Toolchain) NewPatchedSource(
|
||||
paths := make([]pkg.ExecPath, len(patches)+1)
|
||||
for i, p := range patches {
|
||||
paths[i+1] = pkg.Path(
|
||||
AbsUsrSrc.Append(name+"-patches", p[0]+".patch"), false,
|
||||
pkg.NewFile(p[0]+".patch", []byte(p[1])),
|
||||
fhs.AbsRoot.Append("patches", p[0]), false,
|
||||
pkg.NewFile(p[0], unsafe.Slice(unsafe.StringData(p[1]), len(p[1]))),
|
||||
)
|
||||
}
|
||||
paths[0] = pkg.Path(AbsUsrSrc.Append(name), false, source)
|
||||
paths[0] = pkg.Path(fhs.AbsRoot.Append("src"), false, source)
|
||||
|
||||
aname := name + "-src"
|
||||
script := `
|
||||
cp -r /usr/src/` + name + `/. /work/.
|
||||
var buf strings.Builder
|
||||
buf.WriteString(`
|
||||
cp -r /src/. /work/.
|
||||
chmod -R +w /work && cd /work
|
||||
`
|
||||
`)
|
||||
if len(paths) > 1 {
|
||||
script += `
|
||||
cat /usr/src/` + name + `-patches/* | \
|
||||
patch \
|
||||
-p 1 \
|
||||
--ignore-whitespace
|
||||
`
|
||||
aname += "-patched"
|
||||
buf.WriteString(`
|
||||
function apply {
|
||||
echo "applying $1"
|
||||
patch -p 1 < "/patches/$1"
|
||||
}
|
||||
`)
|
||||
|
||||
for _, p := range patches {
|
||||
buf.WriteString("apply '")
|
||||
buf.WriteString(p[0])
|
||||
buf.WriteString("'\n")
|
||||
}
|
||||
}
|
||||
return t.New(aname, 0, t.Append(nil,
|
||||
return t.New(name+"-src", 0, t.Append(nil,
|
||||
_patch,
|
||||
), nil, nil, script, paths...)
|
||||
), nil, nil, buf.String(), paths...)
|
||||
}
|
||||
|
||||
// helperInPlace is a special directory value for omitting the cd statement.
|
||||
|
||||
@@ -1053,7 +1053,7 @@ func (ctx *evalContext) pf(
|
||||
return
|
||||
}
|
||||
attr.Patches = append(attr.Patches, KV{
|
||||
strings.TrimSuffix(filepath.Base(pathname), ".patch"),
|
||||
filepath.Base(pathname),
|
||||
unsafe.String(unsafe.SliceData(p), len(p)),
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user