diff --git a/flake.lock b/flake.lock index 19dc495..dff3335 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "genode": { + "flake": false, + "locked": { + "lastModified": 1602243357, + "narHash": "sha256-1Q3D8W8xujTW38CxhXvQIFfxeKuLvBoCzmROiMPxVKA=", + "owner": "genodelabs", + "repo": "genode", + "rev": "91f82816189c1aad5d03168cc86c4b4946787b5c", + "type": "github" + }, + "original": { + "owner": "genodelabs", + "repo": "genode", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1602590008, @@ -18,6 +34,7 @@ }, "root": { "inputs": { + "genode": "genode", "nixpkgs": "nixpkgs" } } diff --git a/flake.nix b/flake.nix index 0411e8b..7586cea 100644 --- a/flake.nix +++ b/flake.nix @@ -1,9 +1,14 @@ { description = "Genode packages"; + inputs.genode = { + url = "github:genodelabs/genode"; + flake = false; + }; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/release-20.09"; - outputs = { self, nixpkgs }: + outputs = { self, genode, nixpkgs }: let localSystems = [ "x86_64-linux" ]; crossSystems = [ "aarch64-genode" "x86_64-genode" ]; @@ -53,7 +58,7 @@ overlay = # Overlay of fixes applied to Nixpkgs - import ./overlay; + import ./overlay genode; lib = # Local utilities merged with the Nixpkgs lib diff --git a/overlay/default.nix b/overlay/default.nix index 86f8191..efd91d5 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -1,6 +1,9 @@ -final: prev: +upstreamSources: final: prev: with prev; let + overrideHost = drv: attrs: + if hostPlatform.isGenode then drv.override attrs else drv; + overrideHostAttrs = drv: f: if hostPlatform.isGenode then drv.overrideAttrs f else drv; @@ -61,7 +64,9 @@ in { genodePackages = import ../packages { nixpkgs = final; }; - genodeSources = buildPackages.callPackage ../packages/genodelabs { }; + genodeSources = buildPackages.callPackage ../packages/genodelabs { + inherit upstreamSources; + }; libcCrossChooser = name: if stdenv.targetPlatform.isGenode then diff --git a/packages/genodelabs/cached_fs_rom.patch b/packages/genodelabs/cached_fs_rom.patch deleted file mode 100644 index f1b8638..0000000 --- a/packages/genodelabs/cached_fs_rom.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit 72032b25e153fe736b07670d4cf5d49a77e606db -Author: Emery Hemingway -Date: Fri May 29 17:39:05 2020 +0530 - - cached_fs_rom: diagnosis of delivered ROM sessions - - To enable logging of ROM session deliveries, set the "diag" on - session routes: - - - - - - … - - - Fix #3772 - -diff --git a/repos/os/src/server/cached_fs_rom/main.cc b/repos/os/src/server/cached_fs_rom/main.cc -index 392ff8aecb..9e4e4d0eee 100755 ---- a/repos/os/src/server/cached_fs_rom/main.cc -+++ b/repos/os/src/server/cached_fs_rom/main.cc -@@ -394,6 +394,8 @@ struct Cached_fs_rom::Main final : Genode::Session_request_handler - /* Create new RPC object */ - Session_component *session = new (heap) - Session_component(*rom, sessions, id, label); -+ if (session_diag_from_args(args.string()).enabled) -+ log("deliver ROM \"", label, "\""); - env.parent().deliver_session_cap(pid, env.ep().manage(*session)); - - } else if (!rom->transfer) { diff --git a/packages/genodelabs/default.nix b/packages/genodelabs/default.nix index afd5184..2fa1768 100644 --- a/packages/genodelabs/default.nix +++ b/packages/genodelabs/default.nix @@ -1,9 +1,6 @@ -{ buildPackages, targetPackages }: +{ upstreamSources, buildPackages, targetPackages }: let - version = "20.08"; - # Update ./port-versions.nix bumping the version and updateing the sources. - platform = targetPackages.targetPlatform; arch = with platform; @@ -19,7 +16,6 @@ let genodeSources = # The Genode source repository let - toolPrefix = if platform.isx86 then "genode-x86-" else if platform.isAarch64 then @@ -29,11 +25,8 @@ let in with buildPackages; stdenvNoCC.mkDerivation { pname = "genode-sources"; - inherit version; - src = fetchurl { - url = "https://github.com/genodelabs/genode/archive/${version}.tar.gz"; - hash = "sha256-tFuLVuaN5F9lAEtn0lpd0MgPQpOcFixOtOsQ/z4TwPI="; - }; + version = upstreamSources.lastModifiedDate; + src = upstreamSources; nativeBuildInputs = [ expect gnumake tcl ]; patches = [ ./LIB.patch ./binary-labels.patch ]; configurePhase = '' @@ -56,6 +49,8 @@ let installPhase = "cp -a . $out"; }; + portVersions = import "${genodeSources}/ports.nix"; + preparePort = # Prepare a "port" of source code declared in the Genode sources name: @@ -63,7 +58,7 @@ let , patches ? [ ], ... }@args: let havePatches = patches != [ ]; - version = (import ./port-versions.nix).${name}; + version = portVersions.${name}; in with buildPackages; stdenvNoCC.mkDerivation (args // { name = name + "-port-" + version; diff --git a/packages/genodelabs/port-versions.nix b/packages/genodelabs/port-versions.nix deleted file mode 100644 index 573edbb..0000000 --- a/packages/genodelabs/port-versions.nix +++ /dev/null @@ -1,94 +0,0 @@ -# The file is generated by the "genodeSources" derivation. -{ - acpica = "5c1c54"; - ada-runtime = "fabce1"; - bash = "02edac"; - bbl = "b9358c"; - binutils = "62d309"; - bzip2 = "f755da"; - ccid = "7a9fb9"; - coreutils = "0c59a9"; - curl = "782b9a"; - dde_bsd = "823dbe"; - dde_ipxe = "b68f4e"; - dde_linux = "173719"; - dde_rump = "9afe56"; - diffutils = "ee502a"; - drm = "01858a"; - e2fsprogs = "2a09cd"; - e2fsprogs-lib = "9b9fa0"; - egl_api = "783c19"; - expat = "eff6ef"; - fatfs = "973b91"; - ffi = "f406cb"; - fiasco = "386db7"; - findutils = "6707e8"; - foc = "ce2d3e"; - freetype = "35b677"; - fribidi = "389935"; - gcc = "20345a"; - gcov = "a6f852"; - gdb = "8eddf0"; - gmp = "855680"; - gnupg = "c784d4"; - grep = "b96a88"; - grub2 = "856f99"; - icu = "62f13b"; - jbig2dec = "682269"; - jitterentropy = "6017e1"; - jpeg = "5effdd"; - less = "e7a42c"; - libarchive = "7ce310"; - libc = "771dcc"; - libdrm = "c1cce0"; - libgcrypt = "37159a"; - libiconv = "3f5ca3"; - libpng = "ac05f3"; - libsparkcrypto = "924de3"; - libssh = "a475cc"; - libusb = "633358"; - libyaml = "1cde80"; - lighttpd = "0665ee"; - lua = "db8c61"; - lwip = "6e0661"; - lz4 = "d99c3d"; - make = "c8beff"; - mesa = "6835d6"; - microcode_intel = "027883"; - mpc = "989fb4"; - mpfr = "923771"; - muen = "6ee775"; - mupdf = "5b4925"; - ncurses = "7873b9"; - netperf = "7b5692"; - nova = "e1ea2d"; - okl4 = "cbf5e3"; - openjpeg = "721d10"; - openssl = "82ec04"; - pcg-c = "721366"; - pcre = "11003e"; - pcsc-lite = "405b75"; - pistachio = "68c8c3"; - qemu-usb = "2ff18f"; - qoost = "014d68"; - qt5 = "1b1c56"; - qt5-host = "21e078"; - readline = "a0bfb0"; - sanitizer = "3ac05b"; - sed = "459979"; - sel4 = "793548"; - sel4_tools = "4ee1b9"; - seoul = "e8d696"; - stb = "ab8f50"; - stdcxx = "722e94"; - tar = "19aea4"; - tcl = "842b1a"; - ttf-bitstream-vera = "cd3684"; - uboot = "f3fd6b"; - vim = "53caaa"; - virtualbox5 = "e60d97"; - which = "91c953"; - x86emu = "8a1c3a"; - xz = "45203f"; - zlib = "f7aef1"; -} diff --git a/packages/genodelabs/ports.nix b/packages/genodelabs/ports.nix index 000ee0c..3c08b5e 100644 --- a/packages/genodelabs/ports.nix +++ b/packages/genodelabs/ports.nix @@ -26,7 +26,7 @@ with buildPackages; { jitterentropy.hash = "sha256-6KS732GxtUMz0xPYKtshdn039DgdJq11vTDQesZn4Ds="; jpeg.hash = "sha256-RLVnlrnYGrhqr3Feikoi/BNditCaKN0u3t9/UDpl2wQ="; libc = { - hash = "sha256-bD0Kqho7ABMHxFYOAkQlvJgzSIsomy5OTtpKE+JAVUY="; + hash = "sha256-BSZcO25jbH8+OkJWGyJxxVYuQ4Y3yDt0DNsYcITwqxA="; nativeBuildInputs = [ buildPackages.gcc ]; }; libiconv.hash = "sha256-25YcW5zo1fE33ZolGQroR+KZO8wHEdN1QXa7+MhwS78="; diff --git a/packages/genodelabs/targets.nix b/packages/genodelabs/targets.nix index af0c69c..9d62b5a 100644 --- a/packages/genodelabs/targets.nix +++ b/packages/genodelabs/targets.nix @@ -15,6 +15,8 @@ let }; in { + cached_fs_rom = { }; + fb_sdl = with buildPackages; { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ SDL ]; @@ -77,7 +79,7 @@ in { vesa_drv.portInputs = [ libc x86emu ]; vfs.outputs = [ "out" "lib" ]; - + vfs_block = { }; vfs_import.patches = [ ./vfs_import.patch ]; vfs_jitterentropy.portInputs = [ jitterentropy libc ]; vfs_lwip.portInputs = [ lwip ];