2
0
Fork 0

Add nic_bus

This commit is contained in:
Emery Hemingway 2019-10-13 21:34:17 +02:00
parent f63364b9fe
commit 7b7af23809
2 changed files with 74 additions and 1 deletions

View File

@ -8,7 +8,9 @@ let
with self; {
depot = callPackage ./depot { };
dhallPackages = super.dhallPackages // (callPackage ./dhall { });
genode = callPackage ./upstream { };
genode = (callPackage ./upstream { } // {
nic_bus = callPackage ./pkgs/nic_bus { };
});
nova = callPackage ./NOVA { };
solo5 = callPackage ./solo5 { };
};

71
pkgs/nic_bus/default.nix Normal file
View File

@ -0,0 +1,71 @@
# SPDX-FileCopyrightText: Emery Hemingway
#
# SPDX-License-Identifier: LicenseRef-Hippocratic-1.1
{ stdenv, buildPackages, fetchgit, genode, pkgconfig, tup }:
let
tupArch = with stdenv.targetPlatform;
if isAarch32 then "arm" else
if isAarch64 then "arm64" else
if isx86_32 then "i386" else
if isx86_64 then "x86_64" else
abort "unhandled targetPlatform";
toTupConfig = attrs:
with builtins;
let op = config: name: "${config}CONFIG_${name}=${getAttr name attrs} ";
in foldl' op "" (attrNames attrs);
in stdenv.mkDerivation rec {
name = "nic_bus";
version = "1.0";
src = fetchgit {
url = "https://git.sr.ht/~ehmry/nic_bus";
rev = "76881b4fbb99e9a995d1f35a33529ff8f38c89bc";
sha256 = "08fcbfnlg0ljbgv95yd5q70c7xa0sg2k0njv4ygancs7d7f7q4bb";
};
nativeBuildInputs = [ pkgconfig tup ];
buildInputs = [ genode.base genode.os ];
tupConfig = toTupConfig {
TUP_ARCH = tupArch;
VERSION = version;
};
configurePhase = ''
cp -v ${genode.base.src}/Tuprules.tup .
# Configure Tup
echo $tupConfig | tr ' CONFIG_' '\nCONFIG_' > tup.config
echo CONFIG_NIX_OUTPUTS_OUT=$out >> tup.config
echo CONFIG_NIX_OUTPUTS_DEV=$dev >> tup.config
# Scan repository and generate script
tup init
tup generate buildPhase.sh
# Redirect artifacts to Nix store
mkdir -p $out
ln -s $out out
'';
buildPhase = ''
test -d repos/$repo/src/ld && cp -rv repos/$repo/src/ld $dev/
pushd .
set -v
source buildPhase.sh
set +v
popd
'';
dontInstall = true;
meta = with stdenv.lib; {
license = licenses.agpl3;
maintainers = [ maintainers.ehmry ];
};
}