genode-oberon/flake.nix

94 lines
4.2 KiB
Nix

{
edition = 201909;
description = "Genode desktop varaint";
inputs = {
genodepkgs.url = "git+file:///home/repo/genodepkgs?ref=flake";
nixpkgs.uri = "git+https://gitea.c3d2.de/ehmry/nixpkgs.git";
dhall-haskell.uri =
"git+https://github.com/dhall-lang/dhall-haskell?ref=flake";
};
outputs = { self, genodepkgs, nixpkgs, dhall-haskell, genode-depot }:
let
lib = import (genodepkgs + "/lib") {
inherit genodepkgs nixpkgs dhall-haskell;
};
in {
packages.x86_64-genode.iso = with genodepkgs.packages.x86_64-genode;
lib.x86_64-genode.buildNovaIso {
name = "schlitzohr";
rom = let
upstream = genode-base.src.src;
depot = genode-depot.packages.x86_64-genode;
in {
config = lib.renderDhallInit ./config.dhall "{=}";
acpi_drv = "${genode-os}/bin/acpi_drv";
ahci_drv = "${genode-os}/bin/ahci_drv";
vesa_fb_drv = "${depot.vesa_drv}/bin/vesa_fb_drv";
"clipboard.config" =
"${upstream}/repos/gems/run/sculpt/clipboard.config";
driver_manager = "${depot.driver_manager}/bin/driver_manager";
"drivers.config" = ./drivers.config;
"empty_runtime.config" =
"${upstream}/repos/gems/run/sculpt/empty_runtime.config";
"en_us.chargen" =
"${upstream}/repos/os/src/server/input_filter/en_us.chargen";
"fb_drv.config" =
"${upstream}/repos/os/recipes/raw/drivers_interactive-pc/fb_drv.config";
"fonts.config" = "${upstream}/repos/gems/run/sculpt/fonts.config";
fs_report = "${genode-os}/bin/fs_report";
fs_rom = "${genode-os}/bin/fs_rom";
global_keys_handler = "${genode-os}/bin/global_keys_handler";
"input_filter.config" =
"${upstream}/repos/os/recipes/raw/drivers_interactive-pc/input_filter.config";
input_filter = "${genode-os}/bin/input_filter";
"installation" =
builtins.toFile "installation" ''<installation arch="x86_64"/>'';
"leitzentrale.config" =
"${upstream}/repos/gems/run/sculpt/leitzentrale.config";
log_core = "${genode-os}/bin/log_core";
"nitpicker.config" = ./nitpicker.config;
nitpicker = "${genode-os}/bin/nitpicker";
"numlock_remap.config" =
"${upstream}/repos/gems/recipes/raw/drivers_managed-pc/numlock_remap.config";
platform_drv = "${genode-os}/bin/platform_drv";
pointer = "${genode-os}/bin/pointer";
ps2_drv = "${genode-os}/bin/ps2_drv";
ram_fs = "${genode-os}/bin/ram_fs";
report_rom = "${genode-os}/bin/report_rom";
rom_filter = "${genode-os}/bin/rom_filter";
rom_reporter = "${genode-os}/bin/rom_reporter";
rtc_drv = "${genode-os}/bin/rtc_drv";
"special.chargen" =
"${upstream}/repos/os/src/server/input_filter/special.chargen";
terminal_log = "${genode-os}/bin/terminal_log";
"usb.config" = "${upstream}/repos/gems/run/sculpt/usb.config";
usb_drv = "${depot.usb_drv}/bin/usb_drv";
vfs = "${genode-os}/bin/vfs";
"vfs_import.lib.so" = "${depot.vfs_import}/lib/vfs_import.lib.so";
"vfs.lib.so" = "${genode-os}/lib/vfs.lib.so";
"wifi.config" = "${upstream}/repos/gems/run/sculpt/wifi.config";
"manual_deploy.config" = builtins.toFile "manual_deploy.config" ''
<config arch="x86_64">
<common_routes>
<service name="ROM" label_last="ld.lib.so"> <parent/> </service>
<service name="ROM" label_last="vfs.lib.so"> <parent/> </service>
<service name="ROM" label_last="init"> <parent/> </service>
<service name="CPU"> <parent/> </service>
<service name="PD"> <parent/> </service>
<service name="LOG"> <parent/> </service>
<service name="Timer"> <parent/> </service>
</common_routes>
</config>
'';
};
};
defaultPackage = self.packages.x86_64-genode.iso;
};
}