From a60e1678547bc1fea87fbffa9bdabc7554443f64 Mon Sep 17 00:00:00 2001
From: Daniel Firth <dan.firth@homotopic.tech>
Date: Wed, 7 Sep 2022 17:15:03 +0100
Subject: [PATCH] Add cabal-install

---
 flake.lock  | 40 +++++++++++++++++++++++++++++++++++++---
 flake.nix   |  8 ++++++++
 overlay.nix | 22 ++++++++++++++++++++++
 3 files changed, 67 insertions(+), 3 deletions(-)

diff --git a/flake.lock b/flake.lock
index 20db56ab..d7d155c7 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,13 +1,29 @@
 {
   "nodes": {
+    "Cabal": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1662549552,
+        "narHash": "sha256-fdRnETbubWa2AOf+BdOZcdSGtk2hPHO6pH7jHBu8+KI=",
+        "ref": "refs/heads/master",
+        "rev": "a7e765d1a6f7f82a34260995c530d379e0c9ea5c",
+        "revCount": 13157,
+        "type": "git",
+        "url": "https://gitlab.haskell.org/ghc/packages/Cabal"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.haskell.org/ghc/packages/Cabal"
+      }
+    },
     "all-cabal-hashes": {
       "flake": false,
       "locked": {
-        "lastModified": 1662368445,
-        "narHash": "sha256-nVDdIRNExuW6kP0DFdwabEQ3GyjtXIFHlJRL/IrUApA=",
+        "lastModified": 1662566277,
+        "narHash": "sha256-Wxi447ZGcw34aoxpRUzRKQcqCPhFQ2FOXT31+Ub35g4=",
         "owner": "commercialhaskell",
         "repo": "all-cabal-hashes",
-        "rev": "6c052bdfafe635c6ff6a3f4cbf0f00b34d015734",
+        "rev": "482937dc140cde0ec4ad970ddb25f24e1bb32e39",
         "type": "github"
       },
       "original": {
@@ -67,6 +83,22 @@
         "type": "github"
       }
     },
+    "ed25519": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1662566127,
+        "narHash": "sha256-0e9yAWm2VLyFNtgaC1+WpneARrTfWUqeN2Hv0OW42+U=",
+        "ref": "refs/heads/master",
+        "rev": "faf8fe90aa1cd2492ea1e64c55f5c59fc0322210",
+        "revCount": 2,
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/adopted/ed25519"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/adopted/ed25519"
+      }
+    },
     "flake-parts": {
       "inputs": {
         "nixpkgs": [
@@ -218,10 +250,12 @@
     },
     "root": {
       "inputs": {
+        "Cabal": "Cabal",
         "all-cabal-hashes": "all-cabal-hashes",
         "cborg": "cborg",
         "doctest": "doctest",
         "double-conversion": "double-conversion",
+        "ed25519": "ed25519",
         "flake-parts": "flake-parts",
         "flake-utils": "flake-utils",
         "haskell-flake": "haskell-flake",
diff --git a/flake.nix b/flake.nix
index ed9b021d..6877185f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,5 +1,9 @@
 {
   inputs = {
+    Cabal = {
+      url = "git+https://gitlab.haskell.org/ghc/packages/Cabal";
+      flake = false;
+    };
     all-cabal-hashes = {
       url = "github:commercialhaskell/all-cabal-hashes?ref=hackage";
       flake = false;
@@ -16,6 +20,10 @@
       url = "github:haskell/double-conversion";
       flake = false;
     };
+    ed25519 = {
+      url = "git+https://gitlab.homotopic.tech/horizon/adopted/ed25519";
+      flake = false;
+    };
     flake-parts.url = "github:hercules-ci/flake-parts";
     flake-parts.inputs.nixpkgs.follows = "nixpkgs";
     lint-utils.url = "git+https://gitlab.homotopic.tech/nix/lint-utils";
diff --git a/overlay.nix b/overlay.nix
index 4d388eb8..924c5a0a 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -3,8 +3,18 @@ final: prev: with pkgs.haskell.lib; {
 
   Cabal = prev.callHackage "Cabal" "3.8.1.0" { };
 
+  Cabal-QuickCheck = prev.callCabal2nix "Cabal-QuickCheck" (inputs.Cabal + /Cabal-QuickCheck) { };
+
+  Cabal-described = prev.callCabal2nix "Cabal-described" (inputs.Cabal + /Cabal-described) { };
+
+  Cabal-syntax = prev.callHackage "Cabal-syntax" "3.8.1.0" { };
+
+  Cabal-tree-diff = prev.callCabal2nix "Cabal-tree-diff" (inputs.Cabal + /Cabal-tree-diff) { };
+
   ChasingBottoms = prev.callHackage "ChasingBottoms" "1.3.1.12" { };
 
+  HTTP = dontCheck (prev.callHackage "HTTP" "4000.4.1" { });
+
   JuicyPixels = prev.callHackage "JuicyPixels" "3.3.8" { };
 
   OneTuple = prev.callHackage "OneTuple" "0.3.1" { };
@@ -41,6 +51,10 @@ final: prev: with pkgs.haskell.lib; {
 
   cabal-doctest = prev.callHackage "cabal-doctest" "1.0.9" { };
 
+  cabal-install = doJailbreak (dontCheck (prev.callHackage "cabal-install" "3.8.1.0" { }));
+
+  cabal-install-solver = doJailbreak (prev.callHackage "cabal-install-solver" "3.8.1.0" { });
+
   cborg = doJailbreak (prev.callCabal2nix "cborg" (inputs.cborg + /cborg) { });
 
   cborg-json = doJailbreak (prev.callCabal2nix "cborg-json" (inputs.cborg + /cborg-json) { });
@@ -84,6 +98,8 @@ final: prev: with pkgs.haskell.lib; {
 
   double-conversion = prev.callCabal2nix "double-conversion" inputs.double-conversion { };
 
+  ed25519 = dontCheck (prev.callCabal2nix "ed25519" inputs.ed25519 { });
+
   email-validate = doJailbreak (dontCheck (prev.callHackage "email-validate" "2.3.2.16" { }));
 
   effectful-core = prev.callHackage "effectful-core" "2.1.0.0" { };
@@ -110,10 +126,16 @@ final: prev: with pkgs.haskell.lib; {
 
   ghc-byteorder = doJailbreak (prev.callHackage "ghc-byteorder" "4.11.0.0.10" { });
 
+  ghc-lib-parser = doJailbreak (prev.callHackage "ghc-lib-parser" "9.4.2.20220822" { });
+
+  ghc-lib-parser-ex = doJailbreak (prev.callHackage "ghc-lib-parser-ex" "9.4.0.0" { });
+
   ghc-paths = prev.callHackage "ghc-paths" "0.1.0.12" { };
 
   ghc-tcplugins-extra = prev.callHackage "ghc-tcplugins-extra" "0.4.3" { };
 
+  hackage-security = doJailbreak (prev.callHackage "hackage-security" "0.6.2.2" { });
+
   hashable = prev.callHackage "hashable" "1.4.1.0" { };
 
   hashtables = prev.callHackage "hashtables" "1.3" { };
-- 
GitLab