diff --git a/README.md b/README.md index df82491..4207cbd 100644 --- a/README.md +++ b/README.md @@ -39,34 +39,33 @@ The worksites at the moment are: - ARM, i686 - - Write a proper test framework, or better, reuse the NixOS one. - - - Patching standard Nixpkgs packages by overlay. Explore Workflow and tooling + - Patching standard Nixpkgs packages by overlay. Explore Workflow and tooling for building emulated UNIX environments. - LLVM testing and upstreaming patches. - Formalizing Dhall configuration types. - - NixOS modules for constructing a reasonably usable Genode system. Reusing the - module system from NixOS is advantagous because a dual boot system can - share a `/nix/store` and be updated simultaneously. Work-in-progress on a - topic branch. + - NixOS modules for constructing a reasonably usable Genode system. Reusing the + module system from NixOS is advantageous because a dual boot system can + share a `/nix/store` and be updated simultaneously. + + - NixOS module for NixOS guests with the ARM VMM. - Configuration validation via a service routing prover. # Nix Flakes This repository is structured as a Nix flake, which is an experimental extension -of Nix tooling. See https://www.tweag.io/posts/2020-05-25-flakes.html for an +of Nix tooling. See https://www.tweag.io/posts/2020-05-25-flakes.html for an introduction and tutorial. ## Build Caching -The builds produced by Hydra are available as a binary cache, using the cache is +The builds produced by Hydra are available as a binary cache, using the cache is strongly recommended. -The global (IPv6 only) address for the cache can be tested by fetching the +The global (IPv6 only) address for the cache can be tested by fetching the following: http://cache.server7.hq.c3d2.de/nix-cache-info. If that fails the cache is also available within the @@ -113,6 +112,17 @@ $ nix log .#checks.x86_64-linux.nova-x86 Packaging is done using standard Nixpkgs methods, a `stdenv` is available for cross-compilation. See [Solo5](./packages/solo5/default.nix) as an example. +## Cross-compiling Nixpkgs + +Some existing packages from Nixpkgs can be built with little or no modification. +Nixpkgs is available at the path `.#legacyPackages.x86_64-linux-x86_64-genode` +(or `…-aarch64-genode`) and modifications to packages are made at an +[overlay](./overlay/default.nix). Some packages need patched, others require +additional features added to the Genode libc. + +Packages that run on Linux as well as Genode should not be packaged here, those +should be added to Nixpkgs. + # Toolchain The Genode Labs toolchain is available here only for Linux and in binary form. @@ -122,7 +132,7 @@ has not been practical due to its recursive autotools build system. The enter a shell with the toolchain: ```shell -nix run .#legacyPackages.x86_64-linux-x86_64-genode.stdenv.cc +nix shell .#legacyPackages.x86_64-linux-x86_64-genode.stdenv.cc x86_64-unknown-genode-clang++ -v ``` @@ -279,9 +289,9 @@ Others are simply introduced as an aid to the reader: # Legal -This repository is for trivial packaging and metadata that exists only for the -sake of richer and more meaningful code in external repositories. All works -committed to this repository, unless otherwise noted, shall be implicitly +This repository is for trivial packaging and metadata that exists only for the +sake of richer and more meaningful code in external repositories. All works +committed to this repository, unless otherwise noted, shall be implicitly licensed under a [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/deed) public domain dedication.