add --software option, disable recursion for --try-software(-X)

fixes for #945 and #1024

@stdweird: please review
also remove the `ERROR:` from the msg, since you now use `log.error`