anchor.diff:  
           path = [ dhcpcd pkgs.nettools pkgs.openresolv ];
   
  -        script =
  -          ''
  -            # Determine the interface on which to start dhcpcd.
  -            interfaces=
  +        exec = "dhcpcd --config ${dhcpcdConf} --background --persistent";
   
  -            for i in $(cd /sys/class/net && ls -d *); do
  -                # Only run dhcpcd on interfaces of type ARPHRD_ETHER
  -                # (1), i.e. Ethernet.  Ignore peth* devices; on Xen,
  -                # they're renamed physical Ethernet cards used for
  -                # bridging.  Likewise for vif* and tap* (Xen) and
  -                # virbr* and vnet* (libvirt).
  -                if [ "$(cat /sys/class/net/$i/type)" = 1 ]; then
  -                    if ! for j in ${toString ignoredInterfaces}; do echo $j; done | grep -F -x -q "$i" &&
  -                       ! echo "$i" | grep -x -q "peth.*\|vif.*\|tap.*\|virbr.*\|vnet.*";
  -		    then
  -                        echo "Running dhcpcd on $i"
  -                        interfaces="$interfaces $i"
  -                    fi
  -                fi
  -            done
  -
  -            if [ -z "$interfaces" ]; then
  -                echo 'No interfaces on which to start dhcpcd!'
  -                exit 1
  -            fi
  -
  -            exec dhcpcd --nobackground --persistent $interfaces
  -          '';
  +        daemonType = "daemon";
         };
   
       environment.systemPackages = [ dhcpcd ];
  
positive.code:   ignoredInterfaces =
      map (i: i.name) (filter (i: i ? ipAddress && i.ipAddress != "" ) config.networking.interfaces)
      ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges));
  
  in
  
  
negative.code:         ${config.system.build.upstart}/sbin/restart dhcpcd
        '';
  
    };
  
  }
  