2
0
Fork 0
genodepkgs/packages/default.nix

164 lines
4.4 KiB
Nix

# SPDX-License-Identifier: CC0-1.0
{ system, legacyPackages, depot, apps, dhallApps }:
let
inherit (legacyPackages) callPackage;
dhallPackages = legacyPackages.dhallPackages
// (callPackage ./dhall { inherit dhallApps; });
mkDhallManifest = drv:
legacyPackages.runCommand "${drv.name}.dhall" { inherit drv; }
"${apps.generate-manifest.program} $drv > $out";
addManifest = drv: { manifest = mkDhallManifest drv; } // drv;
callPackage' = path: attrs:
addManifest (legacyPackages.callPackages path attrs);
buildUpstream = let f = import ./genodelabs { nixpkgs = legacyPackages; };
in args: addManifest (f args);
in rec {
inherit (legacyPackages) stdenv;
genode-sources = legacyPackages.callPackage ./genodelabs/sources.nix { };
base-hw-pc = buildUpstream {
name = "base-hw-pc";
KERNEL = "hw";
BOARD = "pc";
targets = [ "bootstrap" "core" "timer" "lib/ld" ];
postInstall = ''
mkdir -p $out/lib
mv $out/bin/*.o $out/lib/
mv $out/lib/ld-hw.lib.so $out/lib/ld.lib.so
'';
};
base-linux = buildUpstream {
name = "base-linux";
KERNEL = "linux";
targets = [ "core" "timer" "lib/ld" ];
postInstall = ''
mkdir -p $out/lib
mv $out/lib/ld-linux.lib.so $out/lib/ld.lib.so
'';
HOST_INC_DIR = legacyPackages.buildPackages.glibc.dev + "/include";
};
base-nova = buildUpstream {
name = "base-nova";
KERNEL = "nova";
targets = [ "core" "timer" "lib/ld" ];
postInstall = ''
mkdir -p $out/lib
mv $out/bin/*.o $out/lib/
mv $out/lib/ld-nova.lib.so $out/lib/ld.lib.so
'';
};
driversPc = let directoryBlacklist = [ "repos/dde_zircon" ];
in buildUpstream {
name = "drivers";
BOARD = "pc";
targets = [ "drivers" ];
ports = [ "dde_bsd" "dde_ipxe" "dde_linux" "libc" "openssl" "x86emu" ];
preBuild = "find ${toString directoryBlacklist} -name target.mk -delete";
};
noux = buildUpstream {
name = "noux";
targets = [ "noux" "lib/libc_noux" ];
ports = [ "libc" ];
};
os = let
directoryBlacklist = [
"repos/dde_bsd"
"repos/dde_ipxe"
"repos/dde_linux"
"repos/dde_rump"
"repos/gems/src/app/mixer_gui_qt"
"repos/gems/src/server/http_block"
"repos/gems/src/server/terminal_mux"
"repos/libports"
"repos/ports"
];
in buildUpstream {
name = "os";
patches = [ ./genodelabs/capslock.patch ];
targets = [ "app" "init" "lib/vfs" "server" ];
ports = [ "jitterentropy" "libc" "libpng" "libssh" "openssl" "stb" "zlib" ];
preBuild = "find ${toString directoryBlacklist} -name target.mk -delete";
nativeBuildInputs = with legacyPackages.buildPackages; [ bison flex ];
};
vfs_lwip = buildUpstream {
name = "lwip";
targets = [ "lib/vfs/lwip" ];
ports = [ "lwip" ];
};
vfs_rump = buildUpstream {
name = "vfs_rump";
targets = [ "lib/vfs/rump" ];
ports = [ "dde_rump" ];
buildInputs = [ legacyPackages.buildPackages.zlib ];
};
vfs_ttf = buildUpstream {
name = "vfs_ttf";
targets = [ "lib/vfs/ttf" ];
ports = [ "libc" "stb" ];
};
virtualbox5 = buildUpstream {
name = "virtualbox5";
targets = [ "virtualbox5" ];
ports = [ "libc" "libiconv" "qemu-usb" "stdcxx" "virtualbox5" ];
nativeBuildInputs = with legacyPackages.buildPackages; [ iasl yasm ];
KERNEL = "nova";
};
genodeTests = let
directoryBlacklist = [
"repos/base-*"
"repos/base/src/test/sanitizer"
"repos/base/src/test/xml_generator"
"repos/gems/src/test/aes_cbc_4k"
"repos/gems/src/test/decorator_stress"
"repos/gems/src/test/text_painter"
"repos/gems/src/test/text_painter"
"repos/gems/src/test/tiled_wm"
"repos/libports"
"repos/ports"
];
in buildUpstream {
name = "genode-tests";
preBuild = "find ${toString directoryBlacklist} -name target.mk -delete";
targets = [ "test" ];
ports = [ "libc" ];
};
bender = legacyPackages.buildPackages.callPackage ./bender { };
dhallGenode = dhallPackages.genode;
dhallPrelude = dhallPackages.prelude;
NOVA = legacyPackages.callPackage ./NOVA { };
libc = callPackage' ./libc { inherit depot; };
solo5 = let drv = callPackage' ./solo5 { };
in drv // { tests = addManifest drv.tests // { pname = "solo5-tests"; }; };
sotest-producer = callPackage' ./sotest-producer { };
stdcxx = callPackage' ./stdcxx { };
}