From c554fcf5d2e4c3ff7826e4dfd2f6da6ac51fefdb Mon Sep 17 00:00:00 2001 From: Eric Griswold Date: Mon, 8 Apr 2024 09:37:09 -0700 Subject: [PATCH] (RE-16160) Revive sign/ips.rb There are two code paths for signing, one for nightly builds and one for shipped packages. Revive sign/ips.rb so that Solaris "signing" as it is is encapsulated in one place. --- CHANGELOG.md | 3 +++ lib/packaging/sign.rb | 1 + lib/packaging/sign/ips.rb | 13 +++++++++++++ tasks/nightly_repos.rake | 3 +-- tasks/sign.rake | 9 ++------- 5 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 lib/packaging/sign/ips.rb diff --git a/CHANGELOG.md b/CHANGELOG.md index f6c95ba8f..2ea50745c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ This changelog adheres to [Keep a CHANGELOG](http://keepachangelog.com/). ## [Unreleased] +### Changed +- (RE-16160) Revive sign/ips.rb so that GPG .asc generation for Solaris packages are handled + in a single method. ## [0.118.0] - 2024-04-05 ### Added diff --git a/lib/packaging/sign.rb b/lib/packaging/sign.rb index 52dccb428..504c6e6d5 100644 --- a/lib/packaging/sign.rb +++ b/lib/packaging/sign.rb @@ -1,6 +1,7 @@ module Pkg::Sign require 'packaging/sign/deb' require 'packaging/sign/dmg' + require 'packaging/sign/ips' require 'packaging/sign/msi' require 'packaging/sign/rpm' end diff --git a/lib/packaging/sign/ips.rb b/lib/packaging/sign/ips.rb new file mode 100644 index 000000000..885ca0156 --- /dev/null +++ b/lib/packaging/sign/ips.rb @@ -0,0 +1,13 @@ +module Pkg::Sign::Ips + module_function + + def sign(ips_dir = 'pkg') + packages = Dir["#{ips_dir}/**/*.p5p"] + return if packages.empty? + + Pkg::Util::Gpg.load_keychain if Pkg::Util::Tool.find_tool('keychain') + packages.each do |p5p_package| + Pkg::Util::Gpg.sign_file(p5p_package) + end + end +end diff --git a/tasks/nightly_repos.rake b/tasks/nightly_repos.rake index ec596e4bf..399720bbd 100644 --- a/tasks/nightly_repos.rake +++ b/tasks/nightly_repos.rake @@ -39,8 +39,7 @@ namespace :pl do Pkg::Rpm::Repo.sign_repos('repos') Pkg::Deb::Repo.sign_repos('repos', 'Apt repository for signed builds') Pkg::Sign::Dmg.sign('repos') unless Dir['repos/apple/**/*.dmg'].empty? - ### RE-16211: we should put this back and unify with the code in sign.rake - # Pkg::Sign::Ips.sign('repos') unless Dir['repos/solaris/11/**/*.p5p'].empty? + Pkg::Sign::Ips.sign('repos') unless Dir['repos/solaris/11/**/*.p5p'].empty? Pkg::Sign::Msi.sign('repos') unless Dir['repos/windows/**/*.msi'].empty? end diff --git a/tasks/sign.rake b/tasks/sign.rake index 7e01b16fa..8ad5ba1d1 100644 --- a/tasks/sign.rake +++ b/tasks/sign.rake @@ -45,13 +45,8 @@ namespace :pl do desc "Sign ips package, defaults to PL key, pass GPG_KEY to override" task :sign_ips, :root_dir do |_t, args| ips_dir = args.root_dir || $DEFAULT_DIRECTORY - packages = Dir["#{ips_dir}/**/*.p5p"] - next if packages.empty? - - Pkg::Util::Gpg.load_keychain if Pkg::Util::Tool.find_tool('keychain') - packages.each do |p5p_package| - Pkg::Util::Gpg.sign_file p5p_package - end + next if Dir["#{ips_dir}/**/*.p5p"].empty? + Pkg::Sign::Ips.sign(ips_dir) end desc "Sign built gems, defaults to PL key, pass GPG_KEY to override or edit build_defaults"