Move genodeSources from packages to overlay
This commit is contained in:
parent
e0742fef4e
commit
8a74a86599
|
@ -19,12 +19,13 @@ with prev; {
|
||||||
cp ${./cmake/Genode.cmake} $MODULE
|
cp ${./cmake/Genode.cmake} $MODULE
|
||||||
'' else
|
'' else
|
||||||
null;
|
null;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
genodeHeaders = callPackage ./headers { };
|
genodeHeaders = callPackage ./headers { };
|
||||||
genodeLibcCross = callPackage ./libc { stdenv = crossLibcStdenv; };
|
genodeLibcCross = callPackage ./libc { stdenv = crossLibcStdenv; };
|
||||||
|
|
||||||
|
genodeSources = buildPackages.callPackage ./genode { };
|
||||||
|
|
||||||
libcCrossChooser = name:
|
libcCrossChooser = name:
|
||||||
if stdenv.targetPlatform.isGenode then
|
if stdenv.targetPlatform.isGenode then
|
||||||
targetPackages.genodeLibcCross or genodeLibcCross
|
targetPackages.genodeLibcCross or genodeLibcCross
|
||||||
|
|
|
@ -0,0 +1,157 @@
|
||||||
|
{ buildPackages, targetPackages }:
|
||||||
|
with buildPackages;
|
||||||
|
|
||||||
|
let
|
||||||
|
version = "20.02";
|
||||||
|
genodeSources = let
|
||||||
|
platform = targetPackages.targetPlatform;
|
||||||
|
|
||||||
|
arch = with platform;
|
||||||
|
if isx86_64 then
|
||||||
|
"x86_64"
|
||||||
|
else
|
||||||
|
throw "unknown Genode arch for platform ${platform.system}";
|
||||||
|
|
||||||
|
toolPrefix = if platform.isx86 then
|
||||||
|
"genode-x86-"
|
||||||
|
else
|
||||||
|
throw "unknown tool prefix for Genode arch ${arch}";
|
||||||
|
in stdenvNoCC.mkDerivation {
|
||||||
|
pname = "genode-sources";
|
||||||
|
inherit version;
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/genodelabs/genode/archive/${version}.tar.gz";
|
||||||
|
hash = "sha256-ZY9ND6vDA9u127TAv87uOjPuLzRzBPyp5PzD6iM7uNI=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ expect gnumake tcl ];
|
||||||
|
patches = [ ./init.xsd.patch ./svn-trust-server-cert.patch ];
|
||||||
|
configurePhase = ''
|
||||||
|
patchShebangs ./tool
|
||||||
|
substituteInPlace repos/base/etc/tools.conf \
|
||||||
|
--replace "/usr/local/genode/tool/19.05/bin/" ""
|
||||||
|
substituteInPlace tool/check_abi \
|
||||||
|
--replace "exec nm" "exec ${toolPrefix}nm"
|
||||||
|
'';
|
||||||
|
dontBuild = true;
|
||||||
|
installPhase = "cp -a . $out";
|
||||||
|
};
|
||||||
|
|
||||||
|
sourceForgeToolchain = callPackage ./toolchain.nix { };
|
||||||
|
|
||||||
|
stdenv' = targetPackages.stdenvAdapters.overrideCC targetPackages.stdenv
|
||||||
|
sourceForgeToolchain;
|
||||||
|
|
||||||
|
platform = stdenv'.targetPlatform;
|
||||||
|
|
||||||
|
arch = with platform;
|
||||||
|
if isx86_64 then
|
||||||
|
"x86_64"
|
||||||
|
else
|
||||||
|
throw "unknown Genode arch for platform ${platform.system}";
|
||||||
|
|
||||||
|
preparePort = name:
|
||||||
|
{ hash ? "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", ... }@args:
|
||||||
|
stdenvNoCC.mkDerivation (args // {
|
||||||
|
outputHashMode = "recursive";
|
||||||
|
outputHash = hash;
|
||||||
|
pname = name;
|
||||||
|
inherit (genodeSources) version;
|
||||||
|
|
||||||
|
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||||
|
VERBOSE = "";
|
||||||
|
# need to build in verbose mode because errors are hidden
|
||||||
|
|
||||||
|
impureEnvVars = stdenv'.lib.fetchers.proxyImpureEnvVars
|
||||||
|
++ [ "GIT_PROXY_COMMAND" "SOCKS_SERVER" ];
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
dontConfigure = true;
|
||||||
|
|
||||||
|
nativeBuildInputs =
|
||||||
|
[ bison flex gitMinimal glibc glibcLocales rsync wget which ]
|
||||||
|
++ (args.nativeBuildInputs or [ ]);
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
export CONTRIB_DIR=$NIX_BUILD_TOP/contrib
|
||||||
|
mkdir $CONTRIB_DIR
|
||||||
|
${genodeSources}/tool/ports/prepare_port $pname
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
rsync $CONTRIB_DIR/* $out/ \
|
||||||
|
-lr --copy-unsafe-links \
|
||||||
|
--exclude '*.git' \
|
||||||
|
--exclude '*.svn' \
|
||||||
|
--exclude '*.gz' \
|
||||||
|
--exclude '*.xz' \
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
ports = stdenv.lib.mapAttrs preparePort
|
||||||
|
(import ./ports.nix { inherit buildPackages; });
|
||||||
|
|
||||||
|
buildUpstream = { name, targets, portInputs ? [ ], nativeBuildInputs ? [ ]
|
||||||
|
, ... }@extraAttrs:
|
||||||
|
|
||||||
|
let
|
||||||
|
drv = stdenv'.mkDerivation (extraAttrs // {
|
||||||
|
pname = name;
|
||||||
|
inherit (genodeSources) version;
|
||||||
|
inherit targets;
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ binutils bison flex stdenv.cc tcl which ]
|
||||||
|
++ nativeBuildInputs;
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
configurePhase = let
|
||||||
|
linkPorts = toString
|
||||||
|
(builtins.map (drv: " ln -sv ${drv}/* contrib/;") portInputs);
|
||||||
|
in ''
|
||||||
|
runHook preConfigure
|
||||||
|
export CONTRIB_DIR=$NIX_BUILD_TOP/contrib
|
||||||
|
export BUILD_DIR=$NIX_BUILD_TOP/build
|
||||||
|
${genodeSources}/tool/create_builddir ${arch}
|
||||||
|
substituteInPlace build/etc/build.conf \
|
||||||
|
--replace "#REPOSITORIES" "REPOSITORIES"
|
||||||
|
mkdir $CONTRIB_DIR; ${linkPorts}
|
||||||
|
runHook postConfigure
|
||||||
|
'';
|
||||||
|
|
||||||
|
makeFlags = [ "-C build" ] ++ targets;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
find build/bin -name '*.xsd' -delete
|
||||||
|
find build/bin -follow -type f -exec install -Dt $out '{}' \;
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
in drv;
|
||||||
|
|
||||||
|
buildOverrides = callPackage ./targets.nix { inherit ports; };
|
||||||
|
|
||||||
|
in genodeSources // {
|
||||||
|
inherit buildUpstream;
|
||||||
|
inherit ports;
|
||||||
|
toolchain = sourceForgeToolchain;
|
||||||
|
make = target:
|
||||||
|
with builtins;
|
||||||
|
let
|
||||||
|
attrs = if hasAttr target buildOverrides then
|
||||||
|
getAttr target buildOverrides
|
||||||
|
else
|
||||||
|
{ };
|
||||||
|
in buildUpstream ({
|
||||||
|
name = replaceStrings [ "/" ] [ "-" ] target;
|
||||||
|
targets = [ target ];
|
||||||
|
} // attrs);
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
commit 1b8f44e80801bbb8d3dba813b72eed4c6a5a5ca6
|
||||||
|
Author: Emery Hemingway <ehmry@posteo.net>
|
||||||
|
Date: Fri Mar 20 20:10:28 2020 +0530
|
||||||
|
|
||||||
|
part_block: support for up to 128 session
|
||||||
|
|
||||||
|
Allow sessions for each of the 128 sessions supported by GPT.
|
||||||
|
|
||||||
|
Fix #3705
|
||||||
|
|
||||||
|
diff --git a/repos/os/src/server/part_block/main.cc b/repos/os/src/server/part_block/main.cc
|
||||||
|
index a446be31db..56bade6086 100644
|
||||||
|
--- a/repos/os/src/server/part_block/main.cc
|
||||||
|
+++ b/repos/os/src/server/part_block/main.cc
|
||||||
|
@@ -226,7 +226,7 @@ class Block::Main : Rpc_object<Typed_root<Session>>,
|
||||||
|
Gpt _gpt { _env, _block, _heap, _reporter };
|
||||||
|
Partition_table &_partition_table { _table() };
|
||||||
|
|
||||||
|
- enum { MAX_SESSIONS = 32 };
|
||||||
|
+ enum { MAX_SESSIONS = 128 };
|
||||||
|
Session_component *_sessions[MAX_SESSIONS] { };
|
||||||
|
Job_queue<128> _job_queue { };
|
||||||
|
Registry<Block::Job> _job_registry { };
|
|
@ -1,7 +1,6 @@
|
||||||
# ports are superficially similar to Nix, but inferior in every way
|
# ports are superficially similar to Nix, but inferior in every way
|
||||||
|
{ buildPackages }:
|
||||||
nativePkgs:
|
with buildPackages; {
|
||||||
with nativePkgs; {
|
|
||||||
dde_bsd.hash = "sha256-2ilZs6JkcQAvU/sQYnHunGtGRZDt7qLTpKZxQxSOf2I=";
|
dde_bsd.hash = "sha256-2ilZs6JkcQAvU/sQYnHunGtGRZDt7qLTpKZxQxSOf2I=";
|
||||||
dde_ipxe.hash = "sha256-KAmDF2t+xKzkEjWZ1bvLO8O+IlaV0ImuFsd8SIC3UQw=";
|
dde_ipxe.hash = "sha256-KAmDF2t+xKzkEjWZ1bvLO8O+IlaV0ImuFsd8SIC3UQw=";
|
||||||
dde_linux.hash = "sha256-a1oaYF5S8OazyCOu/Jq+YOfrN4Kyb4JesLs222Vanjc=";
|
dde_linux.hash = "sha256-a1oaYF5S8OazyCOu/Jq+YOfrN4Kyb4JesLs222Vanjc=";
|
|
@ -1,8 +1,5 @@
|
||||||
{ buildPackages, ports }:
|
{ buildPackages, ports }:
|
||||||
|
with ports; {
|
||||||
with ports;
|
|
||||||
|
|
||||||
{
|
|
||||||
"app/gpt_write".portInputs = [ jitterentropy ];
|
"app/gpt_write".portInputs = [ jitterentropy ];
|
||||||
|
|
||||||
"app/lighttpd".portInputs = [ libc lighttpd openssl zlib ];
|
"app/lighttpd".portInputs = [ libc lighttpd openssl zlib ];
|
||||||
|
@ -23,7 +20,7 @@ with ports;
|
||||||
"lib/vfs/ttf".portInputs = [ libc stb ];
|
"lib/vfs/ttf".portInputs = [ libc stb ];
|
||||||
"lib/vfs/rump" = {
|
"lib/vfs/rump" = {
|
||||||
portInputs = [ dde_rump ];
|
portInputs = [ dde_rump ];
|
||||||
buildInputs = [ buildPackages.zlib ];
|
buildInputs = with buildPackages; [ zlib ];
|
||||||
};
|
};
|
||||||
|
|
||||||
noux = {
|
noux = {
|
|
@ -3,11 +3,10 @@
|
||||||
{ nixpkgs }:
|
{ nixpkgs }:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (nixpkgs) callPackage;
|
inherit (nixpkgs) callPackage genodeSources;
|
||||||
dhallPackages = nixpkgs.buildPackages.callPackage ./dhall { };
|
inherit (genodeSources) buildUpstream;
|
||||||
|
|
||||||
genodeLabs = import ./genodelabs { inherit nixpkgs; };
|
dhallPackages = nixpkgs.buildPackages.callPackage ./dhall { };
|
||||||
inherit (genodeLabs) buildUpstream;
|
|
||||||
|
|
||||||
buildWorld = let
|
buildWorld = let
|
||||||
genodeWorld = nixpkgs.fetchFromGitHub {
|
genodeWorld = nixpkgs.fetchFromGitHub {
|
||||||
|
@ -17,7 +16,7 @@ let
|
||||||
hash = "sha256-sirmUtLmZ5YnfLKrOvOBafnZW3UW+1LtkiGu85Ma820=";
|
hash = "sha256-sirmUtLmZ5YnfLKrOvOBafnZW3UW+1LtkiGu85Ma820=";
|
||||||
};
|
};
|
||||||
in attrs:
|
in attrs:
|
||||||
buildUpstream (attrs // {
|
genodeSources.buildUpstream (attrs // {
|
||||||
postConfigure =
|
postConfigure =
|
||||||
"echo REPOSITORIES += ${genodeWorld} >> build/etc/build.conf";
|
"echo REPOSITORIES += ${genodeWorld} >> build/etc/build.conf";
|
||||||
});
|
});
|
||||||
|
@ -25,8 +24,7 @@ let
|
||||||
genodeTupRules = ./Tuprules.tup;
|
genodeTupRules = ./Tuprules.tup;
|
||||||
|
|
||||||
in rec {
|
in rec {
|
||||||
inherit (nixpkgs) stdenv;
|
inherit (nixpkgs) stdenv genodeSources;
|
||||||
inherit (genodeLabs) genodeSources; # toolchain;
|
|
||||||
|
|
||||||
base-hw-pc = buildUpstream {
|
base-hw-pc = buildUpstream {
|
||||||
name = "base-hw-pc";
|
name = "base-hw-pc";
|
||||||
|
@ -66,7 +64,7 @@ in rec {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
init = genodeSources.make "init";
|
init = nixpkgs.genodeSources.make "init";
|
||||||
|
|
||||||
ssh_client = buildWorld {
|
ssh_client = buildWorld {
|
||||||
name = "ssh_client";
|
name = "ssh_client";
|
||||||
|
|
|
@ -1,156 +0,0 @@
|
||||||
{ nixpkgs }:
|
|
||||||
|
|
||||||
let
|
|
||||||
genodeSources = let
|
|
||||||
inherit (nixpkgs) stdenv;
|
|
||||||
platform = stdenv.targetPlatform;
|
|
||||||
|
|
||||||
arch = with platform;
|
|
||||||
if isx86_64 then
|
|
||||||
"x86_64"
|
|
||||||
else
|
|
||||||
throw "unknown Genode arch for platform ${platform.system}";
|
|
||||||
|
|
||||||
toolPrefix = if platform.isx86 then
|
|
||||||
"genode-x86-"
|
|
||||||
else
|
|
||||||
throw "unknown tool prefix for Genode arch ${arch}";
|
|
||||||
in stdenv.mkDerivation {
|
|
||||||
pname = "genode-sources";
|
|
||||||
inherit (nixpkgs.genodeHeaders) src version;
|
|
||||||
nativeBuildInputs = with nixpkgs.buildPackages; [ expect gnumake tcl ];
|
|
||||||
patches = [ ./init.xsd.patch ./svn-trust-server-cert.patch ];
|
|
||||||
configurePhase = ''
|
|
||||||
patchShebangs ./tool
|
|
||||||
substituteInPlace repos/base/etc/tools.conf \
|
|
||||||
--replace "/usr/local/genode/tool/19.05/bin/" ""
|
|
||||||
substituteInPlace tool/check_abi \
|
|
||||||
--replace "exec nm" "exec ${toolPrefix}nm"
|
|
||||||
'';
|
|
||||||
dontBuild = true;
|
|
||||||
installPhase = "cp -a . $out";
|
|
||||||
};
|
|
||||||
|
|
||||||
sourceForgeToolchain = nixpkgs.buildPackages.callPackage ./toolchain.nix { };
|
|
||||||
|
|
||||||
stdenv' =
|
|
||||||
nixpkgs.stdenvAdapters.overrideCC nixpkgs.stdenv sourceForgeToolchain;
|
|
||||||
|
|
||||||
platform = stdenv'.targetPlatform;
|
|
||||||
|
|
||||||
arch = with platform;
|
|
||||||
if isx86_64 then
|
|
||||||
"x86_64"
|
|
||||||
else
|
|
||||||
throw "unknown Genode arch for platform ${platform.system}";
|
|
||||||
|
|
||||||
preparePort = name:
|
|
||||||
{ hash ? "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", ... }@args:
|
|
||||||
nixpkgs.buildPackages.stdenv.mkDerivation (args // {
|
|
||||||
outputHashMode = "recursive";
|
|
||||||
outputHash = hash;
|
|
||||||
pname = name;
|
|
||||||
inherit (genodeSources) version;
|
|
||||||
|
|
||||||
GIT_SSL_CAINFO =
|
|
||||||
"${nixpkgs.buildPackages.cacert}/etc/ssl/certs/ca-bundle.crt";
|
|
||||||
VERBOSE = "";
|
|
||||||
# need to build in verbose mode because errors are hidden
|
|
||||||
|
|
||||||
impureEnvVars = stdenv'.lib.fetchers.proxyImpureEnvVars
|
|
||||||
++ [ "GIT_PROXY_COMMAND" "SOCKS_SERVER" ];
|
|
||||||
|
|
||||||
dontUnpack = true;
|
|
||||||
dontConfigure = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = with nixpkgs.buildPackages;
|
|
||||||
[ bison flex gitMinimal glibc glibcLocales rsync wget which ]
|
|
||||||
++ (args.nativeBuildInputs or [ ]);
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
runHook preBuild
|
|
||||||
export CONTRIB_DIR=$NIX_BUILD_TOP/contrib
|
|
||||||
mkdir $CONTRIB_DIR
|
|
||||||
${genodeSources}/tool/ports/prepare_port $pname
|
|
||||||
runHook postBuild
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
rsync $CONTRIB_DIR/* $out/ \
|
|
||||||
-lr --copy-unsafe-links \
|
|
||||||
--exclude '*.git' \
|
|
||||||
--exclude '*.svn' \
|
|
||||||
--exclude '*.gz' \
|
|
||||||
--exclude '*.xz' \
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
|
|
||||||
ports =
|
|
||||||
nixpkgs.lib.mapAttrs preparePort (import ./ports.nix nixpkgs.buildPackages);
|
|
||||||
|
|
||||||
buildUpstream = { name, targets, portInputs ? [ ], nativeBuildInputs ? [ ]
|
|
||||||
, ... }@extraAttrs:
|
|
||||||
|
|
||||||
stdenv'.mkDerivation (extraAttrs // {
|
|
||||||
pname = name;
|
|
||||||
inherit (genodeSources) version;
|
|
||||||
inherit targets;
|
|
||||||
|
|
||||||
dontUnpack = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = with nixpkgs.buildPackages;
|
|
||||||
[ binutils bison flex stdenv.cc tcl which ] ++ nativeBuildInputs;
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
configurePhase = let
|
|
||||||
linkPorts = toString
|
|
||||||
(builtins.map (drv: " ln -sv ${drv}/* contrib/;") portInputs);
|
|
||||||
in ''
|
|
||||||
runHook preConfigure
|
|
||||||
export CONTRIB_DIR=$NIX_BUILD_TOP/contrib
|
|
||||||
export BUILD_DIR=$NIX_BUILD_TOP/build
|
|
||||||
${genodeSources}/tool/create_builddir ${arch}
|
|
||||||
substituteInPlace build/etc/build.conf \
|
|
||||||
--replace "#REPOSITORIES" "REPOSITORIES"
|
|
||||||
mkdir $CONTRIB_DIR; ${linkPorts}
|
|
||||||
runHook postConfigure
|
|
||||||
'';
|
|
||||||
|
|
||||||
makeFlags = [ "-C build" ] ++ targets;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
find build/bin -name '*.xsd' -delete
|
|
||||||
find build/bin -follow -type f -exec install -Dt $out '{}' \;
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
|
|
||||||
buildOverrides = import ./targets.nix {
|
|
||||||
inherit (nixpkgs) buildPackages;
|
|
||||||
inherit ports;
|
|
||||||
};
|
|
||||||
|
|
||||||
in {
|
|
||||||
inherit buildUpstream;
|
|
||||||
genodeSources = genodeSources // {
|
|
||||||
make = target:
|
|
||||||
with builtins;
|
|
||||||
let
|
|
||||||
attrs = if hasAttr target buildOverrides then
|
|
||||||
getAttr target buildOverrides
|
|
||||||
else
|
|
||||||
{ };
|
|
||||||
in buildUpstream ({
|
|
||||||
name = builtins.replaceStrings [ "/" ] [ "-" ] target;
|
|
||||||
targets = [ target ];
|
|
||||||
} // attrs);
|
|
||||||
inherit ports;
|
|
||||||
toolchain = sourceForgeToolchain;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue