Remove unused apps output from flake
This commit is contained in:
parent
ebc724565b
commit
7a172c23c9
135
apps/default.nix
135
apps/default.nix
|
@ -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
|
||||
{ })
|
|
@ -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 ']'
|
||||
''
|
|
@ -1,6 +0,0 @@
|
|||
{ writeScriptBin, runtimeShell }:
|
||||
|
||||
writeScriptBin "genode-make" ''
|
||||
#!${runtimeShell}
|
||||
exec nix build -f ${./make.nix} --argstr target $@
|
||||
'' + "/bin/genode-make"
|
|
@ -1,5 +0,0 @@
|
|||
{ target }:
|
||||
let
|
||||
flake = getFlake "genodepkgs";
|
||||
pkgs = flake.packages."${builtins.currentSystem}-x86_64-genode";
|
||||
in pkgs.genodeSources.make target
|
|
@ -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
|
||||
'')
|
|
@ -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"
|
||||
'')
|
|
@ -1,5 +0,0 @@
|
|||
SERIAL
|
||||
DEFAULT 0
|
||||
LABEL 0
|
||||
KERNEL mboot.c32
|
||||
APPEND /image.elf
|
|
@ -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
|
|
@ -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
|
||||
'')
|
|
@ -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
|
||||
''
|
|
@ -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" }
|
|
@ -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
|
||||
'')
|
|
@ -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"
|
||||
'')
|
|
@ -1,5 +0,0 @@
|
|||
SERIAL
|
||||
DEFAULT 0
|
||||
LABEL 0
|
||||
KERNEL mboot.c32
|
||||
APPEND /hypervisor iommu novpid serial --- /image.elf
|
|
@ -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'
|
||||
'')
|
|
@ -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
|
|
@ -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
|
11
flake.nix
11
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; };
|
||||
|
|
Loading…
Reference in New Issue
Block a user