nixpkgs/pkgs/top-level/go-packages.nix
Charles Strahan 1371084ae1 goPackages: make it easier to automate updates
This moves all of the revision and sha256 data to separate JSON file.
2016-03-08 23:45:46 -05:00

2773 lines
65 KiB
Nix

/* This file defines the composition for Go packages. */
{ overrides, stdenv, go, buildGoPackage, git
, fetchgit, fetchhg, fetchurl, fetchFromGitHub, fetchFromBitbucket, fetchbzr, pkgs }:
let
isGo14 = go.meta.branch == "1.4";
# When adding entries to the json file, please use `jq . < go-packages.json --sort-keys`
# to canonicallize the data.
ghPackages = builtins.fromJSON (builtins.readFile ./go-packages.json);
self = _self // overrides; _self = with self; {
inherit go buildGoPackage;
buildFromGitHub = { rev ? ghPackages."${owner}"."${repo}".rev, date ? null
, sha256 ? ghPackages."${owner}"."${repo}".sha256
, owner, repo , name ? repo, goPackagePath ? "github.com/${owner}/${repo}"
, ... }@args: buildGoPackage (args // {
inherit rev goPackagePath sha256;
name = "${name}-${if date != null then date else if builtins.stringLength rev != 40 then rev else stdenv.lib.strings.substring 0 7 rev}";
src = args.src or (fetchFromGitHub { inherit rev owner repo sha256; });
});
## OFFICIAL GO PACKAGES
crypto = buildFromGitHub {
date = "2015-08-29";
owner = "golang";
repo = "crypto";
goPackagePath = "golang.org/x/crypto";
goPackageAliases = [
"code.google.com/p/go.crypto"
"github.com/golang/crypto"
];
};
glog = buildFromGitHub {
date = "2015-07-31";
owner = "golang";
repo = "glog";
};
codesearch = buildFromGitHub {
date = "2015-06-17";
owner = "google";
repo = "codesearch";
};
image = buildFromGitHub {
date = "2015-08-23";
owner = "golang";
repo = "image";
goPackagePath = "golang.org/x/image";
goPackageAliases = [ "github.com/golang/image" ];
};
net_go15 = buildFromGitHub {
date = "2015-11-04";
owner = "golang";
repo = "net";
goPackagePath = "golang.org/x/net";
goPackageAliases = [
"code.google.com/p/go.net"
"github.com/hashicorp/go.net"
"github.com/golang/net"
];
propagatedBuildInputs = [ text crypto ];
disabled = isGo14;
};
net_go14 = buildFromGitHub {
date = "2015-08-29";
owner = "golang";
repo = "net";
goPackagePath = "golang.org/x/net";
goPackageAliases = [
"code.google.com/p/go.net"
"github.com/hashicorp/go.net"
"github.com/golang/net"
];
propagatedBuildInputs = [ text ];
disabled = !isGo14;
};
net = if isGo14 then net_go14 else net_go15;
oauth2 = buildFromGitHub {
date = "2015-06-23";
owner = "golang";
repo = "oauth2";
goPackagePath = "golang.org/x/oauth2";
goPackageAliases = [ "github.com/golang/oauth2" ];
propagatedBuildInputs = [ net gcloud-golang-compute-metadata ];
};
protobuf = buildFromGitHub {
date = "2015-08-23";
owner = "golang";
repo = "protobuf";
goPackagePath = "github.com/golang/protobuf";
goPackageAliases = [ "code.google.com/p/goprotobuf" ];
};
snappy = buildFromGitHub {
date = "2015-07-21";
owner = "golang";
repo = "snappy";
goPackageAliases = [ "code.google.com/p/snappy-go/snappy" ];
};
sys = buildFromGitHub {
date = "2015-02-01";
owner = "golang";
repo = "sys";
goPackagePath = "golang.org/x/sys";
goPackageAliases = [
"github.com/golang/sys"
];
};
text = buildFromGitHub {
date = "2015-08-27";
owner = "golang";
repo = "text";
goPackagePath = "golang.org/x/text";
goPackageAliases = [ "github.com/golang/text" ];
};
tools = buildFromGitHub {
date = "2015-08-24";
owner = "golang";
repo = "tools";
goPackagePath = "golang.org/x/tools";
goPackageAliases = [ "code.google.com/p/go.tools" ];
preConfigure = ''
# Make the builtin tools available here
mkdir -p $bin/bin
eval $(go env | grep GOTOOLDIR)
find $GOTOOLDIR -type f | while read x; do
ln -sv "$x" "$bin/bin"
done
export GOTOOLDIR=$bin/bin
'';
excludedPackages = "\\("
+ stdenv.lib.concatStringsSep "\\|" ([ "testdata" ] ++ stdenv.lib.optionals (stdenv.lib.versionAtLeast go.meta.branch "1.5") [ "vet" "cover" ])
+ "\\)";
buildInputs = [ net ];
# Do not copy this without a good reason for enabling
# In this case tools is heavily coupled with go itself and embeds paths.
allowGoReference = true;
# Set GOTOOLDIR for derivations adding this to buildInputs
postInstall = ''
mkdir -p $bin/nix-support
substituteAll ${../development/go-modules/tools/setup-hook.sh} $bin/nix-support/setup-hook.tmp
cat $bin/nix-support/setup-hook.tmp >> $bin/nix-support/setup-hook
rm $bin/nix-support/setup-hook.tmp
'';
};
## THIRD PARTY
ace = buildFromGitHub {
owner = "yosssi";
repo = "ace";
buildInputs = [ gohtml ];
};
adapted = buildFromGitHub {
date = "2015-06-03";
owner = "michaelmacinnis";
repo = "adapted";
propagatedBuildInputs = [ sys ];
};
afero = buildFromGitHub {
owner = "spf13";
repo = "afero";
propagatedBuildInputs = [ text ];
};
airbrake-go = buildFromGitHub {
owner = "tobi";
repo = "airbrake-go";
};
amber = buildFromGitHub {
owner = "eknkc";
repo = "amber";
};
ansicolor = buildFromGitHub {
owner = "shiena";
repo = "ansicolor";
};
asciinema = buildFromGitHub {
owner = "asciinema";
repo = "asciinema";
};
asn1-ber = buildFromGitHub rec {
owner = "go-asn1-ber";
repo = "asn1-ber";
goPackagePath = "github.com/go-asn1-ber/asn1-ber";
goPackageAliases = [
"github.com/nmcclain/asn1-ber"
"github.com/vanackere/asn1-ber"
"gopkg.in/asn1-ber.v1"
];
};
assertions = buildFromGitHub rec {
owner = "smartystreets";
repo = "assertions";
buildInputs = [ oglematchers ];
propagatedBuildInputs = [ goconvey ];
doCheck = false;
};
aws-sdk-go = buildFromGitHub {
owner = "aws";
repo = "aws-sdk-go";
goPackageAliases = [
"github.com/awslabs/aws-sdk-go"
];
buildInputs = [ gucumber testify ];
propagatedBuildInputs = [ go-ini ];
preBuild = ''
pushd go/src/$goPackagePath
make generate
popd
'';
};
hashicorp.aws-sdk-go = buildFromGitHub {
owner = "hashicorp";
repo = "aws-sdk-go";
propagatedBuildInputs = [ go-ini ];
subPackages = [
"./aws"
"./gen/ec2"
"./gen/endpoints"
"./gen/iam"
];
};
bleve = buildFromGitHub {
date = "2016-01-19";
owner = "blevesearch";
repo = "bleve";
buildFlags = [ "-tags all" ];
propagatedBuildInputs = [ protobuf goleveldb kagome gtreap bolt text
rcrowley.go-metrics bitset segment go-porterstemmer ];
};
binarydist = buildFromGitHub {
owner = "kr";
repo = "binarydist";
};
bitset = buildFromGitHub {
date = "2016-01-13";
owner = "willf";
repo = "bitset";
};
blackfriday = buildFromGitHub {
owner = "russross";
repo = "blackfriday";
propagatedBuildInputs = [ sanitized_anchor_name ];
};
bolt = buildFromGitHub {
owner = "boltdb";
repo = "bolt";
};
bufio = buildFromGitHub {
owner = "vmihailenco";
repo = "bufio";
};
bugsnag-go = buildFromGitHub {
owner = "bugsnag";
repo = "bugsnag-go";
propagatedBuildInputs = [ panicwrap revel ];
};
cascadia = buildFromGitHub rec {
owner = "andybalholm";
repo = "cascadia";
goPackageAliases = [ "code.google.com/p/cascadia" ];
propagatedBuildInputs = [ net ];
buildInputs = propagatedBuildInputs;
doCheck = true;
};
cast = buildFromGitHub {
owner = "spf13";
repo = "cast";
buildInputs = [ jwalterweatherman ];
};
check-v1 = buildFromGitHub {
owner = "go-check";
repo = "check";
goPackagePath = "gopkg.in/check.v1";
};
circbuf = buildFromGitHub {
owner = "armon";
repo = "circbuf";
};
cli = buildFromGitHub {
owner = "mitchellh";
repo = "cli";
propagatedBuildInputs = [ crypto ];
};
cli-spinner = buildFromGitHub {
owner = "odeke-em";
repo = "cli-spinner";
};
cobra = buildFromGitHub {
owner = "spf13";
repo = "cobra";
propagatedBuildInputs = [ pflag-spf13 mousetrap go-md2man viper ];
};
cli-go = buildFromGitHub {
owner = "codegangsta";
repo = "cli";
};
columnize = buildFromGitHub {
owner = "ryanuber";
repo = "columnize";
};
command = buildFromGitHub {
owner = "odeke-em";
repo = "command";
};
copystructure = buildFromGitHub {
owner = "mitchellh";
repo = "copystructure";
buildInputs = [ reflectwalk ];
};
confd = buildFromGitHub {
owner = "kelseyhightower";
repo = "confd";
preBuild = "export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/$goPackagePath/Godeps/_workspace";
subPackages = [ "./" ];
};
config = buildFromGitHub {
owner = "robfig";
repo = "config";
};
consul = buildFromGitHub {
owner = "hashicorp";
repo = "consul";
buildInputs = [
circbuf armon.go-metrics go-radix gomdb bolt consul-migrate go-checkpoint
ugorji.go go-multierror go-syslog golang-lru hcl logutils memberlist
net-rpc-msgpackrpc raft raft-boltdb raft-mdb scada-client serf yamux
muxado dns cli mapstructure columnize crypto
];
# Keep consul.ui for backward compatability
passthru.ui = pkgs.consul-ui;
};
consul-api = buildFromGitHub {
inherit (consul) owner repo;
inherit (consul) src;
subPackages = [ "api" ];
};
consul-alerts = buildFromGitHub {
date = "2015-08-09";
owner = "AcalephStorage";
repo = "consul-alerts";
renameImports = ''
# Remove all references to included dependency store
rm -rf go/src/github.com/AcalephStorage/consul-alerts/Godeps
govers -d -m github.com/AcalephStorage/consul-alerts/Godeps/_workspace/src/ ""
'';
# Temporary fix for name change
postPatch = ''
sed -i 's,SetApiKey,SetAPIKey,' notifier/opsgenie-notifier.go
'';
buildInputs = [ logrus docopt-go hipchat-go gopherduty consul-api opsgenie-go-sdk influxdb8-client ];
};
consul-migrate = buildFromGitHub {
date = "2015-05-19";
owner = "hashicorp";
repo = "consul-migrate";
buildInputs = [ raft raft-boltdb raft-mdb ];
};
consul-template = buildFromGitHub {
owner = "hashicorp";
repo = "consul-template";
# We just want the consul api not all of consul and vault
extraSrcs = [
{ inherit (consul) src goPackagePath; }
{ inherit (vault) src goPackagePath; }
];
buildInputs = [ go-multierror go-syslog hcl logutils mapstructure ];
};
context = buildFromGitHub rec {
owner = "gorilla";
repo = "context";
};
cookoo = buildFromGitHub {
owner = "Masterminds";
repo = "cookoo";
};
crypt = buildFromGitHub {
owner = "xordataexchange";
repo = "crypt";
preBuild = ''
substituteInPlace go/src/github.com/xordataexchange/crypt/backend/consul/consul.go \
--replace 'github.com/armon/consul-api' 'github.com/hashicorp/consul/api' \
--replace 'consulapi' 'api'
'';
propagatedBuildInputs = [ go-etcd consul-api crypto ];
};
cssmin = buildFromGitHub {
owner = "dchest";
repo = "cssmin";
};
dbus = buildFromGitHub {
owner = "godbus";
repo = "dbus";
};
deis = buildFromGitHub {
owner = "deis";
repo = "deis";
subPackages = [ "client" ];
buildInputs = [ docopt-go crypto yaml-v2 ];
postInstall = ''
if [ -f "$bin/bin/client" ]; then
mv "$bin/bin/client" "$bin/bin/deis"
fi
'';
};
dns = buildFromGitHub {
date = "2015-07-22";
owner = "miekg";
repo = "dns";
};
docopt-go = buildFromGitHub {
owner = "docopt";
repo = "docopt-go";
};
drive = buildFromGitHub {
owner = "odeke-em";
repo = "drive";
subPackages = [ "cmd/drive" ];
buildInputs = [
pb go-isatty command dts odeke-em.log statos xon odeke-em.google-api-go-client
cli-spinner oauth2 text net pretty-words meddler open-golang extractor
exponential-backoff cache bolt
];
disabled = !isGo14;
};
cache = buildFromGitHub {
owner = "odeke-em";
repo = "cache";
};
exercism = buildFromGitHub {
name = "exercism";
owner = "exercism";
repo = "cli";
buildInputs = [ net cli-go osext ];
};
exponential-backoff = buildFromGitHub {
owner = "odeke-em";
repo = "exponential-backoff";
};
extractor = buildFromGitHub {
owner = "odeke-em";
repo = "extractor";
};
open-golang = buildFromGitHub {
owner = "skratchdot";
repo = "open-golang";
};
pretty-words = buildFromGitHub {
owner = "odeke-em";
repo = "pretty-words";
};
meddler = buildFromGitHub {
owner = "odeke-em";
repo = "meddler";
};
dts = buildFromGitHub {
owner = "odeke-em";
repo = "dts";
};
du = buildFromGitHub {
date = "2015-08-05";
owner = "calmh";
repo = "du";
};
ed25519 = buildFromGitHub {
owner = "agl";
repo = "ed25519";
};
errwrap = buildFromGitHub {
owner = "hashicorp";
repo = "errwrap";
};
etcd = buildFromGitHub {
owner = "coreos";
repo = "etcd";
};
flannel = buildFromGitHub {
owner = "coreos";
repo = "flannel";
};
fsnotify.v0 = buildFromGitHub {
rev = "v0.9.3";
owner = "go-fsnotify";
repo = "fsnotify";
sha256 = "15wqjpkfzsxnaxbz6y4r91hw6812g3sc4ipagxw1bya9klbnkdc9";
goPackagePath = "gopkg.in/fsnotify.v0";
goPackageAliases = [ "github.com/howeyc/fsnotify" ];
};
fsnotify.v1 = buildFromGitHub rec {
rev = "v1.2.0";
owner = "go-fsnotify";
repo = "fsnotify";
sha256 = "1308z1by82fbymcra26wjzw7lpjy91kbpp2skmwqcq4q1iwwzvk2";
goPackagePath = "gopkg.in/fsnotify.v1";
};
fsync = buildFromGitHub {
owner = "spf13";
repo = "fsync";
buildInputs = [ afero ];
};
fzf = buildFromGitHub {
owner = "junegunn";
repo = "fzf";
buildInputs = [
crypto ginkgo gomega junegunn.go-runewidth go-shellwords pkgs.ncurses text
];
postInstall= ''
cp $src/bin/fzf-tmux $bin/bin
'';
};
g2s = buildFromGitHub {
owner = "peterbourgon";
repo = "g2s";
};
gawp = buildFromGitHub {
date = "2015-08-31";
owner = "martingallagher";
repo = "gawp";
dontInstallSrc = true;
buildInputs = [ fsnotify.v1 yaml-v2 ];
meta = with stdenv.lib; {
homepage = "https://github.com/martingallagher/gawp";
description = "A simple, configurable, file watching, job execution tool implemented in Go";
maintainers = with maintainers; [ kamilchm ];
license = licenses.asl20 ;
platforms = platforms.all;
};
};
gcloud-golang = buildFromGitHub {
owner = "GoogleCloudPlatform";
repo = "gcloud-golang";
goPackagePath = "google.golang.org/cloud";
buildInputs = [ net oauth2 protobuf google-api-go-client grpc ];
excludedPackages = "oauth2";
meta.hydraPlatforms = [ ];
};
gcloud-golang-compute-metadata = buildGoPackage rec {
inherit (gcloud-golang) rev name goPackagePath src;
subPackages = [ "compute/metadata" ];
buildInputs = [ net ];
};
gettext-go = buildFromGitHub {
owner = "chai2010";
repo = "gettext-go";
};
ginkgo = buildFromGitHub {
owner = "onsi";
repo = "ginkgo";
subPackages = [ "./" ]; # don't try to build test fixtures
};
git-annex-remote-b2 = buildFromGitHub {
buildInputs = [ go go-backblaze ];
owner = "encryptio";
repo = "git-annex-remote-b2";
};
git-appraise = buildFromGitHub {
owner = "google";
repo = "git-appraise";
};
git-lfs = buildFromGitHub {
date = "1.1.1"; # "date" is effectively "version"
owner = "github";
repo = "git-lfs";
# Tests fail with 'lfstest-gitserver.go:46: main redeclared in this block'
excludedPackages = [ "test" ];
preBuild = ''
pushd go/src/github.com/github/git-lfs
go generate ./commands
popd
'';
postInstall = ''
rm -v $bin/bin/{man,script}
'';
};
glide = buildFromGitHub {
owner = "Masterminds";
repo = "glide";
buildInputs = [ cookoo cli-go go-gypsy vcs ];
};
gls = buildFromGitHub {
owner = "jtolds";
repo = "gls";
};
ugorji.go = buildFromGitHub {
owner = "ugorji";
repo = "go";
goPackageAliases = [ "github.com/hashicorp/go-msgpack" ];
};
goamz = buildFromGitHub {
owner = "goamz";
repo = "goamz";
propagatedBuildInputs = [ go-ini ];
# These might need propagating too, but I haven't tested the entire library
buildInputs = [ sets go-simplejson check-v1 ];
};
goautoneg = buildGoPackage rec {
rev = "75cd24fc2f2c2a2088577d12123ddee5f54e0675";
name = "goautoneg-${stdenv.lib.strings.substring 0 7 rev}";
goPackagePath = "bitbucket.org/ww/goautoneg";
src = fetchhg {
inherit rev;
url = "https://${goPackagePath}";
sha256 = "19khhn5xhqv1yp7d6k987gh5w5rhrjnp4p0c6fyrd8z6lzz5h9qi";
};
};
dgnorton.goback = buildFromGitHub {
owner = "dgnorton";
repo = "goback";
};
gocryptfs = buildFromGitHub {
owner = "rfjakob";
repo = "gocryptfs";
buildInputs = [ crypto go-fuse openssl-spacemonkey ];
};
gocheck = buildGoPackage rec {
rev = "87";
name = "gocheck-${rev}";
goPackagePath = "launchpad.net/gocheck";
src = fetchbzr {
inherit rev;
url = "https://${goPackagePath}";
sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0";
};
};
gocql = buildFromGitHub {
owner = "gocql";
repo = "gocql";
propagatedBuildInputs = [ inf snappy groupcache ];
};
gocode = buildFromGitHub {
date = "2015-09-03";
owner = "nsf";
repo = "gocode";
};
gocolorize = buildFromGitHub rec {
owner = "agtorre";
repo = "gocolorize";
goPackagePath = "github.com/agtorre/gocolorize";
};
goconvey = buildFromGitHub rec {
owner = "smartystreets";
repo = "goconvey";
buildInputs = [ oglematchers ];
doCheck = false; # please check again
};
gohtml = buildFromGitHub {
owner = "yosssi";
repo = "gohtml";
propagatedBuildInputs = [ net ];
};
gomdb = buildFromGitHub {
owner = "armon";
repo = "gomdb";
};
influx.gomdb = buildFromGitHub {
owner = "influxdb";
repo = "gomdb";
};
gotty = buildFromGitHub {
owner = "yudai";
repo = "gotty";
buildInputs = [ cli-go go manners go-bindata-assetfs go-multierror structs websocket hcl pty ];
meta = with stdenv.lib; {
description = "Share your terminal as a web application";
homepage = "https://github.com/yudai/gotty";
maintainers = with maintainers; [ matthiasbeyer ];
license = licenses.mit;
};
};
govers = buildFromGitHub {
date = "2015-01-09";
owner = "rogpeppe";
repo = "govers";
dontRenameImports = true;
};
golang-lru = buildFromGitHub {
owner = "hashicorp";
repo = "golang-lru";
};
golang-petname = buildFromGitHub {
owner = "dustinkirkland";
repo = "golang-petname";
};
golang_protobuf_extensions = buildFromGitHub {
date = "2015-04-06";
owner = "matttproud";
repo = "golang_protobuf_extensions";
buildInputs = [ protobuf ];
};
goleveldb = buildFromGitHub {
date = "2015-08-19";
owner = "syndtr";
repo = "goleveldb";
propagatedBuildInputs = [ ginkgo gomega snappy ];
};
gollectd = buildFromGitHub {
owner = "kimor79";
repo = "gollectd";
};
gomega = buildFromGitHub {
owner = "onsi";
repo = "gomega";
};
gomemcache = buildFromGitHub {
owner = "bradfitz";
repo = "gomemcache";
};
google-api-go-client = buildFromGitHub {
date = "2015-08-19";
owner = "google";
repo = "google-api-go-client";
goPackagePath = "google.golang.org/api";
goPackageAliases = [ "github.com/google/google-api-client" ];
buildInputs = [ net ];
};
odeke-em.google-api-go-client = buildFromGitHub {
owner = "odeke-em";
repo = "google-api-go-client";
buildInputs = [ net ];
propagatedBuildInputs = [ google-api-go-client ];
};
gopass = buildFromGitHub {
owner = "howeyc";
repo = "gopass";
propagatedBuildInputs = [ crypto ];
};
gopherduty = buildFromGitHub {
owner = "darkcrux";
repo = "gopherduty";
};
goproxy = buildFromGitHub {
date = "2015-07-26";
owner = "elazarl";
repo = "goproxy";
buildInputs = [ go-charset ];
};
goreq = buildFromGitHub {
date = "2015-08-18";
owner = "franela";
repo = "goreq";
};
gotags = buildFromGitHub {
date = "2015-08-03";
owner = "jstemmer";
repo = "gotags";
};
gosnappy = buildFromGitHub {
owner = "syndtr";
repo = "gosnappy";
};
gox = buildFromGitHub {
owner = "mitchellh";
repo = "gox";
buildInputs = [ iochan ];
};
gozim = buildFromGitHub {
date = "2016-01-15";
owner = "akhenakh";
repo = "gozim";
propagatedBuildInputs = [ bleve go-liblzma groupcache go-rice goquery ];
buildInputs = [ pkgs.zip ];
postInstall = ''
pushd $NIX_BUILD_TOP/go/src/$goPackagePath/cmd/gozimhttpd
${go-rice.bin}/bin/rice append --exec $bin/bin/gozimhttpd
popd
'';
dontStrip = true;
};
go-assert = buildFromGitHub {
owner = "bmizerany";
repo = "assert";
propagatedBuildInputs = [ pretty ];
};
go-backblaze = buildFromGitHub {
owner = "kothar";
repo = "go-backblaze";
buildInputs = [ go-flags go-humanize uilive uiprogress ];
goPackagePath = "gopkg.in/kothar/go-backblaze.v0";
};
go-bencode = buildFromGitHub {
owner = "ehmry";
repo = "go-bencode";
};
go-bindata = buildFromGitHub rec {
owner = "jteeuwen";
repo = "go-bindata";
date = "2015-10-23";
subPackages = [ "./" "go-bindata" ]; # don't build testdata
meta = with stdenv.lib; {
homepage = "https://github.com/jteeuwen/go-bindata";
description = "A small utility which generates Go code from any file, useful for embedding binary data in a Go program";
maintainers = with maintainers; [ cstrahan ];
license = licenses.cc0 ;
platforms = platforms.all;
};
};
go-bindata-assetfs = buildFromGitHub {
owner = "elazarl";
repo = "go-bindata-assetfs";
date = "2015-08-13";
meta = with stdenv.lib; {
description = "Serves embedded files from jteeuwen/go-bindata with net/http";
homepage = "https://github.com/elazarl/go-bindata-assetfs";
maintainers = with maintainers; [ matthiasbeyer ];
license = licenses.bsd2;
};
};
pmylund.go-cache = buildFromGitHub {
owner = "pmylund";
repo = "go-cache";
goPackageAliases = [
"github.com/robfig/go-cache"
"github.com/influxdb/go-cache"
];
};
robfig.go-cache = buildFromGitHub {
owner = "robfig";
repo = "go-cache";
};
go-charset = buildFromGitHub {
date = "2014-07-13";
owner = "paulrosania";
repo = "go-charset";
goPackagePath = "code.google.com/p/go-charset";
preBuild = ''
find go/src/$goPackagePath -name \*.go | xargs sed -i 's,github.com/paulrosania/go-charset,code.google.com/p/go-charset,g'
'';
};
go-checkpoint = buildFromGitHub {
owner = "hashicorp";
repo = "go-checkpoint";
};
go-colorable = buildFromGitHub {
owner = "mattn";
repo = "go-colorable";
};
go-colortext = buildFromGitHub {
owner = "daviddengcn";
repo = "go-colortext";
};
go-etcd = buildFromGitHub {
owner = "coreos";
repo = "go-etcd";
propagatedBuildInputs = [ ugorji.go ];
};
go-flags = buildFromGitHub {
owner = "jessevdk";
repo = "go-flags";
};
go-fuse = buildFromGitHub rec {
date = "2015-07-27";
owner = "hanwen";
repo = "go-fuse";
};
go-github = buildFromGitHub {
owner = "google";
repo = "go-github";
buildInputs = [ oauth2 ];
propagatedBuildInputs = [ go-querystring ];
};
go-gtk-agl = buildFromGitHub {
owner = "agl";
repo = "go-gtk";
# Examples require many go libs, and gtksourceview seems ready only for
# gtk2
preConfigure = ''
rm -R example gtksourceview
'';
nativeBuildInputs = [ pkgs.pkgconfig ];
propagatedBuildInputs = [ pkgs.gtk3 ];
buildInputs = [ pkgs.gtkspell3 ];
};
go-gypsy = buildFromGitHub {
owner = "kylelemons";
repo = "go-gypsy";
};
go-homedir = buildFromGitHub {
owner = "mitchellh";
repo = "go-homedir";
};
go-hostpool = buildFromGitHub {
date = "2015-03-31";
owner = "bitly";
repo = "go-hostpool";
};
go-humanize = buildFromGitHub {
owner = "dustin";
repo = "go-humanize";
};
go-ini = buildFromGitHub {
owner = "vaughan0";
repo = "go-ini";
};
go-incremental = buildFromGitHub {
date = "2015-02-20";
owner = "GeertJohan";
repo = "go.incremental";
};
go-isatty = buildFromGitHub {
owner = "mattn";
repo = "go-isatty";
};
go-liblzma = buildFromGitHub {
date = "2016-01-01";
owner = "remyoudompheng";
repo = "go-liblzma";
propagatedBuildInputs = [ pkgs.lzma ];
};
go-log = buildFromGitHub {
owner = "coreos";
repo = "go-log";
propagatedBuildInputs = [ osext go-systemd ];
};
go-lxc = buildFromGitHub {
owner = "lxc";
repo = "go-lxc";
goPackagePath = "gopkg.in/lxc/go-lxc.v2";
nativeBuildInputs = [ pkgs.pkgconfig ];
buildInputs = [ pkgs.lxc ];
};
go-lz4 = buildFromGitHub {
owner = "bkaradzic";
repo = "go-lz4";
};
rcrowley.go-metrics = buildFromGitHub {
date = "2015-08-22";
owner = "rcrowley";
repo = "go-metrics";
propagatedBuildInputs = [ stathat ];
};
appengine = buildFromGitHub {
owner = "golang";
repo = "appengine";
goPackagePath = "google.golang.org/appengine";
buildInputs = [ protobuf net ];
};
armon.go-metrics = buildFromGitHub {
owner = "armon";
repo = "go-metrics";
propagatedBuildInputs = [ prometheus.client_golang ];
};
go-md2man = buildFromGitHub {
owner = "cpuguy83";
repo = "go-md2man";
propagatedBuildInputs = [ blackfriday ];
};
go-multierror = buildFromGitHub {
owner = "hashicorp";
repo = "go-multierror";
};
go-nsq = buildFromGitHub {
owner = "nsqio";
repo = "go-nsq";
propagatedBuildInputs = [ go-simplejson go-snappystream ];
goPackageAliases = [ "github.com/bitly/go-nsq" ];
};
go-options = buildFromGitHub {
date = "2014-12-20";
owner = "mreiferson";
repo = "go-options";
};
go-porterstemmer = buildFromGitHub {
date = "2014-12-30";
owner = "blevesearch";
repo = "go-porterstemmer";
};
go-querystring = buildFromGitHub {
owner = "google";
repo = "go-querystring";
};
go-radix = buildFromGitHub {
owner = "armon";
repo = "go-radix";
};
junegunn.go-runewidth = buildFromGitHub {
owner = "junegunn";
repo = "go-runewidth";
};
go-shellwords = buildFromGitHub {
owner = "junegunn";
repo = "go-shellwords";
};
go-restful = buildFromGitHub {
owner = "emicklei";
repo = "go-restful";
};
go-repo-root = buildFromGitHub {
date = "2014-09-11";
owner = "cstrahan";
repo = "go-repo-root";
buildInputs = [ tools ];
};
go-rice = buildFromGitHub {
date = "2016-01-04";
owner = "GeertJohan";
repo = "go.rice";
propagatedBuildInputs = [ osext go-spew go-flags go-zipexe rsrc
go-incremental ];
};
go-runit = buildFromGitHub {
owner = "soundcloud";
repo = "go-runit";
};
go-simplejson = buildFromGitHub {
date = "2015-03-31";
owner = "bitly";
repo = "go-simplejson";
};
go-snappystream = buildFromGitHub {
date = "2015-04-16";
owner = "mreiferson";
repo = "go-snappystream";
};
go-spew = buildFromGitHub {
date = "2015-11-05";
owner = "davecgh";
repo = "go-spew";
};
go-sqlite3 = buildFromGitHub {
date = "2015-07-29";
owner = "mattn";
repo = "go-sqlite3";
};
go-syslog = buildFromGitHub {
owner = "hashicorp";
repo = "go-syslog";
};
go-systemd = buildFromGitHub {
owner = "coreos";
repo = "go-systemd";
buildInputs = [ dbus ];
};
lxd-go-systemd = buildFromGitHub {
date = "2015-07-01";
owner = "stgraber";
repo = "lxd-go-systemd";
buildInputs = [ dbus ];
};
go-update-v0 = buildFromGitHub {
owner = "inconshreveable";
repo = "go-update";
goPackagePath = "gopkg.in/inconshreveable/go-update.v0";
buildInputs = [ osext binarydist ];
};
go-uuid = buildFromGitHub {
date = "2015-07-22";
owner = "satori";
repo = "go.uuid";
};
go-vhost = buildFromGitHub {
owner = "inconshreveable";
repo = "go-vhost";
};
go-zipexe = buildFromGitHub {
date = "2015-03-29";
owner = "daaku";
repo = "go.zipexe";
};
go-zookeeper = buildFromGitHub {
date = "2015-06-02";
owner = "samuel";
repo = "go-zookeeper";
};
lint = buildFromGitHub {
date = "2015-06-23";
owner = "golang";
repo = "lint";
excludedPackages = "testdata";
buildInputs = [ tools ];
};
goquery = buildFromGitHub {
owner = "PuerkitoBio";
repo = "goquery";
propagatedBuildInputs = [ cascadia net ];
buildInputs = [ cascadia net ];
doCheck = true;
};
groupcache = buildFromGitHub {
owner = "golang";
repo = "groupcache";
buildInputs = [ protobuf ];
};
grpc = buildFromGitHub {
date = "2015-08-29";
owner = "grpc";
repo = "grpc-go";
goPackagePath = "google.golang.org/grpc";
goPackageAliases = [ "github.com/grpc/grpc-go" ];
propagatedBuildInputs = [ http2 net protobuf oauth2 glog etcd ];
excludedPackages = "\\(test\\|benchmark\\)";
};
gtreap = buildFromGitHub {
date = "2015-08-07";
owner = "steveyen";
repo = "gtreap";
goPackagePath = "github.com/steveyen/gtreap";
};
gucumber = buildFromGitHub {
owner = "lsegal";
repo = "gucumber";
buildInputs = [ testify ];
propagatedBuildInputs = [ ansicolor ];
};
hcl = buildFromGitHub {
owner = "hashicorp";
repo = "hcl";
buildInputs = [ go-multierror ];
};
hipchat-go = buildFromGitHub {
owner = "tbruyelle";
repo = "hipchat-go";
};
hmacauth = buildFromGitHub {
owner = "18F";
repo = "hmacauth";
};
hound = buildFromGitHub {
owner = "etsy";
repo = "hound";
buildInputs = [ go-bindata.bin pkgs.nodejs pkgs.nodePackages.react-tools pkgs.python pkgs.rsync ];
postInstall = ''
pushd go
python src/github.com/etsy/hound/tools/setup
sed -i 's|bin/go-bindata||' Makefile
sed -i 's|$<|#go-bindata|' Makefile
make
'';
};
hologram = buildFromGitHub {
owner = "AdRoll";
repo = "hologram";
buildInputs = [ crypto protobuf goamz rgbterm go-bindata go-homedir ldap g2s gox ];
};
http2 = buildFromGitHub rec {
owner = "bradfitz";
repo = "http2";
buildInputs = [ crypto ];
};
httprouter = buildFromGitHub {
date = "2015-07-08";
owner = "julienschmidt";
repo = "httprouter";
};
hugo = buildFromGitHub {
owner = "spf13";
repo = "hugo";
buildInputs = [
mapstructure text websocket cobra osext fsnotify.v1 afero
jwalterweatherman cast viper yaml-v2 ace purell mmark blackfriday amber
cssmin nitro inflect fsync
];
};
i3cat = buildFromGitHub {
date = "2015-03-21";
owner = "vincent-petithory";
repo = "i3cat";
buildInputs = [ structfield ];
};
inf = buildFromGitHub {
owner = "go-inf";
repo = "inf";
goPackagePath = "gopkg.in/inf.v0";
goPackageAliases = [ "github.com/go-inf/inf" ];
};
inflect = buildGoPackage {
name = "inflect-2013-08-29";
goPackagePath = "bitbucket.org/pkg/inflect";
src = fetchFromBitbucket {
rev = "8961c3750a47b8c0b3e118d52513b97adf85a7e8";
owner = "pkg";
repo = "inflect";
sha256 = "11qdyr5gdszy24ai1bh7sf0cgrb4q7g7fsd11kbpgj5hjiigxb9a";
};
};
influxdb8-client = buildFromGitHub{
owner = "influxdb";
repo = "influxdb";
subPackages = [ "client" ];
};
eckardt.influxdb-go = buildFromGitHub {
owner = "eckardt";
repo = "influxdb-go";
};
flagfile = buildFromGitHub {
owner = "spacemonkeygo";
repo = "flagfile";
};
iochan = buildFromGitHub {
owner = "mitchellh";
repo = "iochan";
};
ipfs = buildFromGitHub{
date = "2016-01-12";
owner = "ipfs";
repo = "go-ipfs";
disabled = isGo14;
meta = with stdenv.lib; {
description = "A global, versioned, peer-to-peer filesystem";
license = licenses.mit;
};
};
json2csv = buildFromGitHub{
owner = "jehiah";
repo = "json2csv";
};
jwalterweatherman = buildFromGitHub {
owner = "spf13";
repo = "jwalterweatherman";
};
kagome = buildFromGitHub {
date = "2016-01-19";
owner = "ikawaha";
repo = "kagome";
# I disable the parallel building, because otherwise each
# spawned compile takes over 1.5GB of RAM.
buildFlags = "-p 1";
enableParallelBuilding = false;
goPackagePath = "github.com/ikawaha/kagome";
};
ldap = buildFromGitHub {
owner = "go-ldap";
repo = "ldap";
goPackageAliases = [
"github.com/nmcclain/ldap"
"github.com/vanackere/ldap"
];
propagatedBuildInputs = [ asn1-ber ];
};
levigo = buildFromGitHub {
owner = "jmhodges";
repo = "levigo";
buildInputs = [ pkgs.leveldb ];
};
liner = buildFromGitHub {
owner = "peterh";
repo = "liner";
};
odeke-em.log = buildFromGitHub {
owner = "odeke-em";
repo = "log";
};
log15 = buildFromGitHub {
owner = "inconshreveable";
repo = "log15";
goPackagePath = "gopkg.in/inconshreveable/log15.v2";
propagatedBuildInputs = [ go-colorable ];
};
log4go = buildFromGitHub {
owner = "ccpaging";
repo = "log4go";
goPackageAliases = [
"github.com/alecthomas/log4go"
"code.google.com/p/log4go"
];
propagatedBuildInputs = [ go-colortext ];
};
logger = buildFromGitHub {
date = "2015-05-23";
owner = "calmh";
repo = "logger";
};
logrus = buildFromGitHub rec {
owner = "Sirupsen";
repo = "logrus";
propagatedBuildInputs = [ airbrake-go bugsnag-go raven-go ];
};
logutils = buildFromGitHub {
owner = "hashicorp";
repo = "logutils";
};
luhn = buildFromGitHub {
date = "2015-01-13";
owner = "calmh";
repo = "luhn";
};
lxd = buildFromGitHub {
owner = "lxc";
repo = "lxd";
excludedPackages = "test"; # Don't build the binary called test which causes conflicts
buildInputs = [
gettext-go websocket crypto log15 go-lxc yaml-v2 tomb protobuf pongo2
lxd-go-systemd go-uuid tablewriter golang-petname mux go-sqlite3 goproxy
pkgs.python3
];
postInstall = ''
cp go/src/$goPackagePath/scripts/lxd-images $bin/bin
'';
};
manners = buildFromGitHub {
owner = "braintree";
repo = "manners";
meta = with stdenv.lib; {
description = "A polite Go HTTP server that shuts down gracefully";
homepage = "https://github.com/braintree/manners";
maintainers = with maintainers; [ matthiasbeyer ];
license = licenses.mit;
};
};
mapstructure = buildFromGitHub {
owner = "mitchellh";
repo = "mapstructure";
};
mdns = buildFromGitHub {
owner = "hashicorp";
repo = "mdns";
propagatedBuildInputs = [ net dns ];
};
memberlist = buildFromGitHub {
owner = "hashicorp";
repo = "memberlist";
propagatedBuildInputs = [ ugorji.go armon.go-metrics ];
};
memberlist_v2 = buildFromGitHub {
owner = "hashicorp";
repo = "memberlist";
propagatedBuildInputs = [ ugorji.go armon.go-metrics ];
};
mesos-dns = buildFromGitHub {
owner = "mesosphere";
repo = "mesos-dns";
# Avoid including the benchmarking test helper in the output:
subPackages = [ "." ];
buildInputs = [ glog mesos-go dns go-restful ];
};
mesos-go = buildFromGitHub {
owner = "mesos";
repo = "mesos-go";
propagatedBuildInputs = [ gogo.protobuf glog net testify go-zookeeper objx uuid ];
excludedPackages = "test";
};
mesos-stats = buildFromGitHub {
owner = "antonlindstrom";
repo = "mesos_stats";
};
mgo = buildFromGitHub {
owner = "go-mgo";
repo = "mgo";
goPackagePath = "gopkg.in/mgo.v2";
goPackageAliases = [ "github.com/go-mgo/mgo" ];
buildInputs = [ pkgs.cyrus_sasl tomb ];
};
mmark = buildFromGitHub {
owner = "miekg";
repo = "mmark";
buildInputs = [ toml ];
};
mongo-tools = buildFromGitHub {
owner = "mongodb";
repo = "mongo-tools";
buildInputs = [ gopass go-flags mgo openssl tomb ];
excludedPackages = "vendor";
# Mongodb incorrectly names all of their binaries main
# Let's work around this with our own installer
preInstall = ''
mkdir -p $bin/bin
while read b; do
rm -f go/bin/main
go install $goPackagePath/$b/main
cp go/bin/main $bin/bin/$b
done < <(find go/src/$goPackagePath -name main | xargs dirname | xargs basename -a)
rm -r go/bin
'';
};
mousetrap = buildFromGitHub {
owner = "inconshreveable";
repo = "mousetrap";
};
msgpack = buildFromGitHub {
owner = "vmihailenco";
repo = "msgpack";
goPackagePath = "gopkg.in/vmihailenco/msgpack.v2";
};
mtpfs = buildFromGitHub {
date = "2015-08-01";
owner = "hanwen";
repo = "go-mtpfs";
buildInputs = [ go-fuse usb ];
};
mux = buildFromGitHub {
date = "2015-08-05";
owner = "gorilla";
repo = "mux";
propagatedBuildInputs = [ context ];
};
muxado = buildFromGitHub {
owner = "inconshreveable";
repo = "muxado";
};
mysql = buildFromGitHub {
owner = "go-sql-driver";
repo = "mysql";
};
net-rpc-msgpackrpc = buildFromGitHub {
owner = "hashicorp";
repo = "net-rpc-msgpackrpc";
propagatedBuildInputs = [ ugorji.go ];
};
ngrok = buildFromGitHub {
owner = "inconshreveable";
repo = "ngrok";
goPackagePath = "ngrok";
preConfigure = ''
sed -e '/jteeuwen\/go-bindata/d' \
-e '/export GOPATH/d' \
-e 's/go get/#go get/' \
-e 's|bin/go-bindata|go-bindata|' -i Makefile
make assets BUILDTAGS=release
export sourceRoot=$sourceRoot/src/ngrok
'';
buildInputs = [
git log4go websocket go-vhost mousetrap termbox-go rcrowley.go-metrics
yaml-v1 go-bindata.bin go-update-v0 binarydist osext
];
buildFlags = [ "-tags release" ];
};
nitro = buildFromGitHub {
owner = "spf13";
repo = "nitro";
};
nsq = buildFromGitHub {
owner = "bitly";
repo = "nsq";
excludedPackages = "bench";
buildInputs = [ go-nsq go-options semver perks toml go-hostpool timer_metrics ];
};
ntp = buildFromGitHub {
owner = "beevik";
repo = "ntp";
};
oauth2_proxy = buildFromGitHub {
name = "oauth2_proxy";
owner = "bitly";
repo = "oauth2_proxy";
buildInputs = [
go-assert go-options go-simplejson toml fsnotify.v1 oauth2
google-api-go-client hmacauth
];
};
objx = buildFromGitHub {
owner = "stretchr";
repo = "objx";
};
oglematchers = buildFromGitHub {
owner = "jacobsa";
repo = "oglematchers";
#goTestInputs = [ ogletest ];
doCheck = false; # infinite recursion
};
oglemock = buildFromGitHub {
owner = "jacobsa";
repo = "oglemock";
buildInputs = [ oglematchers ];
#goTestInputs = [ ogletest ];
};
ogletest = buildFromGitHub {
owner = "jacobsa";
repo = "ogletest";
buildInputs = [ oglemock oglematchers ];
doCheck = false; # check this again
};
oh = buildFromGitHub {
date = "2016-02-23";
owner = "michaelmacinnis";
repo = "oh";
goPackageAliases = [ "github.com/michaelmacinnis/oh" ];
buildInputs = [ adapted liner ];
disabled = isGo14;
};
openssl = buildFromGitHub {
owner = "10gen";
repo = "openssl";
goPackageAliases = [ "github.com/spacemonkeygo/openssl" ];
nativeBuildInputs = [ pkgs.pkgconfig ];
buildInputs = [ pkgs.openssl ];
propagatedBuildInputs = [ spacelog ];
preBuild = ''
find go/src/$goPackagePath -name \*.go | xargs sed -i 's,spacemonkeygo/openssl,10gen/openssl,g'
'';
};
# reintroduced for gocrytpfs as I don't understand the 10gen/spacemonkey split
openssl-spacemonkey = buildFromGitHub rec {
owner = "spacemonkeygo";
repo = "openssl";
nativeBuildInputs = [ pkgs.pkgconfig ];
buildInputs = [ pkgs.openssl ];
propagatedBuildInputs = [ spacelog ];
};
opsgenie-go-sdk = buildFromGitHub {
date = "2015-08-24";
owner = "opsgenie";
repo = "opsgenie-go-sdk";
propagatedBuildInputs = [ seelog go-querystring goreq ];
excludedPackages = "samples";
};
osext = buildFromGitHub {
owner = "kardianos";
repo = "osext";
goPackageAliases = [
"github.com/bugsnag/osext"
"bitbucket.org/kardianos/osext"
];
};
pat = buildFromGitHub {
owner = "bmizerany";
repo = "pat";
};
pathtree = buildFromGitHub {
owner = "robfig";
repo = "pathtree";
};
panicwrap = buildFromGitHub {
owner = "bugsnag";
repo = "panicwrap";
propagatedBuildInputs = [ osext ];
};
pb = buildFromGitHub {
owner = "cheggaaa";
repo = "pb";
};
perks = buildFromGitHub {
date = "2014-07-16";
owner = "bmizerany";
repo = "perks";
};
beorn7.perks = buildFromGitHub rec {
date = "2015-02-23";
owner = "beorn7";
repo = "perks";
};
# XXX: why have does pflag seem to be a dupe of pflag-spf13?
pflag = buildFromGitHub {
date = "20131112";
rev = "94e98a55fb412fcbcfc302555cb990f5e1590627";
owner = "spf13";
repo = "pflag";
sha256 = "0z8nzdhj8nrim8fz11magdl0wxnisix9p2kcvn5kkb3bg8wmxhbg";
doCheck = false; # bad import path in tests
};
pflag-spf13 = buildFromGitHub rec {
rev = "08b1a584251b5b62f458943640fc8ebd4d50aaa5";
owner = "spf13";
repo = "pflag";
sha256 = "139d08cq06jia0arc6cikdnhnaqms07xfay87pzq5ym86fv0agiq";
};
pond = let
isx86_64 = stdenv.lib.any (n: n == stdenv.system) stdenv.lib.platforms.x86_64;
gui = true; # Might be implemented with nixpkgs config.
in buildFromGitHub {
owner = "agl";
repo = "pond";
buildInputs = [ net crypto protobuf ed25519 pkgs.trousers ]
++ stdenv.lib.optional isx86_64 pkgs.dclxvi
++ stdenv.lib.optionals gui [ go-gtk-agl pkgs.wrapGAppsHook ];
buildFlags = stdenv.lib.optionalString (!gui) "-tags nogui";
excludedPackages = "\\(appengine\\|bn256cgo\\)";
postPatch = stdenv.lib.optionalString isx86_64 ''
grep -r 'bn256' | awk -F: '{print $1}' | xargs sed -i \
-e "s,golang.org/x/crypto/bn256,github.com/agl/pond/bn256cgo,g" \
-e "s,bn256\.,bn256cgo.,g"
'';
};
pongo2 = buildFromGitHub {
date = "2014-10-27";
owner = "flosch";
repo = "pongo2";
goPackagePath = "gopkg.in/flosch/pongo2.v3";
};
pool = buildFromGitHub {
owner = "fatih";
repo = "pool";
goPackagePath = "gopkg.in/fatih/pool.v2";
};
pq = buildFromGitHub {
owner = "lib";
repo = "pq";
};
pretty = buildFromGitHub {
owner = "kr";
repo = "pretty";
propagatedBuildInputs = [ kr.text ];
};
prometheus.alertmanager = buildFromGitHub rec {
rev = ghPackages.prometheus.alertmanager.rev;
owner = "prometheus";
repo = "alertmanager";
buildInputs = [
# fsnotify.v0
# httprouter
# prometheus.client_golang
# prometheus.log
# pushover
];
# Tests exist, but seem to clash with the firewall.
doCheck = false;
preBuild = ''
export GO15VENDOREXPERIMENT=1
'';
buildFlagsArray = let t = "github.com/${owner}/${repo}/version"; in ''
-ldflags=
-X ${t}.Version=${rev}
-X ${t}.Revision=unknown
-X ${t}.Branch=unknown
-X ${t}.BuildUser=nix@nixpkgs
-X ${t}.BuildDate=unknown
-X ${t}.GoVersion=${stdenv.lib.getVersion go}
'';
meta = with stdenv.lib; {
description = "Alert dispatcher for the Prometheus monitoring system";
homepage = https://github.com/prometheus/alertmanager;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.client_golang = buildFromGitHub {
owner = "prometheus";
repo = "client_golang";
propagatedBuildInputs = [
goautoneg
protobuf
golang_protobuf_extensions
prometheus.client_model
prometheus.procfs
beorn7.perks
];
};
prometheus.cli = buildFromGitHub {
owner = "prometheus";
repo = "prometheus_cli";
buildInputs = [
prometheus.client_model
prometheus.client_golang
];
meta = with stdenv.lib; {
description = "Command line tool for querying the Prometheus HTTP API";
homepage = https://github.com/prometheus/prometheus_cli;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.client_model = buildFromGitHub {
date = "2015-02-12";
owner = "prometheus";
repo = "client_model";
buildInputs = [ protobuf ];
};
prometheus.collectd-exporter = buildFromGitHub {
owner = "prometheus";
repo = "collectd_exporter";
buildInputs = [ prometheus.client_golang ];
meta = with stdenv.lib; {
description = "Relay server for exporting metrics from collectd to Prometheus";
homepage = https://github.com/prometheus/alertmanager;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.haproxy-exporter = buildFromGitHub {
owner = "prometheus";
repo = "haproxy_exporter";
buildInputs = [ prometheus.client_golang ];
meta = with stdenv.lib; {
description = "HAProxy Exporter for the Prometheus monitoring system";
homepage = https://github.com/prometheus/haproxy_exporter;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.log = buildFromGitHub {
date = "2015-05-29";
owner = "prometheus";
repo = "log";
propagatedBuildInputs = [ logrus ];
};
prometheus.mesos-exporter = buildFromGitHub {
owner = "prometheus";
repo = "mesos_exporter";
buildInputs = [ mesos-stats prometheus.client_golang glog ];
meta = with stdenv.lib; {
description = "Export Mesos metrics to Prometheus";
homepage = https://github.com/prometheus/mesos_exporter;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.mysqld-exporter = buildFromGitHub {
owner = "prometheus";
repo = "mysqld_exporter";
buildInputs = [ mysql prometheus.client_golang ];
meta = with stdenv.lib; {
description = "Prometheus exporter for MySQL server metrics";
homepage = https://github.com/prometheus/mysqld_exporter;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.nginx-exporter = buildFromGitHub {
date = "2015-06-01";
owner = "discordianfish";
repo = "nginx_exporter";
buildInputs = [ prometheus.client_golang prometheus.log ];
meta = with stdenv.lib; {
description = "Metrics relay from nginx stats to Prometheus";
homepage = https://github.com/discordianfish/nginx_exporter;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.node-exporter = buildFromGitHub {
owner = "prometheus";
repo = "node_exporter";
buildInputs = [
go-runit
ntp
prometheus.client_golang
prometheus.client_model
prometheus.log
protobuf
];
doCheck = true;
meta = with stdenv.lib; {
description = "Prometheus exporter for machine metrics";
homepage = https://github.com/prometheus/node_exporter;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.procfs = buildFromGitHub {
date = "2015-06-16";
owner = "prometheus";
repo = "procfs";
};
prometheus.prom2json = buildFromGitHub {
owner = "prometheus";
repo = "prom2json";
buildInputs = [
golang_protobuf_extensions
prometheus.client_golang
protobuf
];
meta = with stdenv.lib; {
description = "Tool to scrape a Prometheus client and dump the result as JSON";
homepage = https://github.com/prometheus/prom2json;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.prometheus = buildFromGitHub rec {
rev = ghPackages.prometheus.prometheus.rev;
owner = "prometheus";
repo = "prometheus";
buildInputs = [
# consul
# dns
# fsnotify.v1
# go-zookeeper
# goleveldb
# httprouter
# logrus
# net
# prometheus.client_golang
# prometheus.log
# yaml-v2
];
docheck = true;
preBuild = ''
export GO15VENDOREXPERIMENT=1
'';
buildFlagsArray = let t = "github.com/${owner}/${repo}/version"; in ''
-ldflags=
-X ${t}.Version=${rev}
-X ${t}.Revision=unknown
-X ${t}.Branch=unknown
-X ${t}.BuildUser=nix@nixpkgs
-X ${t}.BuildDate=unknown
-X ${t}.GoVersion=${stdenv.lib.getVersion go}
'';
preInstall = ''
mkdir -p "$bin/share/doc/prometheus" "$bin/etc/prometheus"
cp -a $src/documentation/* $bin/share/doc/prometheus
cp -a $src/console_libraries $src/consoles $bin/etc/prometheus
'';
meta = with stdenv.lib; {
description = "Service monitoring system and time series database";
homepage = http://prometheus.io;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.pushgateway = buildFromGitHub rec {
rev = ghPackages.prometheus.pushgateway.rev;
owner = "prometheus";
repo = "pushgateway";
buildInputs = [
protobuf
httprouter
golang_protobuf_extensions
prometheus.client_golang
];
nativeBuildInputs = [ go-bindata.bin ];
preBuild = ''
(
cd "go/src/$goPackagePath"
go-bindata ./resources/
)
'';
buildFlagsArray = ''
-ldflags=
-X main.buildVersion=${rev}
-X main.buildRev=${rev}
-X main.buildBranch=master
-X main.buildUser=nix@nixpkgs
-X main.buildDate=20150101-00:00:00
-X main.goVersion=${stdenv.lib.getVersion go}
'';
meta = with stdenv.lib; {
description = "Allows ephemeral and batch jobs to expose metrics to Prometheus";
homepage = https://github.com/prometheus/pushgateway;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
prometheus.statsd-bridge = buildFromGitHub {
owner = "prometheus";
repo = "statsd_bridge";
buildInputs = [ fsnotify.v0 prometheus.client_golang ];
meta = with stdenv.lib; {
description = "Receives StatsD-style metrics and exports them to Prometheus";
homepage = https://github.com/prometheus/statsd_bridge;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
};
properties = buildFromGitHub {
owner = "magiconair";
repo = "properties";
};
gogo.protobuf = buildFromGitHub {
owner = "gogo";
repo = "protobuf";
excludedPackages = "test";
goPackageAliases = [
"code.google.com/p/gogoprotobuf"
];
};
pty = buildFromGitHub {
owner = "kr";
repo = "pty";
};
purell = buildFromGitHub {
owner = "PuerkitoBio";
repo = "purell";
propagatedBuildInputs = [ urlesc ];
};
pushover = buildFromGitHub {
owner = "thorduri";
repo = "pushover";
};
qart = buildFromGitHub {
owner = "vitrun";
repo = "qart";
};
raft = buildFromGitHub rec {
owner = "hashicorp";
repo = "raft";
propagatedBuildInputs = [ armon.go-metrics ugorji.go ];
};
raft-boltdb = buildFromGitHub {
owner = "hashicorp";
repo = "raft-boltdb";
propagatedBuildInputs = [ bolt ugorji.go raft ];
};
raft-mdb = buildFromGitHub {
owner = "hashicorp";
repo = "raft-mdb";
propagatedBuildInputs = [ gomdb ugorji.go raft ];
};
ratelimit = buildFromGitHub {
date = "2015-06-19";
owner = "juju";
repo = "ratelimit";
};
raw = buildFromGitHub {
owner = "feyeleanor";
repo = "raw";
};
raven-go = buildFromGitHub {
date = "2015-07-21";
owner = "getsentry";
repo = "raven-go";
};
redigo = buildFromGitHub {
owner = "garyburd";
repo = "redigo";
};
relaysrv = buildFromGitHub {
owner = "syncthing";
repo = "relaysrv";
buildInputs = [ xdr syncthing-protocol011 ratelimit syncthing-lib ];
};
reflectwalk = buildFromGitHub {
owner = "mitchellh";
repo = "reflectwalk";
};
revel = buildFromGitHub {
owner = "revel";
repo = "revel";
# Using robfig's old go-cache due to compilation errors.
# Try to switch to pmylund.go-cache after v0.12.0
propagatedBuildInputs = [
gocolorize config net pathtree fsnotify.v1 robfig.go-cache redigo gomemcache
];
};
restic = buildFromGitHub {
date = "2016-01-17";
owner = "restic";
repo = "restic";
# Using its delivered dependencies. Easier.
preBuild = "export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/$goPackagePath/Godeps/_workspace";
};
rgbterm = buildFromGitHub {
owner = "aybabtme";
repo = "rgbterm";
};
ripper = buildFromGitHub {
owner = "odeke-em";
repo = "ripper";
};
rsrc = buildFromGitHub {
date = "2015-11-03";
owner = "akavel";
repo = "rsrc";
};
sandblast = buildFromGitHub {
owner = "aarzilli";
repo = "sandblast";
buildInputs = [ net text ];
};
# This is the upstream package name, underscores and all. I don't like it
# but it seems wrong to change their name when packaging it.
sanitized_anchor_name = buildFromGitHub {
owner = "shurcooL";
repo = "sanitized_anchor_name";
};
scada-client = buildFromGitHub {
owner = "hashicorp";
repo = "scada-client";
buildInputs = [ armon.go-metrics net-rpc-msgpackrpc yamux ];
};
seelog = buildFromGitHub {
date = "2015-05-26";
owner = "cihub";
repo = "seelog";
};
segment = buildFromGitHub {
date = "2016-01-05";
owner = "blevesearch";
repo = "segment";
};
semver = buildFromGitHub {
date = "2015-07-20";
owner = "blang";
repo = "semver";
};
serf = buildFromGitHub {
date = "2015-05-15";
owner = "hashicorp";
repo = "serf";
buildInputs = [
circbuf armon.go-metrics ugorji.go go-syslog logutils mdns memberlist
cli mapstructure columnize
];
};
sets = buildFromGitHub {
owner = "feyeleanor";
repo = "sets";
propagatedBuildInputs = [ slices ];
};
skydns = buildFromGitHub {
owner = "skynetservices";
repo = "skydns";
buildInputs = [
go-etcd rcrowley.go-metrics dns go-systemd prometheus.client_golang
];
};
slices = buildFromGitHub {
owner = "feyeleanor";
repo = "slices";
propagatedBuildInputs = [ raw ];
};
spacelog = buildFromGitHub {
owner = "spacemonkeygo";
repo = "spacelog";
buildInputs = [ flagfile ];
};
stathat = buildFromGitHub {
owner = "stathat";
repo = "go";
};
statos = buildFromGitHub {
owner = "odeke-em";
repo = "statos";
};
statik = buildFromGitHub {
owner = "rakyll";
repo = "statik";
excludedPackages = "example";
};
structfield = buildFromGitHub {
date = "2014-08-01";
owner = "vincent-petithory";
repo = "structfield";
};
structs = buildFromGitHub {
owner = "fatih";
repo = "structs";
};
suture = buildFromGitHub {
owner = "thejerf";
repo = "suture";
};
syncthing = buildFromGitHub rec {
version = "0.12.19";
owner = "syncthing";
repo = "syncthing";
buildFlags = [ "-tags noupgrade,release" ];
disabled = isGo14;
buildInputs = [
go-lz4 du luhn xdr snappy ratelimit osext
goleveldb suture qart crypto net text rcrowley.go-metrics
];
# TODO: find a way to automatically update the veresion here:
postPatch = ''
# Mostly a cosmetic change
sed -i 's,unknown-dev,${version},g' cmd/syncthing/main.go
'';
};
syncthing011 = buildFromGitHub rec {
version = "0.11.26";
rev = "v${version}";
owner = "syncthing";
repo = "syncthing";
sha256 = "0c0dcvxrvjc84dvrsv90790aawkmavsj9bwp8c6cd6wrwj3cp9lq";
buildInputs = [
go-lz4 du luhn xdr snappy ratelimit osext syncthing-protocol011
goleveldb suture qart crypto net text
];
postPatch = ''
# Mostly a cosmetic change
sed -i 's,unknown-dev,${version},g' cmd/syncthing/main.go
'';
};
syncthing-lib = buildFromGitHub {
inherit (syncthing) owner repo src;
subPackages = [ "lib/sync" ];
propagatedBuildInputs = syncthing.buildInputs;
};
syncthing-protocol = buildFromGitHub {
inherit (syncthing) owner repo src;
subPackages = [ "lib/protocol" ];
propagatedBuildInputs = [
go-lz4
logger
luhn
xdr
text ];
};
syncthing-protocol011 = buildFromGitHub {
rev = "84365882de255d2204d0eeda8dee288082a27f98";
date = "2015-08-28";
owner = "syncthing";
repo = "protocol";
sha256 = "07xjs43lpd51pc339f8x487yhs39riysj3ifbjxsx329kljbflwx";
propagatedBuildInputs = [ go-lz4 logger luhn xdr text ];
};
tablewriter = buildFromGitHub {
date = "2015-06-03";
owner = "olekukonko";
repo = "tablewriter";
};
termbox-go = buildFromGitHub {
owner = "nsf";
repo = "termbox-go";
subPackages = [ "./" ]; # prevent building _demos
};
testify = buildFromGitHub {
owner = "stretchr";
repo = "testify";
buildInputs = [ objx ];
};
kr.text = buildFromGitHub {
owner = "kr";
repo = "text";
propagatedBuildInputs = [ pty ];
};
timer_metrics = buildFromGitHub {
date = "2015-02-02";
owner = "bitly";
repo = "timer_metrics";
};
tomb = buildFromGitHub {
owner = "go-tomb";
repo = "tomb";
goPackagePath = "gopkg.in/tomb.v2";
goPackageAliases = [ "github.com/go-tomb/tomb" ];
};
toml = buildFromGitHub {
date = "2015-05-01";
owner = "BurntSushi";
repo = "toml";
};
uilive = buildFromGitHub {
owner = "gosuri";
repo = "uilive";
};
uiprogress = buildFromGitHub {
buildInputs = [ uilive ];
owner = "gosuri";
repo = "uiprogress";
};
urlesc = buildFromGitHub {
owner = "opennota";
repo = "urlesc";
};
usb = buildFromGitHub rec {
date = "2014-12-17";
owner = "hanwen";
repo = "usb";
nativeBuildInputs = [ pkgs.pkgconfig ];
buildInputs = [ pkgs.libusb1 ];
};
uuid = buildFromGitHub {
date = "2015-08-24";
owner = "pborman";
repo = "uuid";
};
vault = buildFromGitHub {
owner = "hashicorp";
repo = "vault";
#postPatch = ''
# grep -r '/gen/' | awk -F: '{print $1}' | xargs sed -i 's,/gen/,/apis/,g'
#'';
# We just want the consul api not all of consul
extraSrcs = [
{ inherit (consul) src goPackagePath; }
];
buildInputs = [
armon.go-metrics go-radix aws-sdk-go go-etcd structs ldap mysql gocql
golang-lru go-github hashicorp.aws-sdk-go errwrap go-multierror go-syslog
hcl logutils osext pq cli copystructure go-homedir mapstructure
reflectwalk columnize go-zookeeper crypto net oauth2
];
};
vcs = buildFromGitHub {
owner = "Masterminds";
repo = "vcs";
};
viper = buildFromGitHub {
owner = "spf13";
repo = "viper";
propagatedBuildInputs = [
mapstructure yaml-v2 jwalterweatherman crypt fsnotify.v1 cast properties
pretty toml pflag-spf13
];
};
vulcand = buildFromGitHub rec {
owner = "mailgun";
repo = "vulcand";
goPackagePath = "github.com/mailgun/vulcand";
preBuild = "export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/$goPackagePath/Godeps/_workspace";
subPackages = [ "./" ];
};
websocket = buildFromGitHub {
owner = "gorilla";
repo = "websocket";
};
xmpp-client = buildFromGitHub {
date = "2016-01-10";
owner = "agl";
repo = "xmpp-client";
disabled = isGo14;
buildInputs = [ crypto net ];
meta = with stdenv.lib; {
description = "An XMPP client with OTR support";
homepage = https://github.com/agl/xmpp-client;
license = licenses.bsd3;
maintainers = with maintainers; [ codsl ];
};
};
# TODO(cstrahan): find a way to automate this pattern of gopkg.in/yaml.vX
# packages.
yaml-v1 = buildGoPackage rec {
name = "yaml-v1-${version}";
version = "git-2015-05-01";
goPackagePath = "gopkg.in/yaml.v1";
src = fetchFromGitHub {
rev = "b0c168ac0cf9493da1f9bb76c34b26ffef940b4a";
owner = "go-yaml";
repo = "yaml";
sha256 = "0jbdy41pplf2d1j24qwr8gc5qsig6ai5ch8rwgvg72kq9q0901cy";
};
};
yaml-v2 = buildFromGitHub {
rev = "7ad95dd0798a40da1ccdff6dff35fd177b5edf40";
date = "2015-06-24";
owner = "go-yaml";
repo = "yaml";
sha256 = "0d4jh46jq2yjg5dp00l7yl9ilhly7k4mfvi4harafd5ap5k9wnpb";
goPackagePath = "gopkg.in/yaml.v2";
};
yamux = buildFromGitHub {
owner = "hashicorp";
repo = "yamux";
};
xdr = buildFromGitHub {
date = "2015-04-08";
owner = "calmh";
repo = "xdr";
};
xon = buildFromGitHub {
owner = "odeke-em";
repo = "xon";
};
ninefans = buildFromGitHub {
date = "2015-10-24";
owner = "9fans";
repo = "go";
goPackagePath = "9fans.net/go";
goPackageAliases = [
"github.com/9fans/go"
];
excludedPackages = "\\(plan9/client/cat\\|acme/Watch\\)";
buildInputs = [ net ];
};
godef = buildFromGitHub {
date = "2015-10-24";
owner = "rogpeppe";
repo = "godef";
excludedPackages = "\\(go/printer/testdata\\)";
buildInputs = [ ninefans ];
subPackages = [ "./" ];
};
godep = buildFromGitHub {
date = "2015-10-15";
owner = "tools";
repo = "godep";
};
color = buildFromGitHub {
owner = "fatih";
repo = "color";
propagatedBuildInputs = [ net go-isatty ];
buildInputs = [ ansicolor go-colorable ];
};
pup = buildFromGitHub {
owner = "EricChiang";
repo = "pup";
propagatedBuildInputs = [ net ];
buildInputs = [ go-colorable color ];
postPatch = ''
grep -sr github.com/ericchiang/pup/Godeps/_workspace/src/ |
cut -f 1 -d : |
sort -u |
xargs -d '\n' sed -i -e s,github.com/ericchiang/pup/Godeps/_workspace/src/,,g
'';
};
textsecure = buildFromGitHub {
owner = "janimo";
repo = "textsecure";
propagatedBuildInputs = [ crypto protobuf ed25519 yaml-v2 logrus ];
disabled = isGo14;
};
interlock = buildFromGitHub {
owner = "inversepath";
repo = "interlock";
buildInputs = [ crypto textsecure ];
nativeBuildInputs = [ pkgs.sudo ];
buildFlags = [ "-tags textsecure" ];
subPackages = [ "./cmd/interlock" ];
postPatch = ''
grep -lr '/s\?bin/' | xargs sed -i \
-e 's|/bin/mount|${pkgs.utillinux}/bin/mount|' \
-e 's|/bin/umount|${pkgs.utillinux}/bin/umount|' \
-e 's|/bin/cp|${pkgs.coreutils}/bin/cp|' \
-e 's|/bin/mv|${pkgs.coreutils}/bin/mv|' \
-e 's|/bin/chown|${pkgs.coreutils}/bin/chown|' \
-e 's|/bin/date|${pkgs.coreutils}/bin/date|' \
-e 's|/sbin/poweroff|${pkgs.systemd}/sbin/poweroff|' \
-e 's|/usr/bin/sudo|/var/setuid-wrappers/sudo|' \
-e 's|/sbin/cryptsetup|${pkgs.cryptsetup}/bin/cryptsetup|'
'';
disabled = isGo14;
};
template = buildFromGitHub {
owner = "alecthomas";
repo = "template";
};
units = buildFromGitHub {
owner = "alecthomas";
repo = "units";
};
go-difflib = buildFromGitHub {
owner = "pmezard";
repo = "go-difflib";
};
kingpin = buildFromGitHub {
owner = "alecthomas";
repo = "kingpin";
propagatedBuildInputs = [ template units ];
goPackageAliases = [ "gopkg.in/alecthomas/kingpin.v2" ];
};
go2nix = buildFromGitHub rec {
owner = "kamilchm";
repo = "go2nix";
buildInputs = [ pkgs.makeWrapper go-bindata.bin tools.bin vcs go-spew gls go-difflib assertions goconvey testify kingpin ];
preBuild = ''go generate ./...'';
postInstall = ''
wrapProgram $bin/bin/go2nix \
--prefix PATH : ${pkgs.nix-prefetch-git}/bin \
--prefix PATH : ${pkgs.git}/bin
'';
allowGoReference = true;
};
godotenv = buildFromGitHub {
date = "2015-09-07";
owner = "joho";
repo = "godotenv";
buildInputs = [ go-colortext yaml-v2 ];
};
goreman = buildFromGitHub {
version = "0.0.8-rc0";
date = "2016-01-30";
owner = "mattn";
repo = "goreman";
buildInputs = [ go-colortext yaml-v2 godotenv ];
};
}; in self