sign_software_libs_and_bins

in lib/omnibus/packagers/pkg.rb [181:241]


    def sign_software_libs_and_bins
      if signing_identity
        log.info(log_key) { "Finding libraries and binaries that require signing." }

        bin_dirs = Set[]
        lib_dirs = Set[]
        binaries = Set[]
        libraries = Set[]

        
        project.softwares.each do |software|
          lib_dirs.merge(software.lib_dirs)
          bin_dirs.merge(software.bin_dirs)
        end

        
        bin_dirs.each do |dir|
          binaries.merge Dir["#{dir}/*"]
        end
        
        log.debug(log_key) { "  Filtering non-binary files:" }
        binaries.select! { |bin| is_binary?(bin) }

        
        binaries.each do |bin|
          libraries.merge find_linked_libs bin
        end

        
        lib_dirs.each do |dir|
          libraries.merge Dir["#{dir}/*"]
        end

        
        log.debug(log_key) { "  Filtering non-library files:" }
        libraries.select! { |lib| is_macho?(lib) }

        
        otool_libs = Set[]
        libraries.each do |lib|
          otool_libs.merge find_linked_libs lib
        end

        
        otool_libs.select! { |lib| is_macho?(lib) }
        libraries.merge otool_libs

        log.info(log_key) { "  Signing libraries:" } unless libraries.empty?
        libraries.each do |library|
          log.debug(log_key) { "    Signing: #{library}" }
          sign_library(library)
        end

        log.info(log_key) { "  Signing binaries:" } unless binaries.empty?
        binaries.each do |binary|
          log.debug(log_key) { "    Signing: #{binary}" }
          sign_binary(binary, true)
        end
      end
    end