simp-rake-helpers 5.12.0 → 5.12.4

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.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/Gemfile +0 -3
  4. data/README.md +2 -37
  5. data/Rakefile +2 -3
  6. data/lib/simp/rake/build/auto.rb +4 -2
  7. data/lib/simp/rake/build/build.rb +5 -4
  8. data/lib/simp/rake/build/iso.rb +101 -45
  9. data/lib/simp/rake/build/pkg.rb +16 -16
  10. data/lib/simp/rake/build/spec.rb +1 -1
  11. data/lib/simp/rake/build/tar.rb +1 -1
  12. data/lib/simp/rake/build/unpack.rb +1 -1
  13. data/lib/simp/rake/build/upload.rb +1 -1
  14. data/lib/simp/rake/build/vermap.yaml +1 -1
  15. data/lib/simp/rake/helpers/assets/rpm_spec/simp6.spec +5 -5
  16. data/lib/simp/rake/helpers/assets/rpm_spec/simpdefault.spec +5 -5
  17. data/lib/simp/rake/helpers/version.rb +1 -1
  18. data/lib/simp/rake/helpers.rb +2 -2
  19. data/spec/acceptance/nodesets/default.yml +0 -16
  20. data/spec/acceptance/{00_pkg_rpm_custom_scriptlets_spec.rb → suites/default/00_pkg_rpm_custom_scriptlets_spec.rb} +4 -3
  21. data/spec/acceptance/{10_pkg_rpm_spec.rb → suites/default/10_pkg_rpm_spec.rb} +6 -6
  22. data/spec/acceptance/{30_pkg_misc_spec.rb → suites/default/30_pkg_misc_spec.rb} +1 -1
  23. data/spec/acceptance/{50_local_gpg_signing_key_spec.rb → suites/default/50_local_gpg_signing_key_spec.rb} +0 -0
  24. data/spec/acceptance/{55_build_pkg_signing_spec.rb → suites/default/55_build_pkg_signing_spec.rb} +2 -2
  25. data/spec/acceptance/{development → suites/default/development}/docker_env.sh +0 -0
  26. data/spec/acceptance/{development → suites/default/development}/rerun_acceptance_tests.sh +0 -0
  27. data/spec/acceptance/{development → suites/default/development}/vagrant_rsync.sh +0 -0
  28. data/spec/acceptance/{files → suites/default/files}/asset/Rakefile +0 -0
  29. data/spec/acceptance/{files → suites/default/files}/asset/build/asset.spec +0 -0
  30. data/spec/acceptance/{files → suites/default/files}/asset_with_misordered_entries/Rakefile +0 -0
  31. data/spec/acceptance/{files → suites/default/files}/asset_with_misordered_entries/build/asset_with_misordered_entries.spec +0 -0
  32. data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/RPM-GPG-KEY-SIMP-Dev +0 -0
  33. data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/gengpgkey +0 -0
  34. data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/pubring.gpg +0 -0
  35. data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/random_seed +0 -0
  36. data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/run_gpg_agent +0 -0
  37. data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/secring.gpg +0 -0
  38. data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/trustdb.gpg +0 -0
  39. data/spec/acceptance/{files → suites/default/files}/build/project_skeleton/Puppetfile.tracking +0 -0
  40. data/spec/acceptance/{files → suites/default/files}/build/project_skeleton/README.md +0 -0
  41. data/spec/acceptance/{files → suites/default/files}/build/project_skeleton/Rakefile +0 -0
  42. data/spec/acceptance/{files → suites/default/files}/build/project_skeleton/src/assets/simp/build/simp.spec +0 -0
  43. data/spec/acceptance/{files → suites/default/files}/module/CHANGELOG +0 -0
  44. data/spec/acceptance/{files → suites/default/files}/module/Rakefile +0 -0
  45. data/spec/acceptance/{files → suites/default/files}/module/metadata.json +0 -0
  46. data/spec/acceptance/{files → suites/default/files}/module_with_misordered_entries/CHANGELOG +0 -0
  47. data/spec/acceptance/{files → suites/default/files}/module_with_misordered_entries/Rakefile +0 -0
  48. data/spec/acceptance/{files → suites/default/files}/module_with_misordered_entries/metadata.json +0 -0
  49. data/spec/acceptance/{files → suites/default/files}/simplib/CHANGELOG +0 -0
  50. data/spec/acceptance/{files → suites/default/files}/simplib/Rakefile +0 -0
  51. data/spec/acceptance/{files → suites/default/files}/simplib/build/rpm_metadata/requires +0 -0
  52. data/spec/acceptance/{files → suites/default/files}/simplib/metadata.json +0 -0
  53. data/spec/acceptance/{files → suites/default/files}/testpackage/CHANGELOG +0 -0
  54. data/spec/acceptance/{files → suites/default/files}/testpackage/README +0 -0
  55. data/spec/acceptance/{files → suites/default/files}/testpackage/Rakefile +0 -0
  56. data/spec/acceptance/{files → suites/default/files}/testpackage/build/rpm_metadata/requires +0 -0
  57. data/spec/acceptance/{files → suites/default/files}/testpackage/metadata.json +0 -0
  58. data/spec/acceptance/{files → suites/default/files}/testpackage/spec/classes/init_spec.rb +0 -0
  59. data/spec/acceptance/{files → suites/default/files}/testpackage/spec/files/mock_something.rb +0 -0
  60. data/spec/acceptance/{files → suites/default/files}/testpackage/utils/convert_v1_to_v2.rb +0 -0
  61. data/spec/acceptance/{files → suites/default/files}/testpackage_custom_scriptlet/CHANGELOG +0 -0
  62. data/spec/acceptance/{files → suites/default/files}/testpackage_custom_scriptlet/Rakefile +0 -0
  63. data/spec/acceptance/{files → suites/default/files}/testpackage_custom_scriptlet/build/rpm_metadata/custom/overrides +0 -0
  64. data/spec/acceptance/{files → suites/default/files}/testpackage_custom_scriptlet/build/rpm_metadata/requires +0 -0
  65. data/spec/acceptance/{files → suites/default/files}/testpackage_custom_scriptlet/metadata.json +0 -0
  66. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_license/CHANGELOG +0 -0
  67. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_license/Rakefile +0 -0
  68. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_license/build/rpm_metadata/requires +0 -0
  69. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_license/metadata.json +0 -0
  70. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_metadata_file/CHANGELOG +0 -0
  71. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_metadata_file/Rakefile +0 -0
  72. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_metadata_file/build/rpm_metadata/requires +0 -0
  73. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_name/CHANGELOG +0 -0
  74. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_name/Rakefile +0 -0
  75. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_name/build/rpm_metadata/requires +0 -0
  76. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_name/metadata.json +0 -0
  77. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_source/CHANGELOG +0 -0
  78. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_source/Rakefile +0 -0
  79. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_source/build/rpm_metadata/requires +0 -0
  80. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_source/metadata.json +0 -0
  81. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_summary/CHANGELOG +0 -0
  82. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_summary/Rakefile +0 -0
  83. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_summary/build/rpm_metadata/requires +0 -0
  84. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_summary/metadata.json +0 -0
  85. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_version/CHANGELOG +0 -0
  86. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_version/Rakefile +0 -0
  87. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_version/build/rpm_metadata/requires +0 -0
  88. data/spec/acceptance/{files → suites/default/files}/testpackage_missing_version/metadata.json +0 -0
  89. data/spec/acceptance/{files → suites/default/files}/testpackage_with_bad_changelog_date/CHANGELOG +0 -0
  90. data/spec/acceptance/{files → suites/default/files}/testpackage_with_bad_changelog_date/Rakefile +0 -0
  91. data/spec/acceptance/{files → suites/default/files}/testpackage_with_bad_changelog_date/build/rpm_metadata/requires +0 -0
  92. data/spec/acceptance/{files → suites/default/files}/testpackage_with_bad_changelog_date/metadata.json +0 -0
  93. data/spec/acceptance/{files → suites/default/files}/testpackage_with_release/CHANGELOG +0 -0
  94. data/spec/acceptance/{files → suites/default/files}/testpackage_with_release/Rakefile +0 -0
  95. data/spec/acceptance/{files → suites/default/files}/testpackage_with_release/build/rpm_metadata/release +0 -0
  96. data/spec/acceptance/{files → suites/default/files}/testpackage_with_release/build/rpm_metadata/requires +0 -0
  97. data/spec/acceptance/{files → suites/default/files}/testpackage_with_release/metadata.json +0 -0
  98. data/spec/acceptance/{files → suites/default/files}/testpackage_without_changelog/Rakefile +0 -0
  99. data/spec/acceptance/{files → suites/default/files}/testpackage_without_changelog/build/rpm_metadata/requires +0 -0
  100. data/spec/acceptance/{files → suites/default/files}/testpackage_without_changelog/metadata.json +0 -0
  101. data/spec/acceptance/{support → suites/default/support}/build_project_helpers.rb +1 -1
  102. data/spec/acceptance/{support → suites/default/support}/build_user_helpers.rb +0 -0
  103. data/spec/acceptance/{support → suites/default/support}/pkg_rpm_helpers.rb +0 -0
  104. data/spec/spec_helper_acceptance.rb +4 -0
  105. metadata +86 -88
  106. data/lib/simp/rake/helpers/assets/rpm_spec/simp4.spec +0 -388
  107. data/lib/simp/rake/helpers/assets/rpm_spec/simp5.spec +0 -388
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d979c12113e415884ec44b2880134bde9e20a3efc99495520e3518a994118f6
4
- data.tar.gz: f9da255f0c077f662f00757ca2428b9375b1b4bd2d39de1b484c1a047d87c1f4
3
+ metadata.gz: d79c389d3f40c038b0ba81fe8351e4f71b256bd1eaeeef52eb0af07239ec793b
4
+ data.tar.gz: 1025900b3bbfa941429f228c7952bf79ccfec9a0b388a5a8fcfaf670b3c6f590
5
5
  SHA512:
6
- metadata.gz: 493c503f1ead3608b3718e113188ef08af8905d96fd7297f439adc4809c44e70f4ec6b1c3d08c1eb09458ef4ab1499db61ec3519f1d18ab297e1b8812c5620d1
7
- data.tar.gz: bf8bd8cbbf5c36ac268a23e346554a6f7132523f5f32a3f76162fdc8d77dd01898362d51dadd6012e2e07efb08e61737c1398c123e09092b422b94e631a0b43a
6
+ metadata.gz: 9c2e9f763a211891553cde62a1963f9fd603f1ce9bfed11b828b36206fe5ec73e1b55f7d1f570c5d1df79cdc00c534d57cc8df24cd205e4cabe946895e820d47
7
+ data.tar.gz: 818c69dcf5bab3bba5516539852abc856973f97275bc186d46ef268c2878d6a4e0542d179a47fd3ed6e48266ff819fc7c70127953694f92b6b7c1b5c03377e98
data/CHANGELOG.md CHANGED
@@ -1,3 +1,29 @@
1
+ ### 5.12.4 / 2021-10-05
2
+ - Ensure that the DIST qualifier is added to all built RPMs
3
+ - Use the new SimpRepos directory layout when building an ISO using externally
4
+ copied repos.
5
+
6
+ ### 5.12.3 / 2021-09-15
7
+ - Handle multiple options for required applications in build:auto
8
+ - Allow users to populate a `reposync` directory in the YUM build space that
9
+ will overwrite any target directories on the ISO.
10
+ - The SIMP tarball is unpacked after the copy so you always get the latest
11
+ built artifacts.
12
+ - Pruning will not occur if this technique is used since it is presumed that
13
+ you are overwriting the data with authoritative content.
14
+ - Added a helpful tip about updating vermap.yaml
15
+ - Fixed the call to repoclosure if on a system with DNF
16
+ - Added support for EL8 to vermap.yaml
17
+
18
+ ### 5.12.2 / 2021-06-22
19
+ - Change to '-1' from '-0' as the default RPM release
20
+
21
+ ### 5.12.1 / 2021-05-27
22
+ - Default `@build_dir` to `@distro_build_dir` in build tasks
23
+ - Use `file --keep-going` in the **unpack** task's ISO validation check. This
24
+ allows the check to work from EL8-based systems, where `ISO 9660 CD-ROM
25
+ filesystem data` is not the first match.
26
+
1
27
  ### 5.12.0 / 2021-02-16
2
28
  - Ensure that pkg:install_gem uses the correct documentation options for the
3
29
  version of Ruby in use.
data/Gemfile CHANGED
@@ -13,9 +13,6 @@ gem 'simp-build-helpers'
13
13
  gem 'simp-beaker-helpers'
14
14
  gem 'beaker-puppet_install_helper'
15
15
  gem 'rake', '>= 12.3.3'
16
- # You'll need the following if using podman until they are released upstream
17
- #gem 'beaker-docker', :git => 'https://github.com/trevor-vaughan/beaker-docker', :branch => 'support_rootless_podman'
18
- #gem 'docker-api', :git => 'https://github.com/trevor-vaughan/docker-api', :branch => 'podman-compat'
19
16
  gem 'beaker-docker'
20
17
 
21
18
  if puppetversion
data/README.md CHANGED
@@ -26,7 +26,6 @@
26
26
  * [`rake pkg:rpm`](#rake-pkgrpm)
27
27
  * [`rake pkg:tar`](#rake-pkgtar)
28
28
  * [Limitations](#limitations)
29
- * [Some versions of bundler fail on FIPS-enabled Systems](#some-versions-of-bundler-fail-on-fips-enabled-systems)
30
29
  * [Development](#development)
31
30
  * [License](#license)
32
31
  * [History](#history)
@@ -66,25 +65,6 @@ group :test do
66
65
  gem 'puppet', puppetversion
67
66
  gem 'beaker-rspec'
68
67
  gem 'vagrant-wrapper'
69
-
70
- # Puppet 4+ has issues with Hiera 3.1+
71
- if puppetversion.to_s =~ />(\d+)/
72
- pversion = $1
73
- else
74
- pversion = puppetversion
75
- end
76
-
77
- if Gem::Dependency.new('puppet', '~> 4.0').match?('puppet', pversion)
78
- gem 'hiera', '~> 3.0.0'
79
- end
80
-
81
- # simp-rake-helpers does not suport puppet 2.7.X
82
- if "#{ENV['PUPPET_VERSION']}".scan(/\d+/).first != '2' &&
83
- # simp-rake-helpers and ruby 1.8.7 bomb Travis tests
84
- # TODO: fix upstream deps (parallel in simp-rake-helpers)
85
- RUBY_VERSION.sub(/\.\d+$/,'') != '1.8'
86
- gem 'simp-rake-helpers'
87
- end
88
68
  end
89
69
  ```
90
70
 
@@ -164,7 +144,7 @@ directory . The full list of files considered are:
164
144
  ├── CHANGELOG # OPTIONAL written in RPM's CHANGELOG format
165
145
  └── build/ # OPTIONAL
166
146
  └── rpm_metadata/ # OPTIONAL
167
- ├── release # OPTIONAL defines the RPM's "-0" release number
147
+ ├── release # OPTIONAL defines the RPM's "-<qualifier>" release qualifier
168
148
  ├── requires # OPTIONAL supplementary 'Requires','Provides','Obsoletes'
169
149
  └── custom/ # OPTIONAL
170
150
  └── * # OPTIONAL custom snippets in RPM .spec format
@@ -187,7 +167,7 @@ level of the project, if it exists.
187
167
 
188
168
  Example:
189
169
 
190
- * Mon Nov 06 2017 Tom Smith <tom.smith@simp.com> - 3.8.0-0
170
+ * Mon Nov 06 2017 Tom Smith <tom.smith@simp.com> - 3.8.0
191
171
  - Add feature x
192
172
 
193
173
  **Important:** Note the leading zero in "`Nov 05`". It is a convention
@@ -227,21 +207,6 @@ Build the tar package for the current SIMP project
227
207
 
228
208
  ## Limitations
229
209
 
230
- ### Some versions of bundler fail on FIPS-enabled Systems
231
-
232
- This is a limitation of Bundler, not the gem.
233
-
234
- If you are running on a FIPS-enabled system, you will need to use
235
- `bundler '~> 1.14.0'` or `bundler '~> 1.16'`
236
-
237
- If you are using RVM, the appropriate steps are as follows:
238
-
239
- ```shell
240
- rm Gemfile.lock ||:
241
- rvm @global do gem uninstall bundler -a -x
242
- rvm @global do gem install bundler -v '~> 1.14.0'
243
- ```
244
-
245
210
  ## Development
246
211
 
247
212
  Please see the [SIMP Contribution Guidelines](https://simp-project.atlassian.net/wiki/display/SD/Contributing+to+SIMP).
data/Rakefile CHANGED
@@ -1,5 +1,3 @@
1
- # -*- ruby -*-
2
-
3
1
  require "rubygems"
4
2
  require 'rake/clean'
5
3
  require 'find'
@@ -12,5 +10,6 @@ require 'rspec/core/rake_task'
12
10
  require 'simp/rake/rubygem'
13
11
  Simp::Rake::Rubygem.new(@package, @rakefile_dir)
14
12
 
13
+ require 'simp/rake/beaker'
15
14
 
16
- # vim: syntax=ruby
15
+ Simp::Rake::Beaker.new(Dir.pwd)
@@ -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
 
@@ -25,7 +25,7 @@ module Simp::Rake::Build
25
25
  namespace :build do
26
26
  task :prep do
27
27
  if $simp6
28
- @build_dir = $simp6_build_dir
28
+ @build_dir = $simp6_build_dir || @distro_build_dir
29
29
  end
30
30
  end
31
31
 
@@ -96,7 +96,7 @@ module Simp::Rake::Build
96
96
  task :prep do
97
97
  if $simp6
98
98
  # `$simp6_build_dir` is set by the build:auto task
99
- @build_dir = $simp6_build_dir
99
+ @build_dir = $simp6_build_dir || @distro_build_dir
100
100
 
101
101
  unless @build_dir
102
102
  if ENV['SIMP_BUILD_yum_dir'] && File.exist?(File.join(ENV['SIMP_BUILD_yum_dir'], 'yum_data'))
@@ -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,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
 
@@ -26,7 +26,7 @@ module Simp::Rake::Build
26
26
  namespace :iso do
27
27
  task :prep do
28
28
  if $simp6
29
- @build_dir = $simp6_build_dir
29
+ @build_dir = $simp6_build_dir || @distro_build_dir
30
30
  end
31
31
  end
32
32
 
@@ -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,75 @@ 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
193
+ repo_target_dir = dir
194
+
195
+ # If we've pulled in reposync directories, we expect them to
196
+ # completely overwrite the directory of the same name in the
197
+ # target ISO so no pruning is required
198
+ #
199
+ # Note: CASE MATTERS on the directory names
200
+ if reposync_active
201
+ # We're working with the new EL8+ layout, so we need to target
202
+ # the SimpRepos subdirectory
203
+ repo_target_dir = File.join(dir,'SimpRepos')
204
+ mkdir_p(repo_target_dir, :verbose => verbose)
205
+
206
+ repos_to_overwrite = Dir.glob(File.join(reposync_location, '*'))
207
+ .delete_if{|x| !File.directory?(x)}
208
+ .map{|x| File.basename(x)}
209
+
210
+ repos_to_overwrite.each do |repo|
211
+ src = File.join(reposync_location, repo)
212
+ target = File.join(dir, repo)
213
+
214
+ if File.directory?(target)
215
+ rm_rf(target, :verbose => verbose) if File.directory?(target)
216
+ else
217
+ target = File.join(repo_target_dir, repo)
218
+ end
219
+
220
+ cp_r(src, target, :verbose => verbose)
221
+ end
222
+ else
223
+ # Prune unwanted packages
224
+ begin
225
+ system("tar --no-same-permissions -C #{repo_target_dir} -xzf #{tball} *simp_pkglist.txt")
226
+ rescue
227
+ # Does not matter if the command fails
228
+ end
195
229
 
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)
230
+ pkglist_file = ENV.fetch(
231
+ 'SIMP_PKGLIST_FILE',
232
+ File.join(dir,"#{baseosver.split('.').first}-simp_pkglist.txt")
233
+ )
234
+
235
+ puts
236
+ puts '-'*80
237
+ puts "### Pruning packages not in file '#{pkglist_file}'"
238
+ puts
239
+ puts ' (override this with `SIMP_PKGLIST_FILE=<file>`)'
240
+ puts
241
+ puts '-'*80
242
+ puts
243
+
244
+ if (args.prune.casecmp("false") != 0) && File.exist?(pkglist_file)
245
+ exclude_pkgs = Array.new
246
+ File.read(pkglist_file).each_line do |line|
247
+ next if line =~ /^(\s+|#.*)$/
248
+ exclude_pkgs.push(line.chomp)
249
+ end
250
+ prune_packages(dir,['SIMP','SimpRepos'],exclude_pkgs,mkrepo)
215
251
  end
216
- prune_packages(dir,['SIMP'],exclude_pkgs,mkrepo)
217
252
  end
218
253
 
219
254
  # Add the SIMP code
220
255
  system("tar --no-same-permissions -C #{dir} -xzf #{tball}")
221
256
 
222
- Dir.chdir("#{dir}/SIMP") do
257
+ # Pop the SIMP directory from the tarball into the correct spot
258
+ # FIXME: This is a hack
259
+ FileUtils.mv("#{dir}/SIMP", repo_target_dir) if File.directory?("#{dir}/SIMP")
260
+
261
+ Dir.chdir("#{repo_target_dir}/SIMP") do
223
262
  # Add the SIMP Dependencies
224
263
  simp_base_ver = simpver.split('-').first
225
264
 
@@ -230,13 +269,14 @@ module Simp::Rake::Build
230
269
  yum_dep_location = File.join(@build_dir,'yum_data',simp_dep_src,'packages')
231
270
  end
232
271
 
272
+ yum_dep_rpms = Dir.glob(File.join(yum_dep_location,'*.rpm'))
273
+
233
274
  unless File.directory?(yum_dep_location)
234
- fail("Could not find dependency directory at #{yum_dep_location}")
275
+ fail("Could not find dependency directory at #{yum_dep_location}") unless reposync_active
235
276
  end
236
277
 
237
- yum_dep_rpms = Dir.glob(File.join(yum_dep_location,'*.rpm'))
238
278
  if yum_dep_rpms.empty?
239
- fail("Could not find any dependency RPMs at #{yum_dep_location}")
279
+ fail("Could not find any dependency RPMs at #{yum_dep_location}") unless reposync_active
240
280
  end
241
281
 
242
282
  # Add any one-off RPMs that you might want to add to your own build
@@ -261,24 +301,40 @@ module Simp::Rake::Build
261
301
  cp(rpm,rpm_arch, :verbose => verbose)
262
302
  end
263
303
 
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
275
- end
304
+ unless reposync_active
305
+ ln_s('noarch', arch, :verbose => verbose) if (!File.directory?(arch) && File.directory?('noarch'))
306
+ fail("Could not find architecture '#{arch}' in the SIMP distribution") unless (File.directory?(arch) || File.symlink?(arch))
307
+
308
+ # Get everything set up properly...
309
+ Dir.chdir(arch) do
310
+ Dir.glob('../*') do |rpm_dir|
311
+ # Don't dive into ourselves
312
+ next if File.basename(rpm_dir) == arch
276
313
 
277
- ln_sf(source_rpm,link_target, :verbose => verbose)
314
+ Dir.glob(%(#{rpm_dir}/*.rpm)) do |source_rpm|
315
+ link_target = File.basename(source_rpm)
316
+ if File.exist?(source_rpm) && File.exist?(link_target)
317
+ next if Pathname.new(source_rpm).realpath == Pathname.new(link_target).realpath
318
+ end
319
+
320
+ ln_sf(source_rpm,link_target, :verbose => verbose)
321
+ end
278
322
  end
279
323
  end
324
+ end
325
+
326
+ fail("Error: Could not run createrepo in #{Dir.pwd}") unless system(%(#{mkrepo} .))
327
+ end
280
328
 
281
- fail("Error: Could not run createrepo in #{Dir.pwd}") unless system(%(#{mkrepo} .))
329
+ # New ISO Layout
330
+ if reposync_active
331
+ Dir.chdir(repo_target_dir) do
332
+ gpgkeysdir = File.join('SIMP','GPGKEYS')
333
+
334
+ if File.directory?(gpgkeysdir)
335
+ cp_r(gpgkeysdir, '.', :verbose => verbose)
336
+ rm_rf(gpgkeysdir, :verbose => verbose)
337
+ end
282
338
  end
283
339
  end
284
340
 
@@ -43,7 +43,7 @@ module Simp::Rake::Build
43
43
 
44
44
  # This doesn't get caught for things like 'rake clean'
45
45
  if $simp6 && $simp6_build_dir
46
- @build_dir = $simp6_build_dir
46
+ @build_dir = $simp6_build_dir || @distro_build_dir
47
47
  @dvd_src = File.join(@build_dir, File.basename(@dvd_src))
48
48
  end
49
49
 
@@ -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_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]).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_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
- cmd = 'repoclosure -c repodata -n -t -r base -l lookaside -c yum.conf'
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
@@ -17,7 +17,7 @@ module Simp::Rake::Build
17
17
  namespace :spec do
18
18
  task :prep do
19
19
  if $simp6
20
- @build_dir = $simp6_build_dir
20
+ @build_dir = $simp6_build_dir || @distro_build_dir
21
21
  end
22
22
  end
23
23
 
@@ -20,7 +20,7 @@ module Simp::Rake::Build
20
20
  namespace :tar do
21
21
  task :prep do
22
22
  if $simp6
23
- @build_dir = $simp6_build_dir
23
+ @build_dir = $simp6_build_dir || @distro_build_dir
24
24
  @dvd_src = File.join(@build_dir, File.basename(@dvd_src))
25
25
  end
26
26
 
@@ -50,7 +50,7 @@ module Simp::Rake::Build
50
50
  File.exist?(args.iso_path) or
51
51
  fail "Error: You must provide the full path and filename of the ISO image."
52
52
 
53
- %x{file #{iso_path}}.split(":")[1..-1].to_s =~ /ISO/ or
53
+ %x{file --keep-going '#{iso_path}'}.split(":")[1..-1].to_s =~ /ISO/ or
54
54
  fail "Error: The file provided is not a valid ISO."
55
55
 
56
56
  pieces = File.basename(iso_path,'.iso').split('-')
@@ -21,7 +21,7 @@ module Simp::Rake::Build
21
21
  namespace :upload do
22
22
  task :prep do
23
23
  if $simp6
24
- @build_dir = $simp6_build_dir
24
+ @build_dir = $simp6_build_dir || @distro_build_dir
25
25
  end
26
26
  end
27
27
 
@@ -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"
@@ -106,8 +106,8 @@ package_name = "UNKNOWN"
106
106
  package_version = "UNKNOWN"
107
107
  module_license = "UNKNOWN"
108
108
 
109
- -- Default to 0
110
- package_release = 0
109
+ -- Default to 1
110
+ package_release = 1
111
111
 
112
112
  lua_stderr("\n")
113
113
  lua_stderr("--------------------------------------------------------------------------------\n")
@@ -202,7 +202,7 @@ end
202
202
  -- only accepts release in SemVer \d+\.\d+\.\d+ release format)
203
203
  --
204
204
  -- This code will remove a '-rc0' style prerelease string from the RPM
205
- -- Version, and use it as the default RPM Release (instead of '-0')
205
+ -- Version, and use it as the default RPM Release (instead of '-1')
206
206
 
207
207
  local version_match = metadata:match('"version":%s+"(.-)"%s*,'):gsub('-.*','')
208
208
  if version_match then
@@ -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
@@ -106,8 +106,8 @@ package_name = "UNKNOWN"
106
106
  package_version = "UNKNOWN"
107
107
  module_license = "UNKNOWN"
108
108
 
109
- -- Default to 0
110
- package_release = 0
109
+ -- Default to 1
110
+ package_release = 1
111
111
 
112
112
  lua_stderr("\n")
113
113
  lua_stderr("--------------------------------------------------------------------------------\n")
@@ -202,7 +202,7 @@ end
202
202
  -- only accepts release in SemVer \d+\.\d+\.\d+ release format)
203
203
  --
204
204
  -- This code will remove a '-rc0' style prerelease string from the RPM
205
- -- Version, and use it as the default RPM Release (instead of '-0')
205
+ -- Version, and use it as the default RPM Release (instead of '-1')
206
206
 
207
207
  local version_match = metadata:match('"version":%s+"(.-)"%s*,'):gsub('-.*','')
208
208
  if version_match then
@@ -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.0'
5
+ VERSION = '5.12.4'
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
 
@@ -30,23 +30,7 @@ CONFIG:
30
30
  auth_methods:
31
31
  - password
32
32
  docker_preserve_image: true
33
- # This is necessary for pretty much all containers
34
- docker_cap_add:
35
- - AUDIT_WRITE
36
33
  mount_folders:
37
34
  host_files:
38
35
  host_path: ./
39
36
  container_path: /host_files
40
- # All items below this point are required for systemd
41
- cgroup:
42
- host_path: /sys/fs/cgroup
43
- container_path: /sys/fs/cgroup
44
- opts: 'ro'
45
- dockeropts:
46
- HostConfig:
47
- Tmpfs:
48
- '/run': 'rw,noexec,nosuid,nodev,size=65536k'
49
- '/run/lock': 'rw,noexec,nosuid,nodev,size=65536k'
50
- '/tmp': 'rw,exec,nosuid,nodev,size=65536k'
51
- '/sys/fs/cgroup/systemd': 'rw,size=65536k'
52
- '/var/log/journal': 'rw,noexec,nodev,nosuid,size=65536k'