simp-rake-helpers 3.0.2 → 3.1.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.
@@ -5,7 +5,7 @@ require 'simp/rake/build/constants'
5
5
  module Simp; end
6
6
  module Simp::Rake; end
7
7
  module Simp::Rake::Build
8
- class SIMPBuildException < Exception
8
+ class SIMPBuildException < StandardError
9
9
  end
10
10
 
11
11
  include Simp::Rake
@@ -15,12 +15,19 @@ module Simp::Rake::Build
15
15
 
16
16
  def initialize( base_dir )
17
17
  init_member_vars( base_dir )
18
+
18
19
  define_tasks
19
20
  end
20
21
 
21
22
  # define rake tasks
22
23
  def define_tasks
23
24
  namespace :build do
25
+ task :prep do
26
+ if $simp6
27
+ @build_dir = $simp6_build_dir
28
+ end
29
+ end
30
+
24
31
  desc <<-EOM
25
32
  Run bundle at every level of the project.
26
33
 
@@ -33,7 +40,7 @@ module Simp::Rake::Build
33
40
  * :verbose => Enable verbose reporting. Default => 'false'
34
41
  EOM
35
42
 
36
- task :bundle, [:action, :verbose, :method] do |t, args|
43
+ task :bundle, [:action, :verbose, :method] => [:prep] do |t, args|
37
44
  args.with_defaults(:action => 'install')
38
45
  args.with_defaults(:verbose => 'false')
39
46
  args.with_defaults(:method => 'tracking')
@@ -84,8 +91,22 @@ module Simp::Rake::Build
84
91
  end
85
92
 
86
93
  namespace :yum do
87
- @base_dir = File.join(@build_dir,'yum_data')
88
- @build_arch = 'x86_64'
94
+ task :prep do
95
+ if $simp6
96
+ @build_dir = $simp6_build_dir
97
+
98
+ unless @build_dir
99
+ if ENV['SIMP_BUILD_yum_dir'] && File.exist?(File.join(ENV['SIMP_BUILD_yum_dir'], 'yum_data'))
100
+ @build_dir = ENV['SIMP_BUILD_yum_dir']
101
+ end
102
+ end
103
+
104
+ raise('Error: For SIMP 6+ builds, you need to set SIMP_BUILD_yum_dir to the directory holding the "yum_data" directory that you wish to sync') unless @build_dir
105
+ end
106
+
107
+ @build_base_dir = File.join(@build_dir,'yum_data')
108
+ @build_arch = 'x86_64'
109
+ end
89
110
 
90
111
  ##############################################################################
91
112
  # Helpers
@@ -114,20 +135,24 @@ module Simp::Rake::Build
114
135
  # Return the target directory
115
136
  # Expects one argument wich is the 'arguments' hash to one of the tasks.
116
137
  def get_target_dir(args)
117
- fail("Error: You must specify 'os'") unless args[:os]
118
- fail("Error: You must specify 'os_version'") unless args[:os_version]
119
- fail("Error: You must specify both major and minor version for the OS") unless args[:os_version] =~ /^.+\..+$/
120
- fail("Error: You must specify 'simp_version'") unless args[:simp_version]
121
- fail("Error: You must specify 'arch'") unless args[:arch]
122
-
123
- # Yes, this is a kluge but the amount of variable passing that would need
124
- # to be done to support this is silly.
125
- @build_arch = args[:arch]
126
-
127
- return File.join(
128
- @base_dir,
129
- "SIMP#{args[:simp_version]}_#{args[:os]}#{args[:os_version]}_#{args[:arch]}"
130
- )
138
+ if $simp6
139
+ return @build_base_dir
140
+ else
141
+ fail("Error: You must specify 'os'") unless args[:os]
142
+ fail("Error: You must specify 'os_version'") unless args[:os_version]
143
+ fail("Error: You must specify both major and minor version for the OS") unless args[:os_version] =~ /^.+\..+$/
144
+ fail("Error: You must specify 'simp_version'") unless args[:simp_version]
145
+ fail("Error: You must specify 'arch'") unless args[:arch]
146
+
147
+ # Yes, this is a kluge but the amount of variable passing that would need
148
+ # to be done to support this is silly.
149
+ @build_arch = args[:arch]
150
+
151
+ return File.join(
152
+ @build_base_dir,
153
+ "SIMP#{args[:simp_version]}_#{args[:os]}#{args[:os_version]}_#{args[:arch]}"
154
+ )
155
+ end
131
156
  end
132
157
 
133
158
  # Return where YUM finds the passed RPM
@@ -192,7 +217,7 @@ module Simp::Rake::Build
192
217
  puts("Downloading: #{full_pkg}")
193
218
  unless @use_yumdownloader
194
219
  %x(curl -L --max-redirs 10 -s -o "#{full_pkg}" -k "#{source}")
195
- unless %x(file #{full_pkg}).include?('RPM')
220
+ if File.exist?(full_pkg) && !%x(file #{full_pkg}).include?('RPM')
196
221
  @use_yumdownloader = true
197
222
  FileUtils.rm(full_pkg)
198
223
  end
@@ -200,6 +225,11 @@ module Simp::Rake::Build
200
225
 
201
226
  if @use_yumdownloader
202
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
203
233
  end
204
234
 
205
235
  unless $?.success?
@@ -231,7 +261,7 @@ module Simp::Rake::Build
231
261
 
232
262
  if clean
233
263
  errmsg += ', removing'
234
- FileUtils.rm(rpm)
264
+ FileUtils.rm(rpm) if File.exist?(rpm)
235
265
  end
236
266
 
237
267
  raise(SIMPBuildException,errmsg)
@@ -334,7 +364,7 @@ module Simp::Rake::Build
334
364
  # Update the packages.yaml and packages/ directories
335
365
  # * target_dir => The actual distribution directory where packages.yaml and
336
366
  # packages/ reside.
337
- def update_packages(target_dir,bootstrap=false)
367
+ def update_packages(target_dir, bootstrap=false)
338
368
  # This really should never happen....
339
369
  unless File.directory?(target_dir)
340
370
  fail <<-EOM
@@ -483,6 +513,8 @@ module Simp::Rake::Build
483
513
  failed_updates.keys.sort.each do |k|
484
514
  $stderr.puts(" * #{k} => #{failed_updates[k]}")
485
515
  end
516
+
517
+ raise('Could not update all packages')
486
518
  end
487
519
  end
488
520
  end
@@ -559,7 +591,7 @@ module Simp::Rake::Build
559
591
 
560
592
  * :arch - The architecture that you support. Default: x86_64
561
593
  EOM
562
- task :scaffold,[:os,:os_version,:simp_version,:arch] do |t,args|
594
+ task :scaffold,[:os,:os_version,:simp_version,:arch] => [:prep] do |t,args|
563
595
  # @simp_version is set in the main Rakefile
564
596
  args.with_defaults(:simp_version => @simp_version.split('-').first)
565
597
  args.with_defaults(:arch => @build_arch)
@@ -572,8 +604,12 @@ module Simp::Rake::Build
572
604
  end
573
605
 
574
606
  # Put together the rest of the scaffold directories
575
- Dir.chdir(@base_dir) do
576
- mkdir('my_repos') unless File.exist?('my_repos')
607
+ Dir.chdir(@build_base_dir) do
608
+ if $simp6
609
+ mkdir('../my_repos') unless File.exist?('../my_repos')
610
+ else
611
+ mkdir('my_repos') unless File.exist?('my_repos')
612
+ end
577
613
  end
578
614
 
579
615
  Dir.chdir(target_dir) do
@@ -597,7 +633,7 @@ module Simp::Rake::Build
597
633
 
598
634
  * :arch - The architecture that you support. Default: x86_64
599
635
  EOM
600
- task :sync,[:os,:os_version,:simp_version,:arch] => [:scaffold] do |t,args|
636
+ task :sync,[:os,:os_version,:simp_version,:arch] => [:prep, :scaffold] do |t,args|
601
637
  # @simp_version is set in the main Rakefile
602
638
  args.with_defaults(:simp_version => @simp_version.split('-').first)
603
639
  args.with_defaults(:arch => @build_arch)
@@ -622,7 +658,7 @@ module Simp::Rake::Build
622
658
 
623
659
  * :arch - The architecture that you support. Default: x86_64
624
660
  EOM
625
- task :diff,[:os,:os_version,:simp_version,:arch] => [:scaffold] do |t,args|
661
+ task :diff,[:os,:os_version,:simp_version,:arch] => [:prep, :scaffold] do |t,args|
626
662
  args.with_defaults(:simp_version => @simp_version.split('-').first)
627
663
  args.with_defaults(:arch => @build_arch)
628
664
 
@@ -688,7 +724,7 @@ module Simp::Rake::Build
688
724
 
689
725
  * :arch - The architecture that you support. Default: x86_64
690
726
  EOM
691
- task :fetch,[:pkg,:os,:os_version,:simp_version,:arch] => [:scaffold] do |t,args|
727
+ task :fetch,[:pkg,:os,:os_version,:simp_version,:arch] => [:prep, :clean_cache, :scaffold] do |t,args|
692
728
  args.with_defaults(:simp_version => @simp_version.split('-').first)
693
729
  args.with_defaults(:arch => @build_arch)
694
730
 
@@ -21,6 +21,10 @@ module Simp::Rake::Build
21
21
  "#{@base_dir}/SIMP_ISO*"
22
22
  )
23
23
 
24
+ if $simp6_build_dirs
25
+ ::CLEAN.include($simp6_clean_dirs)
26
+ end
27
+
24
28
  ::CLOBBER.include(
25
29
  @dist_dir,
26
30
  "#{@build_dir}/build_keys/dev",
@@ -35,7 +39,7 @@ module Simp::Rake::Build
35
39
 
36
40
  mock_dirs = Dir.glob("/var/lib/mock/*").map{|x| x = File.basename(x) }
37
41
 
38
- if not mock_dirs.empty? and not args.chroot then
42
+ unless ( mock_dirs.empty? or args.chroot )
39
43
  $stderr.puts "Notice: You must pass a Mock chroot to erase a specified build root."
40
44
  end
41
45
 
@@ -16,14 +16,13 @@ module Simp::Rake::Build
16
16
 
17
17
  def define_tasks
18
18
  namespace :code do
19
-
20
19
  desc "Show some basic stats. Uses git to figure out what has changed.
21
20
  * :since - Do not include any stats before this date.
22
21
  * :until - Do not include any stats after this date."
23
22
  task :stats,[:since,:until] do |t,args|
24
23
  cur_branch = %x{git rev-parse --abbrev-ref HEAD}.chomp
25
24
 
26
- if cur_branch.empty? then
25
+ if cur_branch.empty?
27
26
  fail "Error: Could not find branch ID!"
28
27
  end
29
28
 
@@ -33,15 +32,15 @@ module Simp::Rake::Build
33
32
 
34
33
  cmd = "git log --shortstat --reverse --pretty=oneline"
35
34
 
36
- if args.since then
35
+ if args.since
37
36
  cmd = cmd + " --since=#{args.since}"
38
37
  end
39
- if args.until then
38
+ if args.until
40
39
  cmd = cmd + " --until=#{args.until}"
41
40
  end
42
41
 
43
42
  %x{#{cmd}}.each_line do |line|
44
- if encode_line(line) =~ /(\d+) files changed, (\d+) insertions\(\+\), (\d+) del.*/ then
43
+ if encode_line(line) =~ /(\d+) files changed, (\d+) insertions\(\+\), (\d+) del.*/
45
44
  changed = changed + $1.to_i
46
45
  new = new + $2.to_i
47
46
  removed = removed + $3.to_i
@@ -50,15 +49,15 @@ module Simp::Rake::Build
50
49
 
51
50
  cmd = "git submodule foreach git log --shortstat --reverse --pretty=oneline"
52
51
 
53
- if args.since then
52
+ if args.since
54
53
  cmd = cmd + " --since=#{args.since}"
55
54
  end
56
- if args.until then
55
+ if args.until
57
56
  cmd = cmd + " --until=#{args.until}"
58
57
  end
59
58
 
60
59
  %x{#{cmd}}.each_line do |line|
61
- if encode_line(line) =~ /(\d+) files changed, (\d+) insertions\(\+\), (\d+) del.*/ then
60
+ if encode_line(line) =~ /(\d+) files changed, (\d+) insertions\(\+\), (\d+) del.*/
62
61
  changed = changed + $1.to_i
63
62
  new = new + $2.to_i
64
63
  removed = removed + $3.to_i
@@ -88,7 +87,7 @@ module Simp::Rake::Build
88
87
  loc["other"] = 0
89
88
 
90
89
  File.open("#{SRC_DIR}/../Rakefile","r").each do |line|
91
- if encode_line(line) !~ /^\s*$/ then
90
+ if encode_line(line) !~ /^\s*$/
92
91
  loc["rake"] = loc["rake"] + 1
93
92
  end
94
93
  end.close
@@ -96,26 +95,27 @@ module Simp::Rake::Build
96
95
  other_ext = Array.new
97
96
 
98
97
  Find.find(SRC_DIR) do |path|
99
- if (
100
- ( File.basename(path)[0] == ?. ) or
101
- ( path =~ /src\/rsync/ ) or
102
- ( path[-3..-1] =~ /\.gz|pem|pub/ ) or
103
- ( path =~ /developers_guide\/rdoc/ )
104
- ) then
105
- Find.prune
106
- else
107
- next if FileTest.symlink?(path) or FileTest.directory?(path)
108
- end
98
+ if (
99
+ ( File.basename(path)[0] == ?. ) or
100
+ ( path =~ /src\/rsync/ ) or
101
+ ( path[-3..-1] =~ /\.gz|pem|pub/ ) or
102
+ ( path =~ /developers_guide\/rdoc/ )
103
+ )
104
+ Find.prune
105
+ else
106
+ next if FileTest.symlink?(path) or FileTest.directory?(path)
107
+ end
109
108
 
110
109
  ext = File.extname(path)[1..-1]
111
- if not ext then ext = 'none' end
112
- if not loc[ext] then
113
- other_ext.push(ext) if not other_ext.include?(ext)
110
+ ext ||= 'none'
111
+
112
+ unless loc[ext]
113
+ other_ext.push(ext) unless other_ext.include?(ext)
114
114
  ext = 'other'
115
115
  end
116
116
 
117
117
  File.open(path,'r').each do |line|
118
- if encode_line(line) !~ /^\s*$/ then
118
+ if encode_line(line) !~ /^\s*$/
119
119
  loc[ext] = loc[ext] + 1
120
120
  end
121
121
  end
@@ -136,7 +136,7 @@ module Simp::Rake::Build
136
136
  puts
137
137
  puts "Unknown Extension Count: #{other_ext.length}"
138
138
 
139
- if args.show_unknown then
139
+ if args.show_unknown
140
140
  puts "Unknown Extensions:"
141
141
  other_ext.sort.each do |ext|
142
142
  puts " #{ext}"
@@ -3,21 +3,100 @@ 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 os_build_metadata(distro=nil, version=nil, arch=nil)
7
+ unless @member_vars_initialized
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
42
+
43
+ if metadata['distributions'].empty?
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
55
+
56
+ return metadata
57
+ end
58
+
6
59
  def init_member_vars( base_dir )
7
- @run_dir = Dir.pwd
8
- @base_dir = base_dir
9
- @build_arch = ENV['buld_arch'] || %x{#{:facter} hardwaremodel 2>/dev/null}.chomp
10
- @build_dir = "#{@base_dir}/build"
11
- @dist_dir = "#{@build_dir}/dist"
12
- @dvd_dir = "#{@build_dir}/DVD_Overlay"
13
- @src_dir = "#{@base_dir}/src"
14
- @dvd_src = "#{@src_dir}/DVD"
15
- @spec_dir = "#{@src_dir}/build"
16
- @spec_file = FileList["#{@spec_dir}/*.spec"]
17
- @target_dists = ['CentOS','RHEL'] # The first item is the default build...
18
- @simp_version = Simp::RPM.get_info("#{@spec_dir}/simp.spec")[:full_version]
19
- @rhel_version = ENV['rhel_version'] || '7'
20
- @simp_dvd_dirs = ["SIMP","ks","Config"]
60
+ return if @member_vars_initialized
61
+
62
+ @run_dir = Dir.pwd
63
+ @base_dir = base_dir
64
+ @build_arch = ENV['buld_arch'] || %x{#{:facter} hardwaremodel 2>/dev/null}.chomp
65
+ @build_dir = File.join(@base_dir, 'build')
66
+ @dvd_dir = File.join(@build_dir, 'DVD_Overlay')
67
+ @target_dists = ['CentOS', 'RedHat']
68
+ @dist_dir = File.join(@build_dir, 'dist')
69
+ @src_dir = File.join(@base_dir, 'src')
70
+ @dvd_src = File.join(@src_dir, 'DVD')
71
+ @spec_dir = File.join(@src_dir, 'build')
72
+ @spec_file = FileList[File.join(@spec_dir, '*.spec')]
73
+ @simp_version = Simp::RPM.get_info(File.join(@spec_dir, 'simp.spec'))[:full_version]
74
+ @simp_dvd_dirs = ["SIMP","ks","Config"]
75
+ @distro_build_dir = File.join(@build_dir,'distributions')
76
+ @os_build_metadata = nil
77
+ @member_vars_initialized = true
78
+
79
+ if ENV['SIMP_BUILD_distro']
80
+ distro, version, arch = ENV['SIMP_BUILD_distro'].split(/,|\//)
81
+
82
+ @os_build_metadata = os_build_metadata(distro, version, arch)
83
+ else
84
+ @os_build_metadata = os_build_metadata()
85
+ end
86
+
87
+ if @os_build_metadata && !@os_build_metadata.empty?
88
+ $simp6 = true
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
21
101
  end
22
102
  end
23
-
@@ -128,6 +128,8 @@ class R10KHelper
128
128
  @modules.each do |mod|
129
129
  module_dir = mod[:path].split(@basedir.to_s).last.split('/')[1..-2].join('/')
130
130
 
131
+ next unless mod[:r10k_module]
132
+
131
133
  if last_module_dir != module_dir
132
134
  pupfile << "moduledir '#{module_dir}'\n"
133
135
  last_module_dir = module_dir
@@ -13,7 +13,6 @@ class Simp::Rake::Build::Helpers
13
13
  end
14
14
  Simp::Rake::Build::Auto.new( dir )
15
15
  Simp::Rake::Build::Build.new( dir )
16
- Simp::Rake::Build::Clean.new( dir )
17
16
  Simp::Rake::Build::Code.new( dir )
18
17
  Simp::Rake::Build::Deps.new( dir )
19
18
  Simp::Rake::Build::Iso.new( dir )
@@ -22,5 +21,6 @@ class Simp::Rake::Build::Helpers
22
21
  Simp::Rake::Build::Tar.new( dir )
23
22
  Simp::Rake::Build::Upload.new( dir )
24
23
  Simp::Rake::Build::Unpack.new( dir )
24
+ Simp::Rake::Build::Clean.new( dir )
25
25
  end
26
26
  end
@@ -11,6 +11,7 @@ module Simp::Rake::Build
11
11
 
12
12
  def initialize( base_dir )
13
13
  init_member_vars( base_dir )
14
+
14
15
  @mock = ENV['mock'] || '/usr/bin/mock'
15
16
  define_tasks
16
17
  end
@@ -20,6 +21,11 @@ module Simp::Rake::Build
20
21
  File.umask(0007)
21
22
 
22
23
  namespace :iso do
24
+ task :prep do
25
+ if $simp6
26
+ @build_dir = $simp6_build_dir
27
+ end
28
+ end
23
29
 
24
30
  # Remove packages from the given directory. The goal of this method is to help
25
31
  # get the distro to be as small as possible.
@@ -98,13 +104,14 @@ module Simp::Rake::Build
98
104
  ENV vars:
99
105
  - Set `SIMP_ISO_verbose=yes` to report file operations as they happen.
100
106
  EOM
101
- task :build,[:tarball,:unpacked_dvds,:prune] do |t,args|
107
+ task :build,[:tarball,:unpacked_dvds,:prune] => [:prep] do |t,args|
102
108
  args.with_defaults(:unpacked_dvds => "#{@run_dir}", :prune => 'true')
103
109
 
104
110
  if args.tarball.nil?
105
111
  fail("Error: You must specify a source tarball or tarball directory!")
106
112
  else
107
113
  tarball = File.expand_path(args.tarball)
114
+
108
115
  unless File.exist?(tarball)
109
116
  fail("Error: Could not find tarball at '#{tarball}'!")
110
117
  end
@@ -116,10 +123,17 @@ module Simp::Rake::Build
116
123
  Dir.glob("#{tarball}/*.tar.gz") : [tarball]
117
124
  vermap = YAML::load_file( File.join( File.dirname(__FILE__), 'vermap.yaml'))
118
125
 
119
- tarfiles.each do |tarball|
126
+ tarfiles.each do |tball|
120
127
  namepieces = File.basename(tarball,".tar.gz").split('-')
121
- simpver = namepieces[3..-1].join('-')
122
- baseos = namepieces[2]
128
+
129
+ # SIMP 6
130
+ if namepieces[1] =~ /^\d/
131
+ simpver = namepieces[1..2].join('-')
132
+ baseos = namepieces[3]
133
+ else
134
+ simpver = namepieces[3..-1].join('-')
135
+ baseos = namepieces[2]
136
+ end
123
137
 
124
138
  iso_dirs = Dir.glob("#{File.expand_path(args.unpacked_dvds)}/#{baseos}*")
125
139
  if iso_dirs.empty?
@@ -173,14 +187,16 @@ module Simp::Rake::Build
173
187
 
174
188
  # Prune unwanted packages
175
189
  begin
176
- system("tar --no-same-permissions -C #{dir} -xzf #{tarball} *simp_pkglist.txt")
190
+ system("tar --no-same-permissions -C #{dir} -xzf #{tball} *simp_pkglist.txt")
177
191
  rescue
178
192
  # Does not matter if the command fails
179
193
  end
194
+
180
195
  pkglist_file = ENV.fetch(
181
- 'SIMP_PKGLIST_FILE',
182
- File.join(dir,"#{baseosver.split('.').first}-simp_pkglist.txt")
183
- )
196
+ 'SIMP_PKGLIST_FILE',
197
+ File.join(dir,"#{baseosver.split('.').first}-simp_pkglist.txt")
198
+ )
199
+
184
200
  puts
185
201
  puts '-'*80
186
202
  puts "### Pruning packages not in file '#{pkglist_file}'"
@@ -200,13 +216,18 @@ module Simp::Rake::Build
200
216
  end
201
217
 
202
218
  # Add the SIMP code
203
- system("tar --no-same-permissions -C #{dir} -xzf #{tarball}")
219
+ system("tar --no-same-permissions -C #{dir} -xzf #{tball}")
204
220
 
205
221
  Dir.chdir("#{dir}/SIMP") do
206
222
  # Add the SIMP Dependencies
207
223
  simp_base_ver = simpver.split('-').first
208
- simp_dep_src = %(SIMP#{simp_base_ver}_#{baseos}#{baseosver}_#{arch})
209
- yum_dep_location = File.join(@build_dir,'yum_data',simp_dep_src,'packages')
224
+
225
+ if $simp6
226
+ yum_dep_location = File.join(@build_dir,'yum_data','packages')
227
+ else
228
+ simp_dep_src = %(SIMP#{simp_base_ver}_#{baseos}#{baseosver}_#{arch})
229
+ yum_dep_location = File.join(@build_dir,'yum_data',simp_dep_src,'packages')
230
+ end
210
231
 
211
232
  unless File.directory?(yum_dep_location)
212
233
  fail("Could not find dependency directory at #{yum_dep_location}")
@@ -220,7 +241,7 @@ module Simp::Rake::Build
220
241
  # Add any one-off RPMs that you might want to add to your own build
221
242
  # These are *not* checked to make sure that they actually match your
222
243
  # environment
223
- aux_packages = File.join(@build_dir,'yum_data',simp_dep_src,'aux_packages')
244
+ aux_packages = File.join(File.dirname(yum_dep_location),'aux_packages')
224
245
  if File.directory?(aux_packages)
225
246
  yum_dep_rpms += Dir.glob(File.join(aux_packages,'*.rpm'))
226
247
  end
@@ -307,7 +328,7 @@ module Simp::Rake::Build
307
328
  * :key - The GPG key to sign the RPMs with. Defaults to 'prod'.
308
329
  * :chroot - An optional Mock Chroot. If this is passed, the tar:build task will be called.
309
330
  EOM
310
- task :src,[:key,:chroot] do |t,args|
331
+ task :src,[:prep, :key,:chroot] do |t,args|
311
332
  args.with_defaults(:key => 'prod')
312
333
 
313
334
  if Dir.glob("#{@dvd_dir}/*.gz").empty? && !args.chroot