diff options
Diffstat (limited to 'third_party')
21 files changed, 372 insertions, 0 deletions
diff --git a/third_party/README.md b/third_party/README.md new file mode 100644 index 000000000000..267f23469775 --- /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 000000000000..890b1777625f --- /dev/null +++ b/third_party/default.nix @@ -0,0 +1,88 @@ +# 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 + moreutils + nano + nix + notmuch + openssh + openssl + protobuf + remarshal + rink + ripgrep + rsync + runCommand + rustPlatform + rustc + sbcl + stdenv + stern + symlinkJoin + 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 000000000000..869cf05c19a8 --- /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 000000000000..d3855291a9cc --- /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/golang/groupcache/default.nix b/third_party/gopkgs/github.com/golang/groupcache/default.nix new file mode 100644 index 000000000000..2dfa1241e9c1 --- /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 000000000000..f1c54cd496eb --- /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 000000000000..fe694fdbbece --- /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 000000000000..04efc3144d9a --- /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/go.opencensus.io/default.nix b/third_party/gopkgs/go.opencensus.io/default.nix new file mode 100644 index 000000000000..4cab5e5dceba --- /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/net/default.nix b/third_party/gopkgs/golang.org/x/net/default.nix new file mode 100644 index 000000000000..400ba6922b58 --- /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 000000000000..f5e783b6d189 --- /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 000000000000..037116009962 --- /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 000000000000..409b0d0b9e2e --- /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 000000000000..a4e7339a3f8a --- /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 000000000000..50280296b84d --- /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 000000000000..badc811c9fa8 --- /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/naersk/default.nix b/third_party/naersk/default.nix new file mode 100644 index 000000000000..2da96d8266c7 --- /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 000000000000..7ef7b644f8dd --- /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 000000000000..eed5c7981e43 --- /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 000000000000..4fdf0667ff9f --- /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 000000000000..465b74e4e1b9 --- /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 ]) |