internal/rosa: migrate buildcatrust
All checks were successful
Test / Create distribution (push) Successful in 41s
Test / ShareFS (push) Successful in 48s
Test / Sandbox (push) Successful in 57s
Test / Hakurei (push) Successful in 1m0s
Test / Sandbox (race detector) (push) Successful in 2m42s
Test / Hakurei (race detector) (push) Successful in 3m43s
Test / Flake checks (push) Successful in 1m34s

Other nss-related packages are unlikely to be migrated any time soon.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-19 01:43:53 +09:00
parent 4d60fa5632
commit 6e9e8c74f3
5 changed files with 73 additions and 34 deletions

View File

@@ -80,32 +80,12 @@ func init() {
})
}
func init() {
const (
version = "0.5.1"
checksum = "oxjnuIrPVMPvD6x8VFLqB7EdbfuhouGQdtPuHDpEHGzoyH5nkxqtYN9UthMY9noA"
)
native.newPythonPackage(
"buildcatrust", 233988,
"transform certificate stores between formats",
"https://github.com/nix-community/buildcatrust",
version, newFromGitHub(
"nix-community/buildcatrust",
"v"+version, checksum,
), &PackageAttr{
ScriptEarly: `
rm buildcatrust/tests/test_nonhermetic.py
`,
}, nil, P{PythonFlitCore},
)
}
func (t Toolchain) newNSSCACert() (pkg.Artifact, string) {
return t.New("nss-cacert", 0, t.Append(nil,
Bash,
NSS,
buildcatrust,
H("python-buildcatrust"),
), nil, nil, `
mkdir -p /work/system/etc/ssl/{certs/unbundled,certs/hashed,trust-source}
buildcatrust \

View File

@@ -0,0 +1,23 @@
package python-buildcatrust {
description = "transform certificate stores between formats";
website = "https://github.com/nix-community/buildcatrust";
anitya = 233988;
version* = "0.5.1";
source = remoteGitHub {
suffix = "nix-community/buildcatrust";
tag = "v"+version;
checksum = "oxjnuIrPVMPvD6x8VFLqB7EdbfuhouGQdtPuHDpEHGzoyH5nkxqtYN9UthMY9noA";
};
early = "\nrm buildcatrust/tests/test_nonhermetic.py\n";
exec = pip {};
inputs = [
python,
python-flit-core,
];
runtime = [ python ];
}

View File

@@ -198,20 +198,21 @@ func (s *S) newPythonPackage(
build P, extra ...ArtifactH,
) {
name = "python-" + name
s.mustRegister(func(t Toolchain) (pkg.Artifact, string) {
return t.NewPackage(name, version, source, attrP, attr, slices.Concat(
P{Python},
extra,
build,
)...), version
}, &Metadata{
Name: name,
Description: description,
Website: website,
s.MustRegister(name, func(t Toolchain) (*Metadata, pkg.Artifact) {
return &Metadata{
Name: name,
Description: description,
Website: website,
Version: version,
Dependencies: slices.Concat(P{Python}, extra),
Dependencies: slices.Concat(P{Python}, extra),
ID: id,
ID: id,
}, t.NewPackage(name, version, source, attrP, attr, slices.Concat(
P{Python},
extra,
build,
)...)
})
}

View File

@@ -524,6 +524,22 @@ func (s *S) getFrame() azalea.Frame {
return
}},
k("remoteGitHub"): {F: func(
args azalea.FArgs,
) (v any, set bool, err error) {
var suffix, tag, checksum string
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
k("suffix"): &suffix,
k("tag"): &tag,
k("checksum"): &checksum,
}); err != nil {
return
}
v = newFromGitHub(suffix, tag, checksum)
set = true
return
}},
// high-level helpers
k("make"): {F: func(
@@ -555,6 +571,26 @@ func (s *S) getFrame() azalea.Frame {
set = true
return
}},
k("pip"): {F: func(
args azalea.FArgs,
) (v any, set bool, err error) {
var attr PipHelper
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
k("append"): &attr.Append,
k("buildIsolation"): &attr.BuildIsolation,
k("enterSource"): &attr.EnterSource,
k("install"): &attr.Install,
k("skipCheck"): &attr.SkipCheck,
k("check"): &attr.Check,
k("postInstall"): &attr.Script,
}); err != nil {
return
}
v = &attr
set = true
return
}},
}
})
return s.frame

View File

@@ -185,7 +185,6 @@ var (
llvmSource = H("llvm-project")
earlyCompilerRT = H("early-compiler-rt")
earlyRuntimes = H("early-runtimes")
buildcatrust = H("python-buildcatrust")
utilMacros = H("util-macros")
Musl = H("musl")
muslHeaders = H("musl-headers")