anchor.diff:    # !!! should use XML.
     sources = map (x: x.source) contents;
     targets = map (x: x.target) contents;
  +  modes   = map (x: x.mode  or "''") contents;
  +  users   = map (x: x.user  or "''") contents;
  +  groups  = map (x: x.group or "''") contents;
   
     closureInfo = pkgs.closureInfo { rootPaths = [ config.system.build.toplevel channelSources ]; };
   
  
positive.code:   bootSize ? "256M"
  
  , # The files and directories to be placed in the target file system.
    # This is a list of attribute sets {source, target} where `source'
    # is the file system object (regular file or directory) to be
    # grafted in the file system at path `target'.
    contents ? []
  
  , # Type of partition table to use; either "legacy", "efi", or "none".
  
negative.code:     set -f
      sources_=(${concatStringsSep " " sources})
      targets_=(${concatStringsSep " " targets})
      modes_=(${concatStringsSep " " modes})
      set +f
  
      for ((i = 0; i < ''${#targets_[@]}; i++)); do
        source="''${sources_[$i]}"
        target="''${targets_[$i]}"
        mode="''${modes_[$i]}"
  
        if [ -n "$mode" ]; then
          rsync_chmod_flags="--chmod=$mode"
        else
          rsync_chmod_flags=""
        fi
        # Unfortunately cptofs only supports modes, not ownership, so we can't use
        # rsync's --chown option. Instead, we change the ownerships in the
        # VM script with chown.
        rsync_flags="-a --no-o --no-g $rsync_chmod_flags"
        if [[ "$source" =~ '*' ]]; then
          # If the source name contains '*', perform globbing.
          mkdir -p $root/$target
          for fn in $source; do
            rsync $rsync_flags "$fn" $root/$target/
          done
        else
          mkdir -p $root/$(dirname $target)
          if ! [ -e $root/$target ]; then
            rsync $rsync_flags $source $root/$target
          else
            echo "duplicate entry $target -> $source"
            exit 1
  