Merge #125: Fix virtualbox deployment for 19.09

cfafcb5d32 Fix virtualbox deployment for 19.09 (Erik Arvstedt)

Pull request description:

  Without this, starting the virtualbox guest service fails during machine activation.
  This is due to an incompatible NixOS machine base image.
  Fix this by using an updated version of nixops.

  I've already reported [this issue](https://github.com/NixOS/nixops/issues/1207) upstream.

  @jonasnick, could you check if this new nixops version works
  correctly for your non-virtualbox deployments?

Top commit has no ACKs.

Tree-SHA512: ac8a86ec11739c4bd527c45438bbbd92cb8a5b94509d45a56a22c3294419a78e01cdfa9a9cac17be84b9a1dd79eee35150eb182904265c3fbf387be59d8d85d3
This commit is contained in:
Jonas Nick 2019-11-10 20:30:50 +00:00
commit a47f1e12c8
No known key found for this signature in database
GPG Key ID: 4861DBF262123605
3 changed files with 90 additions and 1 deletions

53
pkgs/nixops/default.nix Normal file
View File

@ -0,0 +1,53 @@
# An updated version of nixops that's compatible with machines running NixOS 19.09.
# 19.09 demands a suitable base image (defined in nixops-vbox/nix/virtualbox.nix) to
# start the virtualbox guest service during system activation.
{ stdenv, nixops, runCommand, fetchFromGitHub }:
let
pluginData = {
aws = {
owner = "nixos";
repo = "nixops-aws";
rev= "v1.0.0";
sha256 = "1if6spscsgd6ckivgvbqza5fvvn5hbafi1n8q0fw98s3xpz2hjfm";
};
hetzner = {
owner = "nixos";
repo = "nixops-hetzner";
rev = "v1.0.0";
sha256 = "0cxfjpk2daczv3m7q5bsgfvd30qgmm1y7dnvz6nd7s7l7l0gsvas";
};
vbox = {
owner = "nix-community";
repo = "nixops-vbox";
rev = "bff6054ce9e7f5f9aa830617577f1a511a461063";
sha256 = "0j0lbi8rqmw17ji367zh94lvlb062iiyavl4l7m851v40wqr8a5i";
};
libvirtd = {
owner = "nix-community";
repo = "nixops-libvirtd";
rev = "v1.0.0";
sha256 = "0g2ag4mhgrxws3h4q8cvfh4ks1chgpjm018ayqd48lagyvi32l8m";
};
};
origSrc = fetchFromGitHub {
owner = "NixOS";
repo = "nixops";
rev = "2434bf26e0bba49441041ffce36dc324f049bc00";
sha256 = "0ag05pjwwqdw8in49hr8m8bdg31xsgqs1cawcqyh6a5lsys7f6zg";
};
src = runCommand "src" {} ''
cp --no-preserve=mode -r ${origSrc} $out
cd $out
patch -p1 < ${./release.nix.patch}
'';
nixopsRelease = import "${src}/release.nix" {
inherit pluginData;
p = (p: with p; [ aws hetzner vbox libvirtd ]);
};
in
nixopsRelease.build.${builtins.currentSystem}

View File

@ -0,0 +1,34 @@
--- a/release.nix
+++ b/release.nix
@@ -1,6 +1,7 @@
{ nixopsSrc ? { outPath = ./.; revCount = 0; shortRev = "abcdef"; rev = "HEAD"; }
, officialRelease ? false
, nixpkgs ? <nixpkgs>
+, pluginData
, p ? (p: [ ])
}:
@@ -10,11 +11,10 @@ let
allPlugins = let
plugins = let
- allPluginVers = import ./data.nix;
+ allPluginVers = pluginData;
fetch = v:
pkgs.fetchFromGitHub {
- inherit (v) owner repo sha256;
- rev = "v${v.version}";
+ inherit (v) owner repo sha256 rev;
};
srcDrv = v: (fetch v) + "/release.nix";
in self: let
@@ -83,4 +83,4 @@
# Remove annoying debug message that's shown in nix-shell while evaluating this file
pysqlite
typing
pluggy
- ] ++ pkgs.lib.traceValFn (x: "Using plugins: " + builtins.toJSON x) (map (d: d.build.${system}) (p allPlugins));
+ ] ++ (map (d: d.build.${system}) (p allPlugins));
# For "nix-build --run-env".

View File

@ -6,7 +6,9 @@ with import nixpkgs { };
stdenv.mkDerivation rec {
name = "nix-bitcoin-environment";
buildInputs = [ pkgs.nixops pkgs.figlet pkgs.apg pkgs.openssl ];
nixops19_09 = callPackage ./pkgs/nixops {};
buildInputs = with pkgs; [ nixops19_09 figlet apg openssl ];
shellHook = ''
export NIX_PATH="nixpkgs=${nixpkgs}:."