def dependencies_license_summary
      out = "\n\n"

      dep_license_map.each do |dep_mgr_name, data|
        data.each do |dep_name, data|
          data.each do |dep_version, dep_data|
            projects = dep_data["dependency_of"].sort.map { |p| "'#{p}'" }.join(", ")
            files = dep_data["license_files"].map { |f| File.join(output_dir, f) }

            out << "This product includes #{dep_name} #{dep_version}\n"
            out << "which is a '#{dep_mgr_name}' dependency of #{projects},\n"
            out << "and which is available under a '#{dep_data["license"]}' License.\n"
            out << "For details, see:\n"
            out << files.join("\n")
            out << "\n\n"
          end
        end
      end

      out
    end
def dependencies_license_summary
      out = "\n\n"

      dep_license_map.each do |dep_mgr_name, data|
        data.each do |dep_name, data|
          data.each do |dep_version, dep_data|
            projects = dep_data["dependency_of"].sort.map { |p| "'#{p}'" }.join(", ")
            files = dep_data["license_files"].map { |f| File.join(output_dir, f) }

            out << "This product includes #{dep_name} #{dep_version}\n"
            out << "which is a '#{dep_mgr_name}' dependency of #{projects},\n"
            out << "and which is available under a '#{dep_data["license"]}' License.\n"
            out << "For details, see:\n"
            out << files.join("\n")
            out << "\n\n"
          end
        end
      end

      out
    end
Summary of the licenses of the transitive dependencies of the project.
 It is in the form of:
 ...
 This product includes inifile 3.0.0
 which is a 'ruby_bundler' dependency of 'chef',
 and which is available under a 'MIT' License.
 For details, see:
 /opt/opscode/LICENSES/ruby_bundler-inifile-3.0.0-README.md
 ...

 @return [String]