anchor.diff:      # Where the config database live (can't be in nix-store)
       stateDir = "/var/db/openvswitch";
   
  -    # The path to the an initialized version of the database 
  +    # The path to the an initialized version of the database
       db = pkgs.stdenv.mkDerivation {
         name = "vswitch.db";
         unpackPhase = "true";
  
positive.code: let
    cfg = config.virtualisation.vswitch;
  
  in
  
  {
  
    options = {
  
      virtualisation.vswitch.enable = mkOption {
        type = types.bool;
        default = false;
        description =
          ''
          Enable Open vSwitch. A configuration 
          daemon (ovs-server) will be started.
          '';
      };
  
  
      virtualisation.vswitch.package = mkOption {
        type = types.package;
        default = pkgs.openvswitch;
        description =
          ''
          Open vSwitch package to use.
          '';
      };
  
    };
  
    config = mkIf cfg.enable (let 
  
      # Where the communication sockets live
      runDir = "/var/run/openvswitch";
  
negative.code:         fi
          chmod -R +w /var/db/openvswitch
          '';
        serviceConfig = {
          ExecStart =
            ''
            ${cfg.package}/bin/ovsdb-server \
              --remote=punix:${runDir}/db.sock \
              --private-key=db:Open_vSwitch,SSL,private_key \
              --certificate=db:Open_vSwitch,SSL,certificate \
              --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
              --unixctl=ovsdb.ctl.sock \
              --pidfile=/var/run/openvswitch/ovsdb.pid \
              --detach \
              /var/db/openvswitch/conf.db
            '';
          Restart = "always";
          RestartSec = 3;
          PIDFile = "/var/run/openvswitch/ovsdb.pid";
          Type = "forking";
        };
        postStart = ''
          ${cfg.package}/bin/ovs-vsctl --timeout 3 --retry --no-wait init
        '';
      };
  
      systemd.services.vswitchd = {
  