simp-rake-helpers 5.5.0 → 5.5.2

Sign up to get free protection for your applications and to get access to all the features.
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