From 15618dadc097e5e60d28e7202ceea4f2b7fd26f8 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 18 Nov 2014 19:40:40 +0100 Subject: nixops: Move from overrides into own package. We now no longer override the package included in , but build it completely from the upstream Git repository and do our patches right after the fetchgit. Signed-off-by: aszlig --- pkgs/nixops/default.nix | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 pkgs/nixops/default.nix (limited to 'pkgs/nixops/default.nix') 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 -- cgit 1.4.1