diff --git a/README.md b/README.md index d31f6dd..3ac2570 100644 --- a/README.md +++ b/README.md @@ -11,54 +11,9 @@ [Nix](https://nixos.org/nix/) expressions related to the [Genode OS framework](https://genode.org). -# Packaging +**IRC:** irc://oftc.net/#genodepkgs -Packaging is done using standard Nixpkgs methods, a `stdenv` is available for -cross-compilation. See [Solo5](./packages/solo5/default.nix) as an example. - -# System description format - -The high-level interface to system building are boot descriptions. These Dhall -documents describe the configuration of an [Init](https://genode.org/documentation/genode-foundations/19.05/system_configuration/The_init_component.html) -instance and a store of ROM (Read-Only Memory) modules. These description can be -used to build firmware-like binary images or merged and nested within other -descriptions. In theory these descriptions can arrange file-systems, but those -functions are missing. - -The description schema is documented as code: -https://git.sr.ht/~ehmry/dhall-genode/tree/master/Boot/package.dhall - -# Package manifests - -Software packages are described my manifest documents, which can be used to -build the ROM map in boot descriptions. This manifests can be automatically -generated and made available within Nix builds and dev-shells via environmental -variables. This may seem awkward, but consider that this is to support building -firmware systems without a $PATH or even a file-system. - -An example manifest: - -```dhall -{ bin = - { init = { mapKey = "init", mapValue = "/nix/store/.../bin/init" } - , vfs = { mapKey = "vfs", mapValue = "/nix/store/.../bin/vfs" } - } -, lib = - { vfs = - { mapKey = "vfs.lib.so", mapValue = "/nix/store/.../lib/vfs.lib.so" } - } -} -``` - -Referenced in a boot configuration: - -```dhall -let m = env:MANIFEST -- take the manifest from the shell environment - -let rom = Genode.Boot.toRomPaths [ m.bin.init, m.bin.vfs, m.lib.vfs ] - -in { config = Genode.Init.default, rom = rom } : Genode.Boot.Type -``` +**Mailing List:** https://lists.sr.ht/~ehmry/genodepkgs # Contributing @@ -74,7 +29,7 @@ The worksites at the moment are: comprehensive single document early, we should be able to refactor and prune the internals faster. - - Testing framework for simple and multi-machine tests. + - Port tests to the NixOS test harness. - Patching standard Nixpkgs packages via an overlay. Workflow and tooling needs to be explored for building emulated UNIX environments. @@ -85,6 +40,26 @@ The worksites at the moment are: - Configuration validation via a service routing prover. + +# Packaging + +Packaging is done using standard Nixpkgs methods, a `stdenv` is available for +cross-compilation. See [Solo5](./packages/solo5/default.nix) as an example. + + +# System description format + +The high-level interface to system building are boot descriptions. These Dhall +documents describe the configuration of an [Init](https://genode.org/documentation/genode-foundations/19.05/system_configuration/The_init_component.html) +instance and a store of ROM (Read-Only Memory) modules. These description can be +used to build firmware-like binary images or merged and nested within other +descriptions. In theory these descriptions can arrange file-systems, but those +functions are missing. + +The description schema is documented as code: +https://git.sr.ht/~ehmry/dhall-genode/tree/master/Boot/package.dhall + + # Nix Flakes This repository is structured as a Nix flake, which is an experimental extension @@ -167,12 +142,6 @@ multicore machines. The Nix flake is prepared for continuous builds with a [Hydra](https://nixos.org/hydra/), but only the experimental flakes capable Hydra. -## C3D2 Hydra - -A publicly available Hydra is provided by [CCC Dresden](https://c3d2.de) at -https://server7.hq.c3d2.de/. The machine is only reachable over IPv6 and -therefore inaccessible to SculptOS. - # Testing Tests are performed using QEMU and a test driver similiar to what is used by