about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2014-11-18 19:40:40 +0100
committeraszlig <aszlig@redmoonstudios.org>2014-11-18 19:40:40 +0100
commit15618dadc097e5e60d28e7202ceea4f2b7fd26f8 (patch)
tree8cb133ff5a63d8985c5d56905cf61b8342b28a0d /pkgs
parente5329b499e8cf2f6473ec1004fc13a7744fa3710 (diff)
nixops: Move from overrides into own package.
We now no longer override the package included in <nixpkgs>, but build
it completely from the upstream Git repository and do our patches right
after the fetchgit.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/default.nix1
-rw-r--r--pkgs/nixops/default.nix63
2 files changed, 64 insertions, 0 deletions
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 3bf91793..a3395f96 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -9,6 +9,7 @@ let
     axbo = callPackage ./axbo { };
     blop = callPackage ./blop { };
     grandpa = callPackage ./grandpa { };
+    nixops = callPackage ./nixops { };
     libCMT = callPackage ./libcmt { };
     librxtx_java = callPackage ./librxtx-java { };
     lockdev = callPackage ./lockdev { };
diff --git a/pkgs/nixops/default.nix b/pkgs/nixops/default.nix
new file mode 100644
index 00000000..14ef683d
--- /dev/null
+++ b/pkgs/nixops/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, runCommand, fetchgit, fetchpatch, git }:
+
+let
+  mkRaw = cmd: import (runCommand "genraw.nix" {} ''
+    (${cmd}) > "$out"
+  '');
+
+  mkString = cmd: import (runCommand "genstring.nix" {} ''
+    echo "\"$(${cmd})\"" > "$out"
+  '');
+
+  master = stdenv.mkDerivation rec {
+    name = "nixops-upstream-patched";
+
+    src = fetchgit {
+      url = "git://github.com/NixOS/nixops.git";
+      rev = "dd589dcf54f2e9530ec4ee4cd45a8a6474d7ce46";
+      sha256 = "0m5rxkggf4rxxwzk9bhffirgla8xjn0vacb8jjh751sn92h07az7";
+      leaveDotGit = true;
+    };
+
+    phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+
+    patches = [
+      (fetchpatch {
+        url = "https://github.com/NixOS/nixops/pull/201.diff";
+        sha256 = "1i5yycqayxggg3l1i6wk8lp64lqlxw5nmfya9fcrgmck8ls0rxid";
+      })
+      (fetchpatch rec {
+        name = "read-write-by-default.diff";
+        url = "https://github.com/aszlig/nixops/compare/"
+            + "NixOS:master...aszlig:${name}";
+        sha256 = "0a1jcqrqfi7dfvlha5r0609bzvin7p7nj523xxcrvwpgp6ag0zsa";
+      })
+    ];
+
+    patchFlags = "--merge -p1";
+
+    postPatch = ''
+      sed -i -e '/git ls-files/d' release.nix
+    '';
+
+    installPhase = ''
+      cp -a . "$out"
+    '';
+  };
+
+  release = import "${master}/release.nix" {
+    nixopsSrc = {
+      outPath = master;
+      inherit (master.src) rev;
+      revCount = mkRaw ''
+        # FIXME: It's a shallow clone, so we always get 1.
+        ${git}/bin/git -C "${master}" rev-list --count HEAD
+      '';
+
+      shortRev = mkString ''
+        ${git}/bin/git -C "${master}" rev-parse --short HEAD
+      '';
+    };
+    officialRelease = false;
+  };
+in stdenv.lib.getAttr stdenv.system release.build