diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/version-management/mercurial/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/version-management/mercurial/default.nix | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix new file mode 100644 index 000000000000..fc4c18f5eb76 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix @@ -0,0 +1,67 @@ +{ stdenv, fetchurl, python2Packages, makeWrapper, unzip +, guiSupport ? false, tk ? null +, ApplicationServices }: + +let + # if you bump version, update pkgs.tortoisehg too or ping maintainer + version = "4.9"; + name = "mercurial-${version}"; + inherit (python2Packages) docutils hg-git dulwich python; +in python2Packages.buildPythonApplication { + inherit name; + format = "other"; + + src = fetchurl { + url = "https://mercurial-scm.org/release/${name}.tar.gz"; + sha256 = "01ig0464cvy9d87rn274g39frxr0p5q4lxf1xn5k3m24grf0qq0g"; + }; + + inherit python; # pass it so that the same version can be used in hg2git + + buildInputs = [ makeWrapper docutils unzip ] + ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices ]; + + propagatedBuildInputs = [ hg-git dulwich ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + postInstall = (stdenv.lib.optionalString guiSupport + '' + mkdir -p $out/etc/mercurial + cp contrib/hgk $out/bin + cat >> $out/etc/mercurial/hgrc << EOF + [extensions] + hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py + EOF + # setting HG so that hgk can be run itself as well (not only hg view) + WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix} + --set HG $out/bin/hg + --prefix PATH : ${tk}/bin " + '') + + '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i \ + $WRAP_TK + done + + # copy hgweb.cgi to allow use in apache + mkdir -p $out/share/cgi-bin + cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin + chmod u+x $out/share/cgi-bin/hgweb.cgi + + # install bash/zsh completions + install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg + install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg + ''; + + meta = { + inherit version; + description = "A fast, lightweight SCM system for very large distributed projects"; + homepage = https://www.mercurial-scm.org; + downloadPage = https://www.mercurial-scm.org/release/; + license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.eelco ]; + updateWalker = true; + platforms = stdenv.lib.platforms.unix; + }; +} |