simp-rake-helpers 5.12.2 → 5.12.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4da7d0cf624209586f4a159cd06bf86cc61da199ddecc3d2730e53a267225316
4
- data.tar.gz: 44fcb7049d7a6a39b433e88de24894db6817fc06620fddc6ac7f67d3481c6a42
3
+ metadata.gz: 51d1aeb754d81247df05b01fce650e64c4b03fdab941f955e3180e79edcc2964
4
+ data.tar.gz: e8d8c2ef11a657dfce5bd7755d94f024bd2466fbad243f930f6624bc7e699955
5
5
  SHA512:
6
- metadata.gz: 6f4a80dd4864f3ade29b60932b83d87b8d2fd56384fd03bc5df9de9a03f70f54445333e3654b3d2225d67e0ffdc5f1f772c5a23908a0ea40378c648043c00fb2
7
- data.tar.gz: 862aaaac472efde1959b314d66ddb254379be34f2ecbfa1f4715fc58882010fcfc14c5caf41a090947b2d3955b2c27eb146bec1b2236a817caebc95ada01f857
6
+ metadata.gz: ff5da7ac89c5cf55ae28d69be89992a904e0341c33534e3e301eee6a409d7f801d2df49a2de8dc889e46eb1defb42233c5e707bf8d67c215972998f2a483272a
7
+ data.tar.gz: 9a3bc2da54cc811be5c3129665124c90761f0c7a962ab54a1c8b11722e506b0691a7d429492e1d30d29930d082af942472dd7984b1bb674d5fe7c0c34928179a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ ### 5.12.6 / 2021-10-19
2
+ - Ensure that the `Updates` directory does not link to files in itself
3
+
4
+ ### 5.12.5 / 2021-10-07
5
+ - Fixed a bug where `build:auto` failed when building the SIMP ISO for EL7,
6
+ because the code attempted to move a directory onto itself.
7
+ - Ensured GPG keys in simp-gpgkeys are available in the DVD overlay tar file
8
+
9
+ ### 5.12.4 / 2021-10-05
10
+ - Ensure that the DIST qualifier is added to all built RPMs
11
+ - Use the new SimpRepos directory layout when building an ISO using externally
12
+ copied repos.
13
+
14
+ ### 5.12.3 / 2021-09-15
15
+ - Handle multiple options for required applications in build:auto
16
+ - Allow users to populate a `reposync` directory in the YUM build space that
17
+ will overwrite any target directories on the ISO.
18
+ - The SIMP tarball is unpacked after the copy so you always get the latest
19
+ built artifacts.
20
+ - Pruning will not occur if this technique is used since it is presumed that
21
+ you are overwriting the data with authoritative content.
22
+ - Added a helpful tip about updating vermap.yaml
23
+ - Fixed the call to repoclosure if on a system with DNF
24
+ - Added support for EL8 to vermap.yaml
25
+
1
26
  ### 5.12.2 / 2021-06-22
2
27
  - Change to '-1' from '-0' as the default RPM release
3
28
 
@@ -18,6 +18,8 @@ module Simp::Rake::Build
18
18
  class Auto < ::Rake::TaskLib
19
19
 
20
20
  # Commands that are required by some part of the rake stack
21
+ #
22
+ # Use an array for commands that may have multiple valid options
21
23
  BUILD_REQUIRED_COMMANDS = [
22
24
  'basename',
23
25
  'cat',
@@ -42,7 +44,7 @@ module Simp::Rake::Build
42
44
  'make',
43
45
  'mkdir',
44
46
  'mktemp',
45
- 'python',
47
+ ['python','python2','python3'],
46
48
  'readlink',
47
49
  'repoclosure',
48
50
  'rm',
@@ -62,7 +64,7 @@ module Simp::Rake::Build
62
64
  'wc',
63
65
  'which',
64
66
  'xargs',
65
- 'yum',
67
+ ['dnf','yum'],
66
68
  'yumdownloader'
67
69
  ]
68
70
 
@@ -204,7 +204,8 @@ module Simp::Rake::Build
204
204
 
205
205
  Dir.chdir(target_dir) do
206
206
  if File.exist?('packages.yaml')
207
- known_package_hash = YAML::load_file('packages.yaml')
207
+ # The empty YAML file returns 'false'
208
+ known_package_hash = YAML::load_file('packages.yaml') || {}
208
209
  end
209
210
  end
210
211
 
@@ -276,12 +277,12 @@ module Simp::Rake::Build
276
277
  pkg = downloaded_package_hash[pkg][:rpm_name]
277
278
  }.compact
278
279
 
279
- if known_packages.empty? && downloaded_packages.empty?
280
+ if known_packages.empty? && downloaded_packages.empty? && Dir.glob('reposync/**/repomd.xml').empty?
280
281
  fail <<-EOM
281
282
  Error: Could not find anything to do!
282
283
 
283
284
  In #{target_dir}:
284
- 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
285
286
  EOM
286
287
  end
287
288
 
@@ -120,6 +120,9 @@ module Simp::Rake::Build
120
120
  end
121
121
  end
122
122
 
123
+ reposync_location = File.join(@build_dir,'yum_data','reposync')
124
+ reposync_active = !Dir.glob(File.join(reposync_location, '**', 'repomd.xml')).empty?
125
+
123
126
  tarfiles = File.directory?(tarball) ?
124
127
  Dir.glob("#{tarball}/*.tar.gz") : [tarball]
125
128
  vermap = YAML::load_file( File.join( File.dirname(__FILE__), 'vermap.yaml'))
@@ -171,6 +174,7 @@ module Simp::Rake::Build
171
174
  unless Array(vermap[simpver.split('.').first]).include?(baseosver.split('.').first)
172
175
  if verbose
173
176
  warn("Could not find SIMP version mapping for #{simpver} for Base OS #{baseosver}")
177
+ warn("Do you need to update vermap.yaml in the Gem?")
174
178
  end
175
179
 
176
180
  next
@@ -186,40 +190,83 @@ module Simp::Rake::Build
186
190
  end
187
191
  end
188
192
 
189
- # Prune unwanted packages
190
- begin
191
- system("tar --no-same-permissions -C #{dir} -xzf #{tball} *simp_pkglist.txt")
192
- rescue
193
- # Does not matter if the command fails
194
- end
195
193
 
196
- pkglist_file = ENV.fetch(
197
- 'SIMP_PKGLIST_FILE',
198
- File.join(dir,"#{baseosver.split('.').first}-simp_pkglist.txt")
199
- )
200
-
201
- puts
202
- puts '-'*80
203
- puts "### Pruning packages not in file '#{pkglist_file}'"
204
- puts
205
- puts ' (override this with `SIMP_PKGLIST_FILE=<file>`)'
206
- puts
207
- puts '-'*80
208
- puts
209
-
210
- if (args.prune.casecmp("false") != 0) && File.exist?(pkglist_file)
211
- exclude_pkgs = Array.new
212
- File.read(pkglist_file).each_line do |line|
213
- next if line =~ /^(\s+|#.*)$/
214
- exclude_pkgs.push(line.chomp)
194
+ repo_target_dir = dir
195
+
196
+ # If we've pulled in reposync directories, we expect them to
197
+ # completely overwrite the directory of the same name in the
198
+ # target ISO so no pruning is required
199
+ #
200
+ # Note: CASE MATTERS on the directory names
201
+ if reposync_active
202
+ # We're working with the new EL8+ layout, so we need to target
203
+ # the SimpRepos subdirectory
204
+ repo_target_dir = File.join(dir,'SimpRepos')
205
+ mkdir_p(repo_target_dir, :verbose => verbose)
206
+
207
+ repos_to_overwrite = Dir.glob(File.join(reposync_location, '*'))
208
+ .delete_if{|x| !File.directory?(x)}
209
+ .map{|x| File.basename(x)}
210
+
211
+ repos_to_overwrite.each do |repo|
212
+ src = File.join(reposync_location, repo)
213
+ target = File.join(dir, repo)
214
+
215
+ if File.directory?(target)
216
+ rm_rf(target, :verbose => verbose) if File.directory?(target)
217
+ else
218
+ target = File.join(repo_target_dir, repo)
219
+ end
220
+
221
+ cp_r(src, target, :verbose => verbose)
222
+ end
223
+ else
224
+ # Prune unwanted packages
225
+ begin
226
+ system("tar --no-same-permissions -C #{repo_target_dir} -xzf #{tball} *simp_pkglist.txt")
227
+ rescue
228
+ # Does not matter if the command fails
229
+ end
230
+
231
+ pkglist_file = ENV.fetch(
232
+ 'SIMP_PKGLIST_FILE',
233
+ File.join(dir,"#{baseosver.split('.').first}-simp_pkglist.txt")
234
+ )
235
+
236
+ puts
237
+ puts '-'*80
238
+ puts "### Pruning packages not in file '#{pkglist_file}'"
239
+ puts
240
+ puts ' (override this with `SIMP_PKGLIST_FILE=<file>`)'
241
+ puts
242
+ puts '-'*80
243
+ puts
244
+
245
+ if (args.prune.casecmp("false") != 0) && File.exist?(pkglist_file)
246
+ exclude_pkgs = Array.new
247
+ File.read(pkglist_file).each_line do |line|
248
+ next if line =~ /^(\s+|#.*)$/
249
+ exclude_pkgs.push(line.chomp)
250
+ end
251
+ prune_packages(dir,['SIMP','SimpRepos'],exclude_pkgs,mkrepo)
215
252
  end
216
- prune_packages(dir,['SIMP'],exclude_pkgs,mkrepo)
217
253
  end
218
254
 
219
255
  # Add the SIMP code
220
256
  system("tar --no-same-permissions -C #{dir} -xzf #{tball}")
221
257
 
222
- Dir.chdir("#{dir}/SIMP") do
258
+ # Pop the SIMP directory from the tarball into the correct spot
259
+ # FIXME: This is a hack
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
268
+
269
+ Dir.chdir("#{repo_target_dir}/SIMP") do
223
270
  # Add the SIMP Dependencies
224
271
  simp_base_ver = simpver.split('-').first
225
272
 
@@ -230,13 +277,14 @@ module Simp::Rake::Build
230
277
  yum_dep_location = File.join(@build_dir,'yum_data',simp_dep_src,'packages')
231
278
  end
232
279
 
280
+ yum_dep_rpms = Dir.glob(File.join(yum_dep_location,'*.rpm'))
281
+
233
282
  unless File.directory?(yum_dep_location)
234
- fail("Could not find dependency directory at #{yum_dep_location}")
283
+ fail("Could not find dependency directory at #{yum_dep_location}") unless reposync_active
235
284
  end
236
285
 
237
- yum_dep_rpms = Dir.glob(File.join(yum_dep_location,'*.rpm'))
238
286
  if yum_dep_rpms.empty?
239
- fail("Could not find any dependency RPMs at #{yum_dep_location}")
287
+ fail("Could not find any dependency RPMs at #{yum_dep_location}") unless reposync_active
240
288
  end
241
289
 
242
290
  # Add any one-off RPMs that you might want to add to your own build
@@ -261,24 +309,81 @@ module Simp::Rake::Build
261
309
  cp(rpm,rpm_arch, :verbose => verbose)
262
310
  end
263
311
 
264
- fail("Could not find architecture '#{arch}' in the SIMP distribution") unless File.directory?(arch)
265
- # Get everything set up properly...
266
- Dir.chdir(arch) do
267
- Dir.glob('../*') do |rpm_dir|
268
- # Don't dive into ourselves
269
- next if File.basename(rpm_dir) == arch
270
-
271
- Dir.glob(%(#{rpm_dir}/*.rpm)) do |source_rpm|
272
- link_target = File.basename(source_rpm)
273
- if File.exist?(source_rpm) && File.exist?(link_target)
274
- next if Pathname.new(source_rpm).realpath == Pathname.new(link_target).realpath
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'))
316
+ fail("Could not find architecture '#{arch}' in the SIMP distribution") unless (File.directory?(arch) || File.symlink?(arch))
317
+
318
+ # Get everything set up properly...
319
+ Dir.chdir(arch) do
320
+ Dir.glob('../*') do |rpm_dir|
321
+ # Don't dive into ourselves
322
+ next if File.basename(rpm_dir) == arch
323
+
324
+ Dir.glob(%(#{rpm_dir}/*.rpm)) do |source_rpm|
325
+ link_target = File.basename(source_rpm)
326
+ if File.exist?(source_rpm) && File.exist?(link_target)
327
+ next if Pathname.new(source_rpm).realpath == Pathname.new(link_target).realpath
328
+ end
329
+
330
+ ln_sf(source_rpm,link_target, :verbose => verbose)
275
331
  end
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
276
348
 
277
- ln_sf(source_rpm,link_target, :verbose => verbose)
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))
278
369
  end
370
+
371
+ ln_sf(rpm, rpm_dest, :verbose => verbose)
279
372
  end
373
+ end
280
374
 
281
- fail("Error: Could not run createrepo in #{Dir.pwd}") unless system(%(#{mkrepo} .))
375
+ fail("Error: Could not run createrepo in #{Dir.pwd}") unless system(%(#{mkrepo} .))
376
+ end
377
+
378
+ # New ISO Layout
379
+ if reposync_active
380
+ Dir.chdir(repo_target_dir) do
381
+ gpgkeysdir = File.join('SIMP','GPGKEYS')
382
+
383
+ if File.directory?(gpgkeysdir)
384
+ cp_r(gpgkeysdir, '.', :verbose => verbose)
385
+ rm_rf(gpgkeysdir, :verbose => verbose)
386
+ end
282
387
  end
283
388
  end
284
389
 
@@ -606,23 +606,19 @@ protect=1
606
606
  mkdir_p('repos/lookaside')
607
607
  mkdir_p('repodata')
608
608
 
609
- Dir.glob(args[:target_dir]).each do |base_dir|
610
- Find.find(base_dir) do |path|
611
- if (path =~ /.*\.rpm$/) and (path !~ /.*.src\.rpm$/)
612
- sym_path = "repos/base/#{File.basename(path)}"
613
- ln_s(path,sym_path, :verbose => @verbose) unless File.exists?(sym_path)
614
- end
615
- end
609
+ Dir.glob(File.join(args[:target_dir], '**', '*.rpm'))
610
+ .delete_if{|x| x =~ /\.src\.rpm$/}
611
+ .each do |path|
612
+ sym_path = "repos/base/#{File.basename(path)}"
613
+ ln_sf(path,sym_path, :verbose => @verbose) unless File.exists?(sym_path)
616
614
  end
617
615
 
618
616
  if args[:aux_dir]
619
- Dir.glob(args[:aux_dir]).each do |aux_dir|
620
- Find.find(aux_dir) do |path|
621
- if (path =~ /.*\.rpm$/) and (path !~ /.*.src\.rpm$/)
622
- sym_path = "repos/lookaside/#{File.basename(path)}"
623
- ln_s(path,sym_path, :verbose => @verbose) unless File.exists?(sym_path)
624
- end
625
- end
617
+ Dir.glob(File.join(args[:aux_dir], '**', '*.rpm'))
618
+ .delete_if{|x| x =~ /\.src\.rpm$/}
619
+ .each do |path|
620
+ sym_path = "repos/lookaside/#{File.basename(path)}"
621
+ ln_sf(path,sym_path, :verbose => @verbose) unless File.exists?(sym_path)
626
622
  end
627
623
  end
628
624
 
@@ -647,7 +643,12 @@ protect=1
647
643
  file.write(ERB.new(yum_conf_template,nil,'-').result(binding))
648
644
  end
649
645
 
650
- cmd = 'repoclosure -c repodata -n -t -r base -l lookaside -c yum.conf'
646
+ dnf_system = which('dnf')
647
+ if dnf_system
648
+ cmd = 'repoclosure -c base.conf --disablerepo=* --enablerepo=base'
649
+ else
650
+ cmd = 'repoclosure -c repodata -n -t -r base -l lookaside -c yum.conf'
651
+ end
651
652
 
652
653
  if ENV['SIMP_BUILD_verbose'] == 'yes'
653
654
  puts
@@ -661,7 +662,16 @@ protect=1
661
662
  if (!$?.success? || (repoclosure_output =~ /nresolved/))
662
663
  errmsg = ['Error: REPOCLOSURE FAILED:']
663
664
  errmsg << [repoclosure_output]
664
- fail(errmsg.join("\n"))
665
+ puts(errmsg.join("\n"))
666
+
667
+ if dnf_system
668
+ if ENV.fetch('SIMP_BUILD_prompt', 'yes') != 'no'
669
+ puts('- Press any key to continue or ^C to abort -')
670
+ $stdin.gets
671
+ end
672
+ else
673
+ fail('Repoclosure Failed')
674
+ end
665
675
  end
666
676
  end
667
677
  end
@@ -126,10 +126,16 @@ module Simp::Rake::Build
126
126
 
127
127
  Simp::RPM.copy_wo_vcs(@dvd_src,".",base_dir)
128
128
 
129
- # Copy in the GPG Public Keys
129
+ # Copy in the GPG Public Keys from @build_dir
130
130
  mkdir_p("#{destdir}/GPGKEYS")
131
131
  ln(Dir.glob("#{@build_dir}/GPGKEYS/RPM-GPG-KEY*"), "#{destdir}/GPGKEYS", { :force => true })
132
132
 
133
+ # Copy in the GPG Public Keys packaged by simp-gpgkeys
134
+ simp_gpgkeys = File.join(@src_dir, 'assets', 'gpgkeys', 'GPGKEYS')
135
+ if Dir.exist?(simp_gpgkeys)
136
+ ln(Dir.glob("#{simp_gpgkeys}/RPM-GPG-KEY*"), "#{destdir}/GPGKEYS", { :force => true })
137
+ end
138
+
133
139
  # Copy in the auto-build RPMs
134
140
  Dir.chdir("#{@build_dir}/SIMP/RPMS") do
135
141
  Dir.glob('*').each do |type|
@@ -1,5 +1,5 @@
1
1
  ---
2
- "6": ["6","7"]
2
+ "6": ["6","7","8"]
3
3
  "5": "7"
4
4
  "4": "6"
5
5
  "2": "5"
@@ -301,7 +301,7 @@ end
301
301
 
302
302
  if req_file then
303
303
  for line in req_file:lines() do
304
- valid_line = (line:match("^Requires: ") or line:match("^Obsoletes: ") or line:match("^Provides: "))
304
+ valid_line = (line:match("^Requires: ") or line:match("^Obsoletes: ") or line:match("^Provides: ") or line:match("^Recommends: "))
305
305
 
306
306
  if valid_line then
307
307
  module_requires = (module_requires .. "\n" .. line)
@@ -319,7 +319,7 @@ Summary: %{module_name} Puppet Module
319
319
  Name: %{package_name}
320
320
 
321
321
  Version: %{lua: print(package_version)}
322
- Release: %{lua: print(package_release)}
322
+ Release: %{lua: print(package_release)}%{?dist}
323
323
  License: %{lua: print(module_license)}
324
324
  Group: Applications/System
325
325
  Source0: %{package_name}-%{version}-%{release}.tar.gz
@@ -301,7 +301,7 @@ end
301
301
 
302
302
  if req_file then
303
303
  for line in req_file:lines() do
304
- valid_line = (line:match("^Requires: ") or line:match("^Obsoletes: ") or line:match("^Provides: "))
304
+ valid_line = (line:match("^Requires: ") or line:match("^Obsoletes: ") or line:match("^Provides: ") or line:match("^Recommends: "))
305
305
 
306
306
  if valid_line then
307
307
  module_requires = (module_requires .. "\n" .. line)
@@ -319,7 +319,7 @@ Summary: %{module_name} Puppet Module
319
319
  Name: %{package_name}
320
320
 
321
321
  Version: %{lua: print(package_version)}
322
- Release: %{lua: print(package_release)}
322
+ Release: %{lua: print(package_release)}%{?dist}
323
323
  License: %{lua: print(module_license)}
324
324
  Group: Applications/System
325
325
  Source0: %{package_name}-%{version}-%{release}.tar.gz
@@ -2,5 +2,5 @@ module Simp; end
2
2
  module Simp::Rake; end
3
3
 
4
4
  class Simp::Rake::Helpers
5
- VERSION = '5.12.2'
5
+ VERSION = '5.12.6'
6
6
  end
@@ -20,8 +20,8 @@ class Simp::Rake::Helpers
20
20
  invalid_commands = Array.new
21
21
 
22
22
  Array(required_commands).each do |command|
23
- unless Facter::Core::Execution.which(command)
24
- invalid_commands << command
23
+ unless Array(command).find { |x| Facter::Core::Execution.which(x) }
24
+ invalid_commands << Array(command).join(' or ')
25
25
  end
26
26
  end
27
27
 
@@ -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:.*/) do |text|
199
- write.puts(gpgkey[:password])
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 => opts[:max_concurrent],
295
+ :in_processes => 1,
291
296
  :progress => opts[:progress_bar_title]
292
297
  ) do |rpm|
293
298
  _result = nil
@@ -11,7 +11,7 @@ shared_examples_for 'an RPM generator with customized scriptlets' do
11
11
  scriptlets = rpm_scriptlets_for(
12
12
  host,
13
13
  "#{pkg_root_dir}/testpackage_custom_scriptlet/dist/" +
14
- 'pupmod-simp-testpackage-0.0.1-1.noarch.rpm'
14
+ "pupmod-simp-testpackage-0.0.1-1#{rpm_dist}.noarch.rpm"
15
15
  )
16
16
 
17
17
  comment '...the expected scriptlet types are present'
@@ -69,7 +69,7 @@ shared_examples_for 'an RPM generator with customized triggers' do
69
69
  triggers = rpm_triggers_for(
70
70
  host,
71
71
  "#{pkg_root_dir}/testpackage_custom_scriptlet/dist/" +
72
- 'pupmod-simp-testpackage-0.0.1-1.noarch.rpm'
72
+ "pupmod-simp-testpackage-0.0.1-1#{rpm_dist}.noarch.rpm"
73
73
  )
74
74
 
75
75
 
@@ -107,6 +107,7 @@ describe 'rake pkg:rpm with customized content' do
107
107
  hosts.each do |_host|
108
108
  context "on #{_host}" do
109
109
  let!(:host){ _host }
110
+ let(:rpm_dist){ on(host, %{rpm --eval '%{dist}'}).output.strip.gsub(/\.centos$/, '') }
110
111
 
111
112
  it 'can prep the package directories' do
112
113
  testpackages = [
@@ -10,7 +10,7 @@ shared_examples_for 'an RPM generator with edge cases' do
10
10
  it 'should use specified release number for the RPM' do
11
11
  on host, %(#{run_cmd} "cd #{pkg_root_dir}/testpackage_with_release; #{rake_cmd} pkg:rpm")
12
12
  release_test_rpm = File.join(pkg_root_dir, 'testpackage_with_release',
13
- 'dist', 'pupmod-simp-testpackage-0.0.1-42.noarch.rpm')
13
+ 'dist', "pupmod-simp-testpackage-0.0.1-42#{rpm_dist}.noarch.rpm")
14
14
  on host, %(test -f #{release_test_rpm})
15
15
  end
16
16
 
@@ -73,10 +73,10 @@ describe 'rake pkg:rpm' do
73
73
  copy_host_files_into_build_user_homedir(hosts)
74
74
  end
75
75
 
76
-
77
76
  hosts.each do |_host|
78
77
  context "on #{_host}" do
79
78
  let!(:host){ _host }
79
+ let(:rpm_dist){ on(host, %{rpm --eval '%{dist}'}).output.strip.gsub(/\.centos$/, '') }
80
80
 
81
81
  context 'rpm building' do
82
82
 
@@ -107,7 +107,7 @@ describe 'rake pkg:rpm' do
107
107
  context 'using simpdefault.spec' do
108
108
 
109
109
  let(:build_type) {:default}
110
- let(:testpackage_rpm) { File.join(testpackage_dir, 'dist/pupmod-simp-testpackage-0.0.1-1.noarch.rpm') }
110
+ let(:testpackage_rpm) { File.join(testpackage_dir, "dist/pupmod-simp-testpackage-0.0.1-1#{rpm_dist}.noarch.rpm") }
111
111
 
112
112
  it 'should create an RPM' do
113
113
  comment "produces RPM on #{host}"
@@ -320,7 +320,7 @@ describe 'rake pkg:signrpms and pkg:checksig' do
320
320
 
321
321
  it 'should corrupt the password of new key' do
322
322
  key_gen_file = File.join(dev_keydir, 'gengpgkey')
323
- on(hosts, "sed -i -e \"s/^Passphrase: /Passphrase: OOPS/\" #{key_gen_file}")
323
+ on(hosts, "sed -ci -e \"s/^Passphrase: /Passphrase: OOPS/\" #{key_gen_file}")
324
324
  end
325
325
 
326
326
  include_examples('it begins with unsigned RPMs')
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.12.2
4
+ version: 5.12.6
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: 2021-06-28 00:00:00.000000000 Z
12
+ date: 2021-10-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: simp-beaker-helpers