simp-rake-helpers 5.12.2 → 5.12.3
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 +12 -0
- data/lib/simp/rake/build/auto.rb +4 -2
- data/lib/simp/rake/build/build.rb +3 -2
- data/lib/simp/rake/build/iso.rb +56 -30
- data/lib/simp/rake/build/pkg.rb +15 -15
- data/lib/simp/rake/build/vermap.yaml +1 -1
- data/lib/simp/rake/helpers/version.rb +1 -1
- data/lib/simp/rake/helpers.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: 33beb8e656840401f0fb3a07f7aee982fe3931d53b2e233f2e0024398fd03d6c
|
4
|
+
data.tar.gz: 81111ce62e4e8b3ca03a478d765e3944ee8b297af7b2ee1ef5e182e8bacf36f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9589c0d228dc77b2e75a641f158ca878c56498566696039c71eca0c414078299c2a7c4951cf48d45e0388b9cb72a1615321381084a11837fbbc42259a65ea880
|
7
|
+
data.tar.gz: 4267702fa365999433e673f26ff0896ad9a088ea7ce7ae26fff38bbc4d9c37b1c6239956bc016644ea8b2aa3b10925989f44fbb178a3d611380eb79db4b5cc6e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
### 5.12.3 / 2021-09-15
|
2
|
+
- Handle multiple options for required applications in build:auto
|
3
|
+
- Allow users to populate a `reposync` directory in the YUM build space that
|
4
|
+
will overwrite any target directories on the ISO.
|
5
|
+
- The SIMP tarball is unpacked after the copy so you always get the latest
|
6
|
+
built artifacts.
|
7
|
+
- Pruning will not occur if this technique is used since it is presumed that
|
8
|
+
you are overwriting the data with authoritative content.
|
9
|
+
- Added a helpful tip about updating vermap.yaml
|
10
|
+
- Fixed the call to repoclosure if on a system with DNF
|
11
|
+
- Added support for EL8 to vermap.yaml
|
12
|
+
|
1
13
|
### 5.12.2 / 2021-06-22
|
2
14
|
- Change to '-1' from '-0' as the default RPM release
|
3
15
|
|
data/lib/simp/rake/build/auto.rb
CHANGED
@@ -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
|
-
|
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,7 +277,7 @@ 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
|
|
data/lib/simp/rake/build/iso.rb
CHANGED
@@ -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,34 +190,53 @@ module Simp::Rake::Build
|
|
186
190
|
end
|
187
191
|
end
|
188
192
|
|
189
|
-
#
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
193
|
+
# If we've pulled in reposync directories, we expect them to
|
194
|
+
# completely overwrite the directory of the same name in the
|
195
|
+
# target ISO so no pruning is required
|
196
|
+
#
|
197
|
+
# Note: CASE MATTERS on the directory names
|
198
|
+
if reposync_active
|
199
|
+
repos_to_overwrite = Dir.glob(File.join(reposync_location, '*'))
|
200
|
+
.delete_if{|x| !File.directory?(x)}
|
201
|
+
.map{|x| File.basename(x)}
|
202
|
+
|
203
|
+
repos_to_overwrite.each do |repo|
|
204
|
+
src = File.join(reposync_location, repo)
|
205
|
+
target = File.join(dir, repo)
|
206
|
+
|
207
|
+
rm_rf(target, :verbose => verbose) if File.directory?(target)
|
208
|
+
cp_r(src, dir, :verbose => verbose)
|
209
|
+
end
|
210
|
+
else
|
211
|
+
# Prune unwanted packages
|
212
|
+
begin
|
213
|
+
system("tar --no-same-permissions -C #{dir} -xzf #{tball} *simp_pkglist.txt")
|
214
|
+
rescue
|
215
|
+
# Does not matter if the command fails
|
216
|
+
end
|
195
217
|
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
218
|
+
pkglist_file = ENV.fetch(
|
219
|
+
'SIMP_PKGLIST_FILE',
|
220
|
+
File.join(dir,"#{baseosver.split('.').first}-simp_pkglist.txt")
|
221
|
+
)
|
222
|
+
|
223
|
+
puts
|
224
|
+
puts '-'*80
|
225
|
+
puts "### Pruning packages not in file '#{pkglist_file}'"
|
226
|
+
puts
|
227
|
+
puts ' (override this with `SIMP_PKGLIST_FILE=<file>`)'
|
228
|
+
puts
|
229
|
+
puts '-'*80
|
230
|
+
puts
|
231
|
+
|
232
|
+
if (args.prune.casecmp("false") != 0) && File.exist?(pkglist_file)
|
233
|
+
exclude_pkgs = Array.new
|
234
|
+
File.read(pkglist_file).each_line do |line|
|
235
|
+
next if line =~ /^(\s+|#.*)$/
|
236
|
+
exclude_pkgs.push(line.chomp)
|
237
|
+
end
|
238
|
+
prune_packages(dir,['SIMP'],exclude_pkgs,mkrepo)
|
215
239
|
end
|
216
|
-
prune_packages(dir,['SIMP'],exclude_pkgs,mkrepo)
|
217
240
|
end
|
218
241
|
|
219
242
|
# Add the SIMP code
|
@@ -230,13 +253,14 @@ module Simp::Rake::Build
|
|
230
253
|
yum_dep_location = File.join(@build_dir,'yum_data',simp_dep_src,'packages')
|
231
254
|
end
|
232
255
|
|
256
|
+
yum_dep_rpms = Dir.glob(File.join(yum_dep_location,'*.rpm'))
|
257
|
+
|
233
258
|
unless File.directory?(yum_dep_location)
|
234
|
-
fail("Could not find dependency directory at #{yum_dep_location}")
|
259
|
+
fail("Could not find dependency directory at #{yum_dep_location}") unless reposync_active
|
235
260
|
end
|
236
261
|
|
237
|
-
yum_dep_rpms = Dir.glob(File.join(yum_dep_location,'*.rpm'))
|
238
262
|
if yum_dep_rpms.empty?
|
239
|
-
fail("Could not find any dependency RPMs at #{yum_dep_location}")
|
263
|
+
fail("Could not find any dependency RPMs at #{yum_dep_location}") unless reposync_active
|
240
264
|
end
|
241
265
|
|
242
266
|
# Add any one-off RPMs that you might want to add to your own build
|
@@ -261,7 +285,9 @@ module Simp::Rake::Build
|
|
261
285
|
cp(rpm,rpm_arch, :verbose => verbose)
|
262
286
|
end
|
263
287
|
|
264
|
-
|
288
|
+
ln_s('noarch', arch, :verbose => verbose) if (!File.directory?(arch) && File.directory?('noarch'))
|
289
|
+
fail("Could not find architecture '#{arch}' in the SIMP distribution") unless (File.directory?(arch) || File.symlink?(arch))
|
290
|
+
|
265
291
|
# Get everything set up properly...
|
266
292
|
Dir.chdir(arch) do
|
267
293
|
Dir.glob('../*') do |rpm_dir|
|
data/lib/simp/rake/build/pkg.rb
CHANGED
@@ -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]
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
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_s(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]
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
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_s(path,sym_path, :verbose => @verbose) unless File.exists?(sym_path)
|
626
622
|
end
|
627
623
|
end
|
628
624
|
|
@@ -647,7 +643,11 @@ protect=1
|
|
647
643
|
file.write(ERB.new(yum_conf_template,nil,'-').result(binding))
|
648
644
|
end
|
649
645
|
|
650
|
-
|
646
|
+
if which('dnf')
|
647
|
+
cmd = 'repoclosure -c base.conf --disablerepo=* --enablerepo=base'
|
648
|
+
else
|
649
|
+
cmd = 'repoclosure -c repodata -n -t -r base -l lookaside -c yum.conf'
|
650
|
+
end
|
651
651
|
|
652
652
|
if ENV['SIMP_BUILD_verbose'] == 'yes'
|
653
653
|
puts
|
data/lib/simp/rake/helpers.rb
CHANGED
@@ -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(
|
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
|
|
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.
|
4
|
+
version: 5.12.3
|
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-
|
12
|
+
date: 2021-09-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: simp-beaker-helpers
|