Remove unused apps output from flake

This commit is contained in:
Ehmry - 2021-02-11 16:59:29 +01:00
parent ebc724565b
commit 7a172c23c9
18 changed files with 0 additions and 569 deletions

View File

@ -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
{ })

View File

@ -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 ']'
''

View File

@ -1,6 +0,0 @@
{ writeScriptBin, runtimeShell }:
writeScriptBin "genode-make" ''
#!${runtimeShell}
exec nix build -f ${./make.nix} --argstr target $@
'' + "/bin/genode-make"

View File

@ -1,5 +0,0 @@
{ target }:
let
flake = getFlake "genodepkgs";
pkgs = flake.packages."${builtins.currentSystem}-x86_64-genode";
in pkgs.genodeSources.make target

View File

@ -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
'')

View File

@ -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"
'')

View File

@ -1,5 +0,0 @@
SERIAL
DEFAULT 0
LABEL 0
KERNEL mboot.c32
APPEND /image.elf

View File

@ -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

View File

@ -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
'')

View File

@ -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
''

View File

@ -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" }

View File

@ -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
'')

View File

@ -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"
'')

View File

@ -1,5 +0,0 @@
SERIAL
DEFAULT 0
LABEL 0
KERNEL mboot.c32
APPEND /hypervisor iommu novpid serial --- /image.elf

View File

@ -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/&gt;/>/g'
'')

View File

@ -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

View File

@ -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

View File

@ -192,17 +192,6 @@
shellHook = "exec genode-env"; 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 = nixosModules =
# Modules for composing Genode and NixOS # Modules for composing Genode and NixOS
import ./nixos-modules { flake = self; }; import ./nixos-modules { flake = self; };