simp-rake-helpers 5.25.0 → 6.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 +26 -0
- data/Gemfile +13 -6
- data/lib/simp/command_utils.rb +6 -3
- data/lib/simp/componentinfo.rb +47 -33
- data/lib/simp/local_gpg_signing_key.rb +302 -303
- data/lib/simp/packer/iso_vars_json.rb +17 -15
- data/lib/simp/rake/build/auto.rb +415 -432
- data/lib/simp/rake/build/build.rb +119 -124
- data/lib/simp/rake/build/clean.rb +39 -39
- data/lib/simp/rake/build/code.rb +125 -128
- data/lib/simp/rake/build/constants.rb +7 -4
- data/lib/simp/rake/build/deps.rb +196 -207
- data/lib/simp/rake/build/helpers.rb +17 -13
- data/lib/simp/rake/build/iso.rb +404 -411
- data/lib/simp/rake/build/pkg.rb +752 -759
- data/lib/simp/rake/build/rpmdeps.rb +70 -70
- data/lib/simp/rake/build/spec.rb +44 -46
- data/lib/simp/rake/build/tar.rb +169 -173
- data/lib/simp/rake/build/unpack.rb +105 -107
- data/lib/simp/rake/build/upload.rb +93 -102
- data/lib/simp/rake/fixtures.rb +69 -66
- data/lib/simp/rake/helpers/rpm_spec.rb +10 -7
- data/lib/simp/rake/helpers/version.rb +3 -1
- data/lib/simp/rake/helpers.rb +12 -10
- data/lib/simp/rake/pkg.rb +417 -440
- data/lib/simp/rake/pupmod/helpers.rb +100 -87
- data/lib/simp/rake/pupmod/module_build.rb +39 -0
- data/lib/simp/rake/rubygem.rb +57 -56
- data/lib/simp/rake.rb +34 -29
- data/lib/simp/relchecks.rb +52 -43
- data/lib/simp/rpm.rb +123 -127
- data/lib/simp/rpm_signer.rb +57 -55
- data/lib/simp/yum.rb +54 -53
- data/spec/acceptance/nodesets/{default_ruby3_1.yml → almalinux10.yml} +4 -4
- data/spec/acceptance/nodesets/{default.yml → almalinux8.yml} +2 -2
- data/spec/acceptance/nodesets/almalinux9.yml +25 -0
- data/spec/acceptance/suites/default/00_pkg_rpm_custom_scriptlets_spec.rb +23 -28
- data/spec/acceptance/suites/default/10_pkg_rpm_spec.rb +54 -56
- data/spec/acceptance/suites/default/30_pkg_misc_spec.rb +17 -19
- data/spec/acceptance/suites/default/50_local_gpg_signing_key_spec.rb +5 -5
- data/spec/acceptance/suites/default/55_build_pkg_signing_spec.rb +109 -101
- data/spec/acceptance/suites/default/files/testpackage/spec/classes/init_spec.rb +1 -0
- data/spec/acceptance/suites/default/files/testpackage/spec/files/mock_something.rb +3 -1
- data/spec/acceptance/suites/default/files/testpackage/utils/convert_v1_to_v2.rb +2 -0
- data/spec/acceptance/suites/default/support/build_project_helpers.rb +20 -17
- data/spec/acceptance/suites/default/support/build_user_helpers.rb +4 -2
- data/spec/acceptance/suites/default/support/pkg_rpm_helpers.rb +30 -31
- data/spec/acceptance/support/simp_rake_helpers.rb +3 -1
- data/spec/lib/simp/command_utils_spec.rb +13 -10
- data/spec/lib/simp/componentinfo_changelog_regex_spec.rb +33 -33
- data/spec/lib/simp/componentinfo_spec.rb +99 -86
- data/spec/lib/simp/packer/iso_vars_json_spec.rb +16 -14
- data/spec/lib/simp/rake/build/helpers_spec.rb +7 -7
- data/spec/lib/simp/rake/build/rpmdeps_spec.rb +48 -46
- data/spec/lib/simp/rake/helpers_spec.rb +6 -5
- data/spec/lib/simp/rake/pkg_spec.rb +7 -5
- data/spec/lib/simp/rake/pupmod/fixtures/othermod/spec/classes/init_spec.rb +3 -1
- data/spec/lib/simp/rake/pupmod/fixtures/othermod/spec/spec_helper.rb +2 -0
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/class_spec.rb +6 -5
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/classes/init_spec.rb +51 -33
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/spec_helper.rb +15 -16
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/spec_helper_acceptance.rb +9 -9
- data/spec/lib/simp/rake/pupmod/helpers_spec.rb +20 -19
- data/spec/lib/simp/rake/pupmod/module_build_spec.rb +87 -0
- data/spec/lib/simp/rake_spec.rb +7 -6
- data/spec/lib/simp/relchecks_check_rpm_changelog_spec.rb +26 -31
- data/spec/lib/simp/relchecks_compare_latest_tag_spec.rb +32 -26
- data/spec/lib/simp/relchecks_create_tag_changelog_spec.rb +27 -19
- data/spec/lib/simp/rpm_signer_spec.rb +45 -39
- data/spec/lib/simp/rpm_spec.rb +190 -194
- data/spec/spec_helper.rb +4 -2
- data/spec/spec_helper_acceptance.rb +3 -5
- metadata +37 -72
- data/bin/simp_rake_helpers +0 -3
- data/lib/simp/ci/gitlab.rb +0 -226
- data/lib/simp/rake/ci.rb +0 -31
- data/spec/lib/simp/ci/files/global_nodesets_only/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/global_nodesets_only/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/nodesets/centos.yml +0 -41
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature-1/feature-1_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/feature_2_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/nodesets/default.yml +0 -35
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/nodesets/oel.yml +0 -35
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature-1/feature-1_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/feature_2_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/nodesets/default.yml +0 -35
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/nodesets/oel.yml +0 -35
- data/spec/lib/simp/ci/files/no_acceptance_tests/spec/spec_helper.rb +0 -0
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/nodesets/centos.yml +0 -41
- data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/nodesets/centos.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/gitlab_spec.rb +0 -245
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
class SIMPRpmDepException < StandardError; end
|
|
2
4
|
class SIMPRpmDepVersionException < StandardError; end
|
|
3
5
|
|
|
4
6
|
module Simp; end
|
|
5
7
|
module Simp::Rake; end
|
|
6
8
|
module Simp::Rake::Build; end
|
|
7
|
-
module Simp::Rake::Build::RpmDeps
|
|
8
9
|
|
|
10
|
+
module Simp::Rake::Build::RpmDeps
|
|
9
11
|
# returns array of RPM spec file 'Requires' lines derived
|
|
10
12
|
# from a 'metadata.json' dependency version specification.
|
|
11
13
|
#
|
|
@@ -16,27 +18,25 @@ module Simp::Rake::Build::RpmDeps
|
|
|
16
18
|
# string cannot be parsed
|
|
17
19
|
def self.get_version_requires(pkg, dep_version)
|
|
18
20
|
return ["Requires: #{pkg}"] if dep_version.nil?
|
|
19
|
-
return ["Requires: #{pkg} = #{
|
|
21
|
+
return ["Requires: #{pkg} = #{::Regexp.last_match(1)}"] if dep_version =~ %r{^\s*(\d+\.\d+\.\d+)\s*$}
|
|
20
22
|
|
|
21
23
|
requires = []
|
|
22
24
|
|
|
23
25
|
if dep_version.include?('x')
|
|
24
26
|
dep_parts = dep_version.split('.')
|
|
25
27
|
|
|
26
|
-
if dep_parts.count == 3
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
dep_version = if dep_parts.count == 3
|
|
29
|
+
">= #{dep_parts[0]}.#{dep_parts[1]}.0 < #{dep_parts[0].to_i + 1}.0.0"
|
|
30
|
+
else
|
|
31
|
+
">= #{dep_parts[0]}.0.0 < #{dep_parts[0].to_i + 1}.0.0"
|
|
32
|
+
end
|
|
31
33
|
end
|
|
32
34
|
|
|
33
35
|
# metadata.json is a LOT more forgiving than the RPM spec file
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
raise SIMPRpmDepVersionException.new
|
|
39
|
-
end
|
|
36
|
+
raise SIMPRpmDepVersionException unless dep_version =~ %r{^\s*(?:(?:([<>]=?)\s*(\d+\.\d+\.\d+))\s*(?:(<)\s*(\d+\.\d+\.\d+))?)\s*$}
|
|
37
|
+
|
|
38
|
+
requires << "Requires: #{pkg} #{::Regexp.last_match(1)} #{::Regexp.last_match(2)}"
|
|
39
|
+
requires << "Requires: #{pkg} #{::Regexp.last_match(3)} #{::Regexp.last_match(4)}" if ::Regexp.last_match(3)
|
|
40
40
|
|
|
41
41
|
requires
|
|
42
42
|
end
|
|
@@ -59,15 +59,15 @@ module Simp::Rake::Build::RpmDeps
|
|
|
59
59
|
# We don't want to add this if we're building an older
|
|
60
60
|
# version or the RPM will be malformed
|
|
61
61
|
main_version, release = version.split('-')
|
|
62
|
-
release
|
|
62
|
+
release ||= '0'
|
|
63
63
|
|
|
64
64
|
if Gem::Version.new(module_version) > Gem::Version.new(main_version)
|
|
65
65
|
rpm_metadata_content << "Obsoletes: #{pkg} < #{main_version}-#{release}.obsolete"
|
|
66
66
|
rpm_metadata_content << "Provides: #{pkg} = #{main_version}-#{release}.obsolete"
|
|
67
67
|
else
|
|
68
|
-
puts "Ignoring 'obsoletes' for #{pkg}: module version"
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
puts "Ignoring 'obsoletes' for #{pkg}: module version " \
|
|
69
|
+
"#{module_version} from metadata.json is not > " \
|
|
70
|
+
"obsolete version #{version}"
|
|
71
71
|
end
|
|
72
72
|
end
|
|
73
73
|
rpm_metadata_content
|
|
@@ -105,7 +105,7 @@ module Simp::Rake::Build::RpmDeps
|
|
|
105
105
|
# +module_metadata+:: Hash containing the contents of the
|
|
106
106
|
# module's 'metadata.json' file
|
|
107
107
|
# +ignores+:: Array of package names to ignore during processing
|
|
108
|
-
def self.generate_custom_rpm_requires(requires_list, module_metadata, ignores=[])
|
|
108
|
+
def self.generate_custom_rpm_requires(requires_list, module_metadata, ignores = [])
|
|
109
109
|
rpm_metadata_content = []
|
|
110
110
|
|
|
111
111
|
requires_list.each do |pkg_to_modify|
|
|
@@ -117,7 +117,7 @@ module Simp::Rake::Build::RpmDeps
|
|
|
117
117
|
|
|
118
118
|
next if ignores.include?(pkg)
|
|
119
119
|
|
|
120
|
-
rpm_version_chars = ['<','>','=']
|
|
120
|
+
rpm_version_chars = ['<', '>', '=']
|
|
121
121
|
|
|
122
122
|
if min_version && rpm_version_chars.none? { |x| min_version.include?(x) }
|
|
123
123
|
min_version = ">= #{min_version}"
|
|
@@ -126,25 +126,25 @@ module Simp::Rake::Build::RpmDeps
|
|
|
126
126
|
max_version = "< #{max_version}"
|
|
127
127
|
end
|
|
128
128
|
|
|
129
|
-
pkg_parts = pkg.split(%r
|
|
129
|
+
pkg_parts = pkg.split(%r{-|/})[-2..]
|
|
130
130
|
|
|
131
131
|
# Need to cover all base cases
|
|
132
132
|
short_names = [pkg_parts.join('/'), pkg_parts.join('-')]
|
|
133
133
|
|
|
134
|
-
dep_info = module_metadata['dependencies'].select
|
|
134
|
+
dep_info = module_metadata['dependencies'].select do |dep|
|
|
135
135
|
short_names.include?(dep['name'])
|
|
136
|
-
|
|
136
|
+
end
|
|
137
137
|
|
|
138
138
|
if dep_info.empty? && module_metadata['simp'] &&
|
|
139
|
-
|
|
140
|
-
dep_info = module_metadata['simp']['optional_dependencies'].select
|
|
139
|
+
module_metadata['simp']['optional_dependencies']
|
|
140
|
+
dep_info = module_metadata['simp']['optional_dependencies'].select do |dep|
|
|
141
141
|
short_names.include?(dep['name'])
|
|
142
|
-
|
|
142
|
+
end
|
|
143
143
|
end
|
|
144
144
|
|
|
145
145
|
if dep_info.empty?
|
|
146
146
|
err_msg = "Could not find '#{short_names.first}' dependency"
|
|
147
|
-
raise SIMPRpmDepException
|
|
147
|
+
raise SIMPRpmDepException, err_msg
|
|
148
148
|
else
|
|
149
149
|
dep_version = dep_info.first['version_requirement']
|
|
150
150
|
end
|
|
@@ -157,9 +157,9 @@ module Simp::Rake::Build::RpmDeps
|
|
|
157
157
|
begin
|
|
158
158
|
rpm_metadata_content << get_version_requires(pkg, dep_version)
|
|
159
159
|
rescue SIMPRpmDepVersionException
|
|
160
|
-
err_msg = "Unable to parse '#{short_names.first}' dependency"
|
|
161
|
-
|
|
162
|
-
raise SIMPRpmDepException
|
|
160
|
+
err_msg = "Unable to parse '#{short_names.first}' dependency " \
|
|
161
|
+
"version '#{dep_version}'"
|
|
162
|
+
raise SIMPRpmDepException, err_msg
|
|
163
163
|
end
|
|
164
164
|
end
|
|
165
165
|
end
|
|
@@ -178,7 +178,7 @@ module Simp::Rake::Build::RpmDeps
|
|
|
178
178
|
# [ 'package1' => { :min => '1.0.0' },
|
|
179
179
|
# 'package2' => { :min => '3.1-1', :max => '4.0' } ]
|
|
180
180
|
# +ignores+:: Array of package names to ignore during processing
|
|
181
|
-
def self.generate_external_rpm_requires(ext_deps_list, ignores=[])
|
|
181
|
+
def self.generate_external_rpm_requires(ext_deps_list, ignores = [])
|
|
182
182
|
requires = []
|
|
183
183
|
|
|
184
184
|
ext_deps_list.each do |pkg_name, options|
|
|
@@ -205,7 +205,7 @@ module Simp::Rake::Build::RpmDeps
|
|
|
205
205
|
# +module_metadata+:: Hash containing the contents of the
|
|
206
206
|
# module's 'metadata.json' file
|
|
207
207
|
# +ignores+:: Array of package names to ignore during processing
|
|
208
|
-
def self.generate_module_rpm_requires(module_metadata, ignores=[])
|
|
208
|
+
def self.generate_module_rpm_requires(module_metadata, ignores = [])
|
|
209
209
|
rpm_metadata_content = []
|
|
210
210
|
|
|
211
211
|
deps = []
|
|
@@ -214,14 +214,14 @@ module Simp::Rake::Build::RpmDeps
|
|
|
214
214
|
end
|
|
215
215
|
|
|
216
216
|
if module_metadata['simp'] &&
|
|
217
|
-
|
|
217
|
+
module_metadata['simp']['optional_dependencies']
|
|
218
218
|
|
|
219
219
|
deps += module_metadata['simp']['optional_dependencies']
|
|
220
220
|
end
|
|
221
221
|
|
|
222
|
-
deps.
|
|
222
|
+
deps.sort_by! { |a| a['name'] }
|
|
223
223
|
deps.each do |dep|
|
|
224
|
-
pkg = "pupmod-#{dep['name'].
|
|
224
|
+
pkg = "pupmod-#{dep['name'].tr('/', '-')}"
|
|
225
225
|
|
|
226
226
|
next if ignores.include?(pkg)
|
|
227
227
|
|
|
@@ -230,9 +230,9 @@ module Simp::Rake::Build::RpmDeps
|
|
|
230
230
|
begin
|
|
231
231
|
rpm_metadata_content << get_version_requires(pkg, dep_version)
|
|
232
232
|
rescue SIMPRpmDepVersionException
|
|
233
|
-
err_msg = "Unable to parse '#{dep['name']}' dependency"
|
|
234
|
-
|
|
235
|
-
raise SIMPRpmDepException
|
|
233
|
+
err_msg = "Unable to parse '#{dep['name']}' dependency " \
|
|
234
|
+
"version '#{dep_version}'"
|
|
235
|
+
raise SIMPRpmDepException, err_msg
|
|
236
236
|
end
|
|
237
237
|
end
|
|
238
238
|
|
|
@@ -248,7 +248,7 @@ module Simp::Rake::Build::RpmDeps
|
|
|
248
248
|
|
|
249
249
|
rpm_requires_content = File.read(rpm_requires_file).lines.map(&:strip) - ['']
|
|
250
250
|
|
|
251
|
-
|
|
251
|
+
(new_requires.flatten - rpm_requires_content).empty?
|
|
252
252
|
end
|
|
253
253
|
|
|
254
254
|
# Generate 'build/rpm_metadata/requires' file containing
|
|
@@ -287,38 +287,38 @@ module Simp::Rake::Build::RpmDeps
|
|
|
287
287
|
|
|
288
288
|
ignores = module_rpm_meta ? Array(module_rpm_meta[:ignores]) : []
|
|
289
289
|
|
|
290
|
-
if module_rpm_meta
|
|
290
|
+
if module_rpm_meta && module_rpm_meta[:obsoletes]
|
|
291
291
|
rpm_metadata_content = generate_custom_rpm_obsoletes(
|
|
292
292
|
module_rpm_meta[:obsoletes],
|
|
293
|
-
module_metadata
|
|
294
|
-
)
|
|
295
|
-
end
|
|
296
|
-
|
|
297
|
-
if module_rpm_meta and module_rpm_meta[:requires]
|
|
298
|
-
rpm_metadata_content += generate_custom_rpm_requires(
|
|
299
|
-
module_rpm_meta[:requires],
|
|
300
293
|
module_metadata,
|
|
301
|
-
ignores
|
|
302
294
|
)
|
|
303
|
-
else
|
|
304
|
-
rpm_metadata_content += generate_module_rpm_requires(module_metadata, ignores)
|
|
305
295
|
end
|
|
306
296
|
|
|
307
|
-
if module_rpm_meta
|
|
297
|
+
rpm_metadata_content += if module_rpm_meta && module_rpm_meta[:requires]
|
|
298
|
+
generate_custom_rpm_requires(
|
|
299
|
+
module_rpm_meta[:requires],
|
|
300
|
+
module_metadata,
|
|
301
|
+
ignores,
|
|
302
|
+
)
|
|
303
|
+
else
|
|
304
|
+
generate_module_rpm_requires(module_metadata, ignores)
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
if module_rpm_meta && module_rpm_meta[:external_dependencies]
|
|
308
308
|
rpm_metadata_content += generate_external_rpm_requires(
|
|
309
309
|
module_rpm_meta[:external_dependencies],
|
|
310
|
-
ignores
|
|
310
|
+
ignores,
|
|
311
311
|
)
|
|
312
312
|
end
|
|
313
313
|
|
|
314
314
|
rpm_metadata_file = File.join(dir, 'build', 'rpm_metadata', 'requires')
|
|
315
315
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
316
|
+
return if rpm_requires_up_to_date?(rpm_metadata_content, rpm_metadata_file)
|
|
317
|
+
|
|
318
|
+
FileUtils.mkdir_p(File.dirname(rpm_metadata_file))
|
|
319
|
+
File.open(rpm_metadata_file, 'w') do |fh|
|
|
320
|
+
fh.puts(rpm_metadata_content.flatten.join("\n"))
|
|
321
|
+
fh.flush
|
|
322
322
|
end
|
|
323
323
|
end
|
|
324
324
|
|
|
@@ -330,12 +330,12 @@ module Simp::Rake::Build::RpmDeps
|
|
|
330
330
|
return false unless File.exist?(rpm_release_file)
|
|
331
331
|
|
|
332
332
|
# remove comments like "# release set by simp-core dependencies.yaml"
|
|
333
|
-
release_file_content = File.readlines(rpm_release_file).
|
|
333
|
+
release_file_content = File.readlines(rpm_release_file).grep_v(%r{^ *#}).join("\n").strip
|
|
334
334
|
|
|
335
335
|
# sanitize numerics, etc.
|
|
336
|
-
new_release_content =
|
|
336
|
+
new_release_content = new_release_info.to_s.strip
|
|
337
337
|
|
|
338
|
-
|
|
338
|
+
release_file_content == new_release_content
|
|
339
339
|
end
|
|
340
340
|
|
|
341
341
|
# Generate 'build/rpm_metadata/release' file containing release qualifier
|
|
@@ -345,17 +345,17 @@ module Simp::Rake::Build::RpmDeps
|
|
|
345
345
|
# +module_rpm_meta+:: module entry from the top-level
|
|
346
346
|
# 'dependencies.yaml' file or nil, if no entry exists
|
|
347
347
|
def self.generate_rpm_release_file(dir, module_rpm_meta)
|
|
348
|
-
|
|
348
|
+
return unless module_rpm_meta && module_rpm_meta[:release]
|
|
349
349
|
|
|
350
350
|
rpm_release_file = File.join(dir, 'build', 'rpm_metadata', 'release')
|
|
351
351
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
352
|
+
return if release_file_up_to_date?(module_rpm_meta[:release], rpm_release_file)
|
|
353
|
+
|
|
354
|
+
FileUtils.mkdir_p(File.dirname(rpm_release_file))
|
|
355
|
+
File.open(rpm_release_file, 'w') do |fh|
|
|
356
|
+
fh.puts('# release set by simp-core dependencies.yaml')
|
|
357
|
+
fh.puts(module_rpm_meta[:release])
|
|
358
|
+
fh.flush
|
|
359
359
|
end
|
|
360
360
|
end
|
|
361
361
|
|
|
@@ -379,13 +379,13 @@ module Simp::Rake::Build::RpmDeps
|
|
|
379
379
|
|
|
380
380
|
metadata_json_file = File.join(dir, 'metadata.json')
|
|
381
381
|
module_metadata = JSON.parse(File.read(metadata_json_file))
|
|
382
|
-
module_name = module_metadata['name'].split(%r
|
|
382
|
+
module_name = module_metadata['name'].split(%r{-|/}).last
|
|
383
383
|
module_rpm_meta = rpm_metadata[module_name]
|
|
384
384
|
|
|
385
385
|
begin
|
|
386
386
|
generate_rpm_requires_file(dir, module_metadata, module_rpm_meta)
|
|
387
387
|
rescue SIMPRpmDepException => e
|
|
388
|
-
|
|
388
|
+
raise "#{e.message} in #{metadata_json_file}"
|
|
389
389
|
end
|
|
390
390
|
|
|
391
391
|
generate_rpm_release_file(dir, module_rpm_meta)
|
data/lib/simp/rake/build/spec.rb
CHANGED
|
@@ -1,63 +1,61 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'simp/rake/build/constants'
|
|
2
4
|
|
|
3
5
|
module Simp; end
|
|
4
6
|
module Simp::Rake; end
|
|
5
|
-
module Simp::Rake::Build
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
class Simp::Rake::Build::Spec < Rake::TaskLib
|
|
9
|
+
include Simp::Rake::Build::Constants
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
def initialize(base_dir)
|
|
12
|
+
init_member_vars(base_dir)
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
define_tasks
|
|
15
|
+
end
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
end
|
|
17
|
+
def define_tasks
|
|
18
|
+
namespace :spec do
|
|
19
|
+
task :prep do
|
|
20
|
+
if $simp6
|
|
21
|
+
@build_dir = $simp6_build_dir || @distro_build_dir
|
|
22
22
|
end
|
|
23
|
+
end
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
puts $1.chomp
|
|
44
|
-
next
|
|
45
|
-
end
|
|
25
|
+
# desc "Bump spec files. Bump all spec files' release numbers up by one.
|
|
26
|
+
# * :list - Flag to just print the current version numbers."
|
|
27
|
+
task :bump, [:list] => [:prep] do |_t, args|
|
|
28
|
+
(
|
|
29
|
+
Dir.glob("#{@spec_dir}/*.spec") +
|
|
30
|
+
Dir.glob("#{@src_dir}/puppet/modules/*/pkg/pupmod-*.spec")
|
|
31
|
+
).each do |spec|
|
|
32
|
+
if args.list
|
|
33
|
+
File.open(spec).each do |line|
|
|
34
|
+
case line
|
|
35
|
+
when %r{Name:\s*(.*)}
|
|
36
|
+
print "#{::Regexp.last_match(1).chomp} -> "
|
|
37
|
+
next
|
|
38
|
+
when %r{Version:\s*(.*)}
|
|
39
|
+
print "#{::Regexp.last_match(1).chomp}-"
|
|
40
|
+
next
|
|
41
|
+
when %r{Release:\s*(.*)}
|
|
42
|
+
puts ::Regexp.last_match(1).chomp
|
|
43
|
+
next
|
|
46
44
|
end
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
end
|
|
46
|
+
else
|
|
47
|
+
tmpfile = File.open("#{@spec_dir}/~#{File.basename(spec)}", 'w+')
|
|
48
|
+
File.open(spec).each do |line|
|
|
49
|
+
if line.include?('Release:')
|
|
50
|
+
tmpfile.puts "Release: #{line.split(%r{\s})[1].to_i + 1}"
|
|
51
|
+
else
|
|
52
|
+
tmpfile.puts line.chomp
|
|
55
53
|
end
|
|
56
|
-
tmpfile.close
|
|
57
|
-
mv(tmpfile.path,spec)
|
|
58
54
|
end
|
|
55
|
+
tmpfile.close
|
|
56
|
+
mv(tmpfile.path, spec)
|
|
59
57
|
end
|
|
60
|
-
end
|
|
58
|
+
end
|
|
61
59
|
end
|
|
62
60
|
end
|
|
63
61
|
end
|