From ff1b87f627841e6eab253f0a4dbe6b796b2e7a8c Mon Sep 17 00:00:00 2001
From: Daniel Firth <dan.firth@homotopic.tech>
Date: Sun, 16 Oct 2022 15:08:53 +0100
Subject: [PATCH] cabal2nix: init at b3ae6f9240d07ba103f1eb7ab22f6055e9cdb7dc

---
 manifest.dhall     |  5 +++++
 overlay.nix        |  2 ++
 pkgs/cabal2nix.nix | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 53 insertions(+)
 create mode 100644 pkgs/cabal2nix.nix

diff --git a/manifest.dhall b/manifest.dhall
index 70443bb1..4f1da632 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -89,6 +89,11 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "cabal-doctest" "1.0.9"
     , callHackage "cabal-install" "3.8.1.0"
     , callHackage "cabal-install-solver" "3.8.1.0"
+    , callCabal2nix
+        "cabal2nix"
+        "https://github.com/NixOS/cabal2nix"
+        (None Text)
+        (Some "cabal2nix")
     , callHackage "cereal" "0.5.8.3"
     , callHackage "cborg" "0.2.8.0"
     , callHackage "cborg-json" "0.2.5.0"
diff --git a/overlay.nix b/overlay.nix
index 4d0074cf..bb6dca0b 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -61,6 +61,8 @@ final: prev: with pkgs.haskell.lib; {
 
     cabal-install-solver = prev.callPackage (./pkgs/cabal-install-solver.nix) { };
 
+    cabal2nix = prev.callPackage (./pkgs/cabal2nix.nix) { };
+
     cborg = prev.callPackage (./pkgs/cborg.nix) { };
 
     cborg-json = prev.callPackage (./pkgs/cborg-json.nix) { };
diff --git a/pkgs/cabal2nix.nix b/pkgs/cabal2nix.nix
new file mode 100644
index 00000000..ac9e5ae1
--- /dev/null
+++ b/pkgs/cabal2nix.nix
@@ -0,0 +1,46 @@
+{ mkDerivation, aeson, ansi-wl-pprint, base, bytestring, Cabal
+, containers, deepseq, directory, distribution-nixpkgs, fetchgit
+, filepath, hackage-db, hopenssl, hpack, language-nix, lens, lib
+, monad-par, monad-par-extras, mtl, optparse-applicative, pretty
+, process, split, tasty, tasty-golden, text, time, transformers
+, yaml
+}:
+mkDerivation {
+  pname = "cabal2nix";
+  version = "2.19.0";
+  src = fetchgit {
+    url = "https://github.com/NixOS/cabal2nix";
+    sha256 = "0ym6lyp4br57442b6a9cg9bczbjqz8nz984rxwiacldqzndk8jbr";
+    rev = "b3ae6f9240d07ba103f1eb7ab22f6055e9cdb7dc";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/cabal2nix/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson ansi-wl-pprint base bytestring Cabal containers deepseq
+    directory distribution-nixpkgs filepath hackage-db hopenssl hpack
+    language-nix lens optparse-applicative pretty process split text
+    time transformers yaml
+  ];
+  executableHaskellDepends = [
+    aeson base bytestring Cabal containers directory
+    distribution-nixpkgs filepath hopenssl language-nix lens monad-par
+    monad-par-extras mtl optparse-applicative pretty
+  ];
+  testHaskellDepends = [
+    base Cabal containers directory filepath language-nix lens pretty
+    process tasty tasty-golden
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  preCheck = ''
+    export PATH="$PWD/dist/build/cabal2nix:$PATH"
+    export HOME="$TMPDIR/home"
+  '';
+  homepage = "https://github.com/nixos/cabal2nix#readme";
+  description = "Convert Cabal files into Nix build instructions";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
-- 
GitLab