From e7df430d916aae9c086c1e1eb42562506f82274e Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Wed, 25 Jun 2014 10:25:14 +0200 Subject: [PATCH 01/17] Adds cppo --- pkgs/development/tools/ocaml/cppo/default.nix | 37 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 39 insertions(+) create mode 100644 pkgs/development/tools/ocaml/cppo/default.nix diff --git a/pkgs/development/tools/ocaml/cppo/default.nix b/pkgs/development/tools/ocaml/cppo/default.nix new file mode 100644 index 00000000000..04475959f3d --- /dev/null +++ b/pkgs/development/tools/ocaml/cppo/default.nix @@ -0,0 +1,37 @@ +{stdenv, fetchurl, ocaml, findlib}: +let + pname = "cppo"; + version = "0.9.4"; + webpage = "http://mjambon.com/${pname}.html"; +in +stdenv.mkDerivation rec { + + name = "${pname}-${version}"; + + src = fetchurl { + url = "http://mjambon.com/releases/${pname}/${name}.tar.gz"; + sha256 = "1m7cbja7cf74l45plqnmjrjjz55v8x65rvx0ikk9mg1ak8lcmvxa"; + }; + + buildInputs = [ ocaml findlib ]; + + createFindlibDestdir = true; + + makeFlags = "PREFIX=$(out)"; + + preBuild = '' + mkdir $out/bin + ''; + + meta = { + description = "The C preprocessor for OCaml"; + longDescription = '' + Cppo is an equivalent of the C preprocessor targeted at the OCaml language and its variants. + ''; + homepage = "${webpage}"; + license = "bsd"; + }; +} + + + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3c1aade131e..5bc260eeb33 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3175,6 +3175,8 @@ let ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { }; + cppo = callPackage ../development/tools/ocaml/cppo { }; + cryptokit = callPackage ../development/ocaml-modules/cryptokit { }; deriving = callPackage ../development/tools/ocaml/deriving { }; From fdd649780db258171faaad570943fd4b66355d1c Mon Sep 17 00:00:00 2001 From: Nikita Mikhailov Date: Fri, 27 Jun 2014 23:21:17 +0700 Subject: [PATCH 02/17] openspades: Initial 0.0.12 --- pkgs/games/openspades/default.nix | 36 +++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/games/openspades/default.nix diff --git a/pkgs/games/openspades/default.nix b/pkgs/games/openspades/default.nix new file mode 100644 index 00000000000..7f11fc82903 --- /dev/null +++ b/pkgs/games/openspades/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, cmake, curl, glew, makeWrapper, mesa, SDL2, + SDL2_image, unzip, wget, zlib, withOpenal ? true, openal ? null }: + +assert withOpenal -> openal != null; + +stdenv.mkDerivation rec { + name = "openspades-${version}"; + version = "0.0.12"; + + src = fetchurl { + url = "https://github.com/yvt/openspades/archive/v${version}.tar.gz"; + sha256 = "1aa848cck8qrp67ha9vrkzm3k24r2aiv1v4dxla6pi22rw98yxzm"; + }; + + nativeBuildInputs = + with stdenv.lib; + [ cmake curl glew makeWrapper mesa SDL2 SDL2_image unzip wget zlib ] + ++ optional withOpenal openal; + + cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DOPENSPADES_INSTALL_BINARY=bin" ]; + + # OpenAL is loaded dynamicly + postInstall = + if withOpenal then '' + wrapProgram "$out/bin/openspades" \ + --prefix LD_LIBRARY_PATH : "${openal}/lib" + '' + else null; + + meta = with stdenv.lib; { + description = "OpenSpades is a compatible client of Ace of Spades 0.75"; + homepage = "https://github.com/yvt/openspades/"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fbbfa940abb..9960d3002c9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5764,6 +5764,8 @@ let ffmpeg = ffmpeg_0_10; }; + openspades = callPackage ../games/openspades {}; + openssl = callPackage ../development/libraries/openssl { fetchurl = fetchurlBoot; cryptodevHeaders = linuxPackages.cryptodev.override { From 4c2a206d537ccdcdcdf69b97f11ad9fd0a39469f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benno=20F=C3=BCnfst=C3=BCck?= Date: Sat, 28 Jun 2014 16:45:16 +0200 Subject: [PATCH 03/17] haskell-cabal-bounds: update Cabal version --- pkgs/top-level/haskell-packages.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 4441a85b199..df905155b22 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2781,7 +2781,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabalBounds = callPackage ../development/tools/haskell/cabal-bounds { Cabal = if pkgs.stdenv.lib.versionOlder "7.7" ghc.version then null - else self.Cabal_1_18_1_3; + else self.Cabal_1_20_0_1; + cabalLenses = self.cabalLenses.override { + Cabal = self.Cabal_1_20_0_1; + }; }; cabalMeta = callPackage ../development/tools/haskell/cabal-meta {}; From 164c578c96e4a85408bb9fea2dc54751d8af11c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benno=20F=C3=BCnfst=C3=BCck?= Date: Sat, 28 Jun 2014 16:50:35 +0200 Subject: [PATCH 04/17] haskell-cabal-bounds: GHC 7.8 has only Cabal 1.18 --- pkgs/top-level/haskell-packages.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index df905155b22..db9d4c30002 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2779,9 +2779,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabalDelete = callPackage ../development/tools/haskell/cabal-delete {}; cabalBounds = callPackage ../development/tools/haskell/cabal-bounds { - Cabal = if pkgs.stdenv.lib.versionOlder "7.7" ghc.version - then null - else self.Cabal_1_20_0_1; + Cabal = self.Cabal_1_20_0_1; cabalLenses = self.cabalLenses.override { Cabal = self.Cabal_1_20_0_1; }; From bf610b79ff00c0ab09b43dd2fd9a1a3aaa8af9b8 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Fri, 27 Jun 2014 16:03:04 -0700 Subject: [PATCH 05/17] structured-haskell-mode: 1.0.2 > 1.0.3 --- .../emacs-modes/structured-haskell-mode/default.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix index a832c7d5942..a9c2478d451 100644 --- a/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix +++ b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix @@ -1,15 +1,16 @@ -{ cabal, emacs, haskellSrcExts }: +{ cabal, emacs, haskellMode, haskellSrcExts }: cabal.mkDerivation (self: { pname = "structured-haskell-mode"; - version = "1.0.2"; - sha256 = "1lwdhlr38y5hdr78nplplr3q0hrjhryw378f1857qh0lvp03gwl2"; + version = "1.0.3"; + sha256 = "0axmw8bj51q8v0wd4jp6giw9dnv0mp7kp8yd16s4nm4hcqgrh5h2"; isLibrary = false; isExecutable = true; - buildDepends = [ haskellSrcExts ]; + buildDepends = [ haskellSrcExts haskellMode ]; buildTools = [ emacs ]; postInstall = '' - emacs -L elisp --batch -f batch-byte-compile "elisp/"*.el + emacs -L elisp -L ${haskellMode}/share/emacs/site-lisp \ + --batch -f batch-byte-compile "elisp/"*.el install -d $out/share/emacs/site-lisp install "elisp/"*.el "elisp/"*.elc $out/share/emacs/site-lisp ''; From c052d7297bd99c40a6dc4b750c603323ea3dc668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benno=20F=C3=BCnfst=C3=BCck?= Date: Sat, 28 Jun 2014 20:01:40 +0200 Subject: [PATCH 06/17] cabal-builder: Use hackage mirror It's now possible to use the mirror system for the cabal builder. --- pkgs/build-support/cabal/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index bc73d1f73a2..bb349b3a1f5 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -82,9 +82,7 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; # the default download location for Cabal packages is Hackage, # you still have to specify the checksum src = fetchurl { - # cannot use mirrors system because of subtly different directory structures - urls = ["http://hackage.haskell.org/packages/archive/${self.pname}/${self.version}/${self.fname}.tar.gz" - "http://hdiff.luite.com/packages/archive/${self.pname}/${self.fname}.tar.gz"]; + url = "mirror://hackage/${self.pname}/${self.fname}.tar.gz"; inherit (self) sha256; }; From e10001042d6fc2b4246f51b5fa1625b8bf7e8df3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benno=20F=C3=BCnfst=C3=BCck?= Date: Sat, 28 Jun 2014 20:33:28 +0200 Subject: [PATCH 07/17] fetchbzr, fetchdarcs, fetchhg: use `rev` attr This makes it match the behaviour of fetchgit and fetchsvn, so it's easier to write scripts that support all of them. --- pkgs/applications/editors/vim/configurable.nix | 2 +- pkgs/applications/editors/vim/default.nix | 2 +- pkgs/applications/graphics/photivo/default.nix | 2 +- pkgs/applications/misc/ocropus/default.nix | 2 +- .../science/electronics/kicad/default.nix | 4 ++-- pkgs/applications/science/logic/abc/default.nix | 2 +- .../applications/science/math/glsurf/default.nix | 2 +- .../window-managers/tabbed/default.nix | 2 +- pkgs/build-support/fetchbzr/builder.sh | 4 ++-- pkgs/build-support/fetchbzr/default.nix | 4 ++-- pkgs/build-support/fetchdarcs/builder.sh | 6 +++--- pkgs/build-support/fetchdarcs/default.nix | 4 ++-- pkgs/build-support/fetchhg/builder.sh | 4 ++-- pkgs/build-support/fetchhg/default.nix | 4 ++-- pkgs/development/lisp-modules/lisp-packages.nix | 2 +- pkgs/development/tools/packer/deps.nix | 16 ++++++++-------- pkgs/games/dwarf-therapist/default.nix | 2 +- pkgs/games/opentyrian/default.nix | 2 +- pkgs/servers/nsq/deps.nix | 2 +- pkgs/servers/serfdom/deps.nix | 8 ++++---- pkgs/tools/misc/ngrok/default.nix | 6 +++--- pkgs/tools/security/meo/default.nix | 2 +- pkgs/tools/system/storebrowse/default.nix | 2 +- 23 files changed, 43 insertions(+), 43 deletions(-) diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix index 9e2abffc451..e0d8de157b0 100644 --- a/pkgs/applications/editors/vim/configurable.nix +++ b/pkgs/applications/editors/vim/configurable.nix @@ -21,7 +21,7 @@ composableDerivation { # latest release args.fetchhg { url = "https://vim.googlecode.com/hg/"; - tag = "v7-4-316"; + rev = "v7-4-316"; sha256 = "0scxx33p1ky0wihk04xqpd6rygp1crm0hx446zbjwbsjj6xxn7sx"; }; diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix index 357de6249fa..bf947280173 100644 --- a/pkgs/applications/editors/vim/default.nix +++ b/pkgs/applications/editors/vim/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { src = fetchhg { url = "https://vim.googlecode.com/hg/"; - tag = "v7-4-316"; + rev = "v7-4-316"; sha256 = "0scxx33p1ky0wihk04xqpd6rygp1crm0hx446zbjwbsjj6xxn7sx"; }; diff --git a/pkgs/applications/graphics/photivo/default.nix b/pkgs/applications/graphics/photivo/default.nix index 61e3f666dca..156966ac46c 100644 --- a/pkgs/applications/graphics/photivo/default.nix +++ b/pkgs/applications/graphics/photivo/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { src = fetchhg { url = "http://code.google.com/p/photivo/"; - tag = "d687864489da"; + rev = "d687864489da"; sha256 = "0f6y18k7db2ci6xn664zcwm1g1k04sdv7gg1yd5jk41bndjb7z8h"; }; diff --git a/pkgs/applications/misc/ocropus/default.nix b/pkgs/applications/misc/ocropus/default.nix index fef3209d11a..240a975e611 100644 --- a/pkgs/applications/misc/ocropus/default.nix +++ b/pkgs/applications/misc/ocropus/default.nix @@ -40,7 +40,7 @@ pythonPackages.buildPythonPackage rec { src = fetchhg { url = "https://code.google.com/p/ocropus.ocropy"; - tag = "a6e0fbd820ce"; + rev = "a6e0fbd820ce"; sha256 = "1s0v0gd6psfjp6lghwl2dj49h18mgf2n2z8hqzw8430nzhglnlvr"; }; diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix index 8adab57656e..0e81616a006 100644 --- a/pkgs/applications/science/electronics/kicad/default.nix +++ b/pkgs/applications/science/electronics/kicad/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { src = fetchbzr { url = "https://code.launchpad.net/~kicad-stable-committers/kicad/stable"; - revision = 4024; + rev = 4024; sha256 = "1sv1l2zpbn6439ccz50p05hvqg6j551aqra551wck9h3929ghly5"; }; srcLibrary = fetchbzr { url = "http://bazaar.launchpad.net/~kicad-lib-committers/kicad/library"; - revision = 293; + rev = 293; sha256 = "1wn9a4nhqyjzzfkq6xm7ag8n5n10xy7gkq6i7yry7wxini7pzv1i"; }; diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix index a8076b9e29e..30c36ae29dc 100644 --- a/pkgs/applications/science/logic/abc/default.nix +++ b/pkgs/applications/science/logic/abc/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { src = fetchhg { url = "https://bitbucket.org/alanmi/abc"; - tag = "03e221443d71e49e56cbc37f1907ee3b0ff3e7c9"; + rev = "03e221443d71e49e56cbc37f1907ee3b0ff3e7c9"; sha256 = "0ahrqg718y7xpv939f6x8w1kqh7wsja4pw8hca7j67j0qjdgb4lm"; }; diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix index a056a32c64c..c4352c46f92 100644 --- a/pkgs/applications/science/math/glsurf/default.nix +++ b/pkgs/applications/science/math/glsurf/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation { src = fetchdarcs { url = "http://lama.univ-savoie.fr/~raffalli/GlSurf"; - tag = "3.3"; + rev = "3.3"; sha256 = ""; md5=""; }; diff --git a/pkgs/applications/window-managers/tabbed/default.nix b/pkgs/applications/window-managers/tabbed/default.nix index 3ab950bf4d0..2dec3b2241f 100644 --- a/pkgs/applications/window-managers/tabbed/default.nix +++ b/pkgs/applications/window-managers/tabbed/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { src = fetchhg { url = http://hg.suckless.org/tabbed; - tag = "d7542a6f6dc5"; + rev = "d7542a6f6dc5"; sha256 = "1963jsazfmh5k7923c1mfwppz1xbh48z16j0sa64fiscq22as2gj"; }; diff --git a/pkgs/build-support/fetchbzr/builder.sh b/pkgs/build-support/fetchbzr/builder.sh index 17567fdadd2..af1257d3688 100644 --- a/pkgs/build-support/fetchbzr/builder.sh +++ b/pkgs/build-support/fetchbzr/builder.sh @@ -1,9 +1,9 @@ source "$stdenv/setup" -header "exporting \`$url' (revision $revision) into \`$out'" +header "exporting \`$url' (revision $rev) into \`$out'" # Perform a lightweight checkout so that we don't end up importing # all the repository's history. -bzr -Ossl.cert_reqs=none export -r "$revision" --format=dir "$out" "$url" +bzr -Ossl.cert_reqs=none export -r "$rev" --format=dir "$out" "$url" stopNest diff --git a/pkgs/build-support/fetchbzr/default.nix b/pkgs/build-support/fetchbzr/default.nix index 721250beeb3..dd2c0363187 100644 --- a/pkgs/build-support/fetchbzr/default.nix +++ b/pkgs/build-support/fetchbzr/default.nix @@ -1,5 +1,5 @@ { stdenv, bazaar }: -{ url, revision, sha256 }: +{ url, rev, sha256 }: stdenv.mkDerivation { name = "bzr-export"; @@ -11,5 +11,5 @@ stdenv.mkDerivation { outputHashMode = "recursive"; outputHash = sha256; - inherit url revision; + inherit url rev; } diff --git a/pkgs/build-support/fetchdarcs/builder.sh b/pkgs/build-support/fetchdarcs/builder.sh index efff5ff5ebf..301deb98307 100644 --- a/pkgs/build-support/fetchdarcs/builder.sh +++ b/pkgs/build-support/fetchdarcs/builder.sh @@ -2,9 +2,9 @@ source $stdenv/setup tagtext="" tagflags="" -if test -n "$tag"; then - tagtext="(tag $tag) " - tagflags="--tag=$tag" +if test -n "$rev"; then + tagtext="(tag $rev) " + tagflags="--tag=$rev" elif test -n "$context"; then tagtext="(context) " tagflags="--context=$context" diff --git a/pkgs/build-support/fetchdarcs/default.nix b/pkgs/build-support/fetchdarcs/default.nix index 63e4ecde88a..3c2e0524eea 100644 --- a/pkgs/build-support/fetchdarcs/default.nix +++ b/pkgs/build-support/fetchdarcs/default.nix @@ -1,4 +1,4 @@ -{stdenv, darcs, nix}: {url, tag ? null, context ? null, md5 ? "", sha256 ? ""}: +{stdenv, darcs, nix}: {url, rev ? null, context ? null, md5 ? "", sha256 ? ""}: stdenv.mkDerivation { name = "fetchdarcs"; @@ -9,5 +9,5 @@ stdenv.mkDerivation { outputHashMode = "recursive"; outputHash = if sha256 == "" then md5 else sha256; - inherit url tag context; + inherit url rev context; } diff --git a/pkgs/build-support/fetchhg/builder.sh b/pkgs/build-support/fetchhg/builder.sh index 9699fb69b7f..0b51ef79b23 100644 --- a/pkgs/build-support/fetchhg/builder.sh +++ b/pkgs/build-support/fetchhg/builder.sh @@ -1,9 +1,9 @@ source $stdenv/setup -header "getting $url${tag:+ ($tag)} into $out" +header "getting $url${rev:+ ($rev)} into $out" hg clone --insecure "$url" hg-clone -hg archive -q -y ${tag:+-r "$tag"} --cwd hg-clone $out +hg archive -q -y ${rev:+-r "$rev"} --cwd hg-clone $out rm -f $out/.hg_archival.txt stopNest diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix index 1aebb7ecc87..4675cbe6ec8 100644 --- a/pkgs/build-support/fetchhg/default.nix +++ b/pkgs/build-support/fetchhg/default.nix @@ -1,4 +1,4 @@ -{stdenv, mercurial, nix}: {name ? null, url, tag ? null, md5 ? null, sha256 ? null}: +{stdenv, mercurial, nix}: {name ? null, url, rev ? null, md5 ? null, sha256 ? null}: # TODO: statically check if mercurial as the https support if the url starts woth https. stdenv.mkDerivation { @@ -13,6 +13,6 @@ stdenv.mkDerivation { outputHashMode = "recursive"; outputHash = if md5 != null then md5 else sha256; - inherit url tag; + inherit url rev; preferLocalBuild = true; } diff --git a/pkgs/development/lisp-modules/lisp-packages.nix b/pkgs/development/lisp-modules/lisp-packages.nix index f7d6dd2676d..14c996fa05a 100644 --- a/pkgs/development/lisp-modules/lisp-packages.nix +++ b/pkgs/development/lisp-modules/lisp-packages.nix @@ -37,7 +37,7 @@ let lispPackages = rec { src = pkgs.fetchdarcs { url = "http://common-lisp.net/project/iterate/darcs/iterate"; sha256 = "0m3q0s7h5s8varwx584m2akgdslj14df7kg4w1bj1fbgzsag5m1w"; - tag=version; + rev = version; }; overrides = x: { configurePhase="buildPhase(){ true; }"; diff --git a/pkgs/development/tools/packer/deps.nix b/pkgs/development/tools/packer/deps.nix index 4c8a376991a..ce56ecad8a2 100644 --- a/pkgs/development/tools/packer/deps.nix +++ b/pkgs/development/tools/packer/deps.nix @@ -15,7 +15,7 @@ let root = "code.google.com/p/go.crypto"; src = fetchhg { url = "http://code.google.com/p/go.crypto"; - tag = "199"; + rev = "199"; sha256 = "0ibrpc6kknzl6a2g2fkxn03mvrd635lcnvf4a9rk1dfrpjbpcixh"; }; } @@ -23,7 +23,7 @@ let root = "code.google.com/p/goauth2"; src = fetchhg { url = "http://code.google.com/p/goauth2"; - tag = "67"; + rev = "67"; sha256 = "053vajj8hd9869by7z9qfgzn84h6avpcjvyxcyw5jml8dsln4bah"; }; } @@ -31,7 +31,7 @@ let root = "code.google.com/p/google-api-go-client"; src = fetchhg { url = "http://code.google.com/p/google-api-go-client"; - tag = "111"; + rev = "111"; sha256 = "1ib8i1c2mb86lkrr5w7bgwb70gkqmp860wa3h1j8080gxdx3yy16"; }; } @@ -39,7 +39,7 @@ let root = "code.google.com/p/gosshold"; src = fetchhg { url = "http://code.google.com/p/gosshold"; - tag = "2"; + rev = "2"; sha256 = "1ljl8pcxxfz5rv89b2ajd31gxxzifl57kzpksvdhyjdxh98gkvg8"; }; } @@ -65,7 +65,7 @@ let root = "launchpad.net/tomb"; src = fetchbzr { url = "https://launchpad.net/tomb"; - revision = "17"; + rev = "17"; sha256 = "1cjw0sr9hald1darq6n8akfpkzcgrk3mcq59hga3ibf2lrg35ha0"; }; } @@ -82,7 +82,7 @@ let root = "code.google.com/p/goprotobuf"; src = fetchhg { url = "http://code.google.com/p/goprotobuf"; - tag = "246"; + rev = "246"; sha256 = "0k4wcv1dnkwcp0gdrajj6kr25f1lg4lgpbi0h5v9l9n7sdwzplf4"; }; } @@ -135,7 +135,7 @@ let root = "launchpad.net/gocheck"; src = fetchbzr { url = "https://launchpad.net/gocheck"; - revision = "87"; + rev = "87"; sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0"; }; } @@ -278,7 +278,7 @@ let root = "launchpad.net/mgo"; src = fetchbzr { url = "https://launchpad.net/mgo"; - revision = "2"; + rev = "2"; sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x"; }; } diff --git a/pkgs/games/dwarf-therapist/default.nix b/pkgs/games/dwarf-therapist/default.nix index c7e594f89bd..1a026132e52 100644 --- a/pkgs/games/dwarf-therapist/default.nix +++ b/pkgs/games/dwarf-therapist/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { src = fetchhg { url = "https://code.google.com/r/splintermind-attributes/"; - tag = rev; + inherit rev; sha256 = "0a9m967q6p2q3plrl6qysg1xrdmg65jzil6awjh2wr3g10x2x15z"; }; diff --git a/pkgs/games/opentyrian/default.nix b/pkgs/games/opentyrian/default.nix index 260b146217c..6b9c4847367 100644 --- a/pkgs/games/opentyrian/default.nix +++ b/pkgs/games/opentyrian/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { src = fetchhg { url = "https://opentyrian.googlecode.com/hg/"; - tag = "13ef8ce47362"; + rev = "13ef8ce47362"; md5 = "95c8f9e7ff3d4207f1c692c7cec6c9b0"; }; diff --git a/pkgs/servers/nsq/deps.nix b/pkgs/servers/nsq/deps.nix index 8518ceed916..bd98357ece6 100644 --- a/pkgs/servers/nsq/deps.nix +++ b/pkgs/servers/nsq/deps.nix @@ -6,7 +6,7 @@ let root = "code.google.com/p/snappy-go"; src = fetchhg { url = "http://code.google.com/p/snappy-go"; - tag = "14"; + rev = "14"; sha256 = "0ywa52kcii8g2a9lbqcx8ghdf6y56lqq96sl5nl9p6h74rdvmjr7"; }; } diff --git a/pkgs/servers/serfdom/deps.nix b/pkgs/servers/serfdom/deps.nix index d4da74b5476..b933c608824 100644 --- a/pkgs/servers/serfdom/deps.nix +++ b/pkgs/servers/serfdom/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"; }; } @@ -157,7 +157,7 @@ let root = "launchpad.net/gocheck"; src = fetchbzr { url = "https://launchpad.net/gocheck"; - revision = "87"; + rev = "87"; sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0"; }; } @@ -165,7 +165,7 @@ let root = "launchpad.net/mgo"; src = fetchbzr { url = "https://launchpad.net/mgo"; - revision = "2"; + rev = "2"; sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x"; }; } diff --git a/pkgs/tools/misc/ngrok/default.nix b/pkgs/tools/misc/ngrok/default.nix index e517dba7c55..6435923b48a 100644 --- a/pkgs/tools/misc/ngrok/default.nix +++ b/pkgs/tools/misc/ngrok/default.nix @@ -30,16 +30,16 @@ let url = "https://launchpad.net/goyaml"; sha256 = "03is37cgw62cha316xrs5h7q97im46ry5qldkfvbhimjq3ww0swj"; # Branch: "branch:lp:goyaml" - revision = 47; + rev = 47; }; log4go = fetchhg { url = "https://code.google.com/p/log4go/"; - tag = "c3294304d93f"; + rev = "c3294304d93f"; sha256 = "0q906sxrmwir295virfibqvdzlaj340qh2r4ysx1ccjrjazc0q5p"; }; osext = fetchhg { url = "https://bitbucket.org/kardianos/osext"; - tag = "364fb57"; + rev = "364fb57"; sha256 = "1w9x2zj716agfd5x5497ajb9nz3ljar74768vjidsyly143vzjws"; }; in stdenv.mkDerivation rec { diff --git a/pkgs/tools/security/meo/default.nix b/pkgs/tools/security/meo/default.nix index e18b68c7593..31736123a9f 100644 --- a/pkgs/tools/security/meo/default.nix +++ b/pkgs/tools/security/meo/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { src = fetchhg { url = http://oss.stamfest.net/hg/meo; - tag = "b48e5f16cff8"; + rev = "b48e5f16cff8"; sha256 = "0ifg7y28s89i9gwda6fyj1jbrykbcvq8bf1m6rxmdcv5afi3arbq"; }; diff --git a/pkgs/tools/system/storebrowse/default.nix b/pkgs/tools/system/storebrowse/default.nix index c46372bcd4b..1a3bfa69d1a 100644 --- a/pkgs/tools/system/storebrowse/default.nix +++ b/pkgs/tools/system/storebrowse/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { # This source has license BSD srcGoSqlite = fetchhg { url = "https://code.google.com/p/gosqlite/"; - tag = "5baefb109e18"; + rev = "5baefb109e18"; sha256 = "0mqfnx06jj15cs8pq9msny2z18x99hgk6mchnaxpg343nzdiz4zk"; }; From 009196d02c9b60bd44c289e66ac2ec146e0be4b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sat, 28 Jun 2014 21:11:10 +0200 Subject: [PATCH 08/17] KDE Connect 0.5.2 -> 0.7 --- pkgs/applications/misc/kdeconnect/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/misc/kdeconnect/default.nix b/pkgs/applications/misc/kdeconnect/default.nix index 70f3855c3d6..f0a66d42101 100644 --- a/pkgs/applications/misc/kdeconnect/default.nix +++ b/pkgs/applications/misc/kdeconnect/default.nix @@ -1,15 +1,15 @@ -{ stdenv, fetchurl, gettext, kdelibs, makeWrapper, qca2, qca2_ossl, qjson }: +{ stdenv, fetchurl, gettext, kdelibs, libXtst, makeWrapper, qca2, qca2_ossl, qjson }: stdenv.mkDerivation rec { name = "kdeconnect-${version}"; - version = "0.5.2.1"; + version = "0.7"; src = fetchurl { - url = "http://download.kde.org/unstable/kdeconnect/0.5.2/src/kdeconnect-kde-${version}.tar.xz"; - sha256 = "0g632ha7xcqf839c4h0dz5637bz6gnn2gz76dc0qq09zbrq49i08"; + url = "http://download.kde.org/unstable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz"; + sha256 = "0a8g3avg9x5j07cf3c16i4w65q3fn1cbs8zxgq0vl14rzdy09q2j"; }; - buildInputs = [ gettext kdelibs makeWrapper qca2 qca2_ossl qjson ]; + buildInputs = [ gettext kdelibs libXtst makeWrapper qca2 qca2_ossl qjson ]; postInstall = '' wrapProgram $out/lib/kde4/libexec/kdeconnectd --prefix QT_PLUGIN_PATH : ${qca2_ossl}/lib/qt4/plugins From cd48bbfaecad8bad05f3955faea4f1d07dbc2f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benno=20F=C3=BCnfst=C3=BCck?= Date: Sat, 28 Jun 2014 16:43:33 +0200 Subject: [PATCH 09/17] haskell-deepseq-generics: new expression --- .../haskell/deepseq-generics/default.nix | 15 +++++++++++++++ pkgs/top-level/haskell-packages.nix | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 pkgs/development/libraries/haskell/deepseq-generics/default.nix diff --git a/pkgs/development/libraries/haskell/deepseq-generics/default.nix b/pkgs/development/libraries/haskell/deepseq-generics/default.nix new file mode 100644 index 00000000000..6b3edd59ab2 --- /dev/null +++ b/pkgs/development/libraries/haskell/deepseq-generics/default.nix @@ -0,0 +1,15 @@ +{ cabal, deepseq, HUnit, testFramework, testFrameworkHunit }: + +cabal.mkDerivation (self: { + pname = "deepseq-generics"; + version = "0.1.1.1"; + sha256 = "1icc2gxsbnjjl150msnyysvr9r14kb6s2gm3izrj5a3mwf6l7s08"; + buildDepends = [ deepseq ]; + testDepends = [ deepseq HUnit testFramework testFrameworkHunit ]; + meta = { + homepage = "https://github.com/hvr/deepseq-generics"; + description = "GHC.Generics-based Control.DeepSeq.rnf implementation"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 166e81c46dd..a31231c0b62 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -587,6 +587,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in deepseq_1_3_0_2 = callPackage ../development/libraries/haskell/deepseq/1.3.0.2.nix {}; deepseq = null; # core package since ghc >= 7.4.x + deepseqGenerics = callPackage ../development/libraries/haskell/deepseq-generics {}; + deepseqTh = callPackage ../development/libraries/haskell/deepseq-th {}; derive = callPackage ../development/libraries/haskell/derive {}; From 962011de363c19448b26909bd298cd7e78162031 Mon Sep 17 00:00:00 2001 From: Kosyrev Serge <_deepfire@feelingofgreen.ru> Date: Sun, 29 Jun 2014 04:12:42 +0400 Subject: [PATCH 10/17] SHA2: new expression --- .../development/libraries/haskell/SHA2/default.nix | 14 ++++++++++++++ pkgs/top-level/haskell-packages.nix | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 pkgs/development/libraries/haskell/SHA2/default.nix diff --git a/pkgs/development/libraries/haskell/SHA2/default.nix b/pkgs/development/libraries/haskell/SHA2/default.nix new file mode 100644 index 00000000000..435d51ae0fe --- /dev/null +++ b/pkgs/development/libraries/haskell/SHA2/default.nix @@ -0,0 +1,14 @@ +{ cabal, aes, monadsTf, transformers }: + +cabal.mkDerivation (self: { + pname = "SHA2"; + version = "0.2.5"; + sha256 = "1zs79a327x6myfam3p2vr8lmszcaqnkll2qz8n4sy835vz328j40"; + buildDepends = [ aes monadsTf transformers ]; + meta = { + description = "Fast, incremental SHA hashing for bytestrings"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) + diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 166e81c46dd..48c5149148e 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2090,6 +2090,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in SHA = callPackage ../development/libraries/haskell/SHA {}; + SHA2 = callPackage ../development/libraries/haskell/SHA2 {}; + shake = callPackage ../development/libraries/haskell/shake {}; shakespeare = callPackage ../development/libraries/haskell/shakespeare {}; From 9802165f7afa112abef4f1ca0ce40628aa13c6ee Mon Sep 17 00:00:00 2001 From: Arseniy Seroka Date: Sun, 29 Jun 2014 04:25:23 +0400 Subject: [PATCH 11/17] haskel-command-qq: add pkg --- .../libraries/haskell/command-qq/default.nix | 16 ++++++++++++++++ pkgs/top-level/haskell-packages.nix | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 pkgs/development/libraries/haskell/command-qq/default.nix diff --git a/pkgs/development/libraries/haskell/command-qq/default.nix b/pkgs/development/libraries/haskell/command-qq/default.nix new file mode 100644 index 00000000000..c48701efe0e --- /dev/null +++ b/pkgs/development/libraries/haskell/command-qq/default.nix @@ -0,0 +1,16 @@ +{ cabal, doctest, hspec, text }: + +cabal.mkDerivation (self: { + pname = "command-qq"; + version = "0.3.0.0"; + sha256 = "1bqfb4gc5ja9d9jygijqpf6014bmfcxnsvpv7c5n4f1z2aj07jy5"; + buildDepends = [ text ]; + testDepends = [ doctest hspec text ]; + doCheck = false; + meta = { + homepage = "http://biegunka.github.io/command-qq/"; + description = "Quasiquoters for external commands"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 166e81c46dd..225e8a80d62 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2822,6 +2822,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in codex = callPackage ../development/tools/haskell/codex {}; + commandQq = callPackage ../development/libraries/haskell/command-qq {}; + gitAnnex = callPackage ../applications/version-management/git-and-tools/git-annex {}; githubBackup = callPackage ../applications/version-management/git-and-tools/github-backup {}; From f1b7cb7cebcf66fe569f32aab3b724821edb3d7c Mon Sep 17 00:00:00 2001 From: Alexander Kjeldaas Date: Wed, 16 Apr 2014 23:41:50 +0200 Subject: [PATCH 12/17] Added lib output to xfsprogs. This only contains static archives since xfsprogs is compiled with dynamic libraries disabled. --- pkgs/tools/filesystems/xfsprogs/default.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix index 400890e95f3..7c9cd05009d 100644 --- a/pkgs/tools/filesystems/xfsprogs/default.nix +++ b/pkgs/tools/filesystems/xfsprogs/default.nix @@ -12,11 +12,26 @@ stdenv.mkDerivation rec { sed -i s,/bin/bash,`type -P bash`, install-sh ''; + outputs = ["out" "lib"]; + + postInstall = '' + (cd include; make install-dev) + # The make install-dev target is broken when --disable-shared + mkdir -p $lib/lib $lib/include + cp ./libhandle/.libs/libhandle.a \ + ./libxcmd/.libs/libxcmd.a \ + ./libxlog/.libs/libxlog.a \ + ./libxfs/.libs/libxfs.a $lib/lib + mv $out/include/* $lib/include + ''; + + enableParallelBuilding = true; + buildInputs = [ libtool gettext libuuid ]; configureFlags = "MAKE=make MSGFMT=msgfmt MSGMERGE=msgmerge XGETTEXT=xgettext ZIP=gzip AWK=gawk --disable-shared"; preConfigure = '' - configureFlags="$configureFlags root_sbindir=$out/sbin root_libdir=$out/lib" + configureFlags="$configureFlags root_sbindir=$out/sbin root_libdir=$lib/lib" ''; disableStatic = false; From d80ded0e7d3158ff54721eb0e5d29477f7cccebe Mon Sep 17 00:00:00 2001 From: Alexander Kjeldaas Date: Wed, 16 Apr 2014 23:42:21 +0200 Subject: [PATCH 13/17] Added the ceph filesystem. --- pkgs/tools/filesystems/ceph/default.nix | 37 +++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 39 insertions(+) create mode 100644 pkgs/tools/filesystems/ceph/default.nix diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix new file mode 100644 index 00000000000..81f8484b6dc --- /dev/null +++ b/pkgs/tools/filesystems/ceph/default.nix @@ -0,0 +1,37 @@ +{stdenv, fetchgit, atomicops, autoconf, automake, boost, btrfsProgs, cryptopp, curl, expat, + fcgi, fuse, gperftools, keyutils, leveldb, libaio, libedit, libtool, + libuuid, linuxHeaders, openssl, pkgconfig, python, snappy, which, xfsprogs, xz}: + +stdenv.mkDerivation rec { + baseName="ceph"; + version="0.79"; + name="${baseName}-${version}"; + buildInputs = [ + fuse linuxHeaders pkgconfig atomicops autoconf automake boost btrfsProgs cryptopp expat + fcgi fuse gperftools keyutils leveldb libaio libedit libtool libuuid openssl pkgconfig + python snappy which xfsprogs.lib xz + ]; + + preConfigure = '' + ./autogen.sh + ''; + + installFlags = "DESTDIR=\${out}"; + + enableParallelBuilding = true; + src = fetchgit { + url = "https://github.com/ceph/ceph"; + rev = "4c2d73a5095f527c3a2168deb5fa54b3c8991a6e"; + sha256 = "0850m817wqqmw2qdnwm5jvbdgifzlc7kcd05jv526pdvmq1x92rf"; + }; + + meta = { + inherit version; + description = "Distributed storage system"; + maintainers = [ + stdenv.lib.maintainers.ak + ]; + platforms = with stdenv.lib.platforms; + linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5d4cfe7328f..796da97595e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -737,6 +737,8 @@ let cdrkit = callPackage ../tools/cd-dvd/cdrkit { }; + ceph = callPackage ../tools/filesystems/ceph { }; + cfdg = builderDefsPackage ../tools/graphics/cfdg { inherit libpng bison flex ffmpeg; }; From 81172a77e6e15f310842a4a5181bbce517b4cb8d Mon Sep 17 00:00:00 2001 From: Alexander Kjeldaas Date: Tue, 22 Apr 2014 13:02:43 +0200 Subject: [PATCH 14/17] Document paths-from-graph.pl somewhat. --- pkgs/build-support/kernel/paths-from-graph.pl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkgs/build-support/kernel/paths-from-graph.pl b/pkgs/build-support/kernel/paths-from-graph.pl index f1866237210..9a199a2b304 100644 --- a/pkgs/build-support/kernel/paths-from-graph.pl +++ b/pkgs/build-support/kernel/paths-from-graph.pl @@ -1,9 +1,27 @@ +# Parses a /nix/store/*-closure file and prints +# various information. +# By default, the nodes in the graph are printed to stdout. +# If the environment variable printManifest is set, +# then the graph is written as a manifest. +# If printRegistration is set, then the graph is written +# as a registration file for a manifest is written +# in the `nix-store --load-db' format. + use strict; use File::Basename; my %storePaths; my %refs; +# Each argument on the command line is a graph file. +# The graph file contains line-triples and a variable +# number of references: +# +# +# +# +# ... +# foreach my $graph (@ARGV) { open GRAPH, "<$graph" or die; From af5f5ec84da045d66ef9c6dec9d3ca6347c26fa0 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 28 Jun 2014 21:38:16 -0700 Subject: [PATCH 15/17] ceph: default atomicops dependency to null I have no such dependency on my system, so this prevent nix-env from working. --- pkgs/tools/filesystems/ceph/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix index 81f8484b6dc..7f0f09797ca 100644 --- a/pkgs/tools/filesystems/ceph/default.nix +++ b/pkgs/tools/filesystems/ceph/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchgit, atomicops, autoconf, automake, boost, btrfsProgs, cryptopp, curl, expat, +{stdenv, fetchgit, atomicops ? null, autoconf, automake, boost, btrfsProgs, cryptopp, curl, expat, fcgi, fuse, gperftools, keyutils, leveldb, libaio, libedit, libtool, libuuid, linuxHeaders, openssl, pkgconfig, python, snappy, which, xfsprogs, xz}: From a278c3dfa80a514bd25f46350568c4a8ddb373dc Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Sun, 29 Jun 2014 10:18:39 +0400 Subject: [PATCH 16/17] Fix tarball by adding the missing maintainer entry; email copied from commit metadata --- lib/maintainers.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 3a66f7a60b3..fae54c3d9c9 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -6,6 +6,7 @@ _1126 = "Christian Lask "; aforemny = "Alexander Foremny "; + ak = "Alexander Kjeldaas "; akc = "Anders Claesson "; algorith = "Dries Van Daele "; all = "Nix Committers "; From 54586a77e7c1feb331dc84e959396751f56315a7 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Mon, 30 Jun 2014 00:39:54 +0400 Subject: [PATCH 17/17] Adding a minimal script set to serve store as a dynamical binary cache --- .../servers/http/nix-binary-cache/default.nix | 61 ++++++++++ .../nix-binary-cache-start.in | 105 ++++++++++++++++++ .../nix-binary-cache/nix-binary-cache.cgi.in | 97 ++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 4 files changed, 265 insertions(+) create mode 100644 pkgs/servers/http/nix-binary-cache/default.nix create mode 100644 pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in create mode 100644 pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in diff --git a/pkgs/servers/http/nix-binary-cache/default.nix b/pkgs/servers/http/nix-binary-cache/default.nix new file mode 100644 index 00000000000..b007c09b056 --- /dev/null +++ b/pkgs/servers/http/nix-binary-cache/default.nix @@ -0,0 +1,61 @@ +{stdenv, fetchurl +, coreutils, findutils, nix, xz, bzip2, gnused, gnugrep, openssl +, lighttpd, iproute }: +stdenv.mkDerivation rec { + version = "2014-06-29-1"; + name = "nix-binary-cache-${version}"; + + phases = ["installPhase"]; + + installPhase = '' + mkdir -p "$out/bin" + substitute "${./nix-binary-cache.cgi.in}" "$out"/bin/nix-binary-cache.cgi \ + --replace @out@ "$out/bin" \ + --replace @shell@ "${stdenv.shell}" \ + --replace @coreutils@ "${coreutils}/bin" \ + --replace @findutils@ "${findutils}/bin" \ + --replace @nix@ "${nix}/bin" \ + --replace @xz@ "${xz}/bin" \ + --replace @bzip2@ "${bzip2}/bin" \ + --replace @gnused@ "${gnused}/bin" \ + --replace @gnugrep@ "${gnugrep}/bin" \ + --replace @openssl@ "${openssl}/bin" \ + --replace @lighttpd@ "${lighttpd}/sbin" \ + --replace @iproute@ "${iproute}/sbin" \ + --replace "xXxXx" "xXxXx" + + chmod a+x "$out/bin/nix-binary-cache.cgi" + + substitute "${./nix-binary-cache-start.in}" "$out"/bin/nix-binary-cache-start \ + --replace @out@ "$out/bin" \ + --replace @shell@ "${stdenv.shell}" \ + --replace @coreutils@ "${coreutils}/bin" \ + --replace @findutils@ "${findutils}/bin" \ + --replace @nix@ "${nix}/bin" \ + --replace @xz@ "${xz}/bin" \ + --replace @bzip2@ "${bzip2}/bin" \ + --replace @gnused@ "${gnused}/bin" \ + --replace @gnugrep@ "${gnugrep}/bin" \ + --replace @openssl@ "${openssl}/bin" \ + --replace @lighttpd@ "${lighttpd}/sbin" \ + --replace @iproute@ "${iproute}/sbin" \ + --replace "xXxXx" "xXxXx" + + chmod a+x "$out/bin/nix-binary-cache-start" + ''; + + meta = { + description = ''A set of scripts to serve the Nix store as a binary cache''; + longDescription = '' + This package installs a CGI script that serves Nix store path in the + binary cache format. It also installs a launcher called + nix-binary-cache-start that can be run without any setup to launch + a binary cache and get the example arguments for its usage. + ''; + maintainers = [stdenv.lib.maintainers.raskin]; + license = stdenv.lib.licenses.gpl2Plus; + inherit version; + platforms = stdenv.lib.platforms.all; + hydraPlatforms = []; + }; +} diff --git a/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in b/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in new file mode 100644 index 00000000000..2a2356f39ab --- /dev/null +++ b/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in @@ -0,0 +1,105 @@ +#! @shell@ + +parse_opts () { + while @coreutils@/test -n "$1" && @coreutils@/test "x$1" != x-- ; do + case "$1" in + --store-dir) + shift; + echo "STORE_DIR='$1'" + shift; + ;; + --priority) + shift; + echo "PRIORITY=$1"; + shift; + ;; + --compression) + shift; + echo "COMPRESSION=$1"; + shift; + ;; + --key) + shift; + echo "KEY=${1#*:}" + echo "KEYNAME=${1%%:*}" + shift; + ;; + --nix-remote) + shift; + echo "NIX_REMOTE=$1" + shift; + ;; + --mass-query) + shift; + echo "MASS_QUERY=$1" + shift; + ;; + --port) + shift; + echo "PORT=$1" + shift; + ;; + --help) + cat <&2 +"$0": start the Nix binary cache serving the Nix store dynamically. + +Recognized options: + +--port server port +--store-dir served Nix store + +--priority binary cache priority +--mass-query 0 or 1 - whether binary cache expects queries for nix-env -qas + +--compression compression to use: bzip2 or xz +--key name:/path/to/key - key to use for narinfo signing + +--nix-remote 'daemon' or empty string '' - whether to use daemon for store + operations + +--help show help and exit +EOF + exit 1; + ;; + *) shift ;; + esac; + done +} + +workingdir="$(@coreutils@/mktemp -d)" +cd "$workingdir" + +PORT=8080 +(echo "STORE_DIR=${NIX_STORE_DIR:-/nix/store}"; parse_opts "$@" + ) > nix-binary-cache.conf || exit +. "$workingdir/nix-binary-cache.conf" + +echo " +server.port = $PORT +server.modules = ( \"mod_cgi\", \"mod_setenv\", ) +server.document-root = \"$workingdir\" +cgi.assign = ( \".cgi\" => \"@shell@\" ) +setenv.add-request-header = ( \"NIX_BINARY_CACHE_CONFIG\" => \"$workingdir/nix-binary-cache.conf\" ) +" > lighttpd.conf + +cp @out@/nix-binary-cache.cgi . +cp @out@/nix-binary-cache.cgi ./nix-bc.cgi + +ip="$(@iproute@/ip a | @gnugrep@/grep 'inet .* scope global' | @coreutils@/head -n 1)" +ip="${ip%%/*}" +ip="${ip##* }" + +url="http://$ip:$PORT/nix-bc.cgi?" + +echo "Working directory: $workingdir" +echo +echo "Address of the binary cache: $url" +echo +echo "Usage example: NIX_REMOTE= nix-store --option binary-caches '$url'" +echo +echo + +@lighttpd@/lighttpd -D -f "$workingdir/lighttpd.conf" + +cd / +@coreutils@/rm -rf "$workingdir" diff --git a/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in b/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in new file mode 100644 index 00000000000..219ab9763ad --- /dev/null +++ b/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in @@ -0,0 +1,97 @@ +#! @shell@ + +STORE_DIR="${NIX_STORE_DIR:-/nix/store}" +MASS_QUERY=0 +PRIORITY=75 +COMPRESSION=bzip2 +KEY= +KEYNAME=na + +export NIX_REMOTE=daemon + +config="${NIX_BINARY_CACHE_CONFIG:-${HTTP_NIX_BINARY_CACHE_CONFIG:-/etc/nix/nix-binary-cache.cgi.conf}}" +config="$(cd "$(@coreutils@/dirname "$config")"; + @coreutils@/pwd)/$(@coreutils@/basename "$config")" +@coreutils@/test -e "$config" && . "$config" + +header(){ + echo "Content-Type: text/plain; charset=utf-8" + echo +} + +clean_path() { + @gnused@/sed -re "s@^$STORE_DIR/?@@" | @findutils@/xargs +} + +storeq(){ + @nix@/nix-store -q "$@" +} + +sign(){ + test -n "$1" && + @coreutils@/sha256sum | @gnused@/sed -e 's/ .*//' | + @openssl@/openssl rsautl -sign -inkey "$@" | @coreutils@/base64 -w 0 +} + +case "$QUERY_STRING" in + "") + header + echo "Hello, this is a dynamically-generated Nix binary cache" + ;; + /debug) + header + set + ;; + /nix-cache-info) + header + echo "StoreDir: $STORE_DIR" + echo "WantMassQuery: $MASS_QUERY" + echo "Priority: $PRIORITY" + ;; + *.narinfo) + hash=${QUERY_STRING%.narinfo} + hash=${hash#/} + path="$(echo "$STORE_DIR/$hash-"* )" + if [ -n "$path" ] && [ -e "$path" ]; then + header + info="$( + echo "StorePath: $path" + echo "URL: $(@coreutils@/basename "$path" + ).nar.$COMPRESSION" + echo "Compression: $COMPRESSION" + echo "NarHash: $(storeq --hash "$path")" + echo "NarSize: $(storeq --size "$path")" + echo "References: $(storeq --references "$path" | + @coreutils@/tac | clean_path )" + echo "Deriver: $(storeq --deriver "$path" | + clean_path )" + )" + signature="$(echo "$info" | sign "$KEY")" + + echo "$info" + echo "Signature: 1;$KEYNAME;$signature" + + else + exit 1 + fi + ;; + *.nar.xz) + path="$STORE_DIR${QUERY_STRING%.nar.xz}" + if [ -n "$path" ] && [ -e "$path" ]; then + header + @nix@/nix-store --dump "$path" | @xz@/xz + else + exit 1 + fi + ;; + *.nar.bzip2) + path="$STORE_DIR${QUERY_STRING%.nar.bzip2}" + echo "$path" >&2; + if [ -n "$path" ] && [ -e "$path" ]; then + header + @nix@/nix-store --dump "$path" | @bzip2@/bzip2 + else + exit 1 + fi + ;; +esac diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 796da97595e..cfb4ac4ba82 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6752,6 +6752,8 @@ let ngircd = callPackage ../servers/irc/ngircd { }; + nix-binary-cache = callPackage ../servers/http/nix-binary-cache {}; + nsd = callPackage ../servers/dns/nsd { }; nsq = callPackage ../servers/nsq { };