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: assert partitionTableType == "legacy" || partitionTableType == "legacy+gpt" || partitionTableType == "efi" || partitionTableType == "hybrid" || partitionTableType == "none";
  # We use -E offset=X below, which is only supported by e2fsprogs
  assert partitionTableType != "none" -> fsType == "ext4";
  
  with lib;
  
  
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
  