about summary refs log tree commit diff
path: root/pkgs/applications/version-management/git-and-tools/default.nix
blob: 40fec58b6549f29ae4e862804c635d6f31a2de60 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/* moving all git tools into one attribute set because git is unlikely to be
 * referenced by other packages and you can get a fast overview.
*/
args: with args; with pkgs;
let
  inherit (pkgs) stdenv fetchurl subversion;
  config = getPkgConfig "git";
in
rec {

  git = lib.makeOverridable (import ./git) {
    inherit fetchurl stdenv curl openssl zlib expat perl python gettext gnugrep
      asciidoc texinfo xmlto docbook2x
      docbook_xsl docbook_xml_dtd_45 libxslt
      cpio tcl tk makeWrapper subversion;
    svnSupport = config "svnSupport" false; # for git-svn support
    guiSupport = config "guiSupport" false;
    sendEmailSupport = config "sendEmailSupport" false;
    perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey];
    smtpPerlLibs = [
      perlPackages.NetSMTP perlPackages.NetSMTPSSL
      perlPackages.IOSocketSSL perlPackages.NetSSLeay
      perlPackages.MIMEBase64 perlPackages.AuthenSASL
      perlPackages.DigestHMAC
    ];
  };

  # The full-featured Git.
  gitFull = git.override {
    svnSupport = true;
    guiSupport = true;
    sendEmailSupport = stdenv.isDarwin == false;
  };

  gitGit = import ./git/git-git.nix {
    inherit fetchurl sourceFromHead stdenv curl openssl zlib expat perl gettext
      asciidoc texinfo xmlto docbook2x
      docbook_xsl docbook_xml_dtd_45 libxslt
      cpio tcl tk makeWrapper subversion autoconf;
    svnSupport = config "svnSupport" false; # for git-svn support
    guiSupport = config "guiSupport" false;
    perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey subversion];
  };

  qgit = import ./qgit {
    inherit fetchurl stdenv;
    inherit (xlibs) libXext libX11;
    qt = qt4;
  };

  qgitGit = import ./qgit/qgit-git.nix {
    inherit fetchurl sourceFromHead stdenv;
    inherit (xlibs) libXext libX11;
    qt = qt4;
  };


  stgit = import ./stgit {
        inherit fetchurl stdenv python git;
  };

  topGit = stdenv.mkDerivation rec {
    name = "topgit-0.8-19-g9404aa1";

    src = fetchgit {
      url = "http://repo.or.cz/r/topgit.git";
      rev = name;
      sha256 = "47e92d31303c30a22b96ce4a005f3c51f0e12c163e54f6ca589ac4e50ec74bd0";
    };

    configurePhase = "export prefix=$out";

    postInstall = ''
      mkdir -p "$out/share/doc/${name}"
      cp -v README "$out/share/doc/${name}"

      mkdir -p $out/etc/bash_completion.d
      make prefix=$out \
        install
      mv contrib/tg-completion.bash $out/etc/bash_completion.d
    '';

    meta = {
      description = "TopGit aims to make handling of large amount of interdependent topic branches easier";
      maintainers = [ lib.maintainers.marcweber lib.maintainers.ludo lib.maintainers.simons ];
      homepage = http://repo.or.cz/w/topgit.git;
      license = "GPLv2";
      platforms = stdenv.lib.platforms.unix;
    };
  };

  tig = stdenv.mkDerivation {
    name = "tig-0.16";
    src = fetchurl {
      url = "http://jonas.nitro.dk/tig/releases/tig-0.16.tar.gz";
      sha256 = "167kak44n66wqjj6jrv8q4ijjac07cw22rlpqjqz3brlhx4cb3ix";
    };
    buildInputs = [ncurses asciidoc xmlto docbook_xsl];
    installPhase = ''
      make install
      make install-doc
    '';
    meta = {
      description = "console git repository browser that additionally can act as a pager for output from various git commands";
      homepage = http://jonas.nitro.dk/tig/;
      license = "GPLv2";
    };
  };

  gitFastExport = import ./fast-export {
    inherit fetchurl sourceFromHead stdenv mercurial coreutils git makeWrapper
      subversion;
  };

  git2cl = import ./git2cl {
    inherit fetchgit stdenv perl;
  };

  gitSubtree = stdenv.mkDerivation {
    name = "git-subtree-0.3";
    src = fetchurl {
      url = "http://github.com/apenwarr/git-subtree/tarball/v0.3";
#      sha256 = "0y57lpbcc2142jgrr4lflyb9xgzs9x33r7g4b919ncn3alb95vdr";
      sha256 = "f2ccac1e9cff4c35d989dc2a5581133c96b72d96c6a5ed89e51b6446dadac03f";
    };
    unpackCmd = "gzip -d < $curSrc | tar xvf -";
    buildInputs = [ git asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt ];
    configurePhase = "export prefix=$out";
    buildPhase = "true";
    installPhase = ''
      make install prefix=$out gitdir=$out/bin #work around to deal with a wrong makefile
    '';
    meta= {
      description = "An experimental alternative to the git-submodule command";
      homepage = http://github.com/apenwarr/git-subtree;
      license = "GPLv2";
    };
  };
}