From 62abcf8e6d748b75b913f4e065567aa43f227cdc Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 22 Oct 2020 19:58:10 +0200 Subject: [PATCH] Prepare ports using x86_64-linux nixpkgs --- flake.nix | 5 ++++- overlay/default.nix | 10 +++++++--- packages/default.nix | 4 ++-- packages/genodelabs/default.nix | 6 ++++-- packages/genodelabs/ports.nix | 14 ++++++++------ 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/flake.nix b/flake.nix index 7586cea..4c9b6c8 100644 --- a/flake.nix +++ b/flake.nix @@ -58,7 +58,10 @@ overlay = # Overlay of fixes applied to Nixpkgs - import ./overlay genode; + import ./overlay { + upstreamSources = genode; + pinnedPackages = nixpkgs.legacyPackages.x86_64-linux; + }; lib = # Local utilities merged with the Nixpkgs lib diff --git a/overlay/default.nix b/overlay/default.nix index efd91d5..fe69ab8 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -1,4 +1,5 @@ -upstreamSources: final: prev: +{ upstreamSources, pinnedPackages }: +final: prev: with prev; let overrideHost = drv: attrs: @@ -62,10 +63,13 @@ in { genodeLibcCross = callPackage ./libc { }; - genodePackages = import ../packages { nixpkgs = final; }; + genodePackages = import ../packages { + inherit pinnedPackages; + nixpkgs = final; + }; genodeSources = buildPackages.callPackage ../packages/genodelabs { - inherit upstreamSources; + inherit upstreamSources pinnedPackages; }; libcCrossChooser = name: diff --git a/packages/default.nix b/packages/default.nix index 83146fe..4e296f2 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -1,11 +1,11 @@ -{ nixpkgs }: +{ pinnedPackages, nixpkgs }: let inherit (nixpkgs) buildPackages callPackage fetchFromGitHub fetchgit genodeSources stdenv; inherit (genodeSources) buildUpstream; - dhallPackages = buildPackages.callPackage ./dhall { }; + dhallPackages = pinnedPackages.callPackage ./dhall { }; buildDepotWorld = let genodeWorld = fetchFromGitHub { diff --git a/packages/genodelabs/default.nix b/packages/genodelabs/default.nix index 2fa1768..f345e30 100644 --- a/packages/genodelabs/default.nix +++ b/packages/genodelabs/default.nix @@ -1,4 +1,4 @@ -{ upstreamSources, buildPackages, targetPackages }: +{ upstreamSources, pinnedPackages, buildPackages, targetPackages }: let platform = targetPackages.targetPlatform; @@ -114,7 +114,9 @@ let }); ports = - lib.mapAttrs preparePort (import ./ports.nix { inherit buildPackages; }); + lib.mapAttrs preparePort (import ./ports.nix { pkgs = pinnedPackages; }); + # The "ports" mechanism is hardly deterministic, so prepare with + # a pinned nixpkgs revision for a pinned platform. toolchain = callPackage ./toolchain.nix { }; diff --git a/packages/genodelabs/ports.nix b/packages/genodelabs/ports.nix index 3c08b5e..9b8a1a3 100644 --- a/packages/genodelabs/ports.nix +++ b/packages/genodelabs/ports.nix @@ -1,15 +1,17 @@ # This file specifies the output hashes of "Ports". # Ports not listed here can still be prepared, but will result in a hash mismatch. -{ buildPackages }: -with buildPackages; { +{ pkgs }: +with pkgs; + +{ binutils = { - hash = "sha256-5JpEsIAe3GOZVb8kTMlfhmzku+aGs4/BttMu4xLsnsI="; + hash = "sha256-ERzYT3TjbK3fzRVN1UE7RM6XiPPeMKzkeulKx5IQa2o="; nativeBuildInputs = [ autoconf ]; }; dde_bsd.hash = "sha256-Z2piyoOrNmXyEEp+kX5w/q4JTylYdSOocUrFeqjz13A="; dde_ipxe.hash = "sha256-NJ129+DkxFg1fFHJBABBFRRjqEVNSz6v2hEB80AuEM4="; - dde_linux.hash = "sha256-aUp90z8dtn48QNUqGe1b08RzbESFmCJl7ECZf+lr0rg="; + dde_linux.hash = "sha256-xHAgeKfArgMGKCGHi0762qkUcY97vbiAQYjM/ZRXCes="; dde_rump = { hash = "sha256-Wr5otGkWEa+5xImsFHQzwap5LckNEbyWA/7xbNcOreI="; nativeBuildInputs = [ subversion ]; @@ -17,7 +19,7 @@ with buildPackages; { }; expat.hash = "sha256-KpeM2ySmf+Ojx1mAj9n8lfX7iHaa7w5MPPKZcn4GpTc="; gcc = { - hash = "sha256-ZF9P6xOHvSDN6oq4SN5jOEBBMGgGh6fXyDOgYdXHG1g="; + hash = "sha256-1AKjUbh8X5ips8pg0twpBTtc2qCVXGrbifJ/cf3yRcE="; nativeBuildInputs = [ autoconf264 autogen ]; patches = [ ./gcc-port.patch ]; }; @@ -27,7 +29,7 @@ with buildPackages; { jpeg.hash = "sha256-RLVnlrnYGrhqr3Feikoi/BNditCaKN0u3t9/UDpl2wQ="; libc = { hash = "sha256-BSZcO25jbH8+OkJWGyJxxVYuQ4Y3yDt0DNsYcITwqxA="; - nativeBuildInputs = [ buildPackages.gcc ]; + nativeBuildInputs = [ gcc ]; }; libiconv.hash = "sha256-25YcW5zo1fE33ZolGQroR+KZO8wHEdN1QXa7+MhwS78="; libpng.hash = "sha256-hNmSWN4gEk4UIjzkGD4j5qFooMCVXLwcBeOeFumvh+4=";