From 1bb56de88b61592a0485361ce9b0a9d044bff136 Mon Sep 17 00:00:00 2001
From: Valentin Robert <valentin.robert.42@gmail.com>
Date: Tue, 22 Oct 2019 11:19:45 -0700
Subject: [PATCH] coqPackages.coq-bits: init at 20190812

---
 .../coq-modules/coq-bits/default.nix          | 38 +++++++++++++++++++
 pkgs/top-level/coq-packages.nix               |  1 +
 2 files changed, 39 insertions(+)
 create mode 100644 pkgs/development/coq-modules/coq-bits/default.nix

diff --git a/pkgs/development/coq-modules/coq-bits/default.nix b/pkgs/development/coq-modules/coq-bits/default.nix
new file mode 100644
index 000000000000..ed6118dbb55d
--- /dev/null
+++ b/pkgs/development/coq-modules/coq-bits/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, coq, mathcomp-algebra }:
+
+let
+  version = "20190812";
+in
+
+stdenv.mkDerivation {
+  name = "coq${coq.coq-version}-coq-bits-${version}";
+
+  src = fetchFromGitHub {
+    owner = "coq-community";
+    repo = "coq-bits";
+    rev = "f74498a6c67e97d9565e139d62be8eaae7111f06";
+    sha256 = "1ibg37qxgkmpbpvc78qcb179bcnzl149z1kzwdm8n98xk5ibavrf";
+  };
+
+  buildInputs = [ coq ];
+  propagatedBuildInputs = [ mathcomp-algebra ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    make -f Makefile CoqMakefile
+    make -f CoqMakefile COQLIB=$out/lib/coq/${coq.coq-version}/ install
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/coq-community/coq-bits;
+    description = "A formalization of bitset operations in Coq";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ptival ];
+    platforms = coq.meta.platforms;
+  };
+
+  passthru = {
+    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" ];
+  };
+}
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index 96880b15445f..7d17bf3d7167 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -16,6 +16,7 @@ let
       category-theory = callPackage ../development/coq-modules/category-theory { };
       Cheerios = callPackage ../development/coq-modules/Cheerios {};
       CoLoR = callPackage ../development/coq-modules/CoLoR {};
+      coq-bits = callPackage ../development/coq-modules/coq-bits {};
       coq-elpi = callPackage ../development/coq-modules/coq-elpi {};
       coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
       coq-extensible-records = callPackage ../development/coq-modules/coq-extensible-records {};