docs: def _remote_md5(self, conn, tmp, path):
          ''' takes a remote md5sum without requiring python, and returns 0 if no file '''
  
          test = "rc=0; [ -r \"%s\" ] || rc=2; [ -f \"%s\" ] || rc=1" % (path,path)
          md5s = [
              "(/usr/bin/md5sum %s 2>/dev/null)" % path,  # Linux
              "(/sbin/md5sum -q %s 2>/dev/null)" % path,  # ?
              "(/usr/bin/digest -a md5 %s 2>/dev/null)" % path,   # Solaris 10+
              "(/sbin/md5 -q %s 2>/dev/null)" % path,     # Freebsd
              "(/usr/bin/md5 -n %s 2>/dev/null)" % path,  # Netbsd
              "(/bin/md5 -q %s 2>/dev/null)" % path       # Openbsd
          ]
  
          cmd = " || ".join(md5s)
          cmd = "%s; %s || (echo \"${rc}  %s\")" % (test, cmd, path)
          data = self._low_level_exec_command(conn, cmd, tmp, sudoable=False)
          data2 = utils.last_non_blank_line(data['stdout'])
          try:
              return data2.split()[0]
          except IndexError:
              sys.stderr.write("warning: md5sum command failed unusually, please report this to the list so it can be fixed\n")
              sys.stderr.write("command: %s\n" % md5s)
              sys.stderr.write("----\n")
              sys.stderr.write("output: %s\n" % data)
              sys.stderr.write("----\n")
              # this will signal that it changed and allow things to keep going
              return "INVALIDMD5SUM"