code: def source_required(src_file):
      
      if not src_file.exists():
          return True
  
      required = True
      hash_file = src_file.with_suffix(".hash", depth=0)
      LOG.debug("Hash file location: %s", hash_file)
      if hash_file.exists():
          new_hash = get_hash_of_dirs(src_file)
          with open(hash_file, 'r') as h_file:
              old_hash = h_file.readline()
          required = not new_hash == old_hash
          if required:
              from benchbuild.utils.cmd import rm
              rm("-r", src_file)
              rm(hash_file)
      if required:
          LOG.info("Source required for: %s", src_file)
          LOG.debug("Reason: src-exists: %s hash-exists: %s", src_file.exists(),
                    hash_file.exists())
      return required
docs: Check, if a download is required.
  
      Args:
          src_file: The filename to check for.
          src_root: The path we find the file in.
  
      Returns:
          True, if we need to download something, False otherwise.