Fix virtualbox deployment for 19.09

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.
This commit is contained in:
Erik Arvstedt 2019-11-08 13:24:02 +01:00
parent a50dc981af
commit cfafcb5d32
No known key found for this signature in database
GPG Key ID: 33312B944DD97846
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 { stdenv.mkDerivation rec {
name = "nix-bitcoin-environment"; 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 = '' shellHook = ''
export NIX_PATH="nixpkgs=${nixpkgs}:." export NIX_PATH="nixpkgs=${nixpkgs}:."