about summary refs log tree commit diff
path: root/third_party
diff options
context:
space:
mode:
Diffstat (limited to 'third_party')
-rw-r--r--third_party/README.md13
-rw-r--r--third_party/default.nix92
-rw-r--r--third_party/emacs/carp-mode.nix23
-rw-r--r--third_party/gopkgs/cloud.google.com/go/default.nix12
-rw-r--r--third_party/gopkgs/github.com/emirpasic/gods/default.nix12
-rw-r--r--third_party/gopkgs/github.com/golang/groupcache/default.nix9
-rw-r--r--third_party/gopkgs/github.com/golang/protobuf/default.nix12
-rw-r--r--third_party/gopkgs/github.com/googleapis/gax-go/default.nix19
-rw-r--r--third_party/gopkgs/github.com/hashicorp/golang-lru/default.nix14
-rw-r--r--third_party/gopkgs/github.com/jbenet/go-context/default.nix16
-rw-r--r--third_party/gopkgs/github.com/kevinburke/ssh_config/default.nix15
-rw-r--r--third_party/gopkgs/github.com/mitchellh/go-homedir/default.nix12
-rw-r--r--third_party/gopkgs/github.com/sergi/go-diff/default.nix12
-rw-r--r--third_party/gopkgs/github.com/src-d/gcfg/default.nix16
-rw-r--r--third_party/gopkgs/github.com/xanzy/ssh-agent/default.nix16
-rw-r--r--third_party/gopkgs/go.opencensus.io/default.nix14
-rw-r--r--third_party/gopkgs/golang.org/x/crypto/default.nix15
-rw-r--r--third_party/gopkgs/golang.org/x/net/default.nix15
-rw-r--r--third_party/gopkgs/golang.org/x/oauth2/default.nix14
-rw-r--r--third_party/gopkgs/golang.org/x/sys/default.nix12
-rw-r--r--third_party/gopkgs/golang.org/x/text/default.nix12
-rw-r--r--third_party/gopkgs/google.golang.org/api/default.nix20
-rw-r--r--third_party/gopkgs/google.golang.org/genproto/default.nix14
-rw-r--r--third_party/gopkgs/google.golang.org/grpc/default.nix21
-rw-r--r--third_party/gopkgs/gopkg.in/src-d/go-billy/default.nix16
-rw-r--r--third_party/gopkgs/gopkg.in/src-d/go-git/default.nix31
-rw-r--r--third_party/gopkgs/gopkg.in/warnings/default.nix12
-rw-r--r--third_party/naersk/default.nix9
-rw-r--r--third_party/nixery/default.nix18
-rw-r--r--third_party/ormolu/default.nix8
-rw-r--r--third_party/telega/default.nix22
-rw-r--r--third_party/terraform-gcp/default.nix3
32 files changed, 549 insertions, 0 deletions
diff --git a/third_party/README.md b/third_party/README.md
new file mode 100644
index 0000000000..267f234697
--- /dev/null
+++ b/third_party/README.md
@@ -0,0 +1,13 @@
+Third-Party Code
+================
+
+Code under this folder is one of the following:
+
+1. Externally developed dependencies which have been imported ("vendored") into
+   this repository. These dependencies come with their own licenses and whatever
+   else.
+
+2. Code that is developed inside of this repository, but released to an external
+   repository via [Copybara][].
+
+[Copybara]: https://github.com/google/copybara
diff --git a/third_party/default.nix b/third_party/default.nix
new file mode 100644
index 0000000000..61ad62bf2a
--- /dev/null
+++ b/third_party/default.nix
@@ -0,0 +1,92 @@
+# This file controls the import of external dependencies (i.e.
+# third-party code) into my package tree.
+#
+# This includes *all packages needed from nixpkgs*.
+
+{ pkgs, ... }:
+let
+  # The pinned commit here is identical to the public nixery.dev
+  # version, since popularity data has been generated for that.
+  stableCommit = "3140fa89c51233397f496f49014f6b23216667c2";
+  stableSrc = fetchTarball {
+    url = "https://github.com/NixOS/nixpkgs-channels/archive/${stableCommit}.tar.gz";
+    sha256 = "18p0d5lnfvzsyfah02mf6bi249990pfwnylwhqdh8qi70ncrk3f8";
+  };
+  nixpkgs = import stableSrc {
+    config.allowUnfree = true;
+    config.allowBroken = true;
+  };
+
+  exposed = {
+    # Inherit the packages from nixpkgs that should be available inside
+    # of the repo. They become available under `pkgs.third_party.<name>`
+    inherit (nixpkgs)
+      bashInteractive
+      buildGoPackage
+      cacert
+      cachix
+      cargo
+      cgit
+      coreutils
+      darwin
+      dockerTools
+      emacs26
+      emacs26-nox
+      emacsPackagesNg
+      emacsPackagesNgGen
+      fetchFromGitHub
+      fetchurl
+      git
+      glibc
+      gnutar
+      go
+      google-cloud-sdk
+      gzip
+      haskell
+      iana-etc
+      jq
+      kontemplate
+      lib
+      lispPackages
+      llvmPackages
+      makeWrapper
+      mdbook
+      mime-types
+      moreutils
+      nano
+      nginx
+      nix
+      notmuch
+      openssh
+      openssl
+      pkgconfig
+      protobuf
+      remarshal
+      rink
+      ripgrep
+      rsync
+      runCommand
+      rustPlatform
+      rustc
+      sbcl
+      stdenv
+      stern
+      symlinkJoin
+      systemd
+      tdlib
+      terraform_0_12
+      thttpd
+      tree
+      writeShellScriptBin
+      writeText
+      writeTextFile
+      zlib
+      zstd;
+  };
+
+in exposed // {
+  callPackage = nixpkgs.lib.callPackageWith exposed;
+  # Provide the source code of nixpkgs, but do not provide an imported
+  # version of it.
+  nixpkgsSrc = stableSrc;
+}
diff --git a/third_party/emacs/carp-mode.nix b/third_party/emacs/carp-mode.nix
new file mode 100644
index 0000000000..869cf05c19
--- /dev/null
+++ b/third_party/emacs/carp-mode.nix
@@ -0,0 +1,23 @@
+{ pkgs, ... }:
+
+with pkgs.third_party;
+with emacsPackagesNg;
+
+melpaBuild rec {
+  pname = "carp-mode";
+  version = "3.0";
+  packageRequires = [ clojure-mode ];
+
+  recipe = builtins.toFile "recipe" ''
+    (carp-mode :fetcher github
+        :repo "carp-lang/carp"
+        :files ("emacs/*.el"))
+  '';
+
+  src = fetchFromGitHub {
+    owner = "carp-lang";
+    repo = "carp";
+    rev = "6954642cadee730885717201c3180c7acfb1bfa9";
+    sha256 = "1pz4x2qkwjbz789bwc6nkacrjpzlxawxhl2nv0xdp731y7q7xyk9";
+  };
+}
diff --git a/third_party/gopkgs/cloud.google.com/go/default.nix b/third_party/gopkgs/cloud.google.com/go/default.nix
new file mode 100644
index 0000000000..d3855291a9
--- /dev/null
+++ b/third_party/gopkgs/cloud.google.com/go/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "cloud.google.com/go";
+  src = builtins.fetchGit {
+    url = "https://code.googlesource.com/gocloud";
+    rev = "4f03f8e4ba168c636e1c218da7ab41a1c8c0d8cf";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+  ];
+}
diff --git a/third_party/gopkgs/github.com/emirpasic/gods/default.nix b/third_party/gopkgs/github.com/emirpasic/gods/default.nix
new file mode 100644
index 0000000000..72979ef80d
--- /dev/null
+++ b/third_party/gopkgs/github.com/emirpasic/gods/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/emirpasic/gods";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "emirpasic";
+    repo = "gods";
+    rev = "4e23915b9a82f35f320a68a395a7a5045c826932";
+    sha256 = "00f8ch1rccakc62f9nj97hapvnx84z7wbcdmbmz7p802b9mxk5nl";
+  };
+}
diff --git a/third_party/gopkgs/github.com/golang/groupcache/default.nix b/third_party/gopkgs/github.com/golang/groupcache/default.nix
new file mode 100644
index 0000000000..2dfa1241e9
--- /dev/null
+++ b/third_party/gopkgs/github.com/golang/groupcache/default.nix
@@ -0,0 +1,9 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/golang/groupcache";
+  src = builtins.fetchGit {
+    url = "https://github.com/golang/groupcache";
+    rev = "611e8accdfc92c4187d399e95ce826046d4c8d73";
+  };
+}
diff --git a/third_party/gopkgs/github.com/golang/protobuf/default.nix b/third_party/gopkgs/github.com/golang/protobuf/default.nix
new file mode 100644
index 0000000000..f1c54cd496
--- /dev/null
+++ b/third_party/gopkgs/github.com/golang/protobuf/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/golang/protobuf";
+  src = builtins.fetchGit {
+    url = "https://github.com/golang/protobuf";
+    rev = "ed6926b37a637426117ccab59282c3839528a700";
+  };
+
+  deps = with pkgs.third_party; [
+  ];
+}
diff --git a/third_party/gopkgs/github.com/googleapis/gax-go/default.nix b/third_party/gopkgs/github.com/googleapis/gax-go/default.nix
new file mode 100644
index 0000000000..fe694fdbbe
--- /dev/null
+++ b/third_party/gopkgs/github.com/googleapis/gax-go/default.nix
@@ -0,0 +1,19 @@
+{ pkgs, ... }:
+
+let
+  inherit (pkgs) buildGo;
+  inherit (builtins) fetchGit;
+in pkgs.buildGo.external {
+  path = "github.com/googleapis/gax-go";
+  src = fetchGit {
+    url = "https://github.com/googleapis/gax-go";
+    rev = "b443e5a67ec8eeac76f5f384004931878cab24b3";
+  };
+
+  deps = with pkgs.third_party; [
+    gopkgs."golang.org".x.net.trace.gopkg
+    gopkgs."google.golang.org".grpc.gopkg
+    gopkgs."google.golang.org".grpc.codes.gopkg
+    gopkgs."google.golang.org".grpc.status.gopkg
+  ];
+}
diff --git a/third_party/gopkgs/github.com/hashicorp/golang-lru/default.nix b/third_party/gopkgs/github.com/hashicorp/golang-lru/default.nix
new file mode 100644
index 0000000000..04efc3144d
--- /dev/null
+++ b/third_party/gopkgs/github.com/hashicorp/golang-lru/default.nix
@@ -0,0 +1,14 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/hashicorp/golang-lru";
+  src = builtins.fetchGit {
+    url = "https://github.com/hashicorp/golang-lru";
+    rev = "7f827b33c0f158ec5dfbba01bb0b14a4541fd81d";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."golang.org".x.net.context.ctxhttp
+    gopkgs."cloud.google.com".go.compute.metadata
+  ];
+}
diff --git a/third_party/gopkgs/github.com/jbenet/go-context/default.nix b/third_party/gopkgs/github.com/jbenet/go-context/default.nix
new file mode 100644
index 0000000000..454b27312a
--- /dev/null
+++ b/third_party/gopkgs/github.com/jbenet/go-context/default.nix
@@ -0,0 +1,16 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/jbenet/go-context";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "jbenet";
+    repo = "go-context";
+    rev = "d14ea06fba99483203c19d92cfcd13ebe73135f4";
+    sha256 = "0q91f5549n81w3z5927n4a1mdh220bdmgl42zi3h992dcc4ls0sl";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."golang.org".x.net.context
+  ];
+}
diff --git a/third_party/gopkgs/github.com/kevinburke/ssh_config/default.nix b/third_party/gopkgs/github.com/kevinburke/ssh_config/default.nix
new file mode 100644
index 0000000000..ed8dadc40c
--- /dev/null
+++ b/third_party/gopkgs/github.com/kevinburke/ssh_config/default.nix
@@ -0,0 +1,15 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/kevinburke/ssh_config";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "kevinburke";
+    repo = "ssh_config";
+    rev = "01f96b0aa0cdcaa93f9495f89bbc6cb5a992ce6e";
+    sha256 = "1bxfjkjl3ibzdkwyvgdwawmd0skz30ah1ha10rg6fkxvj7lgg4jz";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+  ];
+}
diff --git a/third_party/gopkgs/github.com/mitchellh/go-homedir/default.nix b/third_party/gopkgs/github.com/mitchellh/go-homedir/default.nix
new file mode 100644
index 0000000000..0d94f6cf6e
--- /dev/null
+++ b/third_party/gopkgs/github.com/mitchellh/go-homedir/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/mitchellh/go-homedir";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "mitchellh";
+    repo = "go-homedir";
+    rev = "af06845cf3004701891bf4fdb884bfe4920b3727";
+    sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
+  };
+}
diff --git a/third_party/gopkgs/github.com/sergi/go-diff/default.nix b/third_party/gopkgs/github.com/sergi/go-diff/default.nix
new file mode 100644
index 0000000000..45f6889151
--- /dev/null
+++ b/third_party/gopkgs/github.com/sergi/go-diff/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/sergi/go-diff";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "sergi";
+    repo = "go-diff";
+    rev = "58c5cb1602ee9676b5d3590d782bedde80706fcc";
+    sha256 = "0ir8ali2vx0j7pipmlfd6k8c973akyy2nmbjrf008fm800zcp7z2";
+  };
+}
diff --git a/third_party/gopkgs/github.com/src-d/gcfg/default.nix b/third_party/gopkgs/github.com/src-d/gcfg/default.nix
new file mode 100644
index 0000000000..5dde56d5f3
--- /dev/null
+++ b/third_party/gopkgs/github.com/src-d/gcfg/default.nix
@@ -0,0 +1,16 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/src-d/gcfg";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "src-d";
+    repo = "gcfg";
+    rev = "1ac3a1ac202429a54835fe8408a92880156b489d";
+    sha256 = "044j95skmyrwjw5fwjk6ka32rjgsg0ar0mfp9np19sh1acwv4x4r";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."gopkg.in".warnings
+  ];
+}
diff --git a/third_party/gopkgs/github.com/xanzy/ssh-agent/default.nix b/third_party/gopkgs/github.com/xanzy/ssh-agent/default.nix
new file mode 100644
index 0000000000..e179618a72
--- /dev/null
+++ b/third_party/gopkgs/github.com/xanzy/ssh-agent/default.nix
@@ -0,0 +1,16 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "github.com/xanzy/ssh-agent";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "xanzy";
+    repo = "ssh-agent";
+    rev = "6a3e2ff9e7c564f36873c2e36413f634534f1c44";
+    sha256 = "1chjlnv5d6svpymxgsr62d992m2xi6jb5lybjc5zn1h3hv1m01av";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."golang.org".x.crypto.ssh.agent
+  ];
+}
diff --git a/third_party/gopkgs/go.opencensus.io/default.nix b/third_party/gopkgs/go.opencensus.io/default.nix
new file mode 100644
index 0000000000..4cab5e5dce
--- /dev/null
+++ b/third_party/gopkgs/go.opencensus.io/default.nix
@@ -0,0 +1,14 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "go.opencensus.io";
+  src = builtins.fetchGit {
+    url = "https://github.com/census-instrumentation/opencensus-go";
+    rev = "643eada29081047b355cfaa1ceb9bc307a10423c";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."github.com".hashicorp.golang-lru.simplelru
+    gopkgs."github.com".golang.groupcache.lru
+  ];
+}
diff --git a/third_party/gopkgs/golang.org/x/crypto/default.nix b/third_party/gopkgs/golang.org/x/crypto/default.nix
new file mode 100644
index 0000000000..9610157d31
--- /dev/null
+++ b/third_party/gopkgs/golang.org/x/crypto/default.nix
@@ -0,0 +1,15 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "golang.org/x/crypto";
+  src = builtins.fetchGit {
+    url = "https://go.googlesource.com/crypto";
+    rev = "e9b2fee46413994441b28dfca259d911d963dfed";
+  };
+
+  deps = with pkgs.third_party; [
+    # gopkgs."golang.org".x.text.secure.bidirule.gopkg
+    # gopkgs."golang.org".x.text.unicode.bidi.gopkg
+    # gopkgs."golang.org".x.text.unicode.norm.gopkg
+  ];
+}
diff --git a/third_party/gopkgs/golang.org/x/net/default.nix b/third_party/gopkgs/golang.org/x/net/default.nix
new file mode 100644
index 0000000000..400ba6922b
--- /dev/null
+++ b/third_party/gopkgs/golang.org/x/net/default.nix
@@ -0,0 +1,15 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "golang.org/x/net";
+  src = builtins.fetchGit {
+    url = "https://go.googlesource.com/net";
+    rev = "c0dbc17a35534bf2e581d7a942408dc936316da4";
+  };
+
+  deps = with pkgs.third_party; [
+    gopkgs."golang.org".x.text.secure.bidirule.gopkg
+    gopkgs."golang.org".x.text.unicode.bidi.gopkg
+    gopkgs."golang.org".x.text.unicode.norm.gopkg
+  ];
+}
diff --git a/third_party/gopkgs/golang.org/x/oauth2/default.nix b/third_party/gopkgs/golang.org/x/oauth2/default.nix
new file mode 100644
index 0000000000..f5e783b6d1
--- /dev/null
+++ b/third_party/gopkgs/golang.org/x/oauth2/default.nix
@@ -0,0 +1,14 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "golang.org/x/oauth2";
+  src = builtins.fetchGit {
+    url = "https://go.googlesource.com/oauth2";
+    rev = "858c2ad4c8b6c5d10852cb89079f6ca1c7309787";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."golang.org".x.net.context.ctxhttp
+    gopkgs."cloud.google.com".go.compute.metadata
+  ];
+}
diff --git a/third_party/gopkgs/golang.org/x/sys/default.nix b/third_party/gopkgs/golang.org/x/sys/default.nix
new file mode 100644
index 0000000000..0371160099
--- /dev/null
+++ b/third_party/gopkgs/golang.org/x/sys/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "golang.org/x/sys";
+  src = builtins.fetchGit {
+    url = "https://go.googlesource.com/sys";
+    rev = "ac6580df4449443a05718fd7858c1f91ad5f8d20";
+  };
+
+  deps = with pkgs.third_party; [
+  ];
+}
diff --git a/third_party/gopkgs/golang.org/x/text/default.nix b/third_party/gopkgs/golang.org/x/text/default.nix
new file mode 100644
index 0000000000..409b0d0b9e
--- /dev/null
+++ b/third_party/gopkgs/golang.org/x/text/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "golang.org/x/text";
+  src = builtins.fetchGit {
+    url = "https://go.googlesource.com/text";
+    rev = "cbf43d21aaebfdfeb81d91a5f444d13a3046e686";
+  };
+
+  deps = with pkgs.third_party; [
+  ];
+}
diff --git a/third_party/gopkgs/google.golang.org/api/default.nix b/third_party/gopkgs/google.golang.org/api/default.nix
new file mode 100644
index 0000000000..a4e7339a3f
--- /dev/null
+++ b/third_party/gopkgs/google.golang.org/api/default.nix
@@ -0,0 +1,20 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "google.golang.org/api";
+  src = builtins.fetchGit {
+    url = "https://code.googlesource.com/google-api-go-client";
+    rev = "8b4e46d953bd748a9ff098644a42389b3d8dab41";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."github.com".googleapis.gax-go.v2
+    gopkgs."golang.org".x.oauth2.google
+    gopkgs."golang.org".x.oauth2
+    gopkgs."google.golang.org".grpc
+    gopkgs."google.golang.org".grpc.naming
+    gopkgs."go.opencensus.io".plugin.ochttp
+    gopkgs."go.opencensus.io".trace
+    gopkgs."go.opencensus.io".trace.propagation
+  ];
+}
diff --git a/third_party/gopkgs/google.golang.org/genproto/default.nix b/third_party/gopkgs/google.golang.org/genproto/default.nix
new file mode 100644
index 0000000000..50280296b8
--- /dev/null
+++ b/third_party/gopkgs/google.golang.org/genproto/default.nix
@@ -0,0 +1,14 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "google.golang.org/genproto";
+  src = builtins.fetchGit {
+    url = "https://github.com/google/go-genproto";
+    rev = "0243a4be9c8f1264d238fdc2895620b4d9baf9e1";
+  };
+
+  deps = with pkgs.third_party; [
+    gopkgs."github.com".golang.protobuf.proto.gopkg
+    gopkgs."github.com".golang.protobuf.ptypes.any.gopkg
+  ];
+}
diff --git a/third_party/gopkgs/google.golang.org/grpc/default.nix b/third_party/gopkgs/google.golang.org/grpc/default.nix
new file mode 100644
index 0000000000..badc811c9f
--- /dev/null
+++ b/third_party/gopkgs/google.golang.org/grpc/default.nix
@@ -0,0 +1,21 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "google.golang.org/grpc";
+  src = builtins.fetchGit {
+    url = "https://github.com/grpc/grpc-go";
+    rev = "085c980048876e2735d4aba8f0d5bca4d7acaaa5";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."golang.org".x.net.trace
+    gopkgs."golang.org".x.net.http2
+    gopkgs."golang.org".x.net.http2.hpack
+    gopkgs."golang.org".x.sys.unix
+    gopkgs."github.com".golang.protobuf.proto
+    gopkgs."github.com".golang.protobuf.ptypes
+    gopkgs."github.com".golang.protobuf.ptypes.duration
+    gopkgs."github.com".golang.protobuf.ptypes.timestamp
+    gopkgs."google.golang.org".genproto.googleapis.rpc.status
+  ];
+}
diff --git a/third_party/gopkgs/gopkg.in/src-d/go-billy/default.nix b/third_party/gopkgs/gopkg.in/src-d/go-billy/default.nix
new file mode 100644
index 0000000000..4272ed7d67
--- /dev/null
+++ b/third_party/gopkgs/gopkg.in/src-d/go-billy/default.nix
@@ -0,0 +1,16 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "gopkg.in/src-d/go-billy.v4";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "src-d";
+    repo = "go-billy";
+    rev = "fd409ff12f33d0d60af0ce0abeb8d93df360af49";
+    sha256 = "1j0pl6ggzmd2lrqj71vmsnl6cqm43145h7yg6sy3j5n7hhd592qv";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."golang.org".x.sys.unix
+  ];
+}
diff --git a/third_party/gopkgs/gopkg.in/src-d/go-git/default.nix b/third_party/gopkgs/gopkg.in/src-d/go-git/default.nix
new file mode 100644
index 0000000000..75d053f777
--- /dev/null
+++ b/third_party/gopkgs/gopkg.in/src-d/go-git/default.nix
@@ -0,0 +1,31 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  # .v4 is used throughout the codebase and I can't be bothered to do
+  # anything else about it other than using that package path here.
+  path = "gopkg.in/src-d/go-git.v4";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "src-d";
+    repo = "go-git";
+    rev = "1a7db85bca7027d90afdb5ce711622aaac9feaed";
+    sha256 = "08jl4ljrzzil7c3qcl2y1859nhpgw9ixxy1g40ff7kmq989yhs6v";
+  };
+
+  deps = with pkgs.third_party; map (p: p.gopkg) [
+    gopkgs."github.com".emirpasic.gods.trees.binaryheap
+    gopkgs."github.com".jbenet.go-context.io
+    gopkgs."github.com".kevinburke.ssh_config
+    gopkgs."github.com".mitchellh.go-homedir
+    gopkgs."github.com".sergi.go-diff.diffmatchpatch
+    gopkgs."github.com".src-d.gcfg
+    gopkgs."github.com".xanzy.ssh-agent
+    gopkgs."golang.org".x.crypto.openpgp
+    gopkgs."golang.org".x.crypto.ssh
+    gopkgs."golang.org".x.crypto.ssh.knownhosts
+    gopkgs."golang.org".x.net.proxy
+    gopkgs."gopkg.in".src-d.go-billy
+    gopkgs."gopkg.in".src-d.go-billy.osfs
+    gopkgs."gopkg.in".src-d.go-billy.util
+  ];
+}
diff --git a/third_party/gopkgs/gopkg.in/warnings/default.nix b/third_party/gopkgs/gopkg.in/warnings/default.nix
new file mode 100644
index 0000000000..1299c2b541
--- /dev/null
+++ b/third_party/gopkgs/gopkg.in/warnings/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+pkgs.buildGo.external {
+  path = "gopkg.in/warnings.v0";
+
+  src = pkgs.third_party.fetchFromGitHub {
+    owner = "go-warnings";
+    repo = "warnings";
+    rev = "27b9fabbdaf131d2169ec3ff7db8ffc4d839635e";
+    sha256 = "1y276jd9gwvjriz8yd98k3srgbnmbja8f7f7m6lvr0h5sbq3g3w9";
+  };
+}
diff --git a/third_party/naersk/default.nix b/third_party/naersk/default.nix
new file mode 100644
index 0000000000..2da96d8266
--- /dev/null
+++ b/third_party/naersk/default.nix
@@ -0,0 +1,9 @@
+{ pkgs, ... }:
+
+let inherit (pkgs.third_party) callPackage fetchFromGitHub;
+in callPackage (fetchFromGitHub {
+  owner = "nmattia";
+  repo = "naersk";
+  rev = "551a2a63399589f97f503ddd8919f27bb2406354";
+  sha256 = "1jrrj4qjwgqa3yjyr0apsz8hlq28rv77ll2w4xmjg2wf4z2fgj0h";
+}) {}
diff --git a/third_party/nixery/default.nix b/third_party/nixery/default.nix
new file mode 100644
index 0000000000..7ef7b644f8
--- /dev/null
+++ b/third_party/nixery/default.nix
@@ -0,0 +1,18 @@
+# Technically I suppose Nixery is not a third-party program, but it's
+# outside of this repository ...
+{ pkgs, ... }:
+
+let src = pkgs.third_party.fetchFromGitHub {
+  owner = "google";
+  repo = "nixery";
+  rev = "4f6ce83f9296545d6c74321b37d18545764c8827";
+  sha256 = "19aiak1pss6vwm0fwn02827l5ir78fkqglfbdl2gchsyv3gps8bg";
+};
+in import src {
+  pkgs = pkgs.third_party;
+  preLaunch = ''
+    export USER=root
+    cachix use tazjin
+  '';
+  extraPackages = with pkgs.third_party; [ cachix openssh ];
+}
diff --git a/third_party/ormolu/default.nix b/third_party/ormolu/default.nix
new file mode 100644
index 0000000000..eed5c7981e
--- /dev/null
+++ b/third_party/ormolu/default.nix
@@ -0,0 +1,8 @@
+{ pkgs, ... }:
+
+import (pkgs.third_party.fetchFromGitHub {
+  owner = "tweag";
+  repo = "ormolu";
+  rev = "a7076c0f83e5c06ea9067b71171859fa2ba8afd9";
+  sha256 = "1p4n2ja4ciw3qfskn65ggpy37mvgf2sslxqmqn8s8jjarnqcyfny";
+}) { pkgs = pkgs.third_party; }
diff --git a/third_party/telega/default.nix b/third_party/telega/default.nix
new file mode 100644
index 0000000000..4fdf0667ff
--- /dev/null
+++ b/third_party/telega/default.nix
@@ -0,0 +1,22 @@
+# Telega is an Emacs client for Telegram. It requires a native server
+# component to run correctly, which is built by this derivation.
+{ pkgs, ... }:
+
+with pkgs.third_party;
+
+stdenv.mkDerivation {
+  name = "telega";
+  buildInputs = [ tdlib ];
+
+  src = fetchFromGitHub {
+    owner = "zevlg";
+    repo = "telega.el";
+    rev = "d532b16067cf24728a2aa03a7aeaebe2ceac7df4";
+    sha256 = "1s2sd07sin9sy833wqprhbfk5j1d1s4azzvj6d8k68sxlgz8996m";
+  } + "/server";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv telega-server $out/bin/
+  '';
+}
diff --git a/third_party/terraform-gcp/default.nix b/third_party/terraform-gcp/default.nix
new file mode 100644
index 0000000000..465b74e4e1
--- /dev/null
+++ b/third_party/terraform-gcp/default.nix
@@ -0,0 +1,3 @@
+{ pkgs, ... }:
+
+pkgs.third_party.terraform_0_12.withPlugins(p: [ p.google p.google-beta ])