From 7a172c23c95aeea230de99dba3b5ddf191cf745a Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 11 Feb 2021 16:59:29 +0100 Subject: [PATCH] Remove unused apps output from flake --- apps/default.nix | 135 ----------------------------- apps/generate-manifest/default.nix | 21 ----- apps/genode-make/default.nix | 6 -- apps/genode-make/make.nix | 5 -- apps/hw-image/default.nix | 58 ------------- apps/hw-iso/default.nix | 40 --------- apps/hw-iso/isolinux.cfg | 5 -- apps/insert-config-rom.dhall | 8 -- apps/linux-image/default.nix | 10 --- apps/linux-image/script.dhall | 38 -------- apps/modules.as.dhall | 110 ----------------------- apps/nova-image/default.nix | 40 --------- apps/nova-iso/default.nix | 41 --------- apps/nova-iso/isolinux.cfg | 5 -- apps/render-init/default.nix | 11 --- apps/render-rom.dhall | 13 --- apps/to-rom.dhall | 12 --- flake.nix | 11 --- 18 files changed, 569 deletions(-) delete mode 100644 apps/default.nix delete mode 100644 apps/generate-manifest/default.nix delete mode 100644 apps/genode-make/default.nix delete mode 100644 apps/genode-make/make.nix delete mode 100644 apps/hw-image/default.nix delete mode 100644 apps/hw-iso/default.nix delete mode 100644 apps/hw-iso/isolinux.cfg delete mode 100644 apps/insert-config-rom.dhall delete mode 100644 apps/linux-image/default.nix delete mode 100644 apps/linux-image/script.dhall delete mode 100644 apps/modules.as.dhall delete mode 100644 apps/nova-image/default.nix delete mode 100644 apps/nova-iso/default.nix delete mode 100644 apps/nova-iso/isolinux.cfg delete mode 100644 apps/render-init/default.nix delete mode 100644 apps/render-rom.dhall delete mode 100644 apps/to-rom.dhall diff --git a/apps/default.nix b/apps/default.nix deleted file mode 100644 index 2a08062..0000000 --- a/apps/default.nix +++ /dev/null @@ -1,135 +0,0 @@ -{ system, self, nixpkgs, nixpkgsLocal, packages }: - -let - dhallApps = let - mkApp = { drv, name ? drv.pname or drv.name, exe ? name }: { - inherit name; - value = { - type = "app"; - program = "${drv}/bin/${exe}"; - }; - }; - in builtins.listToAttrs [ - (mkApp { drv = nixpkgsLocal.dhall; }) - - (mkApp { - drv = nixpkgsLocal.dhall-bash; - name = "dhall-to-bash"; - }) - - (mkApp { - drv = nixpkgsLocal.dhall-json; - name = "dhall-to-json"; - }) - - (mkApp { - drv = nixpkgsLocal.dhall-json; - name = "json-to-dhall"; - }) - - (mkApp { - drv = nixpkgsLocal.dhall-json; - name = "dhall-to-yaml"; - }) - - (mkApp { - drv = nixpkgsLocal.dhall-json; - name = "yaml-to-dhall"; - }) - - ]; - -in dhallApps // { - - genode-make = { - type = "app"; - program = nixpkgs.buildPackages.callPackage ./genode-make { }; - }; - - linux-image = let - drv = import ./linux-image { - apps = self; - inherit nixpkgs packages; - }; - in { - type = "app"; - program = "${drv}/bin/linux-image"; - }; - - generate-manifest = let - drv = import ./generate-manifest { - stdenv = packages.stdenv; - inherit nixpkgs; - }; - in { - type = "app"; - program = "${drv}/bin/generate-manifest"; - }; - - render-init = let - drv = import ./render-init { - apps = self; - inherit nixpkgs packages; - }; - in { - type = "app"; - program = "${drv}/bin/render-init"; - }; - -} // (if system == "x86_64-genode" then { - - hw-image = let - drv = import ./hw-image { - stdenv = packages.stdenv; - apps = self; - inherit nixpkgs packages; - }; - in { - type = "app"; - program = "${drv}/bin/hw-image"; - function = attrs: bootDesc: - nixpkgs.runCommand "image.elf" attrs - ''XDG_CACHE_HOME=$TMPDIR ${drv}/bin/hw-image "${bootDesc}" > $out''; - }; - - hw-iso = let - drv = import ./hw-iso { - stdenv = packages.stdenv; - inherit nixpkgs packages; - inherit (self) hw-image; - }; - in { - type = "app"; - program = "${drv}/bin/hw-iso"; - function = attrs: bootDesc: - nixpkgs.runCommand "hw.iso" attrs - ''XDG_CACHE_HOME=$TMPDIR ${drv}/bin/hw-iso "${bootDesc}" > $out''; - }; - - nova-image = let - drv = import ./nova-image { - stdenv = packages.stdenv; - apps = self; - inherit nixpkgs packages; - }; - in { - type = "app"; - program = "${drv}/bin/nova-image"; - }; - - nova-iso = let - drv = import ./nova-iso { - stdenv = packages.stdenv; - inherit nixpkgs packages; - inherit (self) nova-image; - }; - in { - type = "app"; - program = "${drv}/bin/nova-iso"; - function = attrs: bootDesc: - nixpkgs.runCommand "nova.iso" attrs - ''XDG_CACHE_HOME=$TMPDIR ${drv}/bin/nova-iso "${bootDesc}" > $out''; - }; - -} else - { }) diff --git a/apps/generate-manifest/default.nix b/apps/generate-manifest/default.nix deleted file mode 100644 index 3d9db57..0000000 --- a/apps/generate-manifest/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv, nixpkgs }: - -with nixpkgs.buildPackages; - -writeScriptBin "generate-manifest" '' - #!${runtimeShell} - root="$1" - if [ -z "$root" ]; then - echo a directory must be passed as an argument >> /dev/stderr - exit 1 - fi - if [ ! -d "$root" ]; then - echo \'$root\' is not an existing directory >> /dev/stderr - exit 1 - fi - - set -eu - echo -n '[' - find $root/ -type f -printf ',{mapKey= "%f",mapValue="%p"}' - echo -n ']' -'' diff --git a/apps/genode-make/default.nix b/apps/genode-make/default.nix deleted file mode 100644 index 065dade..0000000 --- a/apps/genode-make/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ writeScriptBin, runtimeShell }: - -writeScriptBin "genode-make" '' - #!${runtimeShell} - exec nix build -f ${./make.nix} --argstr target $@ -'' + "/bin/genode-make" diff --git a/apps/genode-make/make.nix b/apps/genode-make/make.nix deleted file mode 100644 index cdc4535..0000000 --- a/apps/genode-make/make.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ target }: -let - flake = getFlake "genodepkgs"; - pkgs = flake.packages."${builtins.currentSystem}-x86_64-genode"; -in pkgs.genodeSources.make target diff --git a/apps/hw-image/default.nix b/apps/hw-image/default.nix deleted file mode 100644 index 4062b55..0000000 --- a/apps/hw-image/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ stdenv, nixpkgs, apps, packages }: - -let inherit (packages) genodeSources base-hw-pc; -in nixpkgs.writeScriptBin "hw-image" (with nixpkgs.buildPackages; - let inherit (stdenv) cc; - - in '' - #!${runtimeShell} - set -eu - - CC="${cc}/bin/${cc.targetPrefix}cc" - LD="${buildPackages.binutils}/bin/${buildPackages.binutils.targetPrefix}ld" - - TMPDIR="$(${coreutils}/bin/mktemp -d)" - trap "rm -rf $TMPDIR" err exit - - export DHALL_GENODE=''${DHALL_GENODE:-${packages.dhallGenode}/binary.dhall} - if [ -z "$XDG_CACHE_HOME" ] - then - export XDG_CACHE_HOME="$TMPDIR" - ${buildPackages.xorg.lndir}/bin/lndir -silent \ - "${packages.dhallGenode}/.cache" \ - "$XDG_CACHE_HOME" - fi - - build_core() { - local lib="$1" - local modules="$2" - local link_address="$3" - ${apps.dhall.program} text > "$TMPDIR/modules.as" \ - <<< "(${../modules.as.dhall}).to64bitImage ($modules)" \ - - # compile the boot modules into one object file - $CC -c -x assembler -o "$TMPDIR/boot_modules.o" "$TMPDIR/modules.as" - - # link final image - $LD \ - --strip-all \ - -T${genodeSources}/repos/base/src/ld/genode.ld \ - -z max-page-size=0x1000 \ - -Ttext=$link_address -gc-sections \ - "$lib" "$TMPDIR/boot_modules.o" - cat a.out - } - - ${apps.dhall.program} text \ - <<< "(env:DHALL_GENODE).Init.render ($@).config" \ - > $TMPDIR/config - - ${apps.dhall.program} \ - <<< "${../insert-config-rom.dhall} \"$TMPDIR/config\" ($@).rom" \ - > "$TMPDIR/modules.dhall" - - build_core "''${CORE_OBJ:-${base-hw-pc.coreObj}}" "$TMPDIR/modules.dhall" 0xffffffc000000000 > core.elf - build_core "''${BOOTSTRAP_OBJ:-${base-hw-pc.bootstrapObj}}" "${ - ../to-rom.dhall - } \"core.elf\" \"./core.elf\"" 0x00200000 - '') diff --git a/apps/hw-iso/default.nix b/apps/hw-iso/default.nix deleted file mode 100644 index 0d7dde6..0000000 --- a/apps/hw-iso/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, nixpkgs, packages, hw-image }: - -nixpkgs.writeScriptBin "hw-iso" (with nixpkgs.buildPackages; - let inherit (stdenv) cc; - - in '' - #!${runtimeShell} - set -eu - - SYSLINUX="${syslinux}/share/syslinux" - - TMPDIR="$(${coreutils}/bin/mktemp -d)" - trap "rm -rf $TMPDIR" err exit - - mkdir -p "$TMPDIR/boot/syslinux" - ${hw-image.program} $@ > "$TMPDIR/boot/image.elf" - - pushd "$TMPDIR" > /dev/null - out="hw.iso" - - # build ISO layout - cp ${./isolinux.cfg} boot/syslinux/isolinux.cfg - cp \ - $SYSLINUX/isolinux.bin \ - $SYSLINUX/ldlinux.c32 \ - $SYSLINUX/libcom32.c32 \ - $SYSLINUX/mboot.c32 \ - boot/syslinux - chmod +w boot/syslinux/isolinux.bin - - # create ISO image - ${cdrkit}/bin/mkisofs -o "$out" \ - -b syslinux/isolinux.bin -c syslinux/boot.cat \ - -no-emul-boot -boot-load-size 4 -boot-info-table \ - -iso-level 2 \ - boot - - ${syslinux}/bin/isohybrid "$out" - cat "$out" - '') diff --git a/apps/hw-iso/isolinux.cfg b/apps/hw-iso/isolinux.cfg deleted file mode 100644 index ed4dfd6..0000000 --- a/apps/hw-iso/isolinux.cfg +++ /dev/null @@ -1,5 +0,0 @@ -SERIAL -DEFAULT 0 -LABEL 0 - KERNEL mboot.c32 - APPEND /image.elf diff --git a/apps/insert-config-rom.dhall b/apps/insert-config-rom.dhall deleted file mode 100644 index 17b66b4..0000000 --- a/apps/insert-config-rom.dhall +++ /dev/null @@ -1,8 +0,0 @@ - -let Genode = env:DHALL_GENODE - -let BootModules = Genode.BootModules - -in λ(configPath : Text) - → λ(rom : Genode.BootModules.Type) - → BootModules.toRomPaths (toMap { config = configPath }) # rom diff --git a/apps/linux-image/default.nix b/apps/linux-image/default.nix deleted file mode 100644 index a12c7ae..0000000 --- a/apps/linux-image/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ nixpkgs, apps, packages }: - -nixpkgs.writeScriptBin "linux-image" (with nixpkgs.buildPackages; '' - #!${runtimeShell} - set -eu - export DHALL_GENODE=''${DHALL_GENODE:-${packages.dhallGenode}/source.dhall} - ${apps.dhall.program} text <<< "${./script.dhall} ($@)" > boot.sh - source boot.sh - rm boot.sh -'') diff --git a/apps/linux-image/script.dhall b/apps/linux-image/script.dhall deleted file mode 100644 index 597693d..0000000 --- a/apps/linux-image/script.dhall +++ /dev/null @@ -1,38 +0,0 @@ - -let Genode = env:DHALL_GENODE - -let Prelude = Genode.Prelude - -let Args = { config : Genode.Init.Type, rom : Genode.BootModules.Type } : Type - -let RomEntry = Prelude.Map.Entry Text Genode.BootModules.ROM.Type - -let addLine = - λ(e : RomEntry) - → λ(script : Text) - → merge - { RomText = - λ(rom : Text) - → '' - ${script} - echo ${Text/show rom} > ${Text/show e.mapKey} - '' - , RomPath = - λ(rom : Text) - → '' - ${script} - ln -s ${Text/show rom} ${Text/show e.mapKey} - '' - } - e.mapValue - -in λ(args : Args) - → Prelude.List.fold - RomEntry - args.rom - Text - addLine - '' - #!/bin/sh - echo ${Text/show (Genode.Init.render args.config)} > config - '' diff --git a/apps/modules.as.dhall b/apps/modules.as.dhall deleted file mode 100644 index cfb1782..0000000 --- a/apps/modules.as.dhall +++ /dev/null @@ -1,110 +0,0 @@ - -let Genode = env:DHALL_GENODE - -let Prelude = Genode.Prelude - -let BootModules = Genode.BootModules - -let RomEntry = Prelude.Map.Entry Text BootModules.ROM.Type - -let compile = - λ(addressType : Text) - → λ(rom : Prelude.Map.Type Text BootModules.ROM.Type) - → let NaturalIndex = { index : Natural, value : Text } - - let TextIndex = { index : Text, value : Text } - - let moduleKeys = Prelude.Map.keys Text BootModules.ROM.Type rom - - let moduleValues = - let f = - λ(e : RomEntry) - → merge - { RomText = λ(text : Text) → ".ascii ${Text/show text}" - , RomPath = λ(path : Text) → ".incbin ${Text/show path}" - } - e.mapValue - - in Prelude.List.map RomEntry Text f rom - - let map = - λ(list : List Text) - → λ(f : TextIndex → Text) - → let indexedNatural = Prelude.List.indexed Text list - - let indexed = - Prelude.List.map - NaturalIndex - TextIndex - ( λ(x : NaturalIndex) - → { index = Prelude.Natural.show x.index - , value = x.value - } - ) - indexedNatural - - let texts = Prelude.List.map TextIndex Text f indexed - - in Prelude.Text.concatSep "\n" texts - - let mapNames = map moduleKeys - - let mapValues = map moduleValues - - in '' - .set MIN_PAGE_SIZE_LOG2, 12 - .set DATA_ACCESS_ALIGNM_LOG2, 3 - - .section .data - - .p2align DATA_ACCESS_ALIGNM_LOG2 - .global _boot_modules_headers_begin - _boot_modules_headers_begin: - - '' - ++ mapNames - ( λ(m : TextIndex) - → '' - ${addressType} _boot_module_${m.index}_name - ${addressType} _boot_module_${m.index}_begin - ${addressType} _boot_module_${m.index}_end - _boot_module_${m.index}_begin - '' - ) - ++ '' - .global _boot_modules_headers_end - _boot_modules_headers_end: - - '' - ++ mapNames - ( λ(m : TextIndex) - → '' - .p2align DATA_ACCESS_ALIGNM_LOG2 - _boot_module_${m.index}_name: - .string "${m.value}" - .byte 0 - - '' - ) - ++ '' - .section .data.boot_modules_binaries - - .global _boot_modules_binaries_begin - _boot_modules_binaries_begin: - - '' - ++ mapValues - ( λ(m : TextIndex) - → '' - .p2align MIN_PAGE_SIZE_LOG2 - _boot_module_${m.index}_begin: - ${m.value} - _boot_module_${m.index}_end: - '' - ) - ++ '' - .p2align MIN_PAGE_SIZE_LOG2 - .global _boot_modules_binaries_end - _boot_modules_binaries_end: - '' - -in { to32bitImage = compile ".long", to64bitImage = compile ".quad" } diff --git a/apps/nova-image/default.nix b/apps/nova-image/default.nix deleted file mode 100644 index 1d3bdc5..0000000 --- a/apps/nova-image/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, nixpkgs, apps, packages }: - -let inherit (packages) genodeSources base-nova; -in nixpkgs.writeScriptBin "nova-image" (with nixpkgs.buildPackages; - let inherit (stdenv) cc; - - in '' - #!${runtimeShell} - set -eu - - CC="${cc}/bin/${cc.targetPrefix}cc" - LD="${buildPackages.binutils}/bin/${buildPackages.binutils.targetPrefix}ld" - - TMPDIR="$(${coreutils}/bin/mktemp -d)" - trap "rm -rf $TMPDIR" err exit - - export DHALL_GENODE=${packages.dhallGenode}/source.dhall - - ${apps.dhall.program} text \ - <<< "(env:DHALL_GENODE).Init.render ($@).config" \ - > $TMPDIR/config - - ${apps.dhall.program} text \ - <<< "(${../modules.as.dhall}).to64bitImage (${ - ../insert-config-rom.dhall - } \"$TMPDIR/config\" ($@).rom)" \ - > "$TMPDIR/modules.as" - - # compile the boot modules into one object file - $CC -c -x assembler -o "$TMPDIR/boot_modules.o" "$TMPDIR/modules.as" - - # link final image - $LD --strip-all \ - -T${genodeSources}/repos/base/src/ld/genode.ld \ - -T${genodeSources}/repos/base-nova/src/core/core-bss.ld \ - -z max-page-size=0x1000 \ - -Ttext=0x100000 -gc-sections \ - "''${CORE_OBJ:-${base-nova.coreObj}}" "$TMPDIR/boot_modules.o" - cat a.out - '') diff --git a/apps/nova-iso/default.nix b/apps/nova-iso/default.nix deleted file mode 100644 index d19425e..0000000 --- a/apps/nova-iso/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv, nixpkgs, packages, nova-image }: - -nixpkgs.writeScriptBin "nova-iso" (with nixpkgs.buildPackages; - let inherit (stdenv) cc; - - in '' - #!${runtimeShell} - set -eu - - SYSLINUX="${syslinux}/share/syslinux" - - TMPDIR="$(${coreutils}/bin/mktemp -d)" - trap "rm -rf $TMPDIR" err exit - - mkdir -p "$TMPDIR/boot/syslinux" - ${nova-image.program} $@ > "$TMPDIR/boot/image.elf" - - pushd "$TMPDIR" > /dev/null - out="nova.iso" - - # build ISO layout - cp ${packages.NOVA}/hypervisor* boot/hypervisor - cp ${./isolinux.cfg} boot/syslinux/isolinux.cfg - cp \ - $SYSLINUX/isolinux.bin \ - $SYSLINUX/ldlinux.c32 \ - $SYSLINUX/libcom32.c32 \ - $SYSLINUX/mboot.c32 \ - boot/syslinux - chmod +w boot/syslinux/isolinux.bin - - # create ISO image - ${cdrkit}/bin/mkisofs -o "$out" \ - -b syslinux/isolinux.bin -c syslinux/boot.cat \ - -no-emul-boot -boot-load-size 4 -boot-info-table \ - -iso-level 2 \ - boot - - ${syslinux}/bin/isohybrid "$out" - cat "$out" - '') diff --git a/apps/nova-iso/isolinux.cfg b/apps/nova-iso/isolinux.cfg deleted file mode 100644 index 93cdac1..0000000 --- a/apps/nova-iso/isolinux.cfg +++ /dev/null @@ -1,5 +0,0 @@ -SERIAL -DEFAULT 0 -LABEL 0 - KERNEL mboot.c32 - APPEND /hypervisor iommu novpid serial --- /image.elf diff --git a/apps/render-init/default.nix b/apps/render-init/default.nix deleted file mode 100644 index 52911da..0000000 --- a/apps/render-init/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ nixpkgs, apps, packages }: - -nixpkgs.writeScriptBin "render-init" (with nixpkgs.buildPackages; '' - #!${runtimeShell} - set -eu - export DHALL_GENODE=''${DHALL_GENODE:-${packages.dhallGenode}/source.dhall} - ${apps.dhall.program} text \ - <<< "(env:DHALL_GENODE).Init.render ($(cat))" \ - | ${nixpkgs.buildPackages.libxml2}/bin/xmllint -format - \ - | sed 's/>/>/g' -'') diff --git a/apps/render-rom.dhall b/apps/render-rom.dhall deleted file mode 100644 index 8ed1325..0000000 --- a/apps/render-rom.dhall +++ /dev/null @@ -1,13 +0,0 @@ - -let Genode = env:DHALL_GENODE - -let render = - λ(boot : Genode.Boot.Type) - → let rom = - Genode.BootModules.toRomTexts - (toMap { config = Genode.Init.render boot.config }) - # boot.rom - - in rom - -in render diff --git a/apps/to-rom.dhall b/apps/to-rom.dhall deleted file mode 100644 index ba4548d..0000000 --- a/apps/to-rom.dhall +++ /dev/null @@ -1,12 +0,0 @@ - -let Genode = env:DHALL_GENODE - -let toRom = - λ(mapKey : Text) - → λ(path : Text) - → [ { mapKey = mapKey - , mapValue = Genode.BootModules.ROM.Type.RomPath path - } - ] - -in toRom diff --git a/flake.nix b/flake.nix index aed16fa..2cb0850 100644 --- a/flake.nix +++ b/flake.nix @@ -192,17 +192,6 @@ shellHook = "exec genode-env"; }); - apps = - # Utilities accessible via "nix run" - forAllCrossSystems ({ system, localSystem, crossSystem }: - import ./apps { - inherit system; - self = self.apps.${system}; - nixpkgs = nixpkgsFor.${system}; - nixpkgsLocal = nixpkgsFor.${localSystem}; - packages = self.packages.${system}; - }); - nixosModules = # Modules for composing Genode and NixOS import ./nixos-modules { flake = self; };