{ edition = 201909; description = "Genode desktop varaint"; inputs = { dhall-haskell.uri = "git+https://github.com/dhall-lang/dhall-haskell?ref=flake"; genode-depot.uri = "git+https://gitea.c3d2.de/ehmry/genode-depot.git"; genodepkgs.url = "git+file:///home/repo/genodepkgs?ref=flake"; libretro-genode.uri = "git+file:///home/repo/libretro-genode"; nixpkgs.uri = "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode"; }; outputs = { self, genodepkgs, nixpkgs, dhall-haskell, genode-depot, libretro-genode }: let lib = import (genodepkgs + "/lib") { inherit genodepkgs nixpkgs dhall-haskell genode-depot; }; dummyXml = builtins.toFile "empty.xml" ""; # Hack to break off the stupid "capslock" shit in { packages.x86_64-genode.iso = with genodepkgs.packages.x86_64-genode; lib.x86_64-genode.buildNovaIso { name = "oberon"; rom = let upstream = base.src; depot = genode-depot.packages.x86_64-genode; libretro = libretro-genode.packages.x86_64-genode; in { config = lib.renderDhallInit ./config.dhall "{=}"; "Oberon.dsk" = "${libretro.oberon.smSrc}/DiskImage/Oberon-2019-01-21.dsk"; "libm.lib.so" = "${depot.libc}/lib/libm.lib.so"; "libc.lib.so" = "${depot.libc}/lib/libc.lib.so"; "libretro.so" = ./libretro.so; # "${libretro.oberon}/bin/oberon/libretro.so"; retro_frontend = ./retro_frontend; # "${libretro.retro_frontend}/bin/retro_frontend/retro_frontend"; acpi_drv = "${os}/bin/acpi_drv"; ahci_drv = "${os}/bin/ahci_drv"; vesa_fb_drv = "${depot.vesa_drv}/bin/vesa_fb_drv"; 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 = "${os}/bin/fs_report"; fs_rom = "${os}/bin/fs_rom"; "input_filter.config" = ./input_filter.config; input_filter = "${os}/bin/input_filter"; log_core = "${os}/bin/log_core"; nitpicker = "${os}/bin/nitpicker"; platform_drv = "${os}/bin/platform_drv"; pointer = "${os}/bin/pointer"; ps2_drv = "${os}/bin/ps2_drv"; ram_fs = "${os}/bin/ram_fs"; report_rom = "${os}/bin/report_rom"; rom_filter = "${os}/bin/rom_filter"; rom_reporter = "${os}/bin/rom_reporter"; terminal_log = "${os}/bin/terminal_log"; usb_drv = "${depot.usb_drv}/bin/usb_drv"; vfs = "${os}/bin/vfs"; "vfs_import.lib.so" = "${depot.vfs_import}/lib/vfs_import.lib.so"; "vfs.lib.so" = "${os}/lib/vfs.lib.so"; capslock = dummyXml; numlock = dummyXml; usb_policy = dummyXml; "usb.config" = dummyXml; }; }; defaultPackage = self.packages.x86_64-genode.iso; }; }