def manifest_entry
      @manifest_entry ||= if manifest
                            log.info(log_key) { "Using user-supplied manifest entry for #{name}" }
                            manifest.entry_for(name)
                          else
                            log.info(log_key) { "Resolving manifest entry for #{name}" }
                            to_manifest_entry
                          end
    end
def manifest_entry
      @manifest_entry ||= if manifest
                            log.info(log_key) { "Using user-supplied manifest entry for #{name}" }
                            manifest.entry_for(name)
                          else
                            log.info(log_key) { "Resolving manifest entry for #{name}" }
                            to_manifest_entry
                          end
    end
Create a new software object.

 @param [Project] project
   the Omnibus project that instantiated this software definition
 @param [String] filepath
   the path to where this software definition lives on disk
 @param [String] manifest
   the user-supplied software manifest

 @return [Software]