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