diff --git a/pkgs/development/compilers/go/gox.nix b/pkgs/development/compilers/go/gox.nix new file mode 100644 index 000000000000..705cb6e5c28f --- /dev/null +++ b/pkgs/development/compilers/go/gox.nix @@ -0,0 +1,54 @@ +{ stdenv, lib, go, fetchFromGitHub }: + +let + goDeps = [ + { + root = "github.com/mitchellh/gox"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "gox"; + rev = "c7329055e2aeb253a947e5cc876586ff4ca19199"; + sha256 = "0zhb88jjxqn3sdc4bpzvajqvgi9igp5gk03q12gaksaxhy2wl4jy"; + }; + } + { + root = "github.com/mitchellh/iochan"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "iochan"; + rev = "b584a329b193e206025682ae6c10cdbe03b0cd77"; + sha256 = "1fcwdhfci41ibpng2j4c1bqfng578cwzb3c00yw1lnbwwhaq9r6b"; + }; + } + ]; + sources = 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); + }; +in + +stdenv.mkDerivation rec { + name = "gox"; + + src = sources; + + propagatedBuildInputs = [ go ]; + + installPhase = '' + ensureDir $out/bin + export GOPATH=$src + go build -v -o $out/bin/gox github.com/mitchellh/gox + ''; + + meta = with lib; { + description = "A simple, no-frills tool for Go cross compilation that behaves a lot like standard go build"; + homepage = https://github.com/mitchellh/gox; + maintainers = with maintainers; [ cstrahan ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix new file mode 100644 index 000000000000..5cea753dd9c3 --- /dev/null +++ b/pkgs/development/tools/packer/default.nix @@ -0,0 +1,35 @@ +{ stdenv, lib, gox, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "packer-0.6.0"; + + src = import ./deps.nix { + inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub; + }; + + buildInputs = [ gox ]; + + installPhase = '' + export GOPATH=$src + XC_ARCH=$(go env GOARCH) + XC_OS=$(go env GOOS) + + ensureDir $out/bin + + cd $src/src/github.com/mitchellh/packer + gox \ + -os="''${XC_OS}" \ + -arch="''${XC_ARCH}" \ + -output "$out/bin/packer-{{.Dir}}" \ + ./... + mv $out/bin/packer{*packer*,} + ''; + + meta = with stdenv.lib; { + description = "A tool for creating identical machine images for multiple platforms from a single source configuration"; + homepage = "http://www.packer.io"; + license = licenses.mpl20; + maintainers = with maintainers; [ cstrahan ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/tools/packer/deps.nix b/pkgs/development/tools/packer/deps.nix new file mode 100644 index 000000000000..4c8a376991aa --- /dev/null +++ b/pkgs/development/tools/packer/deps.nix @@ -0,0 +1,307 @@ +{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }: + +let + goDeps = [ + { + root = "github.com/mitchellh/packer"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "packer"; + rev = "12e28f257f66299e3bb13a053bf06ccd236e7efd"; + sha256 = "1r5j864kr7lx137c23kk5s82znk11hsrgq98zfz5r8sbzq1xpbzw"; + }; + } + { + root = "code.google.com/p/go.crypto"; + src = fetchhg { + url = "http://code.google.com/p/go.crypto"; + tag = "199"; + sha256 = "0ibrpc6kknzl6a2g2fkxn03mvrd635lcnvf4a9rk1dfrpjbpcixh"; + }; + } + { + root = "code.google.com/p/goauth2"; + src = fetchhg { + url = "http://code.google.com/p/goauth2"; + tag = "67"; + sha256 = "053vajj8hd9869by7z9qfgzn84h6avpcjvyxcyw5jml8dsln4bah"; + }; + } + { + root = "code.google.com/p/google-api-go-client"; + src = fetchhg { + url = "http://code.google.com/p/google-api-go-client"; + tag = "111"; + sha256 = "1ib8i1c2mb86lkrr5w7bgwb70gkqmp860wa3h1j8080gxdx3yy16"; + }; + } + { + root = "code.google.com/p/gosshold"; + src = fetchhg { + url = "http://code.google.com/p/gosshold"; + tag = "2"; + sha256 = "1ljl8pcxxfz5rv89b2ajd31gxxzifl57kzpksvdhyjdxh98gkvg8"; + }; + } + { + root = "github.com/ActiveState/tail"; + src = fetchFromGitHub { + owner = "ActiveState"; + repo = "tail"; + rev = "8dcd1ad3e57aa8ce5614a837cbbdb21945fbb55a"; + sha256 = "1jxj576dd7mawawwg5nzwf6k7sks0r3lp2x8f6kxaps50n3k1wiz"; + }; + } + { + root = "github.com/howeyc/fsnotify"; + src = fetchFromGitHub { + owner = "howeyc"; + repo = "fsnotify"; + rev = "441bbc86b167f3c1f4786afae9931403b99fdacf"; + sha256 = "1v5vrwhmidxjj6sppinyizf85v60zrmn7i6c9xk0pvx6k0kw2mr2"; + }; + } + { + root = "launchpad.net/tomb"; + src = fetchbzr { + url = "https://launchpad.net/tomb"; + revision = "17"; + sha256 = "1cjw0sr9hald1darq6n8akfpkzcgrk3mcq59hga3ibf2lrg35ha0"; + }; + } + { + root = "github.com/going/toolkit"; + src = fetchFromGitHub { + owner = "going"; + repo = "toolkit"; + rev = "6185c1893604d52d36a97dd6bb1247ace93a9b80"; + sha256 = "1kzy5yppalcidsmv5yxmr6lpqplqj07kdqpn77fdp6fbb0y0sg11"; + }; + } + { + root = "code.google.com/p/goprotobuf"; + src = fetchhg { + url = "http://code.google.com/p/goprotobuf"; + tag = "246"; + sha256 = "0k4wcv1dnkwcp0gdrajj6kr25f1lg4lgpbi0h5v9l9n7sdwzplf4"; + }; + } + { + root = "github.com/bmizerany/assert"; + src = fetchFromGitHub { + owner = "bmizerany"; + repo = "assert"; + rev = "e17e99893cb6509f428e1728281c2ad60a6b31e3"; + sha256 = "1lfrvqqmb09y6pcr76yjv4r84cshkd4s7fpmiy7268kfi2cvqnpc"; + }; + } + { + root = "github.com/kr/pretty"; + src = fetchFromGitHub { + owner = "kr"; + repo = "pretty"; + rev = "bc9499caa0f45ee5edb2f0209fbd61fbf3d9018f"; + sha256 = "1m61y592qsnwsqn76v54mm6h2pcvh4wlzbzscc1ag645x0j33vvl"; + }; + } + { + root = "github.com/kr/text"; + src = fetchFromGitHub { + owner = "kr"; + repo = "text"; + rev = "6807e777504f54ad073ecef66747de158294b639"; + sha256 = "1wkszsg08zar3wgspl9sc8bdsngiwdqmg3ws4y0bh02sjx5a4698"; + }; + } + { + root = "github.com/kr/pty"; + src = fetchFromGitHub { + owner = "kr"; + repo = "pty"; + rev = "67e2db24c831afa6c64fc17b4a143390674365ef"; + sha256 = "1l3z3wbb112ar9br44m8g838z0pq2gfxcp5s3ka0xvm1hjvanw2d"; + }; + } + { + root = "github.com/xiocode/toolkit"; + src = fetchFromGitHub { + owner = "xiocode"; + repo = "toolkit"; + rev = "352fd7c6700074a81056cdfc9e82b3e8c5681ac5"; + sha256 = "0p33zh57xpxyk2wyp9xahdxyrkq48ysihpr0n9kj713q0dh7x4a3"; + }; + } + { + root = "launchpad.net/gocheck"; + src = fetchbzr { + url = "https://launchpad.net/gocheck"; + revision = "87"; + sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0"; + }; + } + { + root = "github.com/hashicorp/go-version"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "go-version"; + rev = "bb92dddfa9792e738a631f04ada52858a139bcf7"; + sha256 = "0fl5a6j6nk1xsxwjdpa24a24fxvgnvm3jjlgpyrnmbdn380zil3m"; + }; + } + { + root = "github.com/mitchellh/go-fs"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "go-fs"; + rev = "faaa223588dd7005e49bf66fa2d19e35c8c4d761"; + sha256 = "19jsvy35g14f18ckymzxasy0zfd6n99zlqg6grpj1yqdfxfvqn9b"; + }; + } + { + root = "github.com/mitchellh/go-vnc"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "go-vnc"; + rev = "fc93dd80f5da4ccde0a9d97f0c73e56e04e0cf72"; + sha256 = "03rwsp1frvfx6c7yxr711lq7jdgsr1gcwg14jw26xvbzzxwjvnsf"; + }; + } + { + root = "github.com/mitchellh/goamz"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "goamz"; + rev = "c3ff5f734c89f1ea1f290c6aadbbceeeb19a623c"; + sha256 = "1nyi1p5yh21r161icnwkcgmj2y38b4m1jis47vvjbqinrp45w1gq"; + }; + } + { + root = "github.com/motain/gocheck"; + src = fetchFromGitHub { + owner = "motain"; + repo = "gocheck"; + rev = "9beb271d26e640863a5bf4a3c5ea40ccdd466b84"; + sha256 = "07arpwfdb51b5f7kzqnm5s5ndfmxv5j793hpn30nbdcya46diwjd"; + }; + } + { + root = "github.com/mitchellh/iochan"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "iochan"; + rev = "b584a329b193e206025682ae6c10cdbe03b0cd77"; + sha256 = "1fcwdhfci41ibpng2j4c1bqfng578cwzb3c00yw1lnbwwhaq9r6b"; + }; + } + { + root = "github.com/mitchellh/mapstructure"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "mapstructure"; + rev = "743fcf103ac7cdbc159e540d9d0e3a7889b87d68"; + sha256 = "1qqxsnxabd7c04n0ip1wmpr2g913qchqrbmblq0shrf5p1hnszgn"; + }; + } + { + root = "github.com/mitchellh/multistep"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "multistep"; + rev = "162146fc57112954184d90266f4733e900ed05a5"; + sha256 = "0ydhbxziy9204qr43pjdh88y2jg34g2mhzdapjyfpf8a1rin6dn3"; + }; + } + { + root = "github.com/mitchellh/osext"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "osext"; + rev = "0dd3f918b21bec95ace9dc86c7e70266cfc5c702"; + sha256 = "02pczqml6p1mnfdrygm3rs02g0r65qx8v1bi3x24dx8wv9dr5y23"; + }; + } + { + root = "github.com/mitchellh/panicwrap"; + src = fetchFromGitHub { + owner = "mitchellh"; + repo = "panicwrap"; + rev = "1aedff2aaa8b8ff7f65ab58e94ef9f593e2e3bf4"; + sha256 = "05brbpc7kizzbs1a128fmjddh7rdyg0jzzxgbvrl58cgklh4yzaa"; + }; + } + { + root = "github.com/rackspace/gophercloud"; + src = fetchFromGitHub { + owner = "rackspace"; + repo = "gophercloud"; + rev = "2285a429874c1365ef6c6d3ceb08b1d428e26aca"; + sha256 = "0py3h64r4wkl2r9j7xlh81nazpg2b0r5ba9iblh6d1380yk4fa7f"; + }; + } + { + root = "github.com/racker/perigee"; + src = fetchFromGitHub { + owner = "racker"; + repo = "perigee"; + rev = "01db3191866051f2ec854c2d876ac1a179d3049c"; + sha256 = "05pmlgwjynbr59bw50zhrklzhr5pgnij9ym5hqvijjrpw3qd9ivf"; + }; + } + { + root = "github.com/ugorji/go"; + src = fetchFromGitHub { + owner = "ugorji"; + repo = "go"; + rev = "71c2886f5a673a35f909803f38ece5810165097b"; + sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j"; + }; + } + { + root = "github.com/vmihailenco/msgpack"; + src = fetchFromGitHub { + owner = "vmihailenco"; + repo = "msgpack"; + rev = "20c1b88a6c7fc5432037439f4e8c582e236fb205"; + sha256 = "1dj5scpfhgnw0yrh0w6jlrb9d03halvsv4l3wgjhazrrimdqf0q0"; + }; + } + { + root = "github.com/ugorji/go-msgpack"; + src = fetchFromGitHub { + owner = "ugorji"; + repo = "go-msgpack"; + rev = "75092644046c5e38257395b86ed26c702dc95b92"; + sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98"; + }; + } + { + root = "launchpad.net/mgo"; + src = fetchbzr { + url = "https://launchpad.net/mgo"; + revision = "2"; + sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x"; + }; + } + { + root = "github.com/vmihailenco/bufio"; + src = fetchFromGitHub { + owner = "vmihailenco"; + repo = "bufio"; + rev = "24e7e48f60fc2d9e99e43c07485d9fff42051e66"; + sha256 = "0x46qnf2f15v7m0j2dcb16raxjamk5rdc7hqwgyxfr1sqmmw3983"; + }; + } + ]; + +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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 782443c13b62..322f5c111ba6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -329,6 +329,8 @@ let fetchmtn = callPackage ../build-support/fetchmtn (config.fetchmtn or {}); + packer = callPackage ../development/tools/packer { }; + fetchpatch = callPackage ../build-support/fetchpatch { }; fetchsvn = import ../build-support/fetchsvn { @@ -2976,6 +2978,8 @@ let go = go_1_2; + gox = callPackage ../development/compilers/go/gox.nix { }; + gprolog = callPackage ../development/compilers/gprolog { }; gwt240 = callPackage ../development/compilers/gwt/2.4.0.nix { };