simp-rake-helpers 5.5.0 → 5.5.2

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 (32) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +22 -1
  4. data/lib/simp/rake/build/constants.rb +6 -0
  5. data/lib/simp/rake/build/iso.rb +5 -0
  6. data/lib/simp/rake/helpers/version.rb +1 -1
  7. data/lib/simp/rake/pkg.rb +26 -3
  8. data/lib/simp/relchecks.rb +39 -0
  9. data/lib/simp/rpm.rb +38 -14
  10. data/spec/acceptance/10_pkg_rpm_spec.rb +1 -1
  11. data/spec/acceptance/30_pkg_misc_spec.rb +71 -0
  12. data/spec/acceptance/files/asset/Rakefile +3 -0
  13. data/spec/acceptance/files/asset/build/asset.spec +35 -0
  14. data/spec/acceptance/files/asset_with_misordered_entries/Rakefile +3 -0
  15. data/spec/acceptance/files/asset_with_misordered_entries/build/asset_with_misordered_entries.spec +37 -0
  16. data/spec/acceptance/files/module/CHANGELOG +5 -0
  17. data/spec/acceptance/files/module/Rakefile +3 -0
  18. data/spec/acceptance/files/module/metadata.json +44 -0
  19. data/spec/acceptance/files/module_with_misordered_entries/CHANGELOG +8 -0
  20. data/spec/acceptance/files/module_with_misordered_entries/Rakefile +3 -0
  21. data/spec/acceptance/files/module_with_misordered_entries/metadata.json +44 -0
  22. data/spec/acceptance/nodesets/default.yml +6 -16
  23. data/spec/lib/simp/files/relchecks_check_rpm_changelog_spec/asset/build/asset.spec +35 -0
  24. data/spec/lib/simp/files/relchecks_check_rpm_changelog_spec/asset_with_misordered_entries/build/asset_with_misordered_entries.spec +37 -0
  25. data/spec/lib/simp/files/relchecks_check_rpm_changelog_spec/module/CHANGELOG +5 -0
  26. data/spec/lib/simp/files/relchecks_check_rpm_changelog_spec/module/metadata.json +44 -0
  27. data/spec/lib/simp/files/relchecks_check_rpm_changelog_spec/module_with_misordered_entries/CHANGELOG +8 -0
  28. data/spec/lib/simp/files/relchecks_check_rpm_changelog_spec/module_with_misordered_entries/metadata.json +44 -0
  29. data/spec/lib/simp/relchecks_check_rpm_changelog_spec.rb +49 -0
  30. data/spec/lib/simp/rpm_spec.rb +41 -0
  31. metadata +23 -7
  32. data/Guardfile +0 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 834fc98fb63f04a0f5e9bb98c275ffd42738123c
4
- data.tar.gz: c0d3fc5372f4e3c99893e33d3e345886d41c069c
2
+ SHA256:
3
+ metadata.gz: 55923c19133642bbedd90f75926344b61c8ca0fc72d12a83d5a3f265a027f0dc
4
+ data.tar.gz: 595956bbaa3b3b3af35f3bfdbd4ec9acfdf6dc858d15057eb1f3fd0491f1c060
5
5
  SHA512:
6
- metadata.gz: efee59c86535eaa39046ea0c06133a57e8b4a1bf4a3f4419983741a516493aaf17f590764630b44c3d2bbaeb0a0f0d6d55d4b758595e341a616b9d39f75f61b0
7
- data.tar.gz: 3f70e19f9587f9aa5124255f3bb9305d976c107879a0f348c8cb44aff119504e98d010c7755d0a046e4156777a05956100505cfc12bb9321dfc65cb51cae6b22
6
+ metadata.gz: 8959c27f5a86af2921336dfa3e55bc0872473c1edf6b1fd10eaa55e2881c7d56d11830b0c9bc8392ace4c3666364199d533725aac2ed540eabf269a061be03f4
7
+ data.tar.gz: 44084a5f896837b8f591311da3ac744e9913844d60c0dfaa2a8b39195efb2aed5a91902de78962311d08b1408659e369e8385245f2e36aa61219aa5fcc8b0a6a
data/.travis.yml CHANGED
@@ -31,7 +31,7 @@ jobs:
31
31
  services:
32
32
  - docker
33
33
  script:
34
- - bundle exec rake acceptance
34
+ - travis_wait 30 unbuffer bundle exec rake acceptance
35
35
 
36
36
  - stage: deploy
37
37
  rvm: 2.1.9
data/CHANGELOG.md CHANGED
@@ -1,10 +1,31 @@
1
+ ### 5.5.2 / 2018-08-21
2
+ * Add additional UEFI support options to the ISO build based on user feedback.
3
+ All of our testing could use the ISO on different UEFI systems successfully
4
+ but apparently there can be vendor differences and this solves at least one
5
+ of them.
6
+
7
+ ### 5.5.1 / 2018-07-09
8
+ * It is possible to build RPMs for other OSes again (broken since 5.0.0)
9
+ * Fix regression that broke env var `SIMP_BUILD_distro`
10
+ * Add env var `SIMP_RPM_dist` to `SIMP::RPM` to target a specific `dist` while
11
+ building RPMs from spec files.
12
+ * During a `rake build:auto`, the information from env var `SIMP_BUILD_distro`
13
+ is used to set `SIMP_RPM_dist`
14
+ * Remove the dependency pin attempt on fog-openstack since this is handled by
15
+ the simp-beaker-helpers dependency
16
+ * Update pkg:create_tag_change to verify all CHANGELOG entries for a component
17
+ are in reverse chronological order, not just the entries for the latest
18
+ version.
19
+ * Add pkg:check_rpm_changelog task to verify the 'rpm' command can parse a
20
+ component's changelog.
21
+
1
22
  ### 5.5.0 / 2018-06-22
2
23
  * Pin fog-openstack to 0.1.25 if Ruby is prior to 2.2.0 due to a deprecation
3
24
  * Fix regression that broke env var `SIMP_BUILD_distro`
4
25
  * Add support for setting SIMP_RSPEC_PUPPETFILE and/or SIMP_RSPEC_MODULEPATH to
5
26
  create a custom fixtures.yml based on a Puppetfile, the modules in a
6
27
  directory, or the combination of both.
7
-
28
+
8
29
  ### 5.4.3 / 2018-03-29
9
30
  * Fix RPM release processing when generating 'Obsoletes' metadata
10
31
 
@@ -19,6 +19,12 @@ module Simp::Rake::Build::Constants
19
19
  @build_version = version || Facter.fact('operatingsystemmajrelease').value
20
20
  @build_arch = arch || Facter.fact('architecture').value
21
21
 
22
+ # Working around the SIMP::RPM.system_dist workaround
23
+ if ENV['SIMP_RPM_dist'].nil? && @build_distro =~ /CentOS|RedHat/i
24
+ @build_rpm_dist = ".el#{@build_version}"
25
+ ENV['SIMP_RPM_dist'] = @build_rpm_dist
26
+ end
27
+
22
28
  @run_dir = Dir.pwd
23
29
  @base_dir = base_dir
24
30
  @build_dir = File.join(@base_dir, 'build')
@@ -307,6 +307,11 @@ module Simp::Rake::Build
307
307
  '-boot-load-size 4',
308
308
  '-boot-info-table',
309
309
  '-no-emul-boot',
310
+ '-eltorito-alt-boot',
311
+ '-e images/efiboot.img',
312
+ # This is apparently needed twice to get the lines above it to
313
+ # take. Not sure why.
314
+ '-no-emul-boot',
310
315
  '-m TRANS.TBL',
311
316
  '-x ./lost+found',
312
317
  "-o #{@simp_output_iso}",
@@ -2,5 +2,5 @@ module Simp; end
2
2
  module Simp::Rake; end
3
3
 
4
4
  class Simp::Rake::Helpers
5
- VERSION = '5.5.0'
5
+ VERSION = '5.5.2'
6
6
  end
data/lib/simp/rake/pkg.rb CHANGED
@@ -107,6 +107,7 @@ module Simp::Rake
107
107
  define_clobber
108
108
  define_pkg_tar
109
109
  define_pkg_rpm
110
+ define_pkg_check_rpm_changelog
110
111
  define_pkg_check_version
111
112
  define_pkg_compare_latest_tag
112
113
  define_pkg_create_tag_changelog
@@ -415,6 +416,28 @@ module Simp::Rake
415
416
  end
416
417
  end
417
418
 
419
+ def define_pkg_check_rpm_changelog
420
+ # :pkg:check_rpm_changelog
421
+ # -----------------------------
422
+ namespace :pkg do
423
+ desc <<-EOM
424
+ Check the #{@pkg_name} RPM changelog using the 'rpm' command.
425
+
426
+ This task will fail if 'rpm' detects any changelog problems,
427
+ such as changelog entries not being in reverse chronological
428
+ order.
429
+ EOM
430
+ task :check_rpm_changelog, [:verbose] do |t,args|
431
+ if args[:verbose].to_s == 'true'
432
+ verbose = true
433
+ else
434
+ verbose = false
435
+ end
436
+ Simp::RelChecks::check_rpm_changelog(@base_dir, @spec_file, verbose)
437
+ end
438
+ end
439
+ end
440
+
418
441
  def define_pkg_check_version
419
442
  namespace :pkg do
420
443
  # :pkg:check_version
@@ -581,13 +604,13 @@ module Simp::Rake
581
604
  the release in a changelog entry for the version.
582
605
  - Any changelog entry below the first entry has a version
583
606
  greater than that of the first entry.
584
- - The changelog entries for the latest version are out of
585
- date order.
607
+ - The changelog entries for all versions are out of date
608
+ order.
586
609
  - The weekday for a changelog entry for the latest version
587
610
  does not match the date specified.
588
611
 
589
612
  EOM
590
- task :create_tag_changelog, [:verbose] do |t,args|
613
+ task :create_tag_changelog, [:verbose] => [:check_rpm_changelog] do |t,args|
591
614
  if args[:verbose].to_s == 'true'
592
615
  verbose = true
593
616
  else
@@ -1,11 +1,50 @@
1
1
  require 'date'
2
2
  require 'simp/componentinfo'
3
+ require 'tmpdir'
3
4
 
4
5
  module Simp; end
5
6
 
6
7
  # Class that provide release-related checks
7
8
  class Simp::RelChecks
8
9
 
10
+ # Check a component's RPM changelog using the 'rpm' command.
11
+ #
12
+ # This task will fail if 'rpm' detects any changelog problems,
13
+ # such as changelog entries not being in reverse chronological
14
+ # order.
15
+ #
16
+ # +component_dir+:: The root directory of the component project.
17
+ # +spec_file+:: The RPM specfile for the component.
18
+ # +verbose+:: Set to 'true' if you want to see details about the
19
+ # RPM command executed.
20
+ def self.check_rpm_changelog(component_dir, spec_file, verbose = false)
21
+ rpm_opts = [
22
+ # for modules, '_sourcedir' tells the RPM LUA code the location
23
+ # of the CHANGELOG and metadata.json files
24
+ %(-D '_sourcedir #{component_dir}'),
25
+ '-q',
26
+ '--changelog',
27
+ "--specfile #{spec_file}"
28
+ ]
29
+ rpm_opts << '-v' if verbose
30
+
31
+ cmd = %(rpm #{rpm_opts.join(' ')} 2>&1)
32
+ puts "==== Simp::RelChecks::check_rpm_changelog: #{cmd}" if verbose
33
+ console = %x(#{cmd})
34
+ result = $?
35
+ if result
36
+ if result.exitstatus != 0
37
+ err_msg = [ "ERROR: Invalid changelog for #{File.basename(component_dir)}:\n" ]
38
+ err_msg << console.split("\n").map { |line| " #{line}" }
39
+ err_msg << "\n"
40
+ fail(err_msg.flatten.join("\n"))
41
+ end
42
+ else
43
+ # Ruby can return nil for spawned shells, sigh
44
+ fail("Unable to determine changelog for #{File.basename(component_dir)}")
45
+ end
46
+ end
47
+
9
48
  # Compares mission-impacting (significant) files with the latest
10
49
  # tag and identifies the relevant files that have changed.
11
50
  #
data/lib/simp/rpm.rb CHANGED
@@ -6,6 +6,9 @@ module Simp
6
6
  #
7
7
  # Simp::RPM also contains class methods that are useful for
8
8
  # processing RPMs in the SIMP build process.
9
+ #
10
+ # @note Set the environment variable `SIMP_RPM_dist` to ensure all
11
+ # packages use a particular dist.
9
12
  class Simp::RPM
10
13
  require 'expect'
11
14
  require 'pty'
@@ -58,7 +61,6 @@ module Simp
58
61
  @info[package_info[:basename]] = package_info
59
62
  end
60
63
 
61
-
62
64
  @packages = @info.keys
63
65
 
64
66
  if @verbose
@@ -68,8 +70,11 @@ module Simp
68
70
  end
69
71
  end
70
72
 
71
- # @returns The RPM '.dist' of the system. 'nil' will be will be returned if
72
- # the dist is not found.
73
+ # @returns The RPM '.dist' of the system. 'nil' will be will be
74
+ # returned if the dist is not found.
75
+ # @note This causes problems for ISO builds that target a particular
76
+ # OS if it doesn't match the host. Set the environment variable
77
+ # `SIMP_RPM_dist` to ensure all packages use a particular dist.
73
78
  def self.system_dist
74
79
  # We can only have one of these
75
80
  unless defined?(@@system_dist)
@@ -82,10 +87,11 @@ module Simp
82
87
  puts " result = '#{dist}'" if @verbose
83
88
 
84
89
  if dist.size > 1
85
- @@system_dist = '.' + dist[1]
90
+ @@system_dist = (dist[1] =~ /^\./) ? dist[1] : ('.' + dist[1])
86
91
  else
87
92
  @@system_dist = nil
88
93
  end
94
+ puts " @@system_dist = #{@@system_dist ||'nil'}" if @verbose
89
95
  end
90
96
 
91
97
  return @@system_dist
@@ -101,11 +107,9 @@ module Simp
101
107
  unless defined?(@@macros_updated)
102
108
 
103
109
  # Workaround for CentOS system builds
104
- dist = system_dist
105
- dist_macro = %(%dist #{dist})
106
-
107
- rpmmacros = [dist_macro]
108
-
110
+ dist = ENV['SIMP_RPM_dist'] || system_dist
111
+ dist_macro = %(%dist #{dist})
112
+ rpmmacros = [dist_macro]
109
113
  rpmmacros_file = File.join(ENV['HOME'], '.rpmmacros')
110
114
 
111
115
  if File.exist?(rpmmacros_file)
@@ -344,11 +348,14 @@ module Simp
344
348
  def self.get_info(rpm_source)
345
349
  raise "Error: unable to read '#{rpm_source}'" unless File.readable?(rpm_source)
346
350
 
351
+ if ENV['SIMP_RPM_dist']
352
+ target_dist = (ENV['SIMP_RPM_dist'] =~ /^\./) ? ENV['SIMP_RPM_dist'] : ('.' + ENV['SIMP_RPM_dist'])
353
+ else
354
+ target_dist = system_dist
355
+ end
356
+
347
357
  info_array = []
348
- common_info = {
349
- :has_dist_tag => false,
350
- :dist => system_dist
351
- }
358
+ common_info = {}
352
359
 
353
360
  rpm_version_query = %Q(#{rpm_cmd} -q --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\\n')
354
361
 
@@ -361,12 +368,29 @@ module Simp
361
368
  unless dist_info.empty?
362
369
  common_info[:has_dist_tag] = true
363
370
  common_info[:dist] = '.' + dist_info.first
371
+ else
372
+ common_info[:has_dist_tag] = false
373
+ common_info[:dist] = target_dist
364
374
  end
365
-
366
375
  elsif File.read(rpm_source).include?('%{?dist}')
376
+ common_info[:dist] =target_dist
367
377
  common_info[:has_dist_tag] = true
378
+ else
379
+ common_info[:has_dist_tag] = false
380
+ common_info[:dist] = target_dist
381
+ end
382
+
383
+ unless source_is_rpm
384
+ macros = {
385
+ 'dist' => target_dist
386
+ }
387
+ macros.each do |k,v|
388
+ rpm_version_query += %Q[ -D '#{k} #{v}']
389
+ end
390
+
368
391
  end
369
392
 
393
+
370
394
  if source_is_rpm
371
395
  query_source = "-p #{rpm_source}"
372
396
  version_results = execute("#{rpm_version_query} #{query_source}")
@@ -8,7 +8,7 @@ end
8
8
 
9
9
  shared_examples_for "an RPM generator with edge cases" do
10
10
  it 'should use specified release number for the RPM' do
11
- on host, %(#{run_cmd} "cd #{pkg_root_dir}/testpackage_with_release; rake pkg:rpm")
11
+ on host, %(#{run_cmd} "cd #{pkg_root_dir}/testpackage_with_release; #{rake_cmd} pkg:rpm")
12
12
  release_test_rpm = File.join(pkg_root_dir, 'testpackage_with_release',
13
13
  'dist', 'pupmod-simp-testpackage-0.0.1-42.noarch.rpm')
14
14
  on host, %(test -f #{release_test_rpm})
@@ -0,0 +1,71 @@
1
+ require 'spec_helper_acceptance'
2
+ require_relative 'support/pkg_rpm_helpers'
3
+
4
+ RSpec.configure do |c|
5
+ c.include Simp::BeakerHelpers::SimpRakeHelpers::PkgRpmHelpers
6
+ c.extend Simp::BeakerHelpers::SimpRakeHelpers::PkgRpmHelpers
7
+ end
8
+
9
+
10
+ shared_examples_for 'a valid RPM changelog processor' do |project|
11
+ it 'should validate the RPM changelog' do
12
+ on host, %(#{run_cmd} "cd #{pkg_root_dir}/#{project}; #{rake_cmd} pkg:check_rpm_changelog")
13
+ end
14
+
15
+ it 'should generate the tag changelog' do
16
+ on host, %(#{run_cmd} "cd #{pkg_root_dir}/#{project}; #{rake_cmd} pkg:create_tag_changelog")
17
+ end
18
+ end
19
+
20
+ shared_examples_for 'an invalid RPM changelog processor' do |project|
21
+ it 'should reject the RPM changelog' do
22
+ on host,
23
+ %(#{run_cmd} "cd #{pkg_root_dir}/#{project}; #{rake_cmd} pkg:check_rpm_changelog"),
24
+ :acceptable_exit_codes => [1]
25
+ end
26
+
27
+ it 'should not generate the tag changelog' do
28
+ on host,
29
+ %(#{run_cmd} "cd #{pkg_root_dir}/#{project}; #{rake_cmd} pkg:create_tag_changelog"),
30
+ :acceptable_exit_codes => [1]
31
+ end
32
+ end
33
+
34
+ describe 'rake pkg:check_rpm_changelog' do
35
+ before :all do
36
+ copy_host_files_into_build_user_homedir(hosts)
37
+ end
38
+
39
+
40
+ hosts.each do |_host|
41
+ context "on #{_host}" do
42
+ let!(:host){ _host }
43
+ let(:pkg_root_dir) { '/home/build_user/host_files/spec/acceptance/files' }
44
+
45
+ it 'can prep the package directories' do
46
+ testpackages = [
47
+ 'asset',
48
+ 'asset_with_misordered_entries',
49
+ 'module',
50
+ 'module_with_misordered_entries'
51
+ ]
52
+
53
+ testpackages.each do |package|
54
+ on hosts, %Q(#{run_cmd} "cd #{pkg_root_dir}/#{package}; ) +
55
+ %Q(rvm use default; bundle update --local || bundle update")
56
+ end
57
+ end
58
+
59
+ context 'with no project changelog errors' do
60
+ it_should_behave_like('a valid RPM changelog processor', 'asset')
61
+ it_should_behave_like('a valid RPM changelog processor', 'module')
62
+ end
63
+
64
+
65
+ context 'with project changelog errors' do
66
+ it_should_behave_like('an invalid RPM changelog processor', 'asset_with_misordered_entries')
67
+ it_should_behave_like('an invalid RPM changelog processor', 'module_with_misordered_entries')
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,3 @@
1
+ require 'simp/rake/pkg'
2
+
3
+ Simp::Rake::Pkg.new( File.dirname( __FILE__ ) )
@@ -0,0 +1,35 @@
1
+ Summary: SIMP Utils
2
+ Name: asset
3
+ Version: 1.0.0
4
+ Release: 0
5
+ License: Apache License, Version 2.0
6
+ Group: Applications/System
7
+ Source: %{name}-%{version}-%{release}.tar.gz
8
+ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
9
+ BuildArch: noarch
10
+
11
+ %description
12
+ Asset with single entry
13
+
14
+ %prep
15
+
16
+ %build
17
+
18
+ %install
19
+
20
+ %clean
21
+
22
+ %files
23
+
24
+ %post
25
+
26
+ %postun
27
+
28
+ %changelog
29
+
30
+ * Wed Oct 18 2017 Jane Doe <jane.doe@simp.com> - 1.0.0-0
31
+ - Single package
32
+
33
+ * Wed Nov 04 2009 Maintenance
34
+ 0.1-0
35
+ - Added the man page
@@ -0,0 +1,3 @@
1
+ require 'simp/rake/pkg'
2
+
3
+ Simp::Rake::Pkg.new( File.dirname( __FILE__ ) )
@@ -0,0 +1,37 @@
1
+ Summary: SIMP Utils
2
+ Name: asset_with_misordered_entries
3
+ Version: 1.0.0
4
+ Release: 0
5
+ License: Apache License, Version 2.0
6
+ Group: Applications/System
7
+ Source: %{name}-%{version}-%{release}.tar.gz
8
+ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
9
+ BuildArch: noarch
10
+
11
+ %description
12
+ Asset with single entry
13
+
14
+ %prep
15
+
16
+ %build
17
+
18
+ %install
19
+
20
+ %clean
21
+
22
+ %files
23
+
24
+ %post
25
+
26
+ %postun
27
+
28
+ %changelog
29
+ * Tue Oct 17 2017 Jane Doe <jane.doe@simp.com> - 1.0.0-0
30
+ - Misordered changelog entry
31
+
32
+ * Wed Oct 18 2017 Jane Doe <jane.doe@simp.com> - 1.0.0-0
33
+ - Single package
34
+
35
+ * Wed Nov 04 2009 Maintenance
36
+ 0.1-0
37
+ - Added the man page
@@ -0,0 +1,5 @@
1
+ * Wed Nov 15 2017 Mary Jones <mary.jones@simp.com> - 1.1.0-0
2
+ - Disable deprecation warnings by default
3
+
4
+ * Tue Sep 26 2017 Joe Brown <joe.brown@simp.com> - 1.0.0-0
5
+ - Add Puppet function `mod::assert_metadata_os()`
@@ -0,0 +1,3 @@
1
+ require 'simp/rake/pkg'
2
+
3
+ Simp::Rake::Pkg.new( File.dirname( __FILE__ ) )
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "simp-module",
3
+ "version": "1.1.0",
4
+ "author": "SIMP Team",
5
+ "summary": "A collection of common SIMP functions, facts, and types",
6
+ "license": "Apache-2.0",
7
+ "source": "https://github.com/simp/pupmod-simp-simplib",
8
+ "project_page": "https://github.com/simp/pupmod-simp-simplib",
9
+ "issues_url": "https://simp-project.atlassian.net",
10
+ "tags": [
11
+ "simp",
12
+ "functions",
13
+ "facts",
14
+ "types",
15
+ "alias",
16
+ "library"
17
+ ],
18
+ "dependencies": [
19
+
20
+ ],
21
+ "operatingsystem_support": [
22
+ {
23
+ "operatingsystem": "RedHat",
24
+ "operatingsystemrelease": [
25
+ "6",
26
+ "7"
27
+ ]
28
+ },
29
+ {
30
+ "operatingsystem": "CentOS",
31
+ "operatingsystemrelease": [
32
+ "6",
33
+ "7"
34
+ ]
35
+ }
36
+ ],
37
+ "requirements": [
38
+ {
39
+ "name": "puppet",
40
+ "version_requirement": ">= 4.7.0 < 6.0.0"
41
+ }
42
+ ],
43
+ "package_release_version": "0"
44
+ }
@@ -0,0 +1,8 @@
1
+ * Tue Nov 14 2017 Mary Jones <mary.jones@simp.com> - 1.1.0-0
2
+ - Oops, misordered changelog entry
3
+
4
+ * Wed Nov 15 2017 Mary Jones <mary.jones@simp.com> - 1.1.0-0
5
+ - Disable deprecation warnings by default
6
+
7
+ * Tue Sep 26 2017 Joe Brown <joe.brown@simp.com> - 1.0.0-0
8
+ - Add Puppet function `mod::assert_metadata_os()`
@@ -0,0 +1,3 @@
1
+ require 'simp/rake/pkg'
2
+
3
+ Simp::Rake::Pkg.new( File.dirname( __FILE__ ) )
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "simp-module",
3
+ "version": "1.1.0",
4
+ "author": "SIMP Team",
5
+ "summary": "A collection of common SIMP functions, facts, and types",
6
+ "license": "Apache-2.0",
7
+ "source": "https://github.com/simp/pupmod-simp-simplib",
8
+ "project_page": "https://github.com/simp/pupmod-simp-simplib",
9
+ "issues_url": "https://simp-project.atlassian.net",
10
+ "tags": [
11
+ "simp",
12
+ "functions",
13
+ "facts",
14
+ "types",
15
+ "alias",
16
+ "library"
17
+ ],
18
+ "dependencies": [
19
+
20
+ ],
21
+ "operatingsystem_support": [
22
+ {
23
+ "operatingsystem": "RedHat",
24
+ "operatingsystemrelease": [
25
+ "6",
26
+ "7"
27
+ ]
28
+ },
29
+ {
30
+ "operatingsystem": "CentOS",
31
+ "operatingsystemrelease": [
32
+ "6",
33
+ "7"
34
+ ]
35
+ }
36
+ ],
37
+ "requirements": [
38
+ {
39
+ "name": "puppet",
40
+ "version_requirement": ">= 4.7.0 < 6.0.0"
41
+ }
42
+ ],
43
+ "package_release_version": "0"
44
+ }
@@ -18,19 +18,13 @@ HOSTS:
18
18
  - 'yum install -y rpm-build augeas-devel createrepo genisoimage git gnupg2 libicu-devel libxml2 libxml2-devel libxslt libxslt-devel rpmdevtools which'
19
19
  # rvm build-deps
20
20
  - 'yum install -y libyaml-devel glibc-headers autoconf gcc-c++ glibc-devel readline-devel libffi-devel openssl-devel automake libtool bison sqlite-devel'
21
- - 'runuser build_user -l -c "gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3"'
22
- - 'runuser build_user -l -c "curl -sSL https://get.rvm.io | bash -s stable --ruby=2.1"'
21
+ - 'runuser build_user -l -c "gpg2 --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB || gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB"'
22
+ - 'runuser build_user -l -c "curl -sSL https://get.rvm.io | bash -s stable"'
23
+ - 'runuser build_user -l -c "rvm install 2.1"'
23
24
  - 'runuser build_user -l -c "rvm use --default 2.1"'
24
25
  - 'runuser build_user -l -c "rvm all do gem install bundler"'
25
- - 'runuser build_user -l -c "rvm use default; gem install --no-ri --no-rdoc simp-rake-helpers"'
26
- - 'runuser build_user -l -c "rvm use default; gem install --no-ri --no-rdoc rake"'
27
- - 'runuser build_user -l -c "rvm use default; gem install --no-ri --no-rdoc json"'
28
- - 'runuser build_user -l -c "rvm use default; gem install --no-ri --no-rdoc charlock_holmes"'
29
- - 'runuser build_user -l -c "rvm use default; gem install --no-ri --no-rdoc posix-spawn"'
30
- # NOTE: the './' syntax requires BKR-704
31
26
  mount_folders:
32
27
  folder1:
33
- # must be an absolute path, seemingly
34
28
  host_path: ./
35
29
  container_path: /host_files
36
30
  docker_preserve_image: true
@@ -53,18 +47,14 @@ HOSTS:
53
47
  - 'yum install -y rpm-build augeas-devel createrepo genisoimage git gnupg2 libicu-devel libxml2 libxml2-devel libxslt libxslt-devel rpmdevtools clamav-update which'
54
48
  # rvm build-deps
55
49
  - 'yum install -y libyaml-devel glibc-headers autoconf gcc-c++ glibc-devel readline-devel libffi-devel openssl-devel automake libtool bison sqlite-devel'
50
+ - 'runuser build_user -l -c "gpg2 --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB || gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB"'
56
51
  - 'runuser build_user -l -c "gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3"'
57
- - 'runuser build_user -l -c "curl -sSL https://get.rvm.io | bash -s stable --ruby=2.1"'
52
+ - 'runuser build_user -l -c "curl -sSL https://get.rvm.io | bash -s stable"'
53
+ - 'runuser build_user -l -c "rvm install 2.1"'
58
54
  - 'runuser build_user -l -c "rvm use --default 2.1"'
59
55
  - 'runuser build_user -l -c "rvm all do gem install bundler"'
60
- - 'runuser build_user -l -c "rvm use default; gem install --no-ri --no-rdoc simp-rake-helpers"'
61
- - 'runuser build_user -l -c "rvm use default; gem install --no-ri --no-rdoc json"'
62
- - 'runuser build_user -l -c "rvm use default; gem install --no-ri --no-rdoc charlock_holmes"'
63
- - 'runuser build_user -l -c "rvm use default; gem install --no-ri --no-rdoc posix-spawn"'
64
- # NOTE: the './' syntax requires BKR-704
65
56
  mount_folders:
66
57
  folder1:
67
- # must be an absolute path, seemingly
68
58
  host_path: ./
69
59
  container_path: /host_files
70
60
  docker_preserve_image: true
@@ -0,0 +1,35 @@
1
+ Summary: SIMP Utils
2
+ Name: asset
3
+ Version: 1.0.0
4
+ Release: 0
5
+ License: Apache License, Version 2.0
6
+ Group: Applications/System
7
+ Source: %{name}-%{version}-%{release}.tar.gz
8
+ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
9
+ BuildArch: noarch
10
+
11
+ %description
12
+ Asset with single entry
13
+
14
+ %prep
15
+
16
+ %build
17
+
18
+ %install
19
+
20
+ %clean
21
+
22
+ %files
23
+
24
+ %post
25
+
26
+ %postun
27
+
28
+ %changelog
29
+
30
+ * Wed Oct 18 2017 Jane Doe <jane.doe@simp.com> - 1.0.0-0
31
+ - Single package
32
+
33
+ * Wed Nov 04 2009 Maintenance
34
+ 0.1-0
35
+ - Added the man page
@@ -0,0 +1,37 @@
1
+ Summary: SIMP Utils
2
+ Name: asset_with_misordered_entries
3
+ Version: 1.0.0
4
+ Release: 0
5
+ License: Apache License, Version 2.0
6
+ Group: Applications/System
7
+ Source: %{name}-%{version}-%{release}.tar.gz
8
+ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
9
+ BuildArch: noarch
10
+
11
+ %description
12
+ Asset with single entry
13
+
14
+ %prep
15
+
16
+ %build
17
+
18
+ %install
19
+
20
+ %clean
21
+
22
+ %files
23
+
24
+ %post
25
+
26
+ %postun
27
+
28
+ %changelog
29
+ * Tue Oct 17 2017 Jane Doe <jane.doe@simp.com> - 1.0.0-0
30
+ - Misordered changelog entry
31
+
32
+ * Wed Oct 18 2017 Jane Doe <jane.doe@simp.com> - 1.0.0-0
33
+ - Single package
34
+
35
+ * Wed Nov 04 2009 Maintenance
36
+ 0.1-0
37
+ - Added the man page
@@ -0,0 +1,5 @@
1
+ * Wed Nov 15 2017 Mary Jones <mary.jones@simp.com> - 1.1.0-0
2
+ - Disable deprecation warnings by default
3
+
4
+ * Tue Sep 26 2017 Joe Brown <joe.brown@simp.com> - 1.0.0-0
5
+ - Add Puppet function `mod::assert_metadata_os()`
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "simp-module",
3
+ "version": "1.1.0",
4
+ "author": "SIMP Team",
5
+ "summary": "A collection of common SIMP functions, facts, and types",
6
+ "license": "Apache-2.0",
7
+ "source": "https://github.com/simp/pupmod-simp-simplib",
8
+ "project_page": "https://github.com/simp/pupmod-simp-simplib",
9
+ "issues_url": "https://simp-project.atlassian.net",
10
+ "tags": [
11
+ "simp",
12
+ "functions",
13
+ "facts",
14
+ "types",
15
+ "alias",
16
+ "library"
17
+ ],
18
+ "dependencies": [
19
+
20
+ ],
21
+ "operatingsystem_support": [
22
+ {
23
+ "operatingsystem": "RedHat",
24
+ "operatingsystemrelease": [
25
+ "6",
26
+ "7"
27
+ ]
28
+ },
29
+ {
30
+ "operatingsystem": "CentOS",
31
+ "operatingsystemrelease": [
32
+ "6",
33
+ "7"
34
+ ]
35
+ }
36
+ ],
37
+ "requirements": [
38
+ {
39
+ "name": "puppet",
40
+ "version_requirement": ">= 4.7.0 < 6.0.0"
41
+ }
42
+ ],
43
+ "package_release_version": "0"
44
+ }
@@ -0,0 +1,8 @@
1
+ * Tue Nov 14 2017 Mary Jones <mary.jones@simp.com> - 1.1.0-0
2
+ - Oops, misordered changelog entry
3
+
4
+ * Wed Nov 15 2017 Mary Jones <mary.jones@simp.com> - 1.1.0-0
5
+ - Disable deprecation warnings by default
6
+
7
+ * Tue Sep 26 2017 Joe Brown <joe.brown@simp.com> - 1.0.0-0
8
+ - Add Puppet function `mod::assert_metadata_os()`
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "simp-module",
3
+ "version": "1.1.0",
4
+ "author": "SIMP Team",
5
+ "summary": "A collection of common SIMP functions, facts, and types",
6
+ "license": "Apache-2.0",
7
+ "source": "https://github.com/simp/pupmod-simp-simplib",
8
+ "project_page": "https://github.com/simp/pupmod-simp-simplib",
9
+ "issues_url": "https://simp-project.atlassian.net",
10
+ "tags": [
11
+ "simp",
12
+ "functions",
13
+ "facts",
14
+ "types",
15
+ "alias",
16
+ "library"
17
+ ],
18
+ "dependencies": [
19
+
20
+ ],
21
+ "operatingsystem_support": [
22
+ {
23
+ "operatingsystem": "RedHat",
24
+ "operatingsystemrelease": [
25
+ "6",
26
+ "7"
27
+ ]
28
+ },
29
+ {
30
+ "operatingsystem": "CentOS",
31
+ "operatingsystemrelease": [
32
+ "6",
33
+ "7"
34
+ ]
35
+ }
36
+ ],
37
+ "requirements": [
38
+ {
39
+ "name": "puppet",
40
+ "version_requirement": ">= 4.7.0 < 6.0.0"
41
+ }
42
+ ],
43
+ "package_release_version": "0"
44
+ }
@@ -0,0 +1,49 @@
1
+ require 'simp/relchecks'
2
+ require 'spec_helper'
3
+
4
+ describe 'Simp::RelChecks.check_rpm_changelog' do
5
+ let(:files_dir) {
6
+ File.join( File.dirname(__FILE__), 'files', File.basename(__FILE__, '.rb'))
7
+ }
8
+
9
+ let(:templates_dir) {
10
+ File.join( File.dirname(__FILE__), '..', '..', '..', 'lib', 'simp', 'rake',
11
+ 'helpers', 'assets', 'rpm_spec' )
12
+ }
13
+
14
+ context 'with no project changelog errors' do
15
+ it 'succeeds for a Puppet module' do
16
+ component_dir = File.join(files_dir, 'module')
17
+ component_spec = File.join(templates_dir, 'simpdefault.spec')
18
+
19
+ expect{ Simp::RelChecks.check_rpm_changelog(component_dir, component_spec) }.
20
+ to_not raise_error
21
+ end
22
+
23
+ it 'succeeds for a non-Puppet asset' do
24
+ component_dir = File.join(files_dir, 'asset')
25
+ component_spec = File.join(component_dir, 'build', 'asset.spec')
26
+
27
+ expect{ Simp::RelChecks.check_rpm_changelog(component_dir, component_spec) }.
28
+ to_not raise_error
29
+ end
30
+ end
31
+
32
+ context 'with changelog errors' do
33
+ it 'fails for a Puppet module' do
34
+ component_dir = File.join(files_dir, 'module_with_misordered_entries')
35
+ component_spec = File.join(templates_dir, 'simpdefault.spec')
36
+
37
+ expect{ Simp::RelChecks.check_rpm_changelog(component_dir, component_spec) }.
38
+ to raise_error(/ERROR: Invalid changelog for module_with_misordered_entries/)
39
+ end
40
+
41
+ it 'fails for a non-Puppet asset' do
42
+ component_dir = File.join(files_dir, 'asset_with_misordered_entries')
43
+ component_spec = File.join(component_dir, 'build', 'asset_with_misordered_entries.spec')
44
+
45
+ expect{ Simp::RelChecks.check_rpm_changelog(component_dir, component_spec) }.
46
+ to raise_error(/ERROR: Invalid changelog for asset_with_misordered_entries/)
47
+ end
48
+ end
49
+ end
@@ -223,6 +223,14 @@ describe Simp::RPM do
223
223
  end
224
224
 
225
225
  context '#dist' do
226
+ before :each do
227
+ @pre_env = ENV['SIMP_RPM_dist']
228
+ ENV['SIMP_RPM_dist'] = nil
229
+ end
230
+
231
+ after :each do
232
+ ENV['SIMP_RPM_dist'] = @pre_env
233
+ end
226
234
  it 'returns dist' do
227
235
  Simp::RPM.stubs(:system_dist).returns('.testdist')
228
236
  rpm_obj = Simp::RPM.new( @rpm_file )
@@ -236,6 +244,39 @@ describe Simp::RPM do
236
244
  expect( d_spec_obj.dist ).to eq '.testdist'
237
245
  end
238
246
 
247
+ context 'when ENV[SIMP_RPM_dist] is set' do
248
+ before :each do
249
+ @_pre_env = ENV['SIMP_RPM_dist']
250
+ ENV['SIMP_RPM_dist'] = 'foo'
251
+ end
252
+
253
+ after :each do
254
+ ENV['SIMP_RPM_dist'] = @_pre_env
255
+ end
256
+
257
+ it 'returns target dist for spec files when SIMP_RPM_dist is set' do
258
+ rpm_obj = Simp::RPM.new(@rpm_file)
259
+ spec_obj = Simp::RPM.new(@spec_file)
260
+ d_spec_obj = Simp::RPM.new(@d_spec_file)
261
+ m_spec_obj = Simp::RPM.new(@m_spec_file)
262
+ d_rpm_obj = Simp::RPM.new(@d_rpm_file)
263
+
264
+ expect( rpm_obj.has_dist_tag?).to eq false
265
+ expect( spec_obj.has_dist_tag?).to eq false
266
+ expect( d_rpm_obj.has_dist_tag?).to eq true
267
+ expect( d_spec_obj.has_dist_tag?).to eq true
268
+
269
+ expect( d_spec_obj.dist ).to eq '.foo'
270
+ expect( d_spec_obj.full_version ).to match /\.foo$/
271
+ expect( d_spec_obj.name ).to match /\.foo$/
272
+ expect( d_spec_obj.release ).to match /\.foo$/
273
+
274
+ # The RPMs are already created as .el7; no env vars or hinting
275
+ # should affect them
276
+ expect( d_rpm_obj.dist ).to eq '.el7'
277
+ end
278
+ end
279
+
239
280
  it 'fails when invalid package specified' do
240
281
  expect { @rpm_obj.dist('oops') }.to raise_error(ArgumentError)
241
282
  # expect { @signed_rpm_obj.dist('oops') }.to raise_error(ArgumentError)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simp-rake-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.5.0
4
+ version: 5.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Tessmer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-06-22 00:00:00.000000000 Z
12
+ date: 2018-08-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -315,9 +315,8 @@ dependencies:
315
315
  - - ">"
316
316
  - !ruby/object:Gem::Version
317
317
  version: 1.6.1
318
- description: ' "simp-rake-helpers provides common methods for SIMP Rake Tasks"
319
-
320
- '
318
+ description: |2
319
+ "simp-rake-helpers provides common methods for SIMP Rake Tasks"
321
320
  email: simp@simp-project.org
322
321
  executables: []
323
322
  extensions: []
@@ -329,7 +328,6 @@ files:
329
328
  - CHANGELOG.md
330
329
  - CONTRIBUTING.md
331
330
  - Gemfile
332
- - Guardfile
333
331
  - LICENSE
334
332
  - README.md
335
333
  - Rakefile
@@ -369,9 +367,14 @@ files:
369
367
  - spec/acceptance/00_pkg_rpm_custom_scriptlets_spec.rb
370
368
  - spec/acceptance/10_pkg_rpm_spec.rb
371
369
  - spec/acceptance/20_pkg_rpm_safely_upgrading_obsolete_modules_spec.rb
370
+ - spec/acceptance/30_pkg_misc_spec.rb
372
371
  - spec/acceptance/development/docker_env.sh
373
372
  - spec/acceptance/development/rerun_acceptance_tests.sh
374
373
  - spec/acceptance/development/vagrant_rsync.sh
374
+ - spec/acceptance/files/asset/Rakefile
375
+ - spec/acceptance/files/asset/build/asset.spec
376
+ - spec/acceptance/files/asset_with_misordered_entries/Rakefile
377
+ - spec/acceptance/files/asset_with_misordered_entries/build/asset_with_misordered_entries.spec
375
378
  - spec/acceptance/files/custom_scriptlet_triggers/pupmod-new-package-2.1/CHANGELOG
376
379
  - spec/acceptance/files/custom_scriptlet_triggers/pupmod-new-package-2.1/Rakefile
377
380
  - spec/acceptance/files/custom_scriptlet_triggers/pupmod-new-package-2.1/build/rpm_metadata/custom/overrides
@@ -402,6 +405,12 @@ files:
402
405
  - spec/acceptance/files/mock_packages/simp-adapter.spec
403
406
  - spec/acceptance/files/mock_packages/simp-adapter/etc/simp/adapter_config.yaml
404
407
  - spec/acceptance/files/mock_packages/simp-adapter/usr/local/sbin/simp_rpm_helper
408
+ - spec/acceptance/files/module/CHANGELOG
409
+ - spec/acceptance/files/module/Rakefile
410
+ - spec/acceptance/files/module/metadata.json
411
+ - spec/acceptance/files/module_with_misordered_entries/CHANGELOG
412
+ - spec/acceptance/files/module_with_misordered_entries/Rakefile
413
+ - spec/acceptance/files/module_with_misordered_entries/metadata.json
405
414
  - spec/acceptance/files/simplib/CHANGELOG
406
415
  - spec/acceptance/files/simplib/Rakefile
407
416
  - spec/acceptance/files/simplib/build/rpm_metadata/requires
@@ -478,6 +487,12 @@ files:
478
487
  - spec/lib/simp/files/componentinfo_spec/module_with_version_misordered_entries/CHANGELOG
479
488
  - spec/lib/simp/files/componentinfo_spec/module_with_version_misordered_entries/metadata.json
480
489
  - spec/lib/simp/files/componentinfo_spec/module_without_changelog/metadata.json
490
+ - spec/lib/simp/files/relchecks_check_rpm_changelog_spec/asset/build/asset.spec
491
+ - spec/lib/simp/files/relchecks_check_rpm_changelog_spec/asset_with_misordered_entries/build/asset_with_misordered_entries.spec
492
+ - spec/lib/simp/files/relchecks_check_rpm_changelog_spec/module/CHANGELOG
493
+ - spec/lib/simp/files/relchecks_check_rpm_changelog_spec/module/metadata.json
494
+ - spec/lib/simp/files/relchecks_check_rpm_changelog_spec/module_with_misordered_entries/CHANGELOG
495
+ - spec/lib/simp/files/relchecks_check_rpm_changelog_spec/module_with_misordered_entries/metadata.json
481
496
  - spec/lib/simp/files/relchecks_compare_latest_tag_spec/module/CHANGELOG
482
497
  - spec/lib/simp/files/relchecks_compare_latest_tag_spec/module/metadata.json
483
498
  - spec/lib/simp/files/relchecks_compare_latest_tag_spec/module_without_changelog/metadata.json
@@ -554,6 +569,7 @@ files:
554
569
  - spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/spec_helper_acceptance.rb
555
570
  - spec/lib/simp/rake/pupmod/helpers_spec.rb
556
571
  - spec/lib/simp/rake_spec.rb
572
+ - spec/lib/simp/relchecks_check_rpm_changelog_spec.rb
557
573
  - spec/lib/simp/relchecks_compare_latest_tag_spec.rb
558
574
  - spec/lib/simp/relchecks_create_tag_changelog_spec.rb
559
575
  - spec/lib/simp/rpm_spec.rb
@@ -580,7 +596,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
580
596
  version: '0'
581
597
  requirements: []
582
598
  rubyforge_project:
583
- rubygems_version: 2.6.14
599
+ rubygems_version: 2.7.7
584
600
  signing_key:
585
601
  specification_version: 4
586
602
  summary: SIMP rake helpers
data/Guardfile DELETED
@@ -1,24 +0,0 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard :rspec, cmd: "bundle exec rspec" do
5
- require "guard/rspec/dsl"
6
- dsl = Guard::RSpec::Dsl.new(self)
7
-
8
- # RSpec files
9
- rspec = dsl.rspec
10
- watch(rspec.spec_helper) { rspec.spec_dir }
11
- watch(rspec.spec_support) { rspec.spec_dir }
12
- watch(rspec.spec_files)
13
-
14
- # Ruby files
15
- ruby = dsl.ruby
16
- dsl.watch_spec_files_for(ruby.lib_files)
17
- end
18
-
19
- # Add files and commands to this file, like the example:
20
- # watch(%r{file/path}) { `command(s)` }
21
- #
22
- guard :shell do
23
- watch(/(.*).md/) {|m| `tail #{m[0]}` }
24
- end