From 749e73afc7d3a30e94100fe399da568467bbefe2 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sun, 15 Jun 2014 18:08:44 -0400 Subject: [PATCH 1/3] consul: new package --- pkgs/servers/consul/default.nix | 33 +++++ pkgs/servers/consul/deps.nix | 239 ++++++++++++++++++++++++++++++++ pkgs/servers/consul/ui.nix | 16 +++ pkgs/top-level/all-packages.nix | 3 + 4 files changed, 291 insertions(+) create mode 100644 pkgs/servers/consul/default.nix create mode 100644 pkgs/servers/consul/deps.nix create mode 100644 pkgs/servers/consul/ui.nix diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix new file mode 100644 index 000000000000..5282541e2f9e --- /dev/null +++ b/pkgs/servers/consul/default.nix @@ -0,0 +1,33 @@ +{ stdenv, lib, go, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }: + +let + version = "0.3.0"; +in + +stdenv.mkDerivation { + name = "consul-${version}"; + + src = import ./deps.nix { + inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub; + }; + + buildInputs = [ go ]; + + buildPhase = '' + export GOPATH=$src + go build -v -o consul github.com/hashicorp/consul + ''; + + installPhase = '' + ensureDir $out/bin + cp consul $out/bin + ''; + + meta = with lib; { + homepage = http://www.consul.io/; + description = "A tool for service discovery, monitoring and configuration"; + maintainers = with maintainers; [ cstrahan ]; + license = licenses.mpl20 ; + platforms = platforms.unix; + }; +} diff --git a/pkgs/servers/consul/deps.nix b/pkgs/servers/consul/deps.nix new file mode 100644 index 000000000000..ba237e2d94e7 --- /dev/null +++ b/pkgs/servers/consul/deps.nix @@ -0,0 +1,239 @@ +{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }: + +let + goDeps = [ + { + root = "code.google.com/p/go.net"; + src = fetchhg { + url = "http://code.google.com/p/go.net"; + tag = "134"; + sha256 = "1jycpgrfwgkfac60zjbx6babcz7sgyn9xgy6cr3l811j6k8r2pbv"; + }; + } + { + root = "code.google.com/p/go.text"; + src = fetchhg { + url = "http://code.google.com/p/go.text"; + tag = "85"; + sha256 = "1x8h6vq9g5gbi7iiwla6dkaaqqf7wmkdm4szj7wvzlsijf2x8dwr"; + }; + } + { + root = "github.com/armon/circbuf"; + src = fetchFromGitHub { + owner = "armon"; + repo = "circbuf"; + rev = "f092b4f207b6e5cce0569056fba9e1a2735cb6cf"; + sha256 = "06kwwdwa3hskdh6ws7clj1vim80dyc3ldim8k9y5qpd30x0avn5s"; + }; + } + { + root = "github.com/armon/go-metrics"; + src = fetchFromGitHub { + owner = "armon"; + repo = "go-metrics"; + rev = "02567bbc4f518a43853d262b651a3c8257c3f141"; + sha256 = "08fk3zmw0ywmdfp2qhrpv0vrk1y97hzqczrgr3y2yip3x8sr37ar"; + }; + } + { + root = "github.com/armon/gomdb"; + src = fetchFromGitHub { + owner = "armon"; + repo = "gomdb"; + rev = "a8e036c4dabe7437014ecf9dbc03c6f6f0766ef8"; + sha256 = "0hiw5qkkyfd22v291w7rbnlrb4kraqzbkjfx2dvl7rqchkb0hv68"; + }; + } + { + root = "github.com/armon/mdns"; + src = fetchFromGitHub { + owner = "armon"; + repo = "mdns"; + rev = "70462deb060d44247356ee238ebafd7699ddcffe"; + sha256 = "0xkm3d0hsixdm1yrkx9c39723kfjkb3wvrzrmx3np9ylcwn6h5p5"; + }; + } + { + root = "github.com/hashicorp/consul"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "consul"; + rev = "441d613e1bd96254c78c46ee7c1b35c161fc7295"; + sha256 = "1v06ygzsvc9c02yxpxnnm407kd30fc46b2146k5zrk1v8lq0f91j"; + }; + } + { + root = "github.com/hashicorp/go-syslog"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "go-syslog"; + rev = "ac3963b72ac367e48b1e68a831e62b93fb69091c"; + sha256 = "1r9s1gsa4azcs05gx1179ixk7qvrkrik3v92wr4s8gwm00m0gf81"; + }; + } + { + root = "github.com/hashicorp/logutils"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "logutils"; + rev = "8e0820fe7ac5eb2b01626b1d99df47c5449eb2d8"; + sha256 = "033rbkc066g657r0dnzysigjz2bs4biiz0kmiypd139d34jvslwz"; + }; + } + { + root = "github.com/hashicorp/memberlist"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "memberlist"; + rev = "17d39b695094be943bfb98442a80b082e6b9ac47"; + sha256 = "0nvgjnwmfqhv2wvr77d2q5mq1bfw4xbpil6wgyj4fyrmhsfzrv3g"; + }; + } + { + root = "github.com/hashicorp/raft"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "raft"; + rev = "8bdafd1e83e7d85ffeb5dc8f0857dbddd61edba5"; + sha256 = "1yv3v0vhw5hgqqhh20jhyba2lpkkmmj80lfgf7v4vgjb0y3jqy6x"; + }; + } + { + root = "github.com/hashicorp/raft-mdb"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "raft-mdb"; + rev = "70e1c88f4b6fb06fc94cc02109243160a443609d"; + sha256 = "1031yqgb91ch79m41gl8prrymlh4y4k9yklmbv3qvxkfqirdv247"; + }; + } + { + root = "github.com/hashicorp/serf"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "serf"; + rev = "83f220b4faa0614f49649156118b750b5b12fafb"; + sha256 = "144a4g5yfcjv1jnl3mi4jcwy4cd970h1924cdas2s7bcdx6kpnv4"; + }; + } + { + root = "github.com/hashicorp/yamux"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "yamux"; + rev = "35417c7dfab4085d7c921b33e4d5ea6cf9ceef65"; + sha256 = "02pk30dgjmp0zz5g3dcll6lf7izmpfh6fw2rp13al7771vaziqyl"; + }; + } + { + root = "github.com/inconshreveable/muxado"; + src = fetchFromGitHub { + owner = "inconshreveable"; + repo = "muxado"; + rev = "f693c7e88ba316d1a0ae3e205e22a01aa3ec2848"; + sha256 = "1vgiwwxhgx9c899f6ikvrs0w6vfsnypzalcqyr0mqm2w816r9hhs"; + }; + } + { + root = "github.com/miekg/dns"; + src = fetchFromGitHub { + owner = "miekg"; + repo = "dns"; + rev = "05cfaca9f0712f44206ecbfa65a6769434164e7a"; + sha256 = "1qc12v5yqlsi1mg18i10pvz9g4a5diqzp73q5n4m00gyk41q855j"; + }; + } + { + root = "github.com/mitchellh/cli"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "cli"; + rev = "975a7477b1507ea6bb888c48108e05d26fb30434"; + sha256 = "0gxjizg8pf5p3zj04k7cpkwf8l2q9j1j270j2bw0wv2d2pgn6z5l"; + }; + } + { + root = "github.com/mitchellh/mapstructure"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "mapstructure"; + rev = "6fb2c832bcac61d01212ab1d172f7a14a8585b07"; + sha256 = "0mx855lwhv0rk461wmbnbzbpkhmq5p2ipmrm5bhzimagrr1w17hw"; + }; + } + { + root = "github.com/ryanuber/columnize"; + src = fetchFromGitHub { + owner = "ryanuber"; + repo = "columnize"; + rev = "785d943a7b6886e0bb2f139a60487b823dd8d9de"; + sha256 = "1h3sxzhiwz65vf3cvclirlf6zhdr97v01dpn5cmf3m09rxxpnp3f"; + }; + } + { + root = "github.com/ugorji/go"; + src = fetchFromGitHub { + owner = "ugorji"; + repo = "go"; + rev = "71c2886f5a673a35f909803f38ece5810165097b"; + sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j"; + }; + } + { + root = "github.com/ugorji/go-msgpack"; + src = fetchFromGitHub { + owner = "ugorji"; + repo = "go-msgpack"; + rev = "75092644046c5e38257395b86ed26c702dc95b92"; + sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98"; + }; + } + { + root = "github.com/vmihailenco/bufio"; + src = fetchFromGitHub { + owner = "vmihailenco"; + repo = "bufio"; + rev = "24e7e48f60fc2d9e99e43c07485d9fff42051e66"; + sha256 = "0x46qnf2f15v7m0j2dcb16raxjamk5rdc7hqwgyxfr1sqmmw3983"; + }; + } + { + root = "github.com/vmihailenco/msgpack"; + src = fetchFromGitHub { + owner = "vmihailenco"; + repo = "msgpack"; + rev = "20c1b88a6c7fc5432037439f4e8c582e236fb205"; + sha256 = "1dj5scpfhgnw0yrh0w6jlrb9d03halvsv4l3wgjhazrrimdqf0q0"; + }; + } + { + root = "launchpad.net/gocheck"; + src = fetchbzr { + url = "https://launchpad.net/gocheck"; + revision = "87"; + sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0"; + }; + } + { + root = "launchpad.net/mgo"; + src = fetchbzr { + url = "https://launchpad.net/mgo"; + revision = "2"; + sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x"; + }; + } + ]; + +in + +stdenv.mkDerivation rec { + name = "go-deps"; + + buildCommand = + lib.concatStrings + (map (dep: '' + mkdir -p $out/src/`dirname ${dep.root}` + ln -s ${dep.src} $out/src/${dep.root} + '') goDeps); +} diff --git a/pkgs/servers/consul/ui.nix b/pkgs/servers/consul/ui.nix new file mode 100644 index 000000000000..68e12ab1cfed --- /dev/null +++ b/pkgs/servers/consul/ui.nix @@ -0,0 +1,16 @@ +{ stdenv, fetchzip }: + +let version = "0.3.0"; +in fetchzip { + name = "consul-ui-${version}"; + url = "https://dl.bintray.com/mitchellh/consul/${version}_web_ui.zip"; + sha256 = "0p4mhlrqidd6p3899wd3i9p41bdbb5avbz5986mnxg9f7dvhjdrc"; + + meta = with stdenv.lib; { + homepage = http://www.consul.io/intro/getting-started/ui.html; + description = "The static files for Consul's UI (used via -ui-dir)"; + maintainers = with maintainers; [ cstrahan ]; + license = licenses.mpl20 ; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e0955c4f6866..464c6cd866d0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -624,6 +624,9 @@ let flex = flex_2_5_35; }; + consul = callPackage ../servers/consul { }; + consul_ui = callPackage ../servers/consul/ui.nix { }; + ditaa = callPackage ../tools/graphics/ditaa { }; direnv = callPackage ../tools/misc/direnv { }; From b709036560d6cccc71825dce15c282aa0b404996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 14 Aug 2014 14:28:08 +0200 Subject: [PATCH 2/3] all-packages: fix ordering around consul Insertion into lexicographic order seems so difficult :-) --- pkgs/top-level/all-packages.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 808f0c1b264d..a1c92255c167 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -595,27 +595,27 @@ let byobu = callPackage ../tools/misc/byobu { }; + capstone = callPackage ../development/libraries/capstone { }; + catdoc = callPackage ../tools/text/catdoc { }; ccnet = callPackage ../tools/networking/ccnet { }; - capstone = callPackage ../development/libraries/capstone { }; + consul = callPackage ../servers/consul { }; + consul_ui = callPackage ../servers/consul/ui.nix { }; coprthr = callPackage ../development/libraries/coprthr { flex = flex_2_5_35; }; - consul = callPackage ../servers/consul { }; - consul_ui = callPackage ../servers/consul/ui.nix { }; + crawl = callPackage ../games/crawl { lua = lua5; }; cv = callPackage ../tools/misc/cv { }; - crawl = callPackage ../games/crawl { lua = lua5; }; + direnv = callPackage ../tools/misc/direnv { }; ditaa = callPackage ../tools/graphics/ditaa { }; - direnv = callPackage ../tools/misc/direnv { }; - dlx = callPackage ../misc/emulators/dlx { }; eggdrop = callPackage ../tools/networking/eggdrop { }; From b2a7b213be921a8f4f32bd233ffdb01a00cfd3ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 14 Aug 2014 14:36:34 +0200 Subject: [PATCH 3/3] consul*: fix evaluation CC #2955. --- pkgs/servers/consul/deps.nix | 8 ++++---- pkgs/servers/consul/ui.nix | 15 ++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/pkgs/servers/consul/deps.nix b/pkgs/servers/consul/deps.nix index ba237e2d94e7..c1ebcf809288 100644 --- a/pkgs/servers/consul/deps.nix +++ b/pkgs/servers/consul/deps.nix @@ -6,7 +6,7 @@ let root = "code.google.com/p/go.net"; src = fetchhg { url = "http://code.google.com/p/go.net"; - tag = "134"; + rev = "134"; sha256 = "1jycpgrfwgkfac60zjbx6babcz7sgyn9xgy6cr3l811j6k8r2pbv"; }; } @@ -14,7 +14,7 @@ let root = "code.google.com/p/go.text"; src = fetchhg { url = "http://code.google.com/p/go.text"; - tag = "85"; + rev = "85"; sha256 = "1x8h6vq9g5gbi7iiwla6dkaaqqf7wmkdm4szj7wvzlsijf2x8dwr"; }; } @@ -211,7 +211,7 @@ let root = "launchpad.net/gocheck"; src = fetchbzr { url = "https://launchpad.net/gocheck"; - revision = "87"; + rev = "87"; sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0"; }; } @@ -219,7 +219,7 @@ let root = "launchpad.net/mgo"; src = fetchbzr { url = "https://launchpad.net/mgo"; - revision = "2"; + rev = "2"; sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x"; }; } diff --git a/pkgs/servers/consul/ui.nix b/pkgs/servers/consul/ui.nix index 68e12ab1cfed..d1c04f959cb8 100644 --- a/pkgs/servers/consul/ui.nix +++ b/pkgs/servers/consul/ui.nix @@ -1,11 +1,7 @@ { stdenv, fetchzip }: -let version = "0.3.0"; -in fetchzip { - name = "consul-ui-${version}"; - url = "https://dl.bintray.com/mitchellh/consul/${version}_web_ui.zip"; - sha256 = "0p4mhlrqidd6p3899wd3i9p41bdbb5avbz5986mnxg9f7dvhjdrc"; - +let + version = "0.3.0"; meta = with stdenv.lib; { homepage = http://www.consul.io/intro/getting-started/ui.html; description = "The static files for Consul's UI (used via -ui-dir)"; @@ -13,4 +9,9 @@ in fetchzip { license = licenses.mpl20 ; platforms = platforms.all; }; -} +in (fetchzip { + name = "consul-ui-${version}"; + url = "https://dl.bintray.com/mitchellh/consul/${version}_web_ui.zip"; + sha256 = "0p4mhlrqidd6p3899wd3i9p41bdbb5avbz5986mnxg9f7dvhjdrc"; +}) // { inherit meta; } +