internal/rosa/package: migrate cmake
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m47s
Test / ShareFS (push) Successful in 3m42s
Test / Hakurei (push) Successful in 3m53s
Test / Sandbox (race detector) (push) Successful in 5m34s
Test / Hakurei (race detector) (push) Successful in 6m30s
Test / Flake checks (push) Successful in 1m22s
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m47s
Test / ShareFS (push) Successful in 3m42s
Test / Hakurei (push) Successful in 3m53s
Test / Sandbox (race detector) (push) Successful in 5m34s
Test / Hakurei (race detector) (push) Successful in 6m30s
Test / Flake checks (push) Successful in 1m22s
Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -4,116 +4,10 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"slices"
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"hakurei.app/internal/pkg"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (t Toolchain) newCMake() (pkg.Artifact, string) {
|
// CMake is the package used by [CMakeHelper].
|
||||||
const (
|
var CMake = H("cmake")
|
||||||
version = "4.3.2"
|
|
||||||
checksum = "6QylwRVKletndTSkZTV2YBRwgd_9rUVgav_QW23HpjUgV21AVYZOUOal8tdBDmO7"
|
|
||||||
)
|
|
||||||
return t.NewPackage("cmake", version, newFromGitHubRelease(
|
|
||||||
"Kitware/CMake",
|
|
||||||
"v"+version,
|
|
||||||
"cmake-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), &PackageAttr{
|
|
||||||
// test suite expects writable source tree
|
|
||||||
Writable: true,
|
|
||||||
|
|
||||||
// expected to be writable in the copy made during bootstrap
|
|
||||||
Chmod: true,
|
|
||||||
|
|
||||||
Patches: []KV{
|
|
||||||
{"bootstrap-test-no-openssl", `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
|
|
||||||
)
|
|
||||||
`},
|
|
||||||
|
|
||||||
{"disable-broken-tests-musl", `diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
|
|
||||||
index 2ead810437..f85cbb8b1c 100644
|
|
||||||
--- a/Tests/CMakeLists.txt
|
|
||||||
+++ b/Tests/CMakeLists.txt
|
|
||||||
@@ -384,7 +384,6 @@ if(BUILD_TESTING)
|
|
||||||
add_subdirectory(CMakeLib)
|
|
||||||
endif()
|
|
||||||
add_subdirectory(CMakeOnly)
|
|
||||||
- add_subdirectory(RunCMake)
|
|
||||||
|
|
||||||
add_subdirectory(FindPackageModeMakefileTest)
|
|
||||||
|
|
||||||
@@ -528,9 +527,6 @@ if(BUILD_TESTING)
|
|
||||||
-DCMake_TEST_CUDA:BOOL=${CMake_TEST_CUDA}
|
|
||||||
-DCMake_INSTALL_NAME_TOOL_BUG:BOOL=${CMake_INSTALL_NAME_TOOL_BUG}
|
|
||||||
)
|
|
||||||
- ADD_TEST_MACRO(ExportImport ExportImport)
|
|
||||||
- set_property(TEST ExportImport APPEND
|
|
||||||
- PROPERTY LABELS "CUDA")
|
|
||||||
ADD_TEST_MACRO(Unset Unset)
|
|
||||||
ADD_TEST_MACRO(PolicyScope PolicyScope)
|
|
||||||
ADD_TEST_MACRO(EmptyLibrary EmptyLibrary)
|
|
||||||
@@ -624,7 +620,6 @@ if(BUILD_TESTING)
|
|
||||||
# run test for BundleUtilities on supported platforms/compilers
|
|
||||||
if((MSVC OR
|
|
||||||
MINGW OR
|
|
||||||
- CMAKE_SYSTEM_NAME MATCHES "Linux" OR
|
|
||||||
CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
||||||
AND NOT CMAKE_GENERATOR STREQUAL "Watcom WMake")
|
|
||||||
|
|
||||||
@@ -3095,10 +3090,6 @@ if(BUILD_TESTING)
|
|
||||||
"${CMake_SOURCE_DIR}/Tests/CTestTestFdSetSize/test.cmake.in"
|
|
||||||
"${CMake_BINARY_DIR}/Tests/CTestTestFdSetSize/test.cmake"
|
|
||||||
@ONLY ESCAPE_QUOTES)
|
|
||||||
- add_test(CTestTestFdSetSize ${CMAKE_CTEST_COMMAND}
|
|
||||||
- -S "${CMake_BINARY_DIR}/Tests/CTestTestFdSetSize/test.cmake" -j20 -V --timeout 120
|
|
||||||
- --output-log "${CMake_BINARY_DIR}/Tests/CTestTestFdSetSize/testOutput.log"
|
|
||||||
- )
|
|
||||||
|
|
||||||
if(CMAKE_TESTS_CDASH_SERVER)
|
|
||||||
set(regex "^([^:]+)://([^/]+)(.*)$")
|
|
||||||
`},
|
|
||||||
},
|
|
||||||
}, &MakeHelper{
|
|
||||||
OmitDefaults: true,
|
|
||||||
|
|
||||||
ConfigureName: "/usr/src/cmake/bootstrap",
|
|
||||||
Configure: []KV{
|
|
||||||
{"prefix", "/system"},
|
|
||||||
{"parallel", jobsE},
|
|
||||||
{"--"},
|
|
||||||
{"-DCMAKE_USE_OPENSSL", "OFF"},
|
|
||||||
{"-DCMake_TEST_NO_NETWORK", "ON"},
|
|
||||||
},
|
|
||||||
Check: []string{
|
|
||||||
"CTEST_OUTPUT_ON_FAILURE=1",
|
|
||||||
"CTEST_PARALLEL_LEVEL=128",
|
|
||||||
"test",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
KernelHeaders,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.mustRegister(Toolchain.newCMake, &Metadata{
|
|
||||||
Name: "cmake",
|
|
||||||
Description: "cross-platform, open-source build system",
|
|
||||||
Website: "https://cmake.org/",
|
|
||||||
|
|
||||||
ID: 306,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// CMakeHelper is the [CMake] build system helper.
|
// CMakeHelper is the [CMake] build system helper.
|
||||||
type CMakeHelper struct {
|
type CMakeHelper struct {
|
||||||
|
|||||||
@@ -2,14 +2,26 @@ package rosa
|
|||||||
|
|
||||||
import "hakurei.app/internal/pkg"
|
import "hakurei.app/internal/pkg"
|
||||||
|
|
||||||
func (t Toolchain) newNinja() (pkg.Artifact, string) {
|
// Ninja is the build system used by [CMakeHelper] and [MesonHelper].
|
||||||
|
var Ninja = H("ninja")
|
||||||
|
|
||||||
|
func init() {
|
||||||
const (
|
const (
|
||||||
version = "1.13.2"
|
version = "1.13.2"
|
||||||
checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v"
|
checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v"
|
||||||
)
|
)
|
||||||
|
meta := Metadata{
|
||||||
|
Name: "ninja",
|
||||||
|
Description: "a small build system with a focus on speed",
|
||||||
|
Website: "https://ninja-build.org",
|
||||||
|
Version: version,
|
||||||
|
|
||||||
|
ID: 2089,
|
||||||
|
}
|
||||||
|
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
|
||||||
_, python := t.Load(Python)
|
_, python := t.Load(Python)
|
||||||
_, bash := t.Load(Bash)
|
_, bash := t.Load(Bash)
|
||||||
return t.New("ninja-"+version, 0, []pkg.Artifact{
|
return &meta, t.New(meta.Name+"-"+version, 0, []pkg.Artifact{
|
||||||
python,
|
python,
|
||||||
bash,
|
bash,
|
||||||
}, nil, nil, `
|
}, nil, nil, `
|
||||||
@@ -31,19 +43,11 @@ cp ninja /work/system/bin/
|
|||||||
"NjLGvSbgPy_B-y-o1hdanlzEzaYeStFcvFGxpYV3KYlhrWWFRcugYhM3ZMzOA9B_",
|
"NjLGvSbgPy_B-y-o1hdanlzEzaYeStFcvFGxpYV3KYlhrWWFRcugYhM3ZMzOA9B_",
|
||||||
pkg.TarGzip,
|
pkg.TarGzip,
|
||||||
)), pkg.Path(AbsUsrSrc.Append("ninja"), true, t.NewPatchedSource(
|
)), pkg.Path(AbsUsrSrc.Append("ninja"), true, t.NewPatchedSource(
|
||||||
"ninja", version, newFromGitHub(
|
meta.Name, version, newFromGitHub(
|
||||||
"ninja-build/ninja",
|
"ninja-build/ninja",
|
||||||
"v"+version,
|
"v"+version,
|
||||||
checksum,
|
checksum,
|
||||||
), false,
|
), false,
|
||||||
))), version
|
)))
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.mustRegister(Toolchain.newNinja, &Metadata{
|
|
||||||
Name: "ninja",
|
|
||||||
Description: "a small build system with a focus on speed",
|
|
||||||
Website: "https://ninja-build.org/",
|
|
||||||
|
|
||||||
ID: 2089,
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
13
internal/rosa/package/cmake/bootstrap-test-no-openssl.patch
Normal file
13
internal/rosa/package/cmake/bootstrap-test-no-openssl.patch
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
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
|
||||||
|
)
|
||||||
41
internal/rosa/package/cmake/disable-broken-tests-musl.patch
Normal file
41
internal/rosa/package/cmake/disable-broken-tests-musl.patch
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
|
||||||
|
index 2ead810437..f85cbb8b1c 100644
|
||||||
|
--- a/Tests/CMakeLists.txt
|
||||||
|
+++ b/Tests/CMakeLists.txt
|
||||||
|
@@ -384,7 +384,6 @@ if(BUILD_TESTING)
|
||||||
|
add_subdirectory(CMakeLib)
|
||||||
|
endif()
|
||||||
|
add_subdirectory(CMakeOnly)
|
||||||
|
- add_subdirectory(RunCMake)
|
||||||
|
|
||||||
|
add_subdirectory(FindPackageModeMakefileTest)
|
||||||
|
|
||||||
|
@@ -528,9 +527,6 @@ if(BUILD_TESTING)
|
||||||
|
-DCMake_TEST_CUDA:BOOL=${CMake_TEST_CUDA}
|
||||||
|
-DCMake_INSTALL_NAME_TOOL_BUG:BOOL=${CMake_INSTALL_NAME_TOOL_BUG}
|
||||||
|
)
|
||||||
|
- ADD_TEST_MACRO(ExportImport ExportImport)
|
||||||
|
- set_property(TEST ExportImport APPEND
|
||||||
|
- PROPERTY LABELS "CUDA")
|
||||||
|
ADD_TEST_MACRO(Unset Unset)
|
||||||
|
ADD_TEST_MACRO(PolicyScope PolicyScope)
|
||||||
|
ADD_TEST_MACRO(EmptyLibrary EmptyLibrary)
|
||||||
|
@@ -624,7 +620,6 @@ if(BUILD_TESTING)
|
||||||
|
# run test for BundleUtilities on supported platforms/compilers
|
||||||
|
if((MSVC OR
|
||||||
|
MINGW OR
|
||||||
|
- CMAKE_SYSTEM_NAME MATCHES "Linux" OR
|
||||||
|
CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||||
|
AND NOT CMAKE_GENERATOR STREQUAL "Watcom WMake")
|
||||||
|
|
||||||
|
@@ -3095,10 +3090,6 @@ if(BUILD_TESTING)
|
||||||
|
"${CMake_SOURCE_DIR}/Tests/CTestTestFdSetSize/test.cmake.in"
|
||||||
|
"${CMake_BINARY_DIR}/Tests/CTestTestFdSetSize/test.cmake"
|
||||||
|
@ONLY ESCAPE_QUOTES)
|
||||||
|
- add_test(CTestTestFdSetSize ${CMAKE_CTEST_COMMAND}
|
||||||
|
- -S "${CMake_BINARY_DIR}/Tests/CTestTestFdSetSize/test.cmake" -j20 -V --timeout 120
|
||||||
|
- --output-log "${CMake_BINARY_DIR}/Tests/CTestTestFdSetSize/testOutput.log"
|
||||||
|
- )
|
||||||
|
|
||||||
|
if(CMAKE_TESTS_CDASH_SERVER)
|
||||||
|
set(regex "^([^:]+)://([^/]+)(.*)$")
|
||||||
45
internal/rosa/package/cmake/package.az
Normal file
45
internal/rosa/package/cmake/package.az
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
package cmake {
|
||||||
|
description = "cross-platform, open-source build system";
|
||||||
|
website = "https://cmake.org";
|
||||||
|
anitya = 306;
|
||||||
|
|
||||||
|
version* = "4.3.2";
|
||||||
|
source = remoteGitHubRelease {
|
||||||
|
suffix = "Kitware/CMake";
|
||||||
|
tag = "v"+version;
|
||||||
|
name = "cmake-"+version+".tar.gz";
|
||||||
|
checksum = "6QylwRVKletndTSkZTV2YBRwgd_9rUVgav_QW23HpjUgV21AVYZOUOal8tdBDmO7";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
patches = [
|
||||||
|
"bootstrap-test-no-openssl.patch",
|
||||||
|
"disable-broken-tests-musl.patch",
|
||||||
|
];
|
||||||
|
|
||||||
|
// test suite expects writable source tree
|
||||||
|
writable = true;
|
||||||
|
|
||||||
|
// expected to be writable in the copy made during bootstrap
|
||||||
|
chmod = true;
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
|
|
||||||
|
configureName = "/usr/src/cmake/bootstrap";
|
||||||
|
configure = {
|
||||||
|
"prefix": "/system";
|
||||||
|
"parallel": jobsE;
|
||||||
|
"--";
|
||||||
|
"-DCMAKE_USE_OPENSSL": "OFF";
|
||||||
|
"-DCMake_TEST_NO_NETWORK": "ON";
|
||||||
|
};
|
||||||
|
|
||||||
|
check = [
|
||||||
|
"CTEST_OUTPUT_ON_FAILURE=1",
|
||||||
|
"CTEST_PARALLEL_LEVEL=128",
|
||||||
|
"test",
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [ kernel-headers ];
|
||||||
|
}
|
||||||
@@ -423,6 +423,12 @@ func (s *S) getFrame() azalea.Frame {
|
|||||||
identArch = k(s.arch)
|
identArch = k(s.arch)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
enumCompress := map[unique.Handle[azalea.Ident]]any{
|
||||||
|
k("uncompressed"): uint32(pkg.TarUncompressed),
|
||||||
|
k("gzip"): uint32(pkg.TarGzip),
|
||||||
|
k("bzip2"): uint32(pkg.TarBzip2),
|
||||||
|
}
|
||||||
|
|
||||||
s.frame.Val = map[unique.Handle[azalea.Ident]]any{
|
s.frame.Val = map[unique.Handle[azalea.Ident]]any{
|
||||||
k("linuxArch"): s.linuxArch(),
|
k("linuxArch"): s.linuxArch(),
|
||||||
|
|
||||||
@@ -492,11 +498,7 @@ func (s *S) getFrame() azalea.Frame {
|
|||||||
v = pkg.NewHTTPGetTar(nil, url, mustDecode(checksum), compress)
|
v = pkg.NewHTTPGetTar(nil, url, mustDecode(checksum), compress)
|
||||||
set = true
|
set = true
|
||||||
return
|
return
|
||||||
}, V: map[unique.Handle[azalea.Ident]]any{
|
}, V: enumCompress},
|
||||||
k("uncompressed"): uint32(pkg.TarUncompressed),
|
|
||||||
k("gzip"): uint32(pkg.TarGzip),
|
|
||||||
k("bzip2"): uint32(pkg.TarBzip2),
|
|
||||||
}},
|
|
||||||
|
|
||||||
k("remoteFile"): {F: func(
|
k("remoteFile"): {F: func(
|
||||||
args azalea.FArgs,
|
args azalea.FArgs,
|
||||||
@@ -601,6 +603,25 @@ func (s *S) getFrame() azalea.Frame {
|
|||||||
return
|
return
|
||||||
}},
|
}},
|
||||||
|
|
||||||
|
k("remoteGitHubRelease"): {F: func(
|
||||||
|
args azalea.FArgs,
|
||||||
|
) (v any, set bool, err error) {
|
||||||
|
var suffix, tag, name, checksum string
|
||||||
|
var compress uint32
|
||||||
|
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
|
||||||
|
k("suffix"): &suffix,
|
||||||
|
k("tag"): &tag,
|
||||||
|
k("name"): &name,
|
||||||
|
k("checksum"): &checksum,
|
||||||
|
k("compress"): &compress,
|
||||||
|
}); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
v = newFromGitHubRelease(suffix, tag, name, checksum, compress)
|
||||||
|
set = true
|
||||||
|
return
|
||||||
|
}, V: enumCompress},
|
||||||
|
|
||||||
// high-level helpers
|
// high-level helpers
|
||||||
|
|
||||||
k("make"): {F: func(
|
k("make"): {F: func(
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ var (
|
|||||||
Binutils = H("binutils")
|
Binutils = H("binutils")
|
||||||
Bison = H("bison")
|
Bison = H("bison")
|
||||||
Bzip2 = H("bzip2")
|
Bzip2 = H("bzip2")
|
||||||
CMake = H("cmake")
|
|
||||||
Connman = H("connman")
|
Connman = H("connman")
|
||||||
Coreutils = H("coreutils")
|
Coreutils = H("coreutils")
|
||||||
Curl = H("curl")
|
Curl = H("curl")
|
||||||
@@ -111,7 +110,6 @@ var (
|
|||||||
NSSCACert = H("nss-cacert")
|
NSSCACert = H("nss-cacert")
|
||||||
Ncurses = H("ncurses")
|
Ncurses = H("ncurses")
|
||||||
Nettle = H("nettle")
|
Nettle = H("nettle")
|
||||||
Ninja = H("ninja")
|
|
||||||
OpenSSL = H("openssl")
|
OpenSSL = H("openssl")
|
||||||
P11Kit = H("p11-kit")
|
P11Kit = H("p11-kit")
|
||||||
PCRE2 = H("pcre2")
|
PCRE2 = H("pcre2")
|
||||||
|
|||||||
Reference in New Issue
Block a user