simp-rake-helpers 4.1.1 → 5.0.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 +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-[^-]+-(.+)/
|