about summary refs log tree commit diff
path: root/pkgs/applications/version-management
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-04-04 10:31:00 +0000
committerAlyssa Ross <hi@alyssa.is>2020-04-07 09:07:12 +0000
commitfafac02e4175c6c12101e02596045188413b4d8a (patch)
tree9ca172a0eb05b9fdcc1653b193c0625e19aa81e4 /pkgs/applications/version-management
parent9ba63260fd407dc0f6c724f3b2246546f41225d1 (diff)
downloadnixlib-fafac02e4175c6c12101e02596045188413b4d8a.tar
nixlib-fafac02e4175c6c12101e02596045188413b4d8a.tar.gz
nixlib-fafac02e4175c6c12101e02596045188413b4d8a.tar.bz2
nixlib-fafac02e4175c6c12101e02596045188413b4d8a.tar.lz
nixlib-fafac02e4175c6c12101e02596045188413b4d8a.tar.xz
nixlib-fafac02e4175c6c12101e02596045188413b4d8a.tar.zst
nixlib-fafac02e4175c6c12101e02596045188413b4d8a.zip
gitAndTools.git-cinnabar: init at 0.5.4
git-cinnabar calls into Mercurial as a library, so we make use the
same version of Python as Mercurial.

Support for Python 3 is an experimental feature in git-cinnabar, but
we unconditionally use it here because:

* Mercurial in Nixpkgs only supports Python 3.
* git-cinnabar touches a network, and for that purpose it's good to
  use a version of Python that is going to get security updates.
Diffstat (limited to 'pkgs/applications/version-management')
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-cinnabar/default.nix50
2 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 64b86650e43f..37d494f5703b 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -68,6 +68,8 @@ let
   # support for bugzilla
   git-bz = callPackage ./git-bz { };
 
+  git-cinnabar = callPackage ./git-cinnabar { };
+
   git-codeowners = callPackage ./git-codeowners { };
 
   git-codereview = callPackage ./git-codereview { };
diff --git a/pkgs/applications/version-management/git-and-tools/git-cinnabar/default.nix b/pkgs/applications/version-management/git-and-tools/git-cinnabar/default.nix
new file mode 100644
index 000000000000..679e8dbdf507
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-cinnabar/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, lib, fetchFromGitHub, autoconf, makeWrapper
+, curl, libiconv, mercurial, zlib
+}:
+
+let
+  python3 = mercurial.python;
+in
+
+stdenv.mkDerivation rec {
+  pname = "git-cinnabar";
+  version = "0.5.4";
+
+  src = fetchFromGitHub {
+    owner = "glandium";
+    repo = "git-cinnabar";
+    rev = version;
+    sha256 = "1cjn2cc6mj4m736wxab9s6qx83p5n5ha8cr3x84s9ra6rxs8d7pi";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ autoconf makeWrapper ];
+  buildInputs = [ curl zlib ] ++ lib.optional stdenv.isDarwin libiconv;
+
+  # Ignore submodule status failing due to no git in environment.
+  makeFlags = [ "SUBMODULE_STATUS=yes" ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    mkdir -p $out/bin $out/libexec
+    install git-cinnabar-helper $out/bin
+    install git-cinnabar git-remote-hg $out/libexec
+    cp -r cinnabar mercurial $out/libexec
+
+    for pythonBin in git-cinnabar git-remote-hg; do
+        makeWrapper $out/libexec/$pythonBin $out/bin/$pythonBin \
+            --prefix PATH : ${lib.getBin python3}/bin \
+            --prefix GIT_CINNABAR_EXPERIMENTS , python3 \
+            --set PYTHONPATH ${mercurial}/${python3.sitePackages}
+    done
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/glandium/git-cinnabar";
+    description = "git remote helper to interact with mercurial repositories";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ qyliss ];
+    platforms = platforms.all;
+  };
+}