simp-rake-helpers 5.12.4 → 5.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +23 -0
 - data/lib/simp/rake/build/build.rb +1 -1
 - data/lib/simp/rake/build/iso.rb +56 -5
 - data/lib/simp/rake/build/pkg.rb +182 -152
 - data/lib/simp/rake/build/rpmdeps.rb +7 -1
 - data/lib/simp/rake/build/tar.rb +14 -4
 - data/lib/simp/rake/helpers/version.rb +1 -1
 - data/lib/simp/rpm_signer.rb +8 -3
 - data/spec/acceptance/suites/default/55_build_pkg_signing_spec.rb +2 -2
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 5686fa0464ed4e47817e43609d4aa2ec52ccab1a9facd6429d73ec39b321f487
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: f787b34312ad9033c21811615adb5eb8d069655038e309109fab82560f1e0b81
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 64c644cf1b04dbceaface541e8b6d219a7d6d9f93ed863a18062b25dece5307d62715a1fee0351e444c3f00e9c8ce476b7455a08f2b76291184949796e1770cf
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 18663a6da6f497810c0d505d2fd73109cd97355b664deaa3609f60787dd280fb6a6bee6f3e0f2fa473dacffc696bb369994396b271f48bebeae6fb1a31fabdc4
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,3 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ### 5.13.0 /2021-11-14
         
     | 
| 
      
 2 
     | 
    
         
            +
            - Added:
         
     | 
| 
      
 3 
     | 
    
         
            +
              - Output the full `mkisofs` command when building an ISO
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ### 5.12.7 / 2021-10-26
         
     | 
| 
      
 6 
     | 
    
         
            +
            - Added:
         
     | 
| 
      
 7 
     | 
    
         
            +
              - Env var `SIMP_PKG_progress_bar=no` to turn off pkg RPM build progress bars
         
     | 
| 
      
 8 
     | 
    
         
            +
              - Env var `SIMP_PKG_fetch_published_rpm=no` to prevent downloading a
         
     | 
| 
      
 9 
     | 
    
         
            +
                published package
         
     | 
| 
      
 10 
     | 
    
         
            +
            - Fixed:
         
     | 
| 
      
 11 
     | 
    
         
            +
              - RPM builds no longer fail with leftover generated
         
     | 
| 
      
 12 
     | 
    
         
            +
                `build/rpm_metadata/releases` files
         
     | 
| 
      
 13 
     | 
    
         
            +
              - Removed unused code, tidied up some confusing bits to make structure more
         
     | 
| 
      
 14 
     | 
    
         
            +
                obvious
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            ### 5.12.6 / 2021-10-19
         
     | 
| 
      
 17 
     | 
    
         
            +
            - Ensure that the `Updates` directory does not link to files in itself
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            ### 5.12.5 / 2021-10-07
         
     | 
| 
      
 20 
     | 
    
         
            +
            - Fixed a bug where `build:auto` failed when building the SIMP ISO for EL7,
         
     | 
| 
      
 21 
     | 
    
         
            +
              because the code attempted to move a directory onto itself.
         
     | 
| 
      
 22 
     | 
    
         
            +
            - Ensured GPG keys in simp-gpgkeys are available in the DVD overlay tar file
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       1 
24 
     | 
    
         
             
            ### 5.12.4 / 2021-10-05
         
     | 
| 
       2 
25 
     | 
    
         
             
            - Ensure that the DIST qualifier is added to all built RPMs
         
     | 
| 
       3 
26 
     | 
    
         
             
            - Use the new SimpRepos directory layout when building an ISO using externally
         
     | 
| 
         @@ -282,7 +282,7 @@ module Simp::Rake::Build 
     | 
|
| 
       282 
282 
     | 
    
         
             
                    Error: Could not find anything to do!
         
     | 
| 
       283 
283 
     | 
    
         | 
| 
       284 
284 
     | 
    
         
             
                    In #{target_dir}:
         
     | 
| 
       285 
     | 
    
         
            -
                        No packages in either packages.yaml or the packages/ directory
         
     | 
| 
      
 285 
     | 
    
         
            +
                        No packages in either packages.yaml or the packages/ directory and no repos found in the reposync/ directory
         
     | 
| 
       286 
286 
     | 
    
         
             
                            EOM
         
     | 
| 
       287 
287 
     | 
    
         
             
                          end
         
     | 
| 
       288 
288 
     | 
    
         | 
    
        data/lib/simp/rake/build/iso.rb
    CHANGED
    
    | 
         @@ -190,6 +190,7 @@ module Simp::Rake::Build 
     | 
|
| 
       190 
190 
     | 
    
         
             
                            end
         
     | 
| 
       191 
191 
     | 
    
         
             
                          end
         
     | 
| 
       192 
192 
     | 
    
         | 
| 
      
 193 
     | 
    
         
            +
             
     | 
| 
       193 
194 
     | 
    
         
             
                          repo_target_dir = dir
         
     | 
| 
       194 
195 
     | 
    
         | 
| 
       195 
196 
     | 
    
         
             
                          # If we've pulled in reposync directories, we expect them to
         
     | 
| 
         @@ -256,7 +257,14 @@ module Simp::Rake::Build 
     | 
|
| 
       256 
257 
     | 
    
         | 
| 
       257 
258 
     | 
    
         
             
                          # Pop the SIMP directory from the tarball into the correct spot
         
     | 
| 
       258 
259 
     | 
    
         
             
                          # FIXME: This is a hack
         
     | 
| 
       259 
     | 
    
         
            -
                           
     | 
| 
      
 260 
     | 
    
         
            +
                          unless dir == repo_target_dir
         
     | 
| 
      
 261 
     | 
    
         
            +
                            simpdir = File.join(dir,'SIMP')
         
     | 
| 
      
 262 
     | 
    
         
            +
             
     | 
| 
      
 263 
     | 
    
         
            +
                            if File.directory?(simpdir)
         
     | 
| 
      
 264 
     | 
    
         
            +
                               cp_r(simpdir, repo_target_dir, :verbose => verbose)
         
     | 
| 
      
 265 
     | 
    
         
            +
                               rm_rf(simpdir, :verbose => verbose)
         
     | 
| 
      
 266 
     | 
    
         
            +
                            end
         
     | 
| 
      
 267 
     | 
    
         
            +
                          end
         
     | 
| 
       260 
268 
     | 
    
         | 
| 
       261 
269 
     | 
    
         
             
                          Dir.chdir("#{repo_target_dir}/SIMP") do
         
     | 
| 
       262 
270 
     | 
    
         
             
                            # Add the SIMP Dependencies
         
     | 
| 
         @@ -301,8 +309,10 @@ module Simp::Rake::Build 
     | 
|
| 
       301 
309 
     | 
    
         
             
                              cp(rpm,rpm_arch, :verbose => verbose)
         
     | 
| 
       302 
310 
     | 
    
         
             
                            end
         
     | 
| 
       303 
311 
     | 
    
         | 
| 
       304 
     | 
    
         
            -
                             
     | 
| 
       305 
     | 
    
         
            -
             
     | 
| 
      
 312 
     | 
    
         
            +
                            if reposync_active
         
     | 
| 
      
 313 
     | 
    
         
            +
                                fail("Error: Could not run createrepo in #{Dir.pwd}") unless system(%(#{mkrepo} .))
         
     | 
| 
      
 314 
     | 
    
         
            +
                            else
         
     | 
| 
      
 315 
     | 
    
         
            +
                              ln_sf('noarch', arch, :verbose => verbose) if (!File.directory?(arch) && File.directory?('noarch'))
         
     | 
| 
       306 
316 
     | 
    
         
             
                              fail("Could not find architecture '#{arch}' in the SIMP distribution") unless (File.directory?(arch) || File.symlink?(arch))
         
     | 
| 
       307 
317 
     | 
    
         | 
| 
       308 
318 
     | 
    
         
             
                              # Get everything set up properly...
         
     | 
| 
         @@ -320,6 +330,45 @@ module Simp::Rake::Build 
     | 
|
| 
       320 
330 
     | 
    
         
             
                                    ln_sf(source_rpm,link_target, :verbose => verbose)
         
     | 
| 
       321 
331 
     | 
    
         
             
                                  end
         
     | 
| 
       322 
332 
     | 
    
         
             
                                end
         
     | 
| 
      
 333 
     | 
    
         
            +
             
     | 
| 
      
 334 
     | 
    
         
            +
                                fail("Error: Could not run createrepo in #{Dir.pwd}") unless system(%(#{mkrepo} .))
         
     | 
| 
      
 335 
     | 
    
         
            +
                              end
         
     | 
| 
      
 336 
     | 
    
         
            +
                            end
         
     | 
| 
      
 337 
     | 
    
         
            +
                          end
         
     | 
| 
      
 338 
     | 
    
         
            +
             
     | 
| 
      
 339 
     | 
    
         
            +
                          ### Munge the Repos
         
     | 
| 
      
 340 
     | 
    
         
            +
             
     | 
| 
      
 341 
     | 
    
         
            +
                          # Create an Updates directory that is properly populated
         
     | 
| 
      
 342 
     | 
    
         
            +
                          updates_readme = <<~README
         
     | 
| 
      
 343 
     | 
    
         
            +
                            This directory houses updates to NON-MODULAR RPMs.
         
     | 
| 
      
 344 
     | 
    
         
            +
             
     | 
| 
      
 345 
     | 
    
         
            +
                            DO NOT put modular RPMs in this directory or you will break your
         
     | 
| 
      
 346 
     | 
    
         
            +
                            system updates!
         
     | 
| 
      
 347 
     | 
    
         
            +
                            README
         
     | 
| 
      
 348 
     | 
    
         
            +
             
     | 
| 
      
 349 
     | 
    
         
            +
                          updates_dir = File.join(dir, 'Updates')
         
     | 
| 
      
 350 
     | 
    
         
            +
                          mkdir_p(updates_dir)
         
     | 
| 
      
 351 
     | 
    
         
            +
             
     | 
| 
      
 352 
     | 
    
         
            +
                          Dir.chdir(updates_dir) do
         
     | 
| 
      
 353 
     | 
    
         
            +
                            File.open('README','w'){|fh| fh.puts(updates_readme) }
         
     | 
| 
      
 354 
     | 
    
         
            +
             
     | 
| 
      
 355 
     | 
    
         
            +
                            repos = Dir.glob(File.join('..','**','repodata'))
         
     | 
| 
      
 356 
     | 
    
         
            +
                            modular_repos = Dir.glob(File.join('..','**','repodata','*-modules.*'))
         
     | 
| 
      
 357 
     | 
    
         
            +
                            non_modular_repos = repos.select{|x| modular_repos.grep(%r{^#{Regexp.escape(x)}}).empty? }
         
     | 
| 
      
 358 
     | 
    
         
            +
                            non_modular_repos.map!{|x| File.split(x).first}
         
     | 
| 
      
 359 
     | 
    
         
            +
                            non_modular_repos.delete_if{|x| x.match(%r{/SimpRepos|/SIMP}) }
         
     | 
| 
      
 360 
     | 
    
         
            +
                            non_modular_repos.each do |non_modular_repo|
         
     | 
| 
      
 361 
     | 
    
         
            +
                              Dir.glob(File.join(non_modular_repo, '**', '*.rpm')).each do |rpm|
         
     | 
| 
      
 362 
     | 
    
         
            +
                                # when non_modular_repo is '..', can still find RPMs we need
         
     | 
| 
      
 363 
     | 
    
         
            +
                                # to exclude
         
     | 
| 
      
 364 
     | 
    
         
            +
                                next if rpm.match(%r{/SimpRepos|/SIMP})
         
     | 
| 
      
 365 
     | 
    
         
            +
             
     | 
| 
      
 366 
     | 
    
         
            +
                                rpm_dest = File.basename(rpm)
         
     | 
| 
      
 367 
     | 
    
         
            +
                                if File.exist?(rpm) && File.exist?(rpm_dest)
         
     | 
| 
      
 368 
     | 
    
         
            +
                                  next if (File.realpath(rpm) == File.realpath(rpm_dest))
         
     | 
| 
      
 369 
     | 
    
         
            +
                                end
         
     | 
| 
      
 370 
     | 
    
         
            +
             
     | 
| 
      
 371 
     | 
    
         
            +
                                ln_sf(rpm, rpm_dest, :verbose => verbose)
         
     | 
| 
       323 
372 
     | 
    
         
             
                              end
         
     | 
| 
       324 
373 
     | 
    
         
             
                            end
         
     | 
| 
       325 
374 
     | 
    
         | 
| 
         @@ -372,9 +421,11 @@ module Simp::Rake::Build 
     | 
|
| 
       372 
421 
     | 
    
         
             
                            '-x ./lost+found',
         
     | 
| 
       373 
422 
     | 
    
         
             
                            "-o #{@simp_output_iso}",
         
     | 
| 
       374 
423 
     | 
    
         
             
                            dir
         
     | 
| 
       375 
     | 
    
         
            -
                          ]
         
     | 
| 
      
 424 
     | 
    
         
            +
                          ].join(' ')
         
     | 
| 
      
 425 
     | 
    
         
            +
             
     | 
| 
      
 426 
     | 
    
         
            +
                          $stdout.puts "Running: #{mkisofs_cmd}"
         
     | 
| 
       376 
427 
     | 
    
         | 
| 
       377 
     | 
    
         
            -
                          system(mkisofs_cmd 
     | 
| 
      
 428 
     | 
    
         
            +
                          system(mkisofs_cmd)
         
     | 
| 
       378 
429 
     | 
    
         
             
                        end
         
     | 
| 
       379 
430 
     | 
    
         
             
                      end # End of tarfiles loop
         
     | 
| 
       380 
431 
     | 
    
         | 
    
        data/lib/simp/rake/build/pkg.rb
    CHANGED
    
    | 
         @@ -21,13 +21,17 @@ module Simp::Rake::Build 
     | 
|
| 
       21 
21 
     | 
    
         
             
                  @rpm_build_metadata = 'last_rpm_build_metadata.yaml'
         
     | 
| 
       22 
22 
     | 
    
         
             
                  @rpm_dependency_file = File.join(@base_dir, 'build', 'rpm', 'dependencies.yaml')
         
     | 
| 
       23 
23 
     | 
    
         
             
                  @build_keys_dir = ENV.fetch('SIMP_PKG_build_keys_dir', File.join(@base_dir, '.dev_gpgkeys'))
         
     | 
| 
       24 
     | 
    
         
            -
                  @long_gpg_socket_err_msg = <<~ 
     | 
| 
      
 24 
     | 
    
         
            +
                  @long_gpg_socket_err_msg = <<~MSG
         
     | 
| 
       25 
25 
     | 
    
         
             
                    If the problem is 'socket name <xxx> is too long', use SIMP_PKG_build_keys_dir
         
     | 
| 
       26 
26 
     | 
    
         
             
                    to override
         
     | 
| 
       27 
27 
     | 
    
         
             
                    #{@build_keys_dir}
         
     | 
| 
       28 
28 
     | 
    
         
             
                    with a shorter path. The socket name must be < 108 characters.
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
                   
     | 
| 
      
 30 
     | 
    
         
            +
                  MSG
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # nil = default not set; use local preference
         
     | 
| 
      
 32 
     | 
    
         
            +
                  @fetch_published_rpm_default = ENV['SIMP_PKG_fetch_published_rpm'] ? (
         
     | 
| 
      
 33 
     | 
    
         
            +
                    ENV['SIMP_PKG_fetch_published_rpm'] =~ /\A(yes|true)\Z/i ? true : false
         
     | 
| 
      
 34 
     | 
    
         
            +
                  ) : nil
         
     | 
| 
       31 
35 
     | 
    
         | 
| 
       32 
36 
     | 
    
         
             
                  define_tasks
         
     | 
| 
       33 
37 
     | 
    
         
             
                end
         
     | 
| 
         @@ -114,7 +118,7 @@ module Simp::Rake::Build 
     | 
|
| 
       114 
118 
     | 
    
         
             
                      end
         
     | 
| 
       115 
119 
     | 
    
         
             
                    end
         
     | 
| 
       116 
120 
     | 
    
         | 
| 
       117 
     | 
    
         
            -
                    desc  
     | 
| 
      
 121 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       118 
122 
     | 
    
         
             
                      Prepare a GPG signing key to sign build packages
         
     | 
| 
       119 
123 
     | 
    
         | 
| 
       120 
124 
     | 
    
         
             
                        * :key - the name of the build keys subdirectory to prepare
         
     | 
| 
         @@ -142,7 +146,7 @@ module Simp::Rake::Build 
     | 
|
| 
       142 
146 
     | 
    
         
             
                      ENV vars:
         
     | 
| 
       143 
147 
     | 
    
         
             
                        - Set `SIMP_PKG_verbose=yes` to report file operations as they happen.
         
     | 
| 
       144 
148 
     | 
    
         
             
                        - Set `SIMP_PKG_build_keys_dir` to override the default build keys path.
         
     | 
| 
       145 
     | 
    
         
            -
                     
     | 
| 
      
 149 
     | 
    
         
            +
                    DESC
         
     | 
| 
       146 
150 
     | 
    
         
             
                    task :key_prep,[:key] => [:prep] do |t,args|
         
     | 
| 
       147 
151 
     | 
    
         
             
                      args.with_defaults(:key => 'dev')
         
     | 
| 
       148 
152 
     | 
    
         
             
                      key = args.key
         
     | 
| 
         @@ -251,7 +255,7 @@ module Simp::Rake::Build 
     | 
|
| 
       251 
255 
     | 
    
         | 
| 
       252 
256 
     | 
    
         | 
| 
       253 
257 
     | 
    
         
             
            =begin
         
     | 
| 
       254 
     | 
    
         
            -
                    desc  
     | 
| 
      
 258 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       255 
259 
     | 
    
         
             
                      Build the entire SIMP release.
         
     | 
| 
       256 
260 
     | 
    
         | 
| 
       257 
261 
     | 
    
         
             
                        * :docs - Build the docs. Set this to false if you wish to skip building the docs.
         
     | 
| 
         @@ -261,7 +265,7 @@ module Simp::Rake::Build 
     | 
|
| 
       261 
265 
     | 
    
         
             
                          - Set `SIMP_PKG_verbose=yes` to report file operations as they happen.
         
     | 
| 
       262 
266 
     | 
    
         
             
                          - Set `SIMP_YUM_makecache=no` if you do NOT want to rebuild the
         
     | 
| 
       263 
267 
     | 
    
         
             
                            build-specific YUM cache
         
     | 
| 
       264 
     | 
    
         
            -
                     
     | 
| 
      
 268 
     | 
    
         
            +
                    DESC
         
     | 
| 
       265 
269 
     | 
    
         
             
            =end
         
     | 
| 
       266 
270 
     | 
    
         
             
                    task :build,[:docs,:key] => [:prep,:key_prep] do |t,args|
         
     | 
| 
       267 
271 
     | 
    
         
             
                      args.with_defaults(:key => 'dev')
         
     | 
| 
         @@ -269,12 +273,7 @@ module Simp::Rake::Build 
     | 
|
| 
       269 
273 
     | 
    
         | 
| 
       270 
274 
     | 
    
         
             
                      check_dvd_env
         
     | 
| 
       271 
275 
     | 
    
         | 
| 
       272 
     | 
    
         
            -
                       
     | 
| 
       273 
     | 
    
         
            -
                        yum_helper = Simp::YUM.new(
         
     | 
| 
       274 
     | 
    
         
            -
                          Simp::YUM.generate_yum_conf(File.join(@distro_build_dir, 'yum_data')),
         
     | 
| 
       275 
     | 
    
         
            -
                          ENV.fetch('SIMP_YUM_makecache','yes') == 'yes')
         
     | 
| 
       276 
     | 
    
         
            -
                      rescue Simp::YUM::Error
         
     | 
| 
       277 
     | 
    
         
            -
                      end
         
     | 
| 
      
 276 
     | 
    
         
            +
                      get_yum_helper
         
     | 
| 
       278 
277 
     | 
    
         | 
| 
       279 
278 
     | 
    
         
             
                      Rake::Task['pkg:aux'].invoke
         
     | 
| 
       280 
279 
     | 
    
         
             
                      if "#{args.docs}" == 'true'
         
     | 
| 
         @@ -287,7 +286,7 @@ module Simp::Rake::Build 
     | 
|
| 
       287 
286 
     | 
    
         
             
                      Rake::Task['pkg:signrpms'].invoke(args[:key])
         
     | 
| 
       288 
287 
     | 
    
         
             
                    end
         
     | 
| 
       289 
288 
     | 
    
         | 
| 
       290 
     | 
    
         
            -
                    desc  
     | 
| 
      
 289 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       291 
290 
     | 
    
         
             
                      Build the Puppet module RPMs.
         
     | 
| 
       292 
291 
     | 
    
         | 
| 
       293 
292 
     | 
    
         
             
                        * :method - The Puppetfile from which the repository information
         
     | 
| 
         @@ -295,12 +294,12 @@ module Simp::Rake::Build 
     | 
|
| 
       295 
294 
     | 
    
         | 
| 
       296 
295 
     | 
    
         
             
                        ENV vars:
         
     | 
| 
       297 
296 
     | 
    
         
             
                          - Set `SIMP_PKG_verbose=yes` to report file operations as they happen.
         
     | 
| 
       298 
     | 
    
         
            -
                     
     | 
| 
      
 297 
     | 
    
         
            +
                    DESC
         
     | 
| 
       299 
298 
     | 
    
         
             
                    task :modules,[:method] => [:prep] do |t,args|
         
     | 
| 
       300 
299 
     | 
    
         
             
                      build(@build_dirs[:modules],t)
         
     | 
| 
       301 
300 
     | 
    
         
             
                    end
         
     | 
| 
       302 
301 
     | 
    
         | 
| 
       303 
     | 
    
         
            -
                    desc  
     | 
| 
      
 302 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       304 
303 
     | 
    
         
             
                      Build a single Puppet Module RPM.
         
     | 
| 
       305 
304 
     | 
    
         | 
| 
       306 
305 
     | 
    
         
             
                        * :name   - The path, or name, of the module to build. If a name is
         
     | 
| 
         @@ -314,11 +313,12 @@ module Simp::Rake::Build 
     | 
|
| 
       314 
313 
     | 
    
         
             
                          - Set `SIMP_PKG_verbose=yes` to report file operations as they happen.
         
     | 
| 
       315 
314 
     | 
    
         
             
                          - Set `SIMP_YUM_makecache=no` if you do NOT want to rebuild the
         
     | 
| 
       316 
315 
     | 
    
         
             
                            build-specific YUM cache
         
     | 
| 
       317 
     | 
    
         
            -
                     
     | 
| 
      
 316 
     | 
    
         
            +
                    DESC
         
     | 
| 
       318 
317 
     | 
    
         
             
                    task :single,[:name,:method] => [:prep] do |t,args|
         
     | 
| 
       319 
318 
     | 
    
         
             
                      fail("You must pass :name to '#{t.name}'") unless args[:name]
         
     | 
| 
       320 
319 
     | 
    
         | 
| 
       321 
320 
     | 
    
         
             
                      mod_path = File.absolute_path(args[:name])
         
     | 
| 
      
 321 
     | 
    
         
            +
                      get_yum_helper
         
     | 
| 
       322 
322 
     | 
    
         | 
| 
       323 
323 
     | 
    
         
             
                      if args[:name].include?('/')
         
     | 
| 
       324 
324 
     | 
    
         
             
                        fail("'#{args[:name]}' does not exist!") unless File.directory?(mod_path)
         
     | 
| 
         @@ -333,35 +333,27 @@ module Simp::Rake::Build 
     | 
|
| 
       333 
333 
     | 
    
         
             
                        mod_path = local_module[:path]
         
     | 
| 
       334 
334 
     | 
    
         
             
                      end
         
     | 
| 
       335 
335 
     | 
    
         | 
| 
       336 
     | 
    
         
            -
                      begin
         
     | 
| 
       337 
     | 
    
         
            -
                        yum_helper = Simp::YUM.new(
         
     | 
| 
       338 
     | 
    
         
            -
                          Simp::YUM.generate_yum_conf(File.join(@distro_build_dir, 'yum_data')),
         
     | 
| 
       339 
     | 
    
         
            -
                          ENV.fetch('SIMP_YUM_makecache','yes') == 'yes')
         
     | 
| 
       340 
     | 
    
         
            -
                      rescue Simp::YUM::Error
         
     | 
| 
       341 
     | 
    
         
            -
                      end
         
     | 
| 
       342 
     | 
    
         
            -
             
     | 
| 
       343 
     | 
    
         
            -
                      ENV['SIMP_PKG_rand_name'] = 'yes'
         
     | 
| 
       344 
336 
     | 
    
         
             
                      build(Array(mod_path), t)
         
     | 
| 
       345 
337 
     | 
    
         | 
| 
       346 
338 
     | 
    
         
             
                      puts("Your packages can be found in '#{mod_path}/dist'")
         
     | 
| 
       347 
339 
     | 
    
         
             
                    end
         
     | 
| 
       348 
340 
     | 
    
         | 
| 
       349 
     | 
    
         
            -
                    desc  
     | 
| 
      
 341 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       350 
342 
     | 
    
         
             
                      Build the SIMP non-module RPMs.
         
     | 
| 
       351 
343 
     | 
    
         | 
| 
       352 
344 
     | 
    
         
             
                        ENV vars:
         
     | 
| 
       353 
345 
     | 
    
         
             
                          - Set `SIMP_PKG_verbose=yes` to report file operations as they happen.
         
     | 
| 
       354 
     | 
    
         
            -
                     
     | 
| 
      
 346 
     | 
    
         
            +
                    DESC
         
     | 
| 
       355 
347 
     | 
    
         
             
                    task :aux => [:prep]  do |t,args|
         
     | 
| 
       356 
348 
     | 
    
         
             
                      build(@build_dirs[:aux],t)
         
     | 
| 
       357 
349 
     | 
    
         
             
                    end
         
     | 
| 
       358 
350 
     | 
    
         | 
| 
       359 
     | 
    
         
            -
                    desc  
     | 
| 
      
 351 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       360 
352 
     | 
    
         
             
                      Build the SIMP documentation.
         
     | 
| 
       361 
353 
     | 
    
         | 
| 
       362 
354 
     | 
    
         
             
                        ENV vars:
         
     | 
| 
       363 
355 
     | 
    
         
             
                          - Set `SIMP_PKG_verbose=yes` to report file operations as they happen.
         
     | 
| 
       364 
     | 
    
         
            -
                     
     | 
| 
      
 356 
     | 
    
         
            +
                    DESC
         
     | 
| 
       365 
357 
     | 
    
         
             
                    task :doc => [:prep] do |t,args|
         
     | 
| 
       366 
358 
     | 
    
         
             
                      # Need to make sure that the docs have the version updated
         
     | 
| 
       367 
359 
     | 
    
         
             
                      # appropriately prior to building
         
     | 
| 
         @@ -373,7 +365,7 @@ module Simp::Rake::Build 
     | 
|
| 
       373 
365 
     | 
    
         
             
                      build(@build_dirs[:doc],t)
         
     | 
| 
       374 
366 
     | 
    
         
             
                    end
         
     | 
| 
       375 
367 
     | 
    
         | 
| 
       376 
     | 
    
         
            -
                    desc  
     | 
| 
      
 368 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       377 
369 
     | 
    
         
             
                      Sign a set of RPMs.
         
     | 
| 
       378 
370 
     | 
    
         | 
| 
       379 
371 
     | 
    
         
             
                        Signs any unsigned RPMs in the specified directory
         
     | 
| 
         @@ -394,7 +386,7 @@ module Simp::Rake::Build 
     | 
|
| 
       394 
386 
     | 
    
         
             
                        * Set `SIMP_PKG_rpmsign_timeout` to override the maximum time in seconds
         
     | 
| 
       395 
387 
     | 
    
         
             
                          to wait for an individual RPM signing operation to complete.
         
     | 
| 
       396 
388 
     | 
    
         
             
                          - Defaults to 60 seconds.
         
     | 
| 
       397 
     | 
    
         
            -
                     
     | 
| 
      
 389 
     | 
    
         
            +
                    DESC
         
     | 
| 
       398 
390 
     | 
    
         
             
                    task :signrpms,[:key,:rpm_dir,:force,:digest_algo] => [:prep,:key_prep] do |t,args|
         
     | 
| 
       399 
391 
     | 
    
         
             
                      require 'simp/rpm_signer'
         
     | 
| 
       400 
392 
     | 
    
         | 
| 
         @@ -455,13 +447,13 @@ module Simp::Rake::Build 
     | 
|
| 
       455 
447 
     | 
    
         
             
                    end
         
     | 
| 
       456 
448 
     | 
    
         | 
| 
       457 
449 
     | 
    
         
             
            =begin
         
     | 
| 
       458 
     | 
    
         
            -
                    desc  
     | 
| 
      
 450 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       459 
451 
     | 
    
         
             
                      Check that RPMs are signed.
         
     | 
| 
       460 
452 
     | 
    
         | 
| 
       461 
453 
     | 
    
         
             
                        Checks all RPM files in a directory to see if they are trusted.
         
     | 
| 
       462 
454 
     | 
    
         
             
                          * :rpm_dir - A directory containing RPM files to check. Default #{@build_dir}/SIMP
         
     | 
| 
       463 
455 
     | 
    
         
             
                          * :key_dir - The path to the GPG keys you want to check the packages against. Default #{@src_dir}/assets/gpgkeys/
         
     | 
| 
       464 
     | 
    
         
            -
                     
     | 
| 
      
 456 
     | 
    
         
            +
                    DESC
         
     | 
| 
       465 
457 
     | 
    
         
             
            =end
         
     | 
| 
       466 
458 
     | 
    
         
             
                    task :checksig,[:rpm_dir,:key_dir] => [:prep] do |t,args|
         
     | 
| 
       467 
459 
     | 
    
         
             
                      begin
         
     | 
| 
         @@ -547,7 +539,7 @@ module Simp::Rake::Build 
     | 
|
| 
       547 
539 
     | 
    
         
             
                      end
         
     | 
| 
       548 
540 
     | 
    
         
             
                    end
         
     | 
| 
       549 
541 
     | 
    
         | 
| 
       550 
     | 
    
         
            -
                    desc  
     | 
| 
      
 542 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       551 
543 
     | 
    
         
             
                      Run repoclosure on RPM files.
         
     | 
| 
       552 
544 
     | 
    
         | 
| 
       553 
545 
     | 
    
         
             
                        Finds all rpm files in the target dir and all of its subdirectories, then
         
     | 
| 
         @@ -561,7 +553,7 @@ module Simp::Rake::Build 
     | 
|
| 
       561 
553 
     | 
    
         
             
                          - Set `SIMP_PKG_verbose=yes` to report file operations as they happen.
         
     | 
| 
       562 
554 
     | 
    
         
             
                          - Set `SIMP_PKG_repoclose_pe=yes` to enable repoclosure on PE-related RPMs.
         
     | 
| 
       563 
555 
     | 
    
         | 
| 
       564 
     | 
    
         
            -
                     
     | 
| 
      
 556 
     | 
    
         
            +
                    DESC
         
     | 
| 
       565 
557 
     | 
    
         
             
                    task :repoclosure,[:target_dir,:aux_dir] => [:prep] do |t,args|
         
     | 
| 
       566 
558 
     | 
    
         
             
                      default_target = @pkg_dirs[:simp]
         
     | 
| 
       567 
559 
     | 
    
         
             
                      args.with_defaults(:target_dir => File.expand_path(default_target))
         
     | 
| 
         @@ -572,31 +564,31 @@ module Simp::Rake::Build 
     | 
|
| 
       572 
564 
     | 
    
         | 
| 
       573 
565 
     | 
    
         
             
                      _repoclose_pe = ENV.fetch('SIMP_PKG_repoclose_pe','no') == 'yes'
         
     | 
| 
       574 
566 
     | 
    
         | 
| 
       575 
     | 
    
         
            -
                      yum_conf_template =  
     | 
| 
       576 
     | 
    
         
            -
            [main]
         
     | 
| 
       577 
     | 
    
         
            -
            keepcache=0
         
     | 
| 
       578 
     | 
    
         
            -
            exactarch=1
         
     | 
| 
       579 
     | 
    
         
            -
            obsoletes=1
         
     | 
| 
       580 
     | 
    
         
            -
            gpgcheck=0
         
     | 
| 
       581 
     | 
    
         
            -
            plugins=1
         
     | 
| 
       582 
     | 
    
         
            -
            installonly_limit=5
         
     | 
| 
       583 
     | 
    
         
            -
            <% unless #{_repoclose_pe} -%>
         
     | 
| 
       584 
     | 
    
         
            -
            exclude=*-pe-*
         
     | 
| 
       585 
     | 
    
         
            -
            <% end -%>
         
     | 
| 
       586 
     | 
    
         
            -
             
     | 
| 
       587 
     | 
    
         
            -
            <% repo_files.each do |repo| -%>
         
     | 
| 
       588 
     | 
    
         
            -
            include=file://<%= repo %>
         
     | 
| 
       589 
     | 
    
         
            -
            <% end -%>
         
     | 
| 
       590 
     | 
    
         
            -
             
     | 
| 
       591 
     | 
    
         
            -
             
     | 
| 
       592 
     | 
    
         
            -
                      yum_repo_template =  
     | 
| 
       593 
     | 
    
         
            -
            [<%= repo_name %>]
         
     | 
| 
       594 
     | 
    
         
            -
            name=<%= repo_name %>
         
     | 
| 
       595 
     | 
    
         
            -
            baseurl=file://<%= repo_path %>
         
     | 
| 
       596 
     | 
    
         
            -
            enabled=1
         
     | 
| 
       597 
     | 
    
         
            -
            gpgcheck=0
         
     | 
| 
       598 
     | 
    
         
            -
            protect=1
         
     | 
| 
       599 
     | 
    
         
            -
             
     | 
| 
      
 567 
     | 
    
         
            +
                      yum_conf_template = <<~YUM_CONF
         
     | 
| 
      
 568 
     | 
    
         
            +
                        [main]
         
     | 
| 
      
 569 
     | 
    
         
            +
                        keepcache=0
         
     | 
| 
      
 570 
     | 
    
         
            +
                        exactarch=1
         
     | 
| 
      
 571 
     | 
    
         
            +
                        obsoletes=1
         
     | 
| 
      
 572 
     | 
    
         
            +
                        gpgcheck=0
         
     | 
| 
      
 573 
     | 
    
         
            +
                        plugins=1
         
     | 
| 
      
 574 
     | 
    
         
            +
                        installonly_limit=5
         
     | 
| 
      
 575 
     | 
    
         
            +
                        <% unless #{_repoclose_pe} -%>
         
     | 
| 
      
 576 
     | 
    
         
            +
                        exclude=*-pe-*
         
     | 
| 
      
 577 
     | 
    
         
            +
                        <% end -%>
         
     | 
| 
      
 578 
     | 
    
         
            +
             
     | 
| 
      
 579 
     | 
    
         
            +
                        <% repo_files.each do |repo| -%>
         
     | 
| 
      
 580 
     | 
    
         
            +
                        include=file://<%= repo %>
         
     | 
| 
      
 581 
     | 
    
         
            +
                        <% end -%>
         
     | 
| 
      
 582 
     | 
    
         
            +
                      YUM_CONF
         
     | 
| 
      
 583 
     | 
    
         
            +
             
     | 
| 
      
 584 
     | 
    
         
            +
                      yum_repo_template = <<~YUM_REPO
         
     | 
| 
      
 585 
     | 
    
         
            +
                        [<%= repo_name %>]
         
     | 
| 
      
 586 
     | 
    
         
            +
                        name=<%= repo_name %>
         
     | 
| 
      
 587 
     | 
    
         
            +
                        baseurl=file://<%= repo_path %>
         
     | 
| 
      
 588 
     | 
    
         
            +
                        enabled=1
         
     | 
| 
      
 589 
     | 
    
         
            +
                        gpgcheck=0
         
     | 
| 
      
 590 
     | 
    
         
            +
                        protect=1
         
     | 
| 
      
 591 
     | 
    
         
            +
                      YUM_REPO
         
     | 
| 
       600 
592 
     | 
    
         | 
| 
       601 
593 
     | 
    
         
             
                      fail("#{args[:target_dir]} does not exist!") unless File.directory?(args[:target_dir])
         
     | 
| 
       602 
594 
     | 
    
         | 
| 
         @@ -610,7 +602,7 @@ protect=1 
     | 
|
| 
       610 
602 
     | 
    
         
             
                            .delete_if{|x| x =~ /\.src\.rpm$/}
         
     | 
| 
       611 
603 
     | 
    
         
             
                            .each do |path|
         
     | 
| 
       612 
604 
     | 
    
         
             
                              sym_path = "repos/base/#{File.basename(path)}"
         
     | 
| 
       613 
     | 
    
         
            -
                               
     | 
| 
      
 605 
     | 
    
         
            +
                              ln_sf(path,sym_path, :verbose => @verbose) unless File.exists?(sym_path)
         
     | 
| 
       614 
606 
     | 
    
         
             
                          end
         
     | 
| 
       615 
607 
     | 
    
         | 
| 
       616 
608 
     | 
    
         
             
                          if args[:aux_dir]
         
     | 
| 
         @@ -618,7 +610,7 @@ protect=1 
     | 
|
| 
       618 
610 
     | 
    
         
             
                              .delete_if{|x| x =~ /\.src\.rpm$/}
         
     | 
| 
       619 
611 
     | 
    
         
             
                              .each do |path|
         
     | 
| 
       620 
612 
     | 
    
         
             
                                sym_path = "repos/lookaside/#{File.basename(path)}"
         
     | 
| 
       621 
     | 
    
         
            -
                                 
     | 
| 
      
 613 
     | 
    
         
            +
                                ln_sf(path,sym_path, :verbose => @verbose) unless File.exists?(sym_path)
         
     | 
| 
       622 
614 
     | 
    
         
             
                            end
         
     | 
| 
       623 
615 
     | 
    
         
             
                          end
         
     | 
| 
       624 
616 
     | 
    
         | 
| 
         @@ -643,7 +635,8 @@ protect=1 
     | 
|
| 
       643 
635 
     | 
    
         
             
                            file.write(ERB.new(yum_conf_template,nil,'-').result(binding))
         
     | 
| 
       644 
636 
     | 
    
         
             
                          end
         
     | 
| 
       645 
637 
     | 
    
         | 
| 
       646 
     | 
    
         
            -
                           
     | 
| 
      
 638 
     | 
    
         
            +
                          dnf_system = which('dnf')
         
     | 
| 
      
 639 
     | 
    
         
            +
                          if dnf_system
         
     | 
| 
       647 
640 
     | 
    
         
             
                            cmd = 'repoclosure -c base.conf --disablerepo=* --enablerepo=base'
         
     | 
| 
       648 
641 
     | 
    
         
             
                          else
         
     | 
| 
       649 
642 
     | 
    
         
             
                            cmd = 'repoclosure -c repodata -n -t -r base -l lookaside -c yum.conf'
         
     | 
| 
         @@ -661,15 +654,24 @@ protect=1 
     | 
|
| 
       661 
654 
     | 
    
         
             
                          if (!$?.success? || (repoclosure_output =~ /nresolved/))
         
     | 
| 
       662 
655 
     | 
    
         
             
                            errmsg = ['Error: REPOCLOSURE FAILED:']
         
     | 
| 
       663 
656 
     | 
    
         
             
                            errmsg << [repoclosure_output]
         
     | 
| 
       664 
     | 
    
         
            -
                             
     | 
| 
      
 657 
     | 
    
         
            +
                            puts(errmsg.join("\n"))
         
     | 
| 
      
 658 
     | 
    
         
            +
             
     | 
| 
      
 659 
     | 
    
         
            +
                            if dnf_system
         
     | 
| 
      
 660 
     | 
    
         
            +
                              if ENV.fetch('SIMP_BUILD_prompt', 'yes') != 'no'
         
     | 
| 
      
 661 
     | 
    
         
            +
                                puts('- Press any key to continue or ^C to abort -')
         
     | 
| 
      
 662 
     | 
    
         
            +
                                $stdin.gets
         
     | 
| 
      
 663 
     | 
    
         
            +
                              end
         
     | 
| 
      
 664 
     | 
    
         
            +
                            else
         
     | 
| 
      
 665 
     | 
    
         
            +
                              fail('Repoclosure Failed')
         
     | 
| 
      
 666 
     | 
    
         
            +
                            end
         
     | 
| 
       665 
667 
     | 
    
         
             
                          end
         
     | 
| 
       666 
668 
     | 
    
         
             
                        end
         
     | 
| 
       667 
669 
     | 
    
         
             
                      end
         
     | 
| 
       668 
670 
     | 
    
         
             
                    end
         
     | 
| 
       669 
671 
     | 
    
         | 
| 
       670 
     | 
    
         
            -
                    desc  
     | 
| 
      
 672 
     | 
    
         
            +
                    desc <<~DESC
         
     | 
| 
       671 
673 
     | 
    
         
             
                      Print published status of all project RPMs
         
     | 
| 
       672 
     | 
    
         
            -
                     
     | 
| 
      
 674 
     | 
    
         
            +
                    DESC
         
     | 
| 
       673 
675 
     | 
    
         
             
                    task :check_published => [:prep] do |t,args|
         
     | 
| 
       674 
676 
     | 
    
         
             
                      begin
         
     | 
| 
       675 
677 
     | 
    
         
             
                        yum_helper = Simp::YUM.new(
         
     | 
| 
         @@ -687,7 +689,12 @@ protect=1 
     | 
|
| 
       687 
689 
     | 
    
         | 
| 
       688 
690 
     | 
    
         
             
                        if Dir.exist?(dir)
         
     | 
| 
       689 
691 
     | 
    
         
             
                          begin
         
     | 
| 
       690 
     | 
    
         
            -
                            require_rebuild?(dir, yum_helper, { 
     | 
| 
      
 692 
     | 
    
         
            +
                            require_rebuild?(dir, yum_helper, {
         
     | 
| 
      
 693 
     | 
    
         
            +
                              fetch:      false,
         
     | 
| 
      
 694 
     | 
    
         
            +
                              verbose:    true,
         
     | 
| 
      
 695 
     | 
    
         
            +
                              check_git:  true,
         
     | 
| 
      
 696 
     | 
    
         
            +
                              prefix:     ''
         
     | 
| 
      
 697 
     | 
    
         
            +
                            })
         
     | 
| 
       691 
698 
     | 
    
         
             
                          rescue => e
         
     | 
| 
       692 
699 
     | 
    
         
             
                            _errmsg = "Error: require_rebuild?(): Status check failed on '#{dir}' => #{e}"
         
     | 
| 
       693 
700 
     | 
    
         
             
                          end
         
     | 
| 
         @@ -714,9 +721,24 @@ protect=1 
     | 
|
| 
       714 
721 
     | 
    
         
             
                      return (0...24).map{ (65 + rand(26)).chr }.join.downcase
         
     | 
| 
       715 
722 
     | 
    
         
             
                    end
         
     | 
| 
       716 
723 
     | 
    
         | 
| 
      
 724 
     | 
    
         
            +
                    # Return a SIMP::YUM object configured for the local build dir or nil
         
     | 
| 
      
 725 
     | 
    
         
            +
                    #
         
     | 
| 
      
 726 
     | 
    
         
            +
                    # ENV vars:
         
     | 
| 
      
 727 
     | 
    
         
            +
                    #   - Set `SIMP_PKG_verbose=yes` to report file operations as they happen.
         
     | 
| 
      
 728 
     | 
    
         
            +
                    #   - Set `SIMP_YUM_makecache=no` if you do NOT want to rebuild the
         
     | 
| 
      
 729 
     | 
    
         
            +
                    #     build-specific YUM cache
         
     | 
| 
      
 730 
     | 
    
         
            +
                    def get_yum_helper( makecache = (ENV.fetch('SIMP_YUM_makecache','yes') == 'yes') )
         
     | 
| 
      
 731 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 732 
     | 
    
         
            +
                        build_yum_data = File.join(@distro_build_dir, 'yum_data')
         
     | 
| 
      
 733 
     | 
    
         
            +
                        return Simp::YUM.new(Simp::YUM.generate_yum_conf(build_yum_data), makecache)
         
     | 
| 
      
 734 
     | 
    
         
            +
                      rescue Simp::YUM::Error => e
         
     | 
| 
      
 735 
     | 
    
         
            +
                        $stderr.puts "Simp::YUM::Error: #{e}" if @verbose
         
     | 
| 
      
 736 
     | 
    
         
            +
                      end
         
     | 
| 
      
 737 
     | 
    
         
            +
                    end
         
     | 
| 
      
 738 
     | 
    
         
            +
             
     | 
| 
       717 
739 
     | 
    
         
             
                    # Check and see if 'dir' requires a rebuild based on published packages
         
     | 
| 
       718 
740 
     | 
    
         
             
                    #
         
     | 
| 
       719 
     | 
    
         
            -
                    # If 'fetch' is true => Download the RPM
         
     | 
| 
      
 741 
     | 
    
         
            +
                    # If 'fetch' is true => Download the published RPM
         
     | 
| 
       720 
742 
     | 
    
         
             
                    # If 'verbose' is true => Print helpful information to stderr
         
     | 
| 
       721 
743 
     | 
    
         
             
                    # If 'check_git' is true => Print the git tag status if 'verbose' is true
         
     | 
| 
       722 
744 
     | 
    
         
             
                    # 'prefix' is used to prepend verbose messages
         
     | 
| 
         @@ -725,7 +747,13 @@ protect=1 
     | 
|
| 
       725 
747 
     | 
    
         
             
                    # - Method is too long
         
     | 
| 
       726 
748 
     | 
    
         
             
                    # - Method needs to be passed in class variables (@xxx) so that it
         
     | 
| 
       727 
749 
     | 
    
         
             
                    #   can be pulled out into a library that is easily unit-testable
         
     | 
| 
       728 
     | 
    
         
            -
                    def require_rebuild?(dir, yum_helper, opts={ 
     | 
| 
      
 750 
     | 
    
         
            +
                    def require_rebuild?(dir, yum_helper, opts={
         
     | 
| 
      
 751 
     | 
    
         
            +
                      unique_namespace:  generate_namespace,
         
     | 
| 
      
 752 
     | 
    
         
            +
                      fetch:             false,
         
     | 
| 
      
 753 
     | 
    
         
            +
                      verbose:           @verbose,
         
     | 
| 
      
 754 
     | 
    
         
            +
                      check_git:         false,
         
     | 
| 
      
 755 
     | 
    
         
            +
                      prefix:            ''
         
     | 
| 
      
 756 
     | 
    
         
            +
                    })
         
     | 
| 
       729 
757 
     | 
    
         
             
                      result = false
         
     | 
| 
       730 
758 
     | 
    
         
             
                      rpm_metadata = File.exist?(@rpm_dependency_file) ? YAML.load(File.read(@rpm_dependency_file)) : {}
         
     | 
| 
       731 
759 
     | 
    
         
             
                      dir_relpath = Pathname.new(dir).relative_path_from(Pathname.new(Dir.pwd)).to_path
         
     | 
| 
         @@ -860,7 +888,8 @@ protect=1 
     | 
|
| 
       860 
888 
     | 
    
         
             
                                else
         
     | 
| 
       861 
889 
     | 
    
         
             
                                  $stderr.puts "#{opts[:prefix]}Found Existing Remote RPM: #{published_rpm}" if opts[:verbose]
         
     | 
| 
       862 
890 
     | 
    
         
             
                                  if opts[:fetch]
         
     | 
| 
       863 
     | 
    
         
            -
                                    # Download  
     | 
| 
      
 891 
     | 
    
         
            +
                                    # Download published RPM, unless it's already been downloaded.
         
     | 
| 
      
 892 
     | 
    
         
            +
                                    # TODO Unhandled edge case: Validate that downloaded RPM is valid
         
     | 
| 
       864 
893 
     | 
    
         
             
                                    if File.exist?(File.join('dist', published_rpm))
         
     | 
| 
       865 
894 
     | 
    
         
             
                                      $stderr.puts "#{opts[:prefix]}#{published_rpm} previously downloaded" if opts[:verbose]
         
     | 
| 
       866 
895 
     | 
    
         
             
                                    else
         
     | 
| 
         @@ -904,101 +933,107 @@ protect=1 
     | 
|
| 
       904 
933 
     | 
    
         
             
                      return result
         
     | 
| 
       905 
934 
     | 
    
         
             
                    end
         
     | 
| 
       906 
935 
     | 
    
         | 
| 
      
 936 
     | 
    
         
            +
                    def build_pupmod_rpm(dir, yum_helper, dbg_prefix = '  ')
         
     | 
| 
      
 937 
     | 
    
         
            +
                      unique_namespace = generate_namespace
         
     | 
| 
      
 938 
     | 
    
         
            +
                      if require_rebuild?(dir, yum_helper, {
         
     | 
| 
      
 939 
     | 
    
         
            +
                        unique_namespace:  unique_namespace,
         
     | 
| 
      
 940 
     | 
    
         
            +
                        fetch:             @fetch_published_rpm.nil? ? true : @fetch_published_rpm,
         
     | 
| 
      
 941 
     | 
    
         
            +
                        verbose:           @verbose,
         
     | 
| 
      
 942 
     | 
    
         
            +
                        prefix:            dbg_prefix,
         
     | 
| 
      
 943 
     | 
    
         
            +
                      })
         
     | 
| 
      
 944 
     | 
    
         
            +
                        $stderr.puts("#{dbg_prefix}Running 'rake pkg:rpm' on #{File.basename(dir)}") if @verbose
         
     | 
| 
      
 945 
     | 
    
         
            +
                        Rake::Task["#{unique_namespace}:pkg:rpm"].invoke
         
     | 
| 
      
 946 
     | 
    
         
            +
                      else
         
     | 
| 
      
 947 
     | 
    
         
            +
                        # Record metadata for the downloaded RPM
         
     | 
| 
      
 948 
     | 
    
         
            +
                        Simp::RPM::create_rpm_build_metadata(File.expand_path(dir))
         
     | 
| 
      
 949 
     | 
    
         
            +
                      end
         
     | 
| 
      
 950 
     | 
    
         
            +
                      true
         
     | 
| 
      
 951 
     | 
    
         
            +
                    end
         
     | 
| 
      
 952 
     | 
    
         
            +
             
     | 
| 
      
 953 
     | 
    
         
            +
             
     | 
| 
      
 954 
     | 
    
         
            +
                    def build_rakefile_rpm(dir, yum_helper, dbg_prefix = '  ')
         
     | 
| 
      
 955 
     | 
    
         
            +
                      if require_rebuild?(dir, yum_helper, {
         
     | 
| 
      
 956 
     | 
    
         
            +
                        fetch:    @fetch_published_rpm.nil? ? true : @fetch_published_rpm,
         
     | 
| 
      
 957 
     | 
    
         
            +
                        verbose:  @verbose,
         
     | 
| 
      
 958 
     | 
    
         
            +
                        prefix:   dbg_prefix
         
     | 
| 
      
 959 
     | 
    
         
            +
                      })
         
     | 
| 
      
 960 
     | 
    
         
            +
                        $stderr.puts("#{dbg_prefix}Running 'rake pkg:rpm' in #{File.basename(dir)}") if @verbose
         
     | 
| 
      
 961 
     | 
    
         
            +
                        rake_flags = Rake.application.options.trace ? '--trace' : ''
         
     | 
| 
      
 962 
     | 
    
         
            +
                        cmd = %{SIMP_BUILD_version=#{@simp_version} rake pkg:rpm #{rake_flags} 2>&1}
         
     | 
| 
      
 963 
     | 
    
         
            +
             
     | 
| 
      
 964 
     | 
    
         
            +
                        build_success = true
         
     | 
| 
      
 965 
     | 
    
         
            +
                        begin
         
     | 
| 
      
 966 
     | 
    
         
            +
                          %x{#{cmd}}
         
     | 
| 
      
 967 
     | 
    
         
            +
                          build_success = $?.success?
         
     | 
| 
      
 968 
     | 
    
         
            +
             
     | 
| 
      
 969 
     | 
    
         
            +
                          built_rpm = true
         
     | 
| 
      
 970 
     | 
    
         
            +
                        rescue
         
     | 
| 
      
 971 
     | 
    
         
            +
                          build_success = false
         
     | 
| 
      
 972 
     | 
    
         
            +
                        end
         
     | 
| 
      
 973 
     | 
    
         
            +
             
     | 
| 
      
 974 
     | 
    
         
            +
                        unless build_success
         
     | 
| 
      
 975 
     | 
    
         
            +
                          if @verbose
         
     | 
| 
      
 976 
     | 
    
         
            +
                            $stderr.puts("First 'rake pkg:rpm' attempt for #{dir} failed, running bundle and trying again.")
         
     | 
| 
      
 977 
     | 
    
         
            +
                          end
         
     | 
| 
      
 978 
     | 
    
         
            +
             
     | 
| 
      
 979 
     | 
    
         
            +
                          if Bundler.respond_to?(:with_unbundled_env)
         
     | 
| 
      
 980 
     | 
    
         
            +
                            # Bundler 2.1+
         
     | 
| 
      
 981 
     | 
    
         
            +
                            clean_env_method = :with_unbundled_env
         
     | 
| 
      
 982 
     | 
    
         
            +
                            bundle_install_cmd = %{bundle config set with 'development' && bundle install}
         
     | 
| 
      
 983 
     | 
    
         
            +
                          else
         
     | 
| 
      
 984 
     | 
    
         
            +
                            # Old Bundler
         
     | 
| 
      
 985 
     | 
    
         
            +
                            clean_env_method = :with_clean_env
         
     | 
| 
      
 986 
     | 
    
         
            +
                            bundle_install_cmd = %{bundle install --with development}
         
     | 
| 
      
 987 
     | 
    
         
            +
                          end
         
     | 
| 
      
 988 
     | 
    
         
            +
             
     | 
| 
      
 989 
     | 
    
         
            +
                          ::Bundler.send(clean_env_method) do
         
     | 
| 
      
 990 
     | 
    
         
            +
                            %x{#{bundle_install_cmd}}
         
     | 
| 
      
 991 
     | 
    
         
            +
             
     | 
| 
      
 992 
     | 
    
         
            +
                            output = %x{#{cmd} 2>&1}
         
     | 
| 
      
 993 
     | 
    
         
            +
             
     | 
| 
      
 994 
     | 
    
         
            +
                            unless $?.success?
         
     | 
| 
      
 995 
     | 
    
         
            +
                              raise("Error in #{dir} running #{cmd}\n#{output}")
         
     | 
| 
      
 996 
     | 
    
         
            +
                            end
         
     | 
| 
      
 997 
     | 
    
         
            +
                          end
         
     | 
| 
      
 998 
     | 
    
         
            +
                        end
         
     | 
| 
      
 999 
     | 
    
         
            +
                      else
         
     | 
| 
      
 1000 
     | 
    
         
            +
                        # Record metadata for the downloaded RPM
         
     | 
| 
      
 1001 
     | 
    
         
            +
                        Simp::RPM::create_rpm_build_metadata(File.expand_path(dir))
         
     | 
| 
      
 1002 
     | 
    
         
            +
                        built_rpm = true
         
     | 
| 
      
 1003 
     | 
    
         
            +
                      end
         
     | 
| 
      
 1004 
     | 
    
         
            +
                    end
         
     | 
| 
      
 1005 
     | 
    
         
            +
             
     | 
| 
      
 1006 
     | 
    
         
            +
             
     | 
| 
       907 
1007 
     | 
    
         
             
                    # Takes a list of directories to hop into and perform builds within
         
     | 
| 
       908 
1008 
     | 
    
         
             
                    #
         
     | 
| 
       909 
1009 
     | 
    
         
             
                    # The task must be passed so that we can output the calling name in the
         
     | 
| 
       910 
1010 
     | 
    
         
             
                    # status bar.
         
     | 
| 
       911 
1011 
     | 
    
         
             
                    def build(dirs, task, rebuild_for_arch=false, remake_yum_cache = false)
         
     | 
| 
       912 
     | 
    
         
            -
                      _verbose = ENV.fetch('SIMP_PKG_verbose','no') == 'yes'
         
     | 
| 
       913 
     | 
    
         
            -
                      dbg_prefix = '  ' # prefix for debug messages
         
     | 
| 
       914 
     | 
    
         
            -
             
     | 
| 
       915 
1012 
     | 
    
         
             
                      fail("Could not find RPM dependency file '#{@rpm_dependency_file}'") unless File.exist?(@rpm_dependency_file)
         
     | 
| 
       916 
     | 
    
         
            -
             
     | 
| 
       917 
     | 
    
         
            -
                      begin
         
     | 
| 
       918 
     | 
    
         
            -
                        yum_helper = Simp::YUM.new(
         
     | 
| 
       919 
     | 
    
         
            -
                          Simp::YUM.generate_yum_conf(File.join(@distro_build_dir, 'yum_data'))
         
     | 
| 
       920 
     | 
    
         
            -
                        )
         
     | 
| 
       921 
     | 
    
         
            -
                      rescue Simp::YUM::Error
         
     | 
| 
       922 
     | 
    
         
            -
                      end
         
     | 
| 
      
 1013 
     | 
    
         
            +
                      yum_helper = get_yum_helper( remake_yum_cache )
         
     | 
| 
       923 
1014 
     | 
    
         | 
| 
       924 
1015 
     | 
    
         
             
                      Parallel.map(
         
     | 
| 
       925 
1016 
     | 
    
         
             
                        # Allow for shell globs
         
     | 
| 
       926 
     | 
    
         
            -
                        Array(dirs),
         
     | 
| 
       927 
     | 
    
         
            -
             
     | 
| 
       928 
     | 
    
         
            -
             
     | 
| 
      
 1017 
     | 
    
         
            +
                        Array(dirs), {
         
     | 
| 
      
 1018 
     | 
    
         
            +
                          in_processes:  @cpu_limit,
         
     | 
| 
      
 1019 
     | 
    
         
            +
                          progress:      (ENV.fetch('SIMP_PKG_progress_bar','yes') == 'yes') ? task.name : nil,
         
     | 
| 
      
 1020 
     | 
    
         
            +
                        }
         
     | 
| 
       929 
1021 
     | 
    
         
             
                      ) do |dir|
         
     | 
| 
       930 
1022 
     | 
    
         
             
                        fail("Could not find directory #{dir}") unless Dir.exist?(dir)
         
     | 
| 
       931 
1023 
     | 
    
         | 
| 
       932 
1024 
     | 
    
         
             
                        Dir.chdir(dir) do
         
     | 
| 
       933 
1025 
     | 
    
         
             
                          built_rpm = false
         
     | 
| 
      
 1026 
     | 
    
         
            +
                          $stderr.puts("\nPackaging #{File.basename(dir)}") if @verbose
         
     | 
| 
       934 
1027 
     | 
    
         | 
| 
       935 
     | 
    
         
            -
                          if @verbose
         
     | 
| 
       936 
     | 
    
         
            -
                            $stderr.puts("\nPackaging #{File.basename(dir)}")
         
     | 
| 
       937 
     | 
    
         
            -
                          end
         
     | 
| 
       938 
     | 
    
         
            -
             
     | 
| 
       939 
     | 
    
         
            -
                          # We're building a module, override anything down there
         
     | 
| 
       940 
1028 
     | 
    
         
             
                          if File.exist?('metadata.json')
         
     | 
| 
       941 
     | 
    
         
            -
                             
     | 
| 
       942 
     | 
    
         
            -
                             
     | 
| 
       943 
     | 
    
         
            -
                              $stderr.puts("#{dbg_prefix}Running 'rake pkg:rpm' on #{File.basename(dir)}") if @verbose
         
     | 
| 
       944 
     | 
    
         
            -
                              Rake::Task["#{unique_namespace}:pkg:rpm"].invoke
         
     | 
| 
       945 
     | 
    
         
            -
                            else
         
     | 
| 
       946 
     | 
    
         
            -
                              # Record metadata for the downloaded RPM
         
     | 
| 
       947 
     | 
    
         
            -
                              Simp::RPM::create_rpm_build_metadata(File.expand_path(dir))
         
     | 
| 
       948 
     | 
    
         
            -
                            end
         
     | 
| 
       949 
     | 
    
         
            -
             
     | 
| 
       950 
     | 
    
         
            -
                            built_rpm = true
         
     | 
| 
       951 
     | 
    
         
            -
             
     | 
| 
       952 
     | 
    
         
            -
                          # We're building one of the extra assets and should honor its Rakefile
         
     | 
| 
       953 
     | 
    
         
            -
                          # and RPM spec file.
         
     | 
| 
      
 1029 
     | 
    
         
            +
                            # We're building a module, override anything down there
         
     | 
| 
      
 1030 
     | 
    
         
            +
                            built_rpm = build_pupmod_rpm(dir, yum_helper)
         
     | 
| 
       954 
1031 
     | 
    
         
             
                          elsif File.exist?('Rakefile')
         
     | 
| 
       955 
     | 
    
         
            -
                             
     | 
| 
       956 
     | 
    
         
            -
             
     | 
| 
       957 
     | 
    
         
            -
             
     | 
| 
       958 
     | 
    
         
            -
                              cmd = %{SIMP_BUILD_version=#{@simp_version} rake pkg:rpm #{rake_flags} 2>&1}
         
     | 
| 
       959 
     | 
    
         
            -
             
     | 
| 
       960 
     | 
    
         
            -
                              build_success = true
         
     | 
| 
       961 
     | 
    
         
            -
                              begin
         
     | 
| 
       962 
     | 
    
         
            -
                                %x{#{cmd}}
         
     | 
| 
       963 
     | 
    
         
            -
                                build_success = $?.success?
         
     | 
| 
       964 
     | 
    
         
            -
             
     | 
| 
       965 
     | 
    
         
            -
                                built_rpm = true
         
     | 
| 
       966 
     | 
    
         
            -
                              rescue
         
     | 
| 
       967 
     | 
    
         
            -
                                build_success = false
         
     | 
| 
       968 
     | 
    
         
            -
                              end
         
     | 
| 
       969 
     | 
    
         
            -
             
     | 
| 
       970 
     | 
    
         
            -
                              unless build_success
         
     | 
| 
       971 
     | 
    
         
            -
                                if @verbose
         
     | 
| 
       972 
     | 
    
         
            -
                                  $stderr.puts("First 'rake pkg:rpm' attempt for #{dir} failed, running bundle and trying again.")
         
     | 
| 
       973 
     | 
    
         
            -
                                end
         
     | 
| 
       974 
     | 
    
         
            -
             
     | 
| 
       975 
     | 
    
         
            -
                                if Bundler.respond_to?(:with_unbundled_env)
         
     | 
| 
       976 
     | 
    
         
            -
                                  # Bundler 2.1+
         
     | 
| 
       977 
     | 
    
         
            -
                                  clean_env_method = :with_unbundled_env
         
     | 
| 
       978 
     | 
    
         
            -
                                  bundle_install_cmd = %{bundle config set with 'development' && bundle install}
         
     | 
| 
       979 
     | 
    
         
            -
                                else
         
     | 
| 
       980 
     | 
    
         
            -
                                  # Old Bundler
         
     | 
| 
       981 
     | 
    
         
            -
                                  clean_env_method = :with_clean_env
         
     | 
| 
       982 
     | 
    
         
            -
                                  bundle_install_cmd = %{bundle install --with development}
         
     | 
| 
       983 
     | 
    
         
            -
                                end
         
     | 
| 
       984 
     | 
    
         
            -
             
     | 
| 
       985 
     | 
    
         
            -
                                ::Bundler.send(clean_env_method) do
         
     | 
| 
       986 
     | 
    
         
            -
                                  %x{#{bundle_install_cmd}}
         
     | 
| 
       987 
     | 
    
         
            -
             
     | 
| 
       988 
     | 
    
         
            -
                                  output = %x{#{cmd} 2>&1}
         
     | 
| 
       989 
     | 
    
         
            -
             
     | 
| 
       990 
     | 
    
         
            -
                                  unless $?.success?
         
     | 
| 
       991 
     | 
    
         
            -
                                    raise("Error in #{dir} running #{cmd}\n#{output}")
         
     | 
| 
       992 
     | 
    
         
            -
                                  end
         
     | 
| 
       993 
     | 
    
         
            -
                                end
         
     | 
| 
       994 
     | 
    
         
            -
                              end
         
     | 
| 
       995 
     | 
    
         
            -
                            else
         
     | 
| 
       996 
     | 
    
         
            -
                              # Record metadata for the downloaded RPM
         
     | 
| 
       997 
     | 
    
         
            -
                              Simp::RPM::create_rpm_build_metadata(File.expand_path(dir))
         
     | 
| 
       998 
     | 
    
         
            -
                              built_rpm = true
         
     | 
| 
       999 
     | 
    
         
            -
                            end
         
     | 
| 
      
 1032 
     | 
    
         
            +
                            # We're building one of the extra assets and should honor its Rakefile
         
     | 
| 
      
 1033 
     | 
    
         
            +
                            # and RPM spec file.
         
     | 
| 
      
 1034 
     | 
    
         
            +
                            built_rpm = build_rakefile_rpm(dir, yum_helper)
         
     | 
| 
       1000 
1035 
     | 
    
         
             
                          else
         
     | 
| 
       1001 
     | 
    
         
            -
                            puts "Warning: '#{dir}' could not be built  
     | 
| 
      
 1036 
     | 
    
         
            +
                            puts "Warning: '#{dir}' could not be built (not a pupmod & no Rakefile!)"
         
     | 
| 
       1002 
1037 
     | 
    
         
             
                          end
         
     | 
| 
       1003 
1038 
     | 
    
         | 
| 
       1004 
1039 
     | 
    
         
             
                          if built_rpm
         
     | 
| 
         @@ -1014,12 +1049,7 @@ protect=1 
     | 
|
| 
       1014 
1049 
     | 
    
         | 
| 
       1015 
1050 
     | 
    
         
             
                            raise("No RPMs generated for #{dir}") if rpms.empty?
         
     | 
| 
       1016 
1051 
     | 
    
         
             
                          end
         
     | 
| 
       1017 
     | 
    
         
            -
             
     | 
| 
       1018 
     | 
    
         
            -
                          if @verbose
         
     | 
| 
       1019 
     | 
    
         
            -
                            rpms = Dir.glob('dist/*.rpm')
         
     | 
| 
       1020 
     | 
    
         
            -
            #                $stderr.puts("#{dbg_prefix}RPMS: #{rpms.join("\n#{dbg_prefix}      ")}")
         
     | 
| 
       1021 
     | 
    
         
            -
                            $stderr.puts("Finished  #{File.basename(dir)}")
         
     | 
| 
       1022 
     | 
    
         
            -
                          end
         
     | 
| 
      
 1052 
     | 
    
         
            +
                          $stderr.puts("Finished  #{File.basename(dir)}") if @verbose
         
     | 
| 
       1023 
1053 
     | 
    
         
             
                        end
         
     | 
| 
       1024 
1054 
     | 
    
         
             
                      end
         
     | 
| 
       1025 
1055 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -267,7 +267,13 @@ module Simp::Rake::Build::RpmDeps 
     | 
|
| 
       267 
267 
     | 
    
         
             
              def self.release_file_up_to_date?(new_release_info, rpm_release_file)
         
     | 
| 
       268 
268 
     | 
    
         
             
                return false unless File.exist?(rpm_release_file)
         
     | 
| 
       269 
269 
     | 
    
         | 
| 
       270 
     | 
    
         
            -
                 
     | 
| 
      
 270 
     | 
    
         
            +
                # remove comments like "# release set by simp-core dependencies.yaml"
         
     | 
| 
      
 271 
     | 
    
         
            +
                release_file_content = File.readlines(rpm_release_file).reject{|x| x =~ /^ *#/}.join("\n").strip
         
     | 
| 
      
 272 
     | 
    
         
            +
             
     | 
| 
      
 273 
     | 
    
         
            +
                # sanitize numerics, etc.
         
     | 
| 
      
 274 
     | 
    
         
            +
                new_release_content = "#{new_release_info}".strip
         
     | 
| 
      
 275 
     | 
    
         
            +
             
     | 
| 
      
 276 
     | 
    
         
            +
                return release_file_content == new_release_content
         
     | 
| 
       271 
277 
     | 
    
         
             
              end
         
     | 
| 
       272 
278 
     | 
    
         | 
| 
       273 
279 
     | 
    
         
             
              # Generate 'build/rpm_metadata/release' file containing release qualifier
         
     | 
    
        data/lib/simp/rake/build/tar.rb
    CHANGED
    
    | 
         @@ -51,7 +51,8 @@ module Simp::Rake::Build 
     | 
|
| 
       51 
51 
     | 
    
         
             
                          'rubygem-simp-cli',
         
     | 
| 
       52 
52 
     | 
    
         
             
                          'simp',
         
     | 
| 
       53 
53 
     | 
    
         
             
                          'simp-gpgkeys',
         
     | 
| 
       54 
     | 
    
         
            -
                          'simp-utils'
         
     | 
| 
      
 54 
     | 
    
         
            +
                          'simp-utils',
         
     | 
| 
      
 55 
     | 
    
         
            +
                          'simp-vendored-r10k'
         
     | 
| 
       55 
56 
     | 
    
         
             
                        ]
         
     | 
| 
       56 
57 
     | 
    
         
             
                      }
         
     | 
| 
       57 
58 
     | 
    
         | 
| 
         @@ -83,8 +84,11 @@ module Simp::Rake::Build 
     | 
|
| 
       83 
84 
     | 
    
         
             
                        end
         
     | 
| 
       84 
85 
     | 
    
         | 
| 
       85 
86 
     | 
    
         
             
                        unless failures.empty?
         
     | 
| 
       86 
     | 
    
         
            -
                          msg = ['Error: Could not find the following packages:']
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
      
 87 
     | 
    
         
            +
                          msg = ['Error: Could not find the following packages:'] +
         
     | 
| 
      
 88 
     | 
    
         
            +
                            failures +
         
     | 
| 
      
 89 
     | 
    
         
            +
                            ['Did "dist/logs/last_rpm_build_metadata.yaml" get generated in the build directory?']
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
                          fail(msg.join("\n"))
         
     | 
| 
       88 
92 
     | 
    
         
             
                        end
         
     | 
| 
       89 
93 
     | 
    
         
             
                      end
         
     | 
| 
       90 
94 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -126,10 +130,16 @@ module Simp::Rake::Build 
     | 
|
| 
       126 
130 
     | 
    
         | 
| 
       127 
131 
     | 
    
         
             
                        Simp::RPM.copy_wo_vcs(@dvd_src,".",base_dir)
         
     | 
| 
       128 
132 
     | 
    
         | 
| 
       129 
     | 
    
         
            -
                        # Copy in the GPG Public Keys
         
     | 
| 
      
 133 
     | 
    
         
            +
                        # Copy in the GPG Public Keys from @build_dir
         
     | 
| 
       130 
134 
     | 
    
         
             
                        mkdir_p("#{destdir}/GPGKEYS")
         
     | 
| 
       131 
135 
     | 
    
         
             
                        ln(Dir.glob("#{@build_dir}/GPGKEYS/RPM-GPG-KEY*"), "#{destdir}/GPGKEYS", { :force => true })
         
     | 
| 
       132 
136 
     | 
    
         | 
| 
      
 137 
     | 
    
         
            +
                        # Copy in the GPG Public Keys packaged by simp-gpgkeys
         
     | 
| 
      
 138 
     | 
    
         
            +
                        simp_gpgkeys = File.join(@src_dir, 'assets', 'gpgkeys', 'GPGKEYS')
         
     | 
| 
      
 139 
     | 
    
         
            +
                        if Dir.exist?(simp_gpgkeys)
         
     | 
| 
      
 140 
     | 
    
         
            +
                          ln(Dir.glob("#{simp_gpgkeys}/RPM-GPG-KEY*"), "#{destdir}/GPGKEYS", { :force => true })
         
     | 
| 
      
 141 
     | 
    
         
            +
                        end
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
       133 
143 
     | 
    
         
             
                        # Copy in the auto-build RPMs
         
     | 
| 
       134 
144 
     | 
    
         
             
                        Dir.chdir("#{@build_dir}/SIMP/RPMS") do
         
     | 
| 
       135 
145 
     | 
    
         
             
                          Dir.glob('*').each do |type|
         
     | 
    
        data/lib/simp/rpm_signer.rb
    CHANGED
    
    | 
         @@ -195,8 +195,13 @@ class Simp::RpmSigner 
     | 
|
| 
       195 
195 
     | 
    
         
             
                          # the first RPM to be signed with the key after the gpg-agent is
         
     | 
| 
       196 
196 
     | 
    
         
             
                          # started and the key's passphrase has not been cleared from the
         
     | 
| 
       197 
197 
     | 
    
         
             
                          # agent's cache.
         
     | 
| 
       198 
     | 
    
         
            -
                          read.expect(/pass\s?phrase 
     | 
| 
       199 
     | 
    
         
            -
                             
     | 
| 
      
 198 
     | 
    
         
            +
                          read.expect(/(pass\s?phrase:|verwrite).*/) do |text|
         
     | 
| 
      
 199 
     | 
    
         
            +
                            if text.last.include?('verwrite')
         
     | 
| 
      
 200 
     | 
    
         
            +
                              write.puts('y')
         
     | 
| 
      
 201 
     | 
    
         
            +
                            else
         
     | 
| 
      
 202 
     | 
    
         
            +
                              write.puts(gpgkey[:password])
         
     | 
| 
      
 203 
     | 
    
         
            +
                            end
         
     | 
| 
      
 204 
     | 
    
         
            +
             
     | 
| 
       200 
205 
     | 
    
         
             
                            write.flush
         
     | 
| 
       201 
206 
     | 
    
         
             
                          end
         
     | 
| 
       202 
207 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -287,7 +292,7 @@ class Simp::RpmSigner 
     | 
|
| 
       287 
292 
     | 
    
         
             
                begin
         
     | 
| 
       288 
293 
     | 
    
         
             
                  results = Parallel.map(
         
     | 
| 
       289 
294 
     | 
    
         
             
                    to_sign,
         
     | 
| 
       290 
     | 
    
         
            -
                    :in_processes =>  
     | 
| 
      
 295 
     | 
    
         
            +
                    :in_processes => 1,
         
     | 
| 
       291 
296 
     | 
    
         
             
                    :progress => opts[:progress_bar_title]
         
     | 
| 
       292 
297 
     | 
    
         
             
                  ) do |rpm|
         
     | 
| 
       293 
298 
     | 
    
         
             
                    _result = nil
         
     | 
| 
         @@ -342,7 +342,7 @@ describe 'rake pkg:signrpms and pkg:checksig' do 
     | 
|
| 
       342 
342 
     | 
    
         
             
              end
         
     | 
| 
       343 
343 
     | 
    
         | 
| 
       344 
344 
     | 
    
         
             
              hosts.each do |host|
         
     | 
| 
       345 
     | 
    
         
            -
                os_major =  fact_on(host,' 
     | 
| 
      
 345 
     | 
    
         
            +
                os_major =  fact_on(host,'os.release.major')
         
     | 
| 
       346 
346 
     | 
    
         
             
                if os_major > '7'
         
     | 
| 
       347 
347 
     | 
    
         
             
                  # this problem only happens on EL > 7 in a docker container
         
     | 
| 
       348 
348 
     | 
    
         
             
                  describe "when gpg-agent's socket path is too long on #{host}" do
         
     | 
| 
         @@ -378,7 +378,7 @@ describe 'rake pkg:signrpms and pkg:checksig' do 
     | 
|
| 
       378 
378 
     | 
    
         
             
                          :acceptable_exit_codes => [1]
         
     | 
| 
       379 
379 
     | 
    
         
             
                        )
         
     | 
| 
       380 
380 
     | 
    
         | 
| 
       381 
     | 
    
         
            -
                        err_msg = %r(Failed to sign 
     | 
| 
      
 381 
     | 
    
         
            +
                        err_msg = %r(Failed to sign)
         
     | 
| 
       382 
382 
     | 
    
         
             
                        expect(result.stderr).to match(err_msg)
         
     | 
| 
       383 
383 
     | 
    
         | 
| 
       384 
384 
     | 
    
         
             
                        signature_check = on(host, "rpm -qip '#{test_rpm}' | grep ^Signature", run_opts)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: simp-rake-helpers
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 5. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 5.13.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Chris Tessmer
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date:  
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2022-01-11 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: simp-beaker-helpers
         
     |