aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-19 01:43:53 +0900
committerOphestra <cat@gensokyo.uk>2026-05-19 01:44:23 +0900
commit6e9e8c74f36e31117647c4414b98b1fda95b18a1 (patch)
tree7bc449100034c4dbcadfb22a71f9798d079291e2
parent4d60fa5632246d5e1c355573dc0fd0e85ca3dcd3 (diff)
internal/rosa: migrate buildcatrust
Other nss-related packages are unlikely to be migrated any time soon. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/rosa/nss.go22
-rw-r--r--internal/rosa/package/buildcatrust.az23
-rw-r--r--internal/rosa/python.go25
-rw-r--r--internal/rosa/state.go36
-rw-r--r--internal/rosa/state_native.go1
5 files changed, 73 insertions, 34 deletions
diff --git a/internal/rosa/nss.go b/internal/rosa/nss.go
index 5fccab7e..c84d8a48 100644
--- a/internal/rosa/nss.go
+++ b/internal/rosa/nss.go
@@ -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 \
diff --git a/internal/rosa/package/buildcatrust.az b/internal/rosa/package/buildcatrust.az
new file mode 100644
index 00000000..18350c9d
--- /dev/null
+++ b/internal/rosa/package/buildcatrust.az
@@ -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 ];
+}
diff --git a/internal/rosa/python.go b/internal/rosa/python.go
index a9ec642a..512c38fb 100644
--- a/internal/rosa/python.go
+++ b/internal/rosa/python.go
@@ -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,
+ )...)
})
}
diff --git a/internal/rosa/state.go b/internal/rosa/state.go
index 7b858ed9..c4c4519a 100644
--- a/internal/rosa/state.go
+++ b/internal/rosa/state.go
@@ -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
diff --git a/internal/rosa/state_native.go b/internal/rosa/state_native.go
index c320642e..c05814f2 100644
--- a/internal/rosa/state_native.go
+++ b/internal/rosa/state_native.go
@@ -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")