simp-rake-helpers 4.1.1 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/lib/simp/rake.rb +4 -19
- data/lib/simp/rake/build/auto.rb +241 -506
- data/lib/simp/rake/build/build.rb +22 -155
- data/lib/simp/rake/build/clean.rb +3 -11
- data/lib/simp/rake/build/constants.rb +16 -78
- data/lib/simp/rake/build/deps.rb +8 -1
- data/lib/simp/rake/build/iso.rb +8 -6
- data/lib/simp/rake/build/pkg.rb +372 -304
- data/lib/simp/rake/build/rpmdeps.rb +2 -2
- data/lib/simp/rake/build/spec.rb +2 -1
- data/lib/simp/rake/build/tar.rb +11 -13
- data/lib/simp/rake/build/unpack.rb +2 -1
- data/lib/simp/rake/build/upload.rb +2 -1
- data/lib/simp/rake/helpers.rb +23 -0
- data/lib/simp/rake/helpers/version.rb +1 -1
- data/lib/simp/rake/pkg.rb +177 -312
- data/lib/simp/rake/pupmod/helpers.rb +13 -10
- data/lib/simp/rpm.rb +348 -65
- data/lib/simp/yum.rb +209 -0
- data/spec/lib/simp/files/simp_build/src/{build → assets/simp/build}/simp.spec +0 -0
- data/spec/lib/simp/files/testpackage-1-0.el7.noarch.rpm +0 -0
- data/spec/lib/simp/files/testpackage-dist.spec +42 -0
- data/spec/lib/simp/files/testpackage-multi.spec +7 -5
- data/spec/lib/simp/rpm_spec.rb +289 -14
- data/spec/spec_helper.rb +3 -0
- metadata +6 -3
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'bundler'
|
2
|
+
require 'simp/yum'
|
2
3
|
require 'simp/rake'
|
3
4
|
require 'simp/rake/build/constants'
|
4
5
|
|
@@ -112,28 +113,8 @@ module Simp::Rake::Build
|
|
112
113
|
# Helpers
|
113
114
|
##############################################################################
|
114
115
|
|
115
|
-
# This is a complete hack to get around the fact that yumdownloader doesn't
|
116
|
-
# cache properly when setting TMPDIR.
|
117
|
-
def clean_yumdownloader_cache_dir
|
118
|
-
require 'etc'
|
119
|
-
|
120
|
-
tmp_dir = '/tmp'
|
121
|
-
tmp_dir = ENV['TMPDIR'] if ENV['TMPDIR']
|
122
|
-
|
123
|
-
Dir.glob("#{tmp_dir}/yum-#{Etc.getlogin}-*").each do |cache_dir|
|
124
|
-
cache_dir = File.expand_path(cache_dir)
|
125
|
-
|
126
|
-
puts "Cleaning Yumdownloader Cache Dir '#{cache_dir}'"
|
127
|
-
begin
|
128
|
-
rm_rf(cache_dir)
|
129
|
-
rescue Exception => e
|
130
|
-
puts "Could not remove cache Dir: #{e}"
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
116
|
# Return the target directory
|
136
|
-
# Expects one argument
|
117
|
+
# Expects one argument which is the 'arguments' hash to one of the tasks.
|
137
118
|
def get_target_dir(args)
|
138
119
|
if $simp6
|
139
120
|
return @build_base_dir
|
@@ -156,49 +137,11 @@ module Simp::Rake::Build
|
|
156
137
|
end
|
157
138
|
|
158
139
|
# Return where YUM finds the passed RPM
|
159
|
-
def get_rpm_source(rpm,yum_conf)
|
160
|
-
# Do we have what we need?
|
161
|
-
|
162
|
-
unless @have_yumdownloader
|
163
|
-
%x(yumdownloader --version > /dev/null 2>&1)
|
164
|
-
|
165
|
-
if $?.exitstatus == 127
|
166
|
-
fail("Error: Could not find 'yumdownloader'. Please install it and try again.")
|
167
|
-
end
|
168
|
-
@have_yumdownloader = true
|
169
|
-
end
|
170
|
-
|
171
|
-
source = nil
|
172
|
-
|
140
|
+
def get_rpm_source(rpm, yum_conf)
|
173
141
|
puts("Looking up: #{rpm}")
|
174
|
-
|
175
|
-
|
176
|
-
unless $?.success?
|
177
|
-
raise(SIMPBuildException,"Could not find a download source")
|
178
|
-
end
|
179
|
-
|
180
|
-
sources = sources.split("\n").grep(%r(\.rpm$))
|
181
|
-
|
182
|
-
if sources.empty?
|
183
|
-
raise(SIMPBuildException,'No Sources found')
|
184
|
-
else
|
185
|
-
native_sources = sources.grep(%r((#{@build_arch}|noarch)\.rpm$))
|
186
|
-
|
187
|
-
# One entry, one success
|
188
|
-
if native_sources.size == 1
|
189
|
-
source = native_sources.first
|
190
|
-
# More than one entry is no good.
|
191
|
-
elsif native_sources.size > 1
|
192
|
-
raise(SIMPBuildException,'More than one file found')
|
193
|
-
# The only entry found was for a non-native architecure
|
194
|
-
# This means that someone specified the arch explicitly at the
|
195
|
-
# command line and we should take it.
|
196
|
-
else
|
197
|
-
source = sources.first
|
198
|
-
end
|
199
|
-
end
|
142
|
+
yum_helper = Simp::YUM.new(yum_conf)
|
200
143
|
|
201
|
-
return
|
144
|
+
return yum_helper.get_source(rpm, @build_arch)
|
202
145
|
end
|
203
146
|
|
204
147
|
# Snag an RPM via YUM.
|
@@ -206,35 +149,18 @@ module Simp::Rake::Build
|
|
206
149
|
#
|
207
150
|
# If passed a source, simply downloads the file into the packages directory
|
208
151
|
def download_rpm(rpm, yum_conf, source=nil, distro_dir=Dir.pwd)
|
152
|
+
yum_helper = Simp::YUM.new(yum_conf)
|
153
|
+
|
209
154
|
# We're doing this so that we can be 100% sure that we're pulling the RPM
|
210
155
|
# from where the last command indicated. YUM can choose multiple sources
|
211
156
|
# and we definitely want the one that we actually state!
|
212
|
-
source =
|
157
|
+
source = yum_helper.get_source(rpm) unless source
|
213
158
|
|
214
159
|
Dir.chdir('packages') do
|
215
160
|
full_pkg = source.split('/').last
|
216
161
|
unless File.exist?(full_pkg)
|
217
162
|
puts("Downloading: #{full_pkg}")
|
218
|
-
|
219
|
-
%x(curl -L --max-redirs 10 -s -o "#{full_pkg}" -k "#{source}")
|
220
|
-
if File.exist?(full_pkg) && !%x(file #{full_pkg}).include?('RPM')
|
221
|
-
@use_yumdownloader = true
|
222
|
-
FileUtils.rm(full_pkg)
|
223
|
-
end
|
224
|
-
end
|
225
|
-
|
226
|
-
if @use_yumdownloader
|
227
|
-
%x(yumdownloader -c #{yum_conf} #{File.basename(full_pkg,'.rpm')} 2>/dev/null )
|
228
|
-
|
229
|
-
if File.exist?(full_pkg) && !%x(file #{full_pkg}).include?('RPM')
|
230
|
-
@use_yumdownloader = true
|
231
|
-
FileUtils.rm(full_pkg)
|
232
|
-
end
|
233
|
-
end
|
234
|
-
|
235
|
-
unless $?.success?
|
236
|
-
raise(SIMPBuildException,"Could not download")
|
237
|
-
end
|
163
|
+
yum_helper.download(full_pkg)
|
238
164
|
|
239
165
|
begin
|
240
166
|
validate_rpm(full_pkg)
|
@@ -251,7 +177,7 @@ module Simp::Rake::Build
|
|
251
177
|
# Check to see if an RPM is actually a valid RPM
|
252
178
|
# Optionally remove any invalid RPMS.
|
253
179
|
#
|
254
|
-
# Returns true if the
|
180
|
+
# Returns true if the rpm is valid raises a SIMPBuildException otherwise
|
255
181
|
def validate_rpm(rpm, clean=true)
|
256
182
|
# Check to see if what we got is actually valid
|
257
183
|
%x(rpm -K --nosignature "#{rpm}" 2>&1 > /dev/null)
|
@@ -270,57 +196,6 @@ module Simp::Rake::Build
|
|
270
196
|
true
|
271
197
|
end
|
272
198
|
|
273
|
-
# Create the YUM config file
|
274
|
-
# * yum_tmp => The directory in which to store the YUM DB and any other
|
275
|
-
# temporary files.
|
276
|
-
#
|
277
|
-
# Returns the location of the YUM Configuration
|
278
|
-
def generate_yum_conf(distro_dir=Dir.pwd)
|
279
|
-
yum_conf_template = <<-EOM.gsub(/^\s+/,'')
|
280
|
-
[main]
|
281
|
-
keepcache = 1
|
282
|
-
persistdir = <%= yum_cache %>
|
283
|
-
logfile = <%= yum_logfile %>
|
284
|
-
exactarch = 1
|
285
|
-
obsoletes = 0
|
286
|
-
gpgcheck = 1
|
287
|
-
plugins = 1
|
288
|
-
reposdir = <%= repo_dirs.join(' ') %>
|
289
|
-
assumeyes = 1
|
290
|
-
EOM
|
291
|
-
|
292
|
-
yum_conf = nil
|
293
|
-
Dir.chdir(distro_dir) do
|
294
|
-
# Create the target directory
|
295
|
-
yum_tmp = File.join('packages','yum_tmp')
|
296
|
-
mkdir_p(yum_tmp) unless File.directory?(yum_tmp)
|
297
|
-
|
298
|
-
yum_cache = File.expand_path(File.join(yum_tmp,'yum_cache'))
|
299
|
-
mkdir_p(yum_cache) unless File.directory?(yum_cache)
|
300
|
-
|
301
|
-
yum_logfile = File.expand_path(File.join(yum_tmp,'yum.log'))
|
302
|
-
|
303
|
-
repo_dirs = []
|
304
|
-
# Add the global directory
|
305
|
-
repo_dirs << File.expand_path('../my_repos')
|
306
|
-
if File.directory?('my_repos')
|
307
|
-
# Add the local user repos if they exist
|
308
|
-
repo_dirs << File.expand_path('my_repos')
|
309
|
-
else
|
310
|
-
# Add the default Internet repos otherwise
|
311
|
-
repo_dirs << File.expand_path('repos')
|
312
|
-
end
|
313
|
-
|
314
|
-
# Create our YUM config file
|
315
|
-
yum_conf = File.join(yum_tmp,'yum.conf')
|
316
|
-
File.open(yum_conf,'w') do |fh|
|
317
|
-
fh.write(ERB.new(yum_conf_template,nil,'-').result(binding))
|
318
|
-
end
|
319
|
-
end
|
320
|
-
|
321
|
-
return File.absolute_path(yum_conf)
|
322
|
-
end
|
323
|
-
|
324
199
|
def get_known_packages(target_dir=Dir.pwd)
|
325
200
|
known_package_hash = {}
|
326
201
|
|
@@ -354,7 +229,7 @@ module Simp::Rake::Build
|
|
354
229
|
|
355
230
|
Dir.chdir(target_dir) do
|
356
231
|
Dir.glob('packages/*.rpm').each do |pkg|
|
357
|
-
downloaded_packages[Simp::RPM.get_info(pkg)[:
|
232
|
+
downloaded_packages[Simp::RPM.get_info(pkg)[:basename]] = { :rpm_name => File.basename(pkg) }
|
358
233
|
end
|
359
234
|
end
|
360
235
|
|
@@ -377,11 +252,12 @@ module Simp::Rake::Build
|
|
377
252
|
Dir.chdir(target_dir) do
|
378
253
|
unless File.exist?('packages.yaml') || File.directory?('packages')
|
379
254
|
fail <<-EOM
|
380
|
-
Error: Either '
|
255
|
+
Error: Either 'packages.yaml' or the 'packages/' directory need to exist under '#{target_dir}
|
381
256
|
EOM
|
382
257
|
end
|
383
258
|
|
384
|
-
|
259
|
+
yum_helper = Simp::YUM.new(Simp::YUM.generate_yum_conf)
|
260
|
+
yum_conf = yum_helper.yum_conf
|
385
261
|
|
386
262
|
known_package_hash = get_known_packages
|
387
263
|
downloaded_package_hash = get_downloaded_packages
|
@@ -425,12 +301,12 @@ module Simp::Rake::Build
|
|
425
301
|
# Do we have a valid external source?
|
426
302
|
package_source = known_package_hash.find{|k,h| h[:rpm_name] == package_to_download}.last[:source]
|
427
303
|
if package_source && (package_source =~ %r(^[a-z]+://))
|
428
|
-
download_rpm(package_to_download,yum_conf,package_source)
|
304
|
+
download_rpm(package_to_download, yum_conf, package_source)
|
429
305
|
else
|
430
306
|
# If you get here, then you'll need to have an internal mirror of the
|
431
307
|
# repositories in question. This covers things like private RPMs as
|
432
308
|
# well as Commercial RPMs from Red Hat.
|
433
|
-
download_rpm(package_to_download,yum_conf)
|
309
|
+
download_rpm(package_to_download, yum_conf)
|
434
310
|
end
|
435
311
|
rescue SIMPBuildException => e
|
436
312
|
base_package_name = known_package_hash.find{|k,h| h[:rpm_name] == package_to_download}.first
|
@@ -459,7 +335,8 @@ module Simp::Rake::Build
|
|
459
335
|
downloaded_package_hash.keys.each do |key|
|
460
336
|
if downloaded_package_hash[key][:rpm_name] == package
|
461
337
|
begin
|
462
|
-
rpm_source =
|
338
|
+
rpm_source = yum_helper.get_source(package)
|
339
|
+
#rpm_source = get_rpm_source(package,yum_conf)
|
463
340
|
known_package_hash[key] = downloaded_package_hash[key]
|
464
341
|
known_package_hash[key][:source] = rpm_source
|
465
342
|
rescue SIMPBuildException => e
|
@@ -547,9 +424,8 @@ module Simp::Rake::Build
|
|
547
424
|
# Don't obsolete yourself!
|
548
425
|
next unless new_pkg_info.basename == old_pkg_info.basename
|
549
426
|
|
550
|
-
|
551
|
-
|
552
|
-
if exit_status == 11
|
427
|
+
|
428
|
+
if new_pkg_info.newer?(old_pkg_info.rpm_name)
|
553
429
|
mkdir('obsolete') unless File.directory?('obsolete')
|
554
430
|
|
555
431
|
puts("Retiring #{old_pkg}") if verbose
|
@@ -724,7 +600,7 @@ module Simp::Rake::Build
|
|
724
600
|
|
725
601
|
* :arch - The architecture that you support. Default: x86_64
|
726
602
|
EOM
|
727
|
-
task :fetch,[:pkg,:os,:os_version,:simp_version,:arch] => [:prep, :
|
603
|
+
task :fetch,[:pkg,:os,:os_version,:simp_version,:arch] => [:prep, :scaffold] do |t,args|
|
728
604
|
args.with_defaults(:simp_version => @simp_version.split('-').first)
|
729
605
|
args.with_defaults(:arch => @build_arch)
|
730
606
|
|
@@ -746,19 +622,10 @@ module Simp::Rake::Build
|
|
746
622
|
Dir.chdir(get_target_dir(args)) do
|
747
623
|
pkgs.each do |pkg|
|
748
624
|
# Pull down the RPM
|
749
|
-
update_rpm(pkg,generate_yum_conf,true)
|
625
|
+
update_rpm(pkg, Simp::YUM.generate_yum_conf, true)
|
750
626
|
end
|
751
627
|
end
|
752
628
|
end
|
753
|
-
|
754
|
-
desc <<-EOM
|
755
|
-
Clean the Yumdownloader cache.
|
756
|
-
|
757
|
-
Use this if you're having strange issues fetching packages.
|
758
|
-
EOM
|
759
|
-
task :clean_cache do
|
760
|
-
clean_yumdownloader_cache_dir
|
761
|
-
end
|
762
629
|
end
|
763
630
|
end
|
764
631
|
end
|
@@ -35,22 +35,14 @@ module Simp::Rake::Build
|
|
35
35
|
def advanced_clean(type,args)
|
36
36
|
fail "Type must be one of 'clean' or 'clobber'" unless ['clean','clobber'].include?(type)
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
mock_dirs = Dir.glob("/var/lib/mock/*").map{|x| x = File.basename(x) }
|
41
|
-
|
42
|
-
unless ( mock_dirs.empty? or args.chroot )
|
43
|
-
$stderr.puts "Notice: You must pass a Mock chroot to erase a specified build root."
|
44
|
-
end
|
45
|
-
|
46
|
-
Rake::Task["pkg:#{type}"].invoke(args.chroot)
|
38
|
+
Rake::Task["pkg:#{type}"].invoke
|
47
39
|
end
|
48
40
|
|
49
|
-
task :clobber
|
41
|
+
task :clobber do |t,args|
|
50
42
|
advanced_clean('clobber',args)
|
51
43
|
end
|
52
44
|
|
53
|
-
task :clean
|
45
|
+
task :clean do |t,args|
|
54
46
|
advanced_clean('clean',args)
|
55
47
|
end
|
56
48
|
end
|
@@ -3,100 +3,38 @@ require 'rake/tasklib'
|
|
3
3
|
module Simp::Rake; end
|
4
4
|
module Simp::Rake::Build; end
|
5
5
|
module Simp::Rake::Build::Constants
|
6
|
-
def
|
7
|
-
|
8
|
-
init_member_vars(Dir.pwd)
|
9
|
-
end
|
10
|
-
|
11
|
-
metadata = nil
|
12
|
-
|
13
|
-
build_metadata_file = File.join(@distro_build_dir, 'build_metadata.yaml')
|
14
|
-
|
15
|
-
if File.exist?(build_metadata_file)
|
16
|
-
build_metadata = YAML.load_file(build_metadata_file)
|
17
|
-
|
18
|
-
if distro
|
19
|
-
begin
|
20
|
-
metadata_init = { 'distributions' => {} }
|
21
|
-
metadata = metadata_init.dup
|
22
|
-
|
23
|
-
if build_metadata['distributions'][distro]
|
24
|
-
if version && build_metadata['distributions'][distro][version]
|
25
|
-
metadata['distributions'][distro] = {}
|
26
|
-
metadata['distributions'][distro][version] = build_metadata['distributions'][distro][version].dup
|
27
|
-
|
28
|
-
if arch && build_metadata['distributions'][distro][version]['arch'].include?(arch)
|
29
|
-
metadata['distributions'][distro][version]['arch'] = Array(arch)
|
30
|
-
else
|
31
|
-
raise(NoMethodError)
|
32
|
-
end
|
33
|
-
else
|
34
|
-
metadata['distributions'][distro] = build_metadata['distributions'][distro].dup
|
35
|
-
end
|
36
|
-
|
37
|
-
# Build everything that we've selected
|
38
|
-
metadata['distributions'][distro].keys.each do |d|
|
39
|
-
metadata['distributions'][distro][d]['build'] = true
|
40
|
-
end
|
41
|
-
end
|
6
|
+
def init_member_vars( base_dir )
|
7
|
+
return if @member_vars_initialized
|
42
8
|
|
43
|
-
|
44
|
-
raise(NoMethodError)
|
45
|
-
end
|
46
|
-
rescue NoMethodError
|
47
|
-
$stderr.puts(%(Error: Could not find distribution for '#{ENV['SIMP_BUILD_distro']}'))
|
48
|
-
$stderr.puts(%( Check #{File.expand_path(build_metadata_file)}))
|
49
|
-
exit(1)
|
50
|
-
end
|
51
|
-
else
|
52
|
-
metadata = build_metadata
|
53
|
-
end
|
54
|
-
end
|
9
|
+
require 'facter'
|
55
10
|
|
56
|
-
|
57
|
-
|
11
|
+
$simp6 = true
|
12
|
+
$simp6_clean_dirs = []
|
58
13
|
|
59
|
-
|
60
|
-
|
14
|
+
@build_distro = Facter.fact('operatingsystem').value
|
15
|
+
@build_version = Facter.fact('operatingsystemmajrelease').value
|
16
|
+
@build_arch = Facter.fact('architecture').value
|
61
17
|
|
62
18
|
@run_dir = Dir.pwd
|
63
19
|
@base_dir = base_dir
|
64
|
-
@build_arch = ENV['SIMP_BUILD_arch'] || %x{#{:facter} hardwaremodel 2>/dev/null}.chomp
|
65
20
|
@build_dir = File.join(@base_dir, 'build')
|
66
|
-
@dvd_dir = File.join(@build_dir, 'DVD_Overlay')
|
67
21
|
@target_dists = ['CentOS', 'RedHat']
|
68
|
-
@dist_dir = File.join(@build_dir, 'dist')
|
69
22
|
@src_dir = File.join(@base_dir, 'src')
|
70
|
-
@dvd_src = File.join(@src_dir, 'DVD')
|
71
23
|
@spec_dir = File.join(@src_dir, 'build')
|
72
24
|
@spec_file = FileList[File.join(@spec_dir, '*.spec')]
|
73
|
-
@simp_version = Simp::RPM.
|
25
|
+
@simp_version = Simp::RPM.new(File.join(@src_dir, 'assets', 'simp', 'build', 'simp.spec')).full_version
|
74
26
|
@simp_dvd_dirs = ["SIMP","ks","Config"]
|
75
|
-
@distro_build_dir = File.join(@build_dir,'distributions')
|
76
|
-
@os_build_metadata = nil
|
77
27
|
@member_vars_initialized = true
|
78
28
|
|
79
|
-
|
80
|
-
|
29
|
+
@distro_build_dir = File.join(@build_dir, 'distributions', @build_distro, @build_version, @build_arch)
|
30
|
+
@dvd_src = File.join(@distro_build_dir, 'DVD')
|
31
|
+
@dvd_dir = File.join(@distro_build_dir, 'DVD_Overlay')
|
81
32
|
|
82
|
-
|
83
|
-
|
84
|
-
@os_build_metadata = os_build_metadata()
|
33
|
+
if File.exist?(File.join(@build_dir, 'distributions'))
|
34
|
+
@build_dir = @distro_build_dir
|
85
35
|
end
|
86
36
|
|
87
|
-
|
88
|
-
|
89
|
-
$simp6_clean_dirs = []
|
90
|
-
|
91
|
-
@os_build_metadata['distributions'].keys.sort.each do |d|
|
92
|
-
@os_build_metadata['distributions'][d].keys.sort.each do |v|
|
93
|
-
next unless @os_build_metadata['distributions'][d][v]['build']
|
94
|
-
@os_build_metadata['distributions'][d][v]['arch'].sort.each do |a|
|
95
|
-
$simp6_clean_dirs << File.join(@distro_build_dir, d, v, a, 'SIMP')
|
96
|
-
$simp6_clean_dirs << File.join(@distro_build_dir, d, v, a, 'SIMP_ISO*')
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
37
|
+
@dist_dir = File.join(@build_dir, 'dist')
|
38
|
+
@rpm_dir = "#{@build_dir}/SIMP/RPMS"
|
101
39
|
end
|
102
40
|
end
|
data/lib/simp/rake/build/deps.rb
CHANGED
@@ -36,7 +36,14 @@ class R10KHelper
|
|
36
36
|
end
|
37
37
|
|
38
38
|
unless repo_status
|
39
|
-
|
39
|
+
# Things that may be out of date but which should stop the updating
|
40
|
+
# of the git repo
|
41
|
+
our_exclusions=[
|
42
|
+
'build/rpm_metadata',
|
43
|
+
'dist/'
|
44
|
+
]
|
45
|
+
|
46
|
+
untracked_files = %x(git ls-files -o -d --exclude-standard --exclude=#{our_exclusions.join(' --exclude=')})
|
40
47
|
|
41
48
|
if $?.success?
|
42
49
|
unless untracked_files.empty?
|
data/lib/simp/rake/build/iso.rb
CHANGED
@@ -12,7 +12,6 @@ module Simp::Rake::Build
|
|
12
12
|
def initialize( base_dir )
|
13
13
|
init_member_vars( base_dir )
|
14
14
|
|
15
|
-
@mock = ENV['mock'] || '/usr/bin/mock'
|
16
15
|
define_tasks
|
17
16
|
end
|
18
17
|
|
@@ -94,6 +93,7 @@ module Simp::Rake::Build
|
|
94
93
|
end
|
95
94
|
end # End of prune_packages
|
96
95
|
|
96
|
+
=begin
|
97
97
|
desc <<-EOM
|
98
98
|
Build the SIMP ISO(s).
|
99
99
|
* :tarball - Path of the source tarball or directory containing the source
|
@@ -106,6 +106,7 @@ module Simp::Rake::Build
|
|
106
106
|
ENV vars:
|
107
107
|
- Set `SIMP_ISO_verbose=yes` to report file operations as they happen.
|
108
108
|
EOM
|
109
|
+
=end
|
109
110
|
task :build,[:tarball,:unpacked_dvds,:prune] => [:prep] do |t,args|
|
110
111
|
args.with_defaults(:unpacked_dvds => "#{@run_dir}", :prune => 'true')
|
111
112
|
|
@@ -320,22 +321,23 @@ module Simp::Rake::Build
|
|
320
321
|
fail('Error: No ISO was built!') unless @simp_output_iso
|
321
322
|
end
|
322
323
|
|
324
|
+
=begin
|
323
325
|
desc <<-EOM
|
324
326
|
Build the source ISO.
|
325
327
|
Note: The process clobbers the temporary and built files, rebuilds the
|
326
328
|
tarball(s) and packages the source ISO. Therefore it will take a
|
327
329
|
while.
|
328
330
|
* :key - The GPG key to sign the RPMs with. Defaults to 'prod'.
|
329
|
-
* :chroot - An optional Mock Chroot. If this is passed, the tar:build task will be called.
|
330
331
|
EOM
|
331
|
-
|
332
|
+
=end
|
333
|
+
task :src,[:prep, :key] do |t,args|
|
332
334
|
args.with_defaults(:key => 'prod')
|
333
335
|
|
334
|
-
if Dir.glob("#{@dvd_dir}/*.gz").empty?
|
335
|
-
fail("Error: Could not find compiled source tarballs
|
336
|
+
if Dir.glob("#{@dvd_dir}/*.gz").empty?
|
337
|
+
fail("Error: Could not find compiled source tarballs")
|
336
338
|
end
|
337
339
|
|
338
|
-
Rake::Task['tar:build']
|
340
|
+
Rake::Task['tar:build']
|
339
341
|
|
340
342
|
Dir.chdir(@base_dir) do
|
341
343
|
File.basename(Dir.glob("#{@dvd_dir}/*.tar.gz").first,'.tar.gz') =~ /SIMP-DVD-[^-]+-(.+)/
|