diff --git a/pkgs/o/openkal-kit.lua b/pkgs/o/openkal-kit.lua new file mode 100644 index 00000000..bc386d7b --- /dev/null +++ b/pkgs/o/openkal-kit.lua @@ -0,0 +1,74 @@ +-- openkal-kit --- facilities composed from openkal's interfaces. +-- +-- Form A because the package is described by its own mcpp.toml. +-- +-- ⭐ PUBLISHED OUT OF THE SPECIFICATION'S OWN TARBALL, at `*/kit/mcpp.toml`. +-- The precedent is grpc-plugin and grpcgen, which are published the same way +-- out of grpc-m's archive, and it is why the version key here need not equal +-- the tag: openkal-kit 0.1.0 comes from openkal's 0.8.0 archive. +-- +-- The package's own manifest reaches the specification by `path = ".."` and its +-- headers by `include_dirs = ["../include"]`. Both escape the package's +-- directory and hold because the whole archive is extracted and the manifest is +-- then located within it --- which is what the glob below expresses. +-- +-- WHY IT IS A SEPARATE PACKAGE AND NOT PART OF THE SPECIFICATION. +-- +-- openkal admits an interface only when it is a minimal capability every kernel +-- has and cannot be composed from the interfaces already present. That rule is +-- what keeps openkal implementable on a machine with firmware and nothing else, +-- and it leaves a gap: awaiting two streams at once, or parsing an endpoint out +-- of a configuration file, are composed rather than primitive. This package is +-- where such a composition is written once. +-- +-- The distinction is structural rather than stated. Clause 10 makes openkal's +-- contract a C application binary interface; this package exports no name +-- beginning with `kal_` and is C++ modules in `namespace kal::kit`, so a +-- program linking it is not read as an implementation that has added names. +-- The consequence that matters is that this package MAY evolve, which clause 8 +-- forbids the specification from doing. +-- +-- No `deps`. Its one dependency is the specification, named in its own manifest +-- and satisfied from within the same archive. +package = { + spec = "1", + namespace = "mcpplibs", + name = "openkal-kit", + description = "Facilities composed from openkal's interfaces, and not part of the specification", + licenses = {"Apache-2.0"}, + repo = "https://github.com/mcpplibs/openkal", + type = "package", + + xpm = { + linux = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.8.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.8.0/openkal-0.8.0.tar.gz", + }, + sha256 = "c0e758847847baac55763f2056881760834892252f35b2e671bff310d7dd0b34", + }, + }, + macosx = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.8.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.8.0/openkal-0.8.0.tar.gz", + }, + sha256 = "c0e758847847baac55763f2056881760834892252f35b2e671bff310d7dd0b34", + }, + }, + windows = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.8.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.8.0/openkal-0.8.0.tar.gz", + }, + sha256 = "c0e758847847baac55763f2056881760834892252f35b2e671bff310d7dd0b34", + }, + }, + }, + + -- The package's own manifest, in the kit's directory inside the wrap. + mcpp = "*/kit/mcpp.toml", +} diff --git a/pkgs/o/openkal.lua b/pkgs/o/openkal.lua index 6cd59b96..8c002f36 100644 --- a/pkgs/o/openkal.lua +++ b/pkgs/o/openkal.lua @@ -22,6 +22,13 @@ package = { xpm = { linux = { + ["0.8.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.8.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.8.0/openkal-0.8.0.tar.gz", + }, + sha256 = "c0e758847847baac55763f2056881760834892252f35b2e671bff310d7dd0b34", + }, ["0.7.0"] = { url = { GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.7.0.tar.gz", @@ -59,6 +66,13 @@ package = { }, }, macosx = { + ["0.8.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.8.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.8.0/openkal-0.8.0.tar.gz", + }, + sha256 = "c0e758847847baac55763f2056881760834892252f35b2e671bff310d7dd0b34", + }, ["0.7.0"] = { url = { GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.7.0.tar.gz", @@ -96,6 +110,13 @@ package = { }, }, windows = { + ["0.8.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.8.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.8.0/openkal-0.8.0.tar.gz", + }, + sha256 = "c0e758847847baac55763f2056881760834892252f35b2e671bff310d7dd0b34", + }, ["0.7.0"] = { url = { GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.7.0.tar.gz",