summary refs log tree commit diff
path: root/pkgs/applications/version-management/git-and-tools/default.nix
blob: 584c880566ac3b02f236a4fd2aaccd437494f48e (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
/* All git-relates tools live here, in a separate attribute set so that users
 * can get a fast overview over what's available.
 */
args @ {pkgs}: with args; with pkgs;
let
  inherit (pkgs) stdenv fetchgit fetchurl subversion;

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

in
rec {
  # Try to keep this generally alphabetized

  darcsToGit = callPackage ./darcs-to-git { };

  git = appendToName "minimal" gitBase;

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

  # Git with SVN support, but without GUI.
  gitSVN = lowPrio (appendToName "with-svn" (gitBase.override {
    svnSupport = true;
  }));

  git-annex = pkgs.haskellPackages.git-annex-with-assistant;
  gitAnnex = git-annex;

  git-annex-remote-b2 = pkgs.goPackages.git-annex-remote-b2;

  # support for bugzilla
  git-bz = callPackage ./git-bz { };

  git-cola = callPackage ./git-cola { };

  git-crypt = callPackage ./git-crypt { };

  git-extras = callPackage ./git-extras { };

  git-imerge = callPackage ./git-imerge { };

  git-radar = callPackage ./git-radar { };

  git-remote-hg = callPackage ./git-remote-hg { };

  git-stree = callPackage ./git-stree { };

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

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

  gitRemoteGcrypt = callPackage ./git-remote-gcrypt { };

  gitflow = callPackage ./gitflow { };

  hub = import ./hub {
    inherit go;
    inherit stdenv fetchgit;
    inherit (darwin) Security;
  };

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

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

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

  subgit = callPackage ./subgit { };

  svn2git = import ./svn2git {
    inherit stdenv fetchurl ruby makeWrapper;
    git = gitSVN;
  };

  svn2git_kde = callPackage ./svn2git-kde { };

  tig = callPackage ./tig { };

  topGit = lib.makeOverridable (import ./topgit) {
    inherit stdenv fetchurl;
  };

  transcrypt = callPackage ./transcrypt { };
}