simp-rake-helpers 5.11.6 → 5.12.3
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 +49 -0
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +0 -3
- data/README.md +3 -38
- data/Rakefile +2 -3
- data/lib/simp/command_utils.rb +21 -0
- data/lib/simp/local_gpg_signing_key.rb +128 -79
- data/lib/simp/rake/build/auto.rb +4 -2
- data/lib/simp/rake/build/build.rb +5 -4
- data/lib/simp/rake/build/iso.rb +57 -31
- data/lib/simp/rake/build/pkg.rb +118 -56
- data/lib/simp/rake/build/spec.rb +1 -1
- data/lib/simp/rake/build/tar.rb +1 -1
- data/lib/simp/rake/build/unpack.rb +1 -1
- data/lib/simp/rake/build/upload.rb +1 -1
- data/lib/simp/rake/build/vermap.yaml +1 -1
- data/lib/simp/rake/helpers/assets/rpm_spec/simp6.spec +3 -3
- data/lib/simp/rake/helpers/assets/rpm_spec/simpdefault.spec +3 -3
- data/lib/simp/rake/helpers/version.rb +1 -1
- data/lib/simp/rake/helpers.rb +2 -2
- data/lib/simp/rake/pkg.rb +5 -1
- data/lib/simp/rake/pupmod/helpers.rb +2 -0
- data/lib/simp/rake/rubygem.rb +5 -1
- data/lib/simp/rake.rb +3 -17
- data/lib/simp/rpm.rb +10 -127
- data/lib/simp/rpm_signer.rb +321 -0
- data/spec/acceptance/nodesets/default.yml +0 -3
- data/spec/acceptance/{00_pkg_rpm_custom_scriptlets_spec.rb → suites/default/00_pkg_rpm_custom_scriptlets_spec.rb} +21 -22
- data/spec/acceptance/{10_pkg_rpm_spec.rb → suites/default/10_pkg_rpm_spec.rb} +50 -52
- data/spec/acceptance/{30_pkg_misc_spec.rb → suites/default/30_pkg_misc_spec.rb} +1 -1
- data/spec/acceptance/{50_local_gpg_signing_key_spec.rb → suites/default/50_local_gpg_signing_key_spec.rb} +7 -3
- data/spec/acceptance/suites/default/55_build_pkg_signing_spec.rb +391 -0
- data/spec/acceptance/{development → suites/default/development}/docker_env.sh +0 -0
- data/spec/acceptance/{development → suites/default/development}/rerun_acceptance_tests.sh +0 -0
- data/spec/acceptance/{development → suites/default/development}/vagrant_rsync.sh +0 -0
- data/spec/acceptance/{files → suites/default/files}/asset/Rakefile +0 -0
- data/spec/acceptance/{files → suites/default/files}/asset/build/asset.spec +0 -0
- data/spec/acceptance/{files → suites/default/files}/asset_with_misordered_entries/Rakefile +0 -0
- data/spec/acceptance/{files → suites/default/files}/asset_with_misordered_entries/build/asset_with_misordered_entries.spec +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/RPM-GPG-KEY-SIMP-Dev +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/gengpgkey +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/pubring.gpg +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/random_seed +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/run_gpg_agent +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/secring.gpg +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/pkg/gpg-keydir.expired.2018-04-06/trustdb.gpg +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/project_skeleton/Puppetfile.tracking +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/project_skeleton/README.md +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/project_skeleton/Rakefile +0 -0
- data/spec/acceptance/{files → suites/default/files}/build/project_skeleton/src/assets/simp/build/simp.spec +0 -0
- data/spec/acceptance/{files → suites/default/files}/module/CHANGELOG +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-new-package-2.1 → suites/default/files/module}/Rakefile +0 -0
- data/spec/acceptance/{files → suites/default/files}/module/metadata.json +0 -0
- data/spec/acceptance/{files → suites/default/files}/module_with_misordered_entries/CHANGELOG +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-new-package-3.0 → suites/default/files/module_with_misordered_entries}/Rakefile +0 -0
- data/spec/acceptance/{files → suites/default/files}/module_with_misordered_entries/metadata.json +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-new-package-2.1 → suites/default/files/simplib}/CHANGELOG +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-old-package-1.0 → suites/default/files/simplib}/Rakefile +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-old-package-1.0 → suites/default/files/simplib}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/simplib/metadata.json +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-new-package-3.0 → suites/default/files/testpackage}/CHANGELOG +0 -0
- data/spec/acceptance/suites/default/files/testpackage/README +8 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-old-package-2.0 → suites/default/files/testpackage}/Rakefile +0 -0
- data/spec/acceptance/{files/package_upgrades/pupmod-simp-testpackage-1.0 → suites/default/files/testpackage}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage/metadata.json +0 -0
- 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 -0
- data/spec/acceptance/suites/default/files/testpackage/utils/convert_v1_to_v2.rb +3 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-old-package-1.0 → suites/default/files/testpackage_custom_scriptlet}/CHANGELOG +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-old-package-2.2 → suites/default/files/testpackage_custom_scriptlet}/Rakefile +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_custom_scriptlet/build/rpm_metadata/custom/overrides +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-old-package-2.0 → suites/default/files/testpackage_custom_scriptlet}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_custom_scriptlet/metadata.json +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-old-package-2.0 → suites/default/files/testpackage_missing_license}/CHANGELOG +0 -0
- data/spec/acceptance/{files/module → suites/default/files/testpackage_missing_license}/Rakefile +0 -0
- data/spec/acceptance/{files/simplib → suites/default/files/testpackage_missing_license}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_missing_license/metadata.json +0 -0
- data/spec/acceptance/{files/custom_scriptlet_triggers/pupmod-old-package-2.2 → suites/default/files/testpackage_missing_metadata_file}/CHANGELOG +0 -0
- data/spec/acceptance/{files/module_with_misordered_entries → suites/default/files/testpackage_missing_metadata_file}/Rakefile +0 -0
- data/spec/acceptance/{files/testpackage_custom_scriptlet → suites/default/files/testpackage_missing_metadata_file}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files/simplib → suites/default/files/testpackage_missing_name}/CHANGELOG +0 -0
- data/spec/acceptance/{files/package_upgrades/pupmod-simp-testpackage-1.0 → suites/default/files/testpackage_missing_name}/Rakefile +0 -0
- data/spec/acceptance/{files/testpackage_missing_license → suites/default/files/testpackage_missing_name}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_missing_name/metadata.json +0 -0
- data/spec/acceptance/{files/testpackage → suites/default/files/testpackage_missing_source}/CHANGELOG +0 -0
- data/spec/acceptance/{files/package_upgrades/pupmod-simp-testpackage-2.0 → suites/default/files/testpackage_missing_source}/Rakefile +0 -0
- data/spec/acceptance/{files/testpackage_missing_metadata_file → suites/default/files/testpackage_missing_source}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_missing_source/metadata.json +0 -0
- data/spec/acceptance/{files/testpackage_custom_scriptlet → suites/default/files/testpackage_missing_summary}/CHANGELOG +0 -0
- data/spec/acceptance/{files/simplib → suites/default/files/testpackage_missing_summary}/Rakefile +0 -0
- data/spec/acceptance/{files/testpackage_missing_name → suites/default/files/testpackage_missing_summary}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_missing_summary/metadata.json +0 -0
- data/spec/acceptance/{files/testpackage_missing_license → suites/default/files/testpackage_missing_version}/CHANGELOG +0 -0
- data/spec/acceptance/{files/testpackage → suites/default/files/testpackage_missing_version}/Rakefile +0 -0
- data/spec/acceptance/{files/testpackage_missing_source → suites/default/files/testpackage_missing_version}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_missing_version/metadata.json +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_with_bad_changelog_date/CHANGELOG +0 -0
- data/spec/acceptance/{files/testpackage_custom_scriptlet → suites/default/files/testpackage_with_bad_changelog_date}/Rakefile +0 -0
- data/spec/acceptance/{files/testpackage_missing_summary → suites/default/files/testpackage_with_bad_changelog_date}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_with_bad_changelog_date/metadata.json +0 -0
- data/spec/acceptance/{files/testpackage_missing_metadata_file → suites/default/files/testpackage_with_release}/CHANGELOG +0 -0
- data/spec/acceptance/{files/testpackage_missing_license → suites/default/files/testpackage_with_release}/Rakefile +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_with_release/build/rpm_metadata/release +0 -0
- data/spec/acceptance/{files/testpackage_missing_version → suites/default/files/testpackage_with_release}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_with_release/metadata.json +0 -0
- data/spec/acceptance/{files/testpackage_missing_metadata_file → suites/default/files/testpackage_without_changelog}/Rakefile +0 -0
- data/spec/acceptance/{files/testpackage_with_bad_changelog_date → suites/default/files/testpackage_without_changelog}/build/rpm_metadata/requires +0 -0
- data/spec/acceptance/{files → suites/default/files}/testpackage_without_changelog/metadata.json +0 -0
- data/spec/acceptance/{support → suites/default/support}/build_project_helpers.rb +33 -9
- data/spec/acceptance/{support → suites/default/support}/build_user_helpers.rb +0 -0
- data/spec/acceptance/{support → suites/default/support}/pkg_rpm_helpers.rb +0 -0
- data/spec/lib/simp/command_utils_spec.rb +29 -0
- data/spec/lib/simp/local_gpg_signing_key_spec.rb.beaker-only +115 -18
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/README.md +2 -2
- data/spec/lib/simp/rpm_signer_spec.rb +98 -0
- data/spec/lib/simp/rpm_spec.rb +0 -6
- data/spec/spec_helper_acceptance.rb +4 -0
- metadata +92 -149
- data/.travis.yml +0 -41
- data/lib/simp/rake/helpers/assets/rpm_spec/simp4.spec +0 -388
- data/lib/simp/rake/helpers/assets/rpm_spec/simp5.spec +0 -388
- data/spec/acceptance/20_pkg_rpm_upgrade_spec.rb +0 -236
- data/spec/acceptance/55_build_pkg_signing_spec.rb +0 -140
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-new-package-2.1/build/rpm_metadata/custom/overrides +0 -14
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-new-package-2.1/build/rpm_metadata/requires +0 -1
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-new-package-2.1/metadata.json +0 -33
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-new-package-3.0/build/rpm_metadata/custom/overrides +0 -14
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-new-package-3.0/build/rpm_metadata/requires +0 -1
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-new-package-3.0/metadata.json +0 -33
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-old-package-1.0/metadata.json +0 -33
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-old-package-2.0/metadata.json +0 -33
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-old-package-2.2/build/rpm_metadata/custom/overrides +0 -14
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-old-package-2.2/build/rpm_metadata/requires +0 -1
- data/spec/acceptance/files/custom_scriptlet_triggers/pupmod-old-package-2.2/metadata.json +0 -33
- data/spec/acceptance/files/mock_packages/pupmod-puppetlabs-stdlib.spec +0 -32
- data/spec/acceptance/files/mock_packages/pupmod-simp-foo.spec +0 -32
- data/spec/acceptance/files/mock_packages/pupmod-simp-simplib.spec +0 -32
- data/spec/acceptance/files/mock_packages/rpmbuild.sh +0 -25
- data/spec/acceptance/files/mock_packages/simp-adapter/etc/simp/adapter_config.yaml +0 -3
- data/spec/acceptance/files/mock_packages/simp-adapter/usr/local/sbin/simp_rpm_helper +0 -495
- data/spec/acceptance/files/mock_packages/simp-adapter.spec +0 -43
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-1.0/CHANGELOG +0 -2
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-1.0/data/os/CentOS.yaml +0 -2
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-1.0/data/os/RedHat.yaml +0 -2
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-1.0/hiera.yaml +0 -14
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-1.0/manifests/init.pp +0 -2
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-1.0/metadata.json +0 -37
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-2.0/CHANGELOG +0 -5
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-2.0/build/rpm_metadata/requires +0 -2
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-2.0/data/os/CentOS.yaml +0 -2
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-2.0/data/os/RedHat.yaml +0 -2
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-2.0/hiera.yaml +0 -14
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-2.0/manifests/init.pp +0 -3
- data/spec/acceptance/files/package_upgrades/pupmod-simp-testpackage-2.0/metadata.json +0 -37
- data/spec/acceptance/files/testpackage/build/rpm_metadata/requires +0 -2
- data/spec/acceptance/files/testpackage_missing_name/CHANGELOG +0 -2
- data/spec/acceptance/files/testpackage_missing_name/Rakefile +0 -3
- data/spec/acceptance/files/testpackage_missing_source/CHANGELOG +0 -2
- data/spec/acceptance/files/testpackage_missing_source/Rakefile +0 -3
- data/spec/acceptance/files/testpackage_missing_summary/CHANGELOG +0 -2
- data/spec/acceptance/files/testpackage_missing_summary/Rakefile +0 -3
- data/spec/acceptance/files/testpackage_missing_version/CHANGELOG +0 -2
- data/spec/acceptance/files/testpackage_missing_version/Rakefile +0 -3
- data/spec/acceptance/files/testpackage_with_bad_changelog_date/Rakefile +0 -3
- data/spec/acceptance/files/testpackage_with_release/CHANGELOG +0 -2
- data/spec/acceptance/files/testpackage_with_release/Rakefile +0 -3
- data/spec/acceptance/files/testpackage_with_release/build/rpm_metadata/requires +0 -1
- data/spec/acceptance/files/testpackage_without_changelog/Rakefile +0 -3
- data/spec/acceptance/files/testpackage_without_changelog/build/rpm_metadata/requires +0 -1
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/nodesets/default.yml +0 -1
- data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/suites/default/nodesets +0 -1
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/nodesets/default.yml +0 -1
- data/spec/lib/simp/files/build/testpackage.spec +0 -1
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/nodesets/default.yml +0 -1
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/nodesets +0 -1
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
%{lua:
|
|
2
|
-
|
|
3
|
-
--
|
|
4
|
-
-- When you build you must to pass this along so that we know how
|
|
5
|
-
-- to get the preliminary information.
|
|
6
|
-
-- This directory should hold the following items:
|
|
7
|
-
-- * 'build/rpm_metadata/requires' <- optional list of 'Requires', 'Provides',
|
|
8
|
-
-- and 'Obsoletes' to supplement those auto-generated in this spec file
|
|
9
|
-
-- * 'build/rpm_metadata/release' <- optional RPM release number to use in
|
|
10
|
-
-- lieu of number hard-coded in this spec file
|
|
11
|
-
-- * 'CHANGELOG' <- optional RPM formatted Changelog to use in lieu of minimal,
|
|
12
|
-
-- changelog entry auto-generated in this spec file
|
|
13
|
-
-- * 'metadata.json' <- required file that must contain the following metadata:
|
|
14
|
-
-- - 'name' - package name
|
|
15
|
-
-- - 'version' - package version
|
|
16
|
-
-- - 'license' - package license
|
|
17
|
-
-- - 'summary' - package summary
|
|
18
|
-
-- - 'source' - package source
|
|
19
|
-
--
|
|
20
|
-
-- Example:
|
|
21
|
-
-- rpmbuild -D 'pup_module_info_dir /home/user/project/puppet_module' -ba SPECS/specfile.spec
|
|
22
|
-
--
|
|
23
|
-
-- If this is not found, we will look in %{_sourcedir} for the files and fall
|
|
24
|
-
-- back to the current directory
|
|
25
|
-
--
|
|
26
|
-
|
|
27
|
-
src_dir = rpm.expand('%{pup_module_info_dir}')
|
|
28
|
-
|
|
29
|
-
if string.match(src_dir, '^%%') or (posix.stat(src_dir, 'type') ~= 'directory') then
|
|
30
|
-
src_dir = rpm.expand('%{_sourcedir}')
|
|
31
|
-
|
|
32
|
-
if (posix.stat((src_dir .. "/metadata.json"), 'type') ~= 'regular') then
|
|
33
|
-
src_dir = './'
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
-- These UNKNOWN entries should break the build if something bad happens
|
|
38
|
-
|
|
39
|
-
package_name = "UNKNOWN"
|
|
40
|
-
package_version = "UNKNOWN"
|
|
41
|
-
module_license = "UNKNOWN"
|
|
42
|
-
|
|
43
|
-
--
|
|
44
|
-
-- Default to 0
|
|
45
|
-
--
|
|
46
|
-
|
|
47
|
-
package_release = 0
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
%{lua:
|
|
52
|
-
-- Pull the Relevant Metadata out of the Puppet module metadata.json.
|
|
53
|
-
|
|
54
|
-
metadata = ''
|
|
55
|
-
metadata_file = io.open(src_dir .. "/metadata.json","r")
|
|
56
|
-
if metadata_file then
|
|
57
|
-
metadata = metadata_file:read("*all")
|
|
58
|
-
|
|
59
|
-
-- Ignore the first curly brace
|
|
60
|
-
metadata = metadata:gsub("{}?", '|', 1)
|
|
61
|
-
|
|
62
|
-
-- Ignore all keys that are below the first level
|
|
63
|
-
metadata = metadata:gsub("{.-}", '')
|
|
64
|
-
metadata = metadata:gsub("%[.-%]", '')
|
|
65
|
-
else
|
|
66
|
-
error("Could not open 'metadata.json'", 0)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
-- This starts as an empty string so that we can build it later
|
|
70
|
-
module_requires = ''
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
%{lua:
|
|
75
|
-
|
|
76
|
-
-- Get the Module Name and put it in the correct format
|
|
77
|
-
|
|
78
|
-
local name_match = string.match(metadata, '"name":%s+"(.-)"%s*,')
|
|
79
|
-
|
|
80
|
-
module_author = ''
|
|
81
|
-
module_name = ''
|
|
82
|
-
|
|
83
|
-
if name_match then
|
|
84
|
-
package_name = ('pupmod-' .. name_match)
|
|
85
|
-
|
|
86
|
-
local i = 0
|
|
87
|
-
for str in string.gmatch(name_match,'[^-]+') do
|
|
88
|
-
if i == 0 then
|
|
89
|
-
module_author = str
|
|
90
|
-
else
|
|
91
|
-
if module_name == '' then
|
|
92
|
-
module_name = str
|
|
93
|
-
else
|
|
94
|
-
module_name = (module_name .. '-' .. str)
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
i = i+1
|
|
99
|
-
end
|
|
100
|
-
else
|
|
101
|
-
error("Could not find valid package name in 'metadata.json'", 0)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
%{lua:
|
|
107
|
-
|
|
108
|
-
-- Get the Module Version
|
|
109
|
-
|
|
110
|
-
local version_match = string.match(metadata, '"version":%s+"(.-)"%s*,')
|
|
111
|
-
|
|
112
|
-
if version_match then
|
|
113
|
-
package_version = version_match
|
|
114
|
-
else
|
|
115
|
-
error("Could not find valid package version in 'metadata.json'", 0)
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
%{lua:
|
|
121
|
-
|
|
122
|
-
-- Get the Module License
|
|
123
|
-
|
|
124
|
-
local license_match = string.match(metadata, '"license":%s+"(.-)"%s*,')
|
|
125
|
-
|
|
126
|
-
if license_match then
|
|
127
|
-
module_license = license_match
|
|
128
|
-
else
|
|
129
|
-
error("Could not find valid package license in 'metadata.json'", 0)
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
%{lua:
|
|
135
|
-
|
|
136
|
-
-- Get the Module Summary
|
|
137
|
-
|
|
138
|
-
local summary_match = string.match(metadata, '"summary":%s+"(.-)"%s*,')
|
|
139
|
-
|
|
140
|
-
if summary_match then
|
|
141
|
-
module_summary = summary_match
|
|
142
|
-
else
|
|
143
|
-
error("Could not find valid package summary in 'metadata.json'", 0)
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
%{lua:
|
|
149
|
-
|
|
150
|
-
-- Get the Module Source line for the URL string
|
|
151
|
-
|
|
152
|
-
local source_match = string.match(metadata, '"source":%s+"(.-)"%s*,')
|
|
153
|
-
|
|
154
|
-
if source_match then
|
|
155
|
-
module_source = source_match
|
|
156
|
-
else
|
|
157
|
-
error("Could not find valid package source in 'metadata.json'", 0)
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
%{lua:
|
|
163
|
-
|
|
164
|
-
-- Snag the RPM-specific items out of the 'build/rpm_metadata' directory
|
|
165
|
-
|
|
166
|
-
-- First, the Release Number
|
|
167
|
-
|
|
168
|
-
rel_file = io.open(src_dir .. "/build/rpm_metadata/release", "r")
|
|
169
|
-
|
|
170
|
-
if not rel_file then
|
|
171
|
-
-- Need this for the SRPM case
|
|
172
|
-
rel_file = io.open(src_dir .. "/release", "r")
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if rel_file then
|
|
177
|
-
for line in rel_file:lines() do
|
|
178
|
-
is_comment = string.match(line, "^%s*#")
|
|
179
|
-
is_blank = string.match(line, "^%s*$")
|
|
180
|
-
|
|
181
|
-
if not (is_comment or is_blank) then
|
|
182
|
-
package_release = line
|
|
183
|
-
break
|
|
184
|
-
end
|
|
185
|
-
end
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
%{lua:
|
|
191
|
-
|
|
192
|
-
-- Next, the Requirements
|
|
193
|
-
req_file = io.open(src_dir .. "/build/rpm_metadata/requires", "r")
|
|
194
|
-
|
|
195
|
-
if not req_file then
|
|
196
|
-
-- Need this for the SRPM case
|
|
197
|
-
req_file = io.open(src_dir .. "/requires", "r")
|
|
198
|
-
end
|
|
199
|
-
|
|
200
|
-
if req_file then
|
|
201
|
-
for line in req_file:lines() do
|
|
202
|
-
valid_line = (string.match(line, "^Requires: ") or string.match(line, "^Obsoletes: ") or string.match(line, "^Provides: "))
|
|
203
|
-
|
|
204
|
-
if valid_line then
|
|
205
|
-
module_requires = (module_requires .. "\n" .. line)
|
|
206
|
-
end
|
|
207
|
-
end
|
|
208
|
-
end
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
%define module_name %{lua: print(module_name)}
|
|
212
|
-
%define base_name %{lua: print(package_name)}
|
|
213
|
-
|
|
214
|
-
%{lua:
|
|
215
|
-
-- Determine which Variant we are going to build
|
|
216
|
-
|
|
217
|
-
local variant = rpm.expand("%{_variant}")
|
|
218
|
-
local variant_version = nil
|
|
219
|
-
|
|
220
|
-
local foo = ""
|
|
221
|
-
|
|
222
|
-
local i = 0
|
|
223
|
-
for str in string.gmatch(variant,'[^-]+') do
|
|
224
|
-
if i == 0 then
|
|
225
|
-
variant = str
|
|
226
|
-
elseif i == 1 then
|
|
227
|
-
variant_version = str
|
|
228
|
-
else
|
|
229
|
-
break
|
|
230
|
-
end
|
|
231
|
-
|
|
232
|
-
i = i+1
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
rpm.define("variant " .. variant)
|
|
236
|
-
|
|
237
|
-
if variant == "pe" then
|
|
238
|
-
rpm.define("puppet_user pe-puppet")
|
|
239
|
-
else
|
|
240
|
-
rpm.define("puppet_user puppet")
|
|
241
|
-
end
|
|
242
|
-
|
|
243
|
-
if variant == "pe" then
|
|
244
|
-
if variant_version and ( rpm.vercmp(variant_version,'4') >= 0 ) then
|
|
245
|
-
rpm.define("_sysconfdir /etc/puppetlabs/code")
|
|
246
|
-
else
|
|
247
|
-
rpm.define("_sysconfdir /etc/puppetlabs/puppet")
|
|
248
|
-
end
|
|
249
|
-
elseif variant == "p4" then
|
|
250
|
-
rpm.define("_sysconfdir /etc/puppetlabs/code")
|
|
251
|
-
else
|
|
252
|
-
rpm.define("_sysconfdir /etc/puppet")
|
|
253
|
-
end
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
Summary: %{module_name} Puppet Module
|
|
257
|
-
%if 0%{?_variant:1}
|
|
258
|
-
Name: %{base_name}-%{_variant}
|
|
259
|
-
%else
|
|
260
|
-
Name: %{base_name}
|
|
261
|
-
%endif
|
|
262
|
-
|
|
263
|
-
Version: %{lua: print(package_version)}
|
|
264
|
-
Release: %{lua: print(package_release)}
|
|
265
|
-
License: %{lua: print(module_license)}
|
|
266
|
-
Group: Applications/System
|
|
267
|
-
Source0: %{base_name}-%{version}-%{release}.tar.gz
|
|
268
|
-
Source1: %{lua: print("metadata.json")}
|
|
269
|
-
%{lua:
|
|
270
|
-
-- Include our sources as appropriate
|
|
271
|
-
changelog = io.open(src_dir .. "/CHANGELOG","r")
|
|
272
|
-
if changelog then
|
|
273
|
-
print("Source2: " .. "CHANGELOG\n")
|
|
274
|
-
end
|
|
275
|
-
|
|
276
|
-
if rel_file then
|
|
277
|
-
print("Source3: " .. "release\n")
|
|
278
|
-
end
|
|
279
|
-
if req_file then
|
|
280
|
-
print("Source4: " .. "requires\n")
|
|
281
|
-
end
|
|
282
|
-
}
|
|
283
|
-
URL: %{lua: print(module_source)}
|
|
284
|
-
BuildRoot: %{_tmppath}/%{base_name}-%{version}-%{release}-buildroot
|
|
285
|
-
BuildArch: noarch
|
|
286
|
-
|
|
287
|
-
%if "%{variant}" == "pe"
|
|
288
|
-
Requires: pe-puppet >= 3.8.6
|
|
289
|
-
%else
|
|
290
|
-
Requires: puppet >= 3.8.6
|
|
291
|
-
%endif
|
|
292
|
-
|
|
293
|
-
%if ("%{base_name}" != "pupmod-simp-simplib") && ("%{base_name}" != "pupmod-puppetlabs-stdlib")
|
|
294
|
-
Requires: pupmod-simp-simplib >= 1.2.6
|
|
295
|
-
%endif
|
|
296
|
-
|
|
297
|
-
%if "%{base_name}" != "pupmod-puppetlabs-stdlib"
|
|
298
|
-
Requires: pupmod-puppetlabs-stdlib >= 4.9.0
|
|
299
|
-
Requires: pupmod-puppetlabs-stdlib < 6.0.0
|
|
300
|
-
%endif
|
|
301
|
-
|
|
302
|
-
%{lua: print(module_requires)}
|
|
303
|
-
|
|
304
|
-
Provides: pupmod-%{lua: print(module_name)} = %{lua: print(package_version .. "-" .. package_release)}
|
|
305
|
-
Obsoletes: pupmod-%{lua: print(module_name)} < %{lua: print(package_version .. "-" .. package_release)}
|
|
306
|
-
|
|
307
|
-
%{lua:
|
|
308
|
-
|
|
309
|
-
-- This is a workaround for the 'simp-rsync' real RPM conflict but is
|
|
310
|
-
-- required by some external modules.
|
|
311
|
-
-- This should be removed when SIMP 6 is stable
|
|
312
|
-
|
|
313
|
-
author_rpm_name = module_author .. "-" .. module_name
|
|
314
|
-
|
|
315
|
-
if author_rpm_name ~= 'simp-rsync' then
|
|
316
|
-
print("Provides: " .. author_rpm_name .. " = " .. package_version .. "-" .. package_release .. "\n")
|
|
317
|
-
print("Obsoletes: " .. author_rpm_name .. " < " .. package_version .. "-" .. package_release .. "\n")
|
|
318
|
-
end
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
Prefix: %{_sysconfdir}/environments/simp/modules
|
|
322
|
-
|
|
323
|
-
%description
|
|
324
|
-
%{lua: print(module_summary)}
|
|
325
|
-
|
|
326
|
-
%prep
|
|
327
|
-
%setup -q -n %{base_name}-%{version}
|
|
328
|
-
|
|
329
|
-
%build
|
|
330
|
-
|
|
331
|
-
%install
|
|
332
|
-
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
|
|
333
|
-
|
|
334
|
-
mkdir -p %{buildroot}/%{prefix}
|
|
335
|
-
|
|
336
|
-
curdir=`pwd`
|
|
337
|
-
dirname=`basename $curdir`
|
|
338
|
-
cp -r ../$dirname %{buildroot}/%{prefix}/%{module_name}
|
|
339
|
-
cd %{buildroot}%{prefix}/%{module_name}
|
|
340
|
-
|
|
341
|
-
# Remove unnecessary assets
|
|
342
|
-
rm -rf %{buildroot}/%{prefix}/%{module_name}/.git
|
|
343
|
-
rm -f %{buildroot}/%{prefix}/%{module_name}/*.lock
|
|
344
|
-
rm -rf %{buildroot}/%{prefix}/%{module_name}/spec/fixtures/modules
|
|
345
|
-
rm -rf %{buildroot}/%{prefix}/%{module_name}/dist
|
|
346
|
-
rm -rf %{buildroot}/%{prefix}/%{module_name}/junit
|
|
347
|
-
rm -rf %{buildroot}/%{prefix}/%{module_name}/log
|
|
348
|
-
|
|
349
|
-
%clean
|
|
350
|
-
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
|
|
351
|
-
|
|
352
|
-
mkdir -p %{buildroot}/%{prefix}
|
|
353
|
-
|
|
354
|
-
%files
|
|
355
|
-
%defattr(0640,root,%{puppet_user},0750)
|
|
356
|
-
%{prefix}/%{module_name}
|
|
357
|
-
|
|
358
|
-
%changelog
|
|
359
|
-
%{lua:
|
|
360
|
-
-- Finally, the CHANGELOG
|
|
361
|
-
|
|
362
|
-
-- A default CHANGELOG in case we cannot find a real one
|
|
363
|
-
|
|
364
|
-
default_changelog = [===[
|
|
365
|
-
* $date Auto Changelog <auto@no.body> - $version-$release
|
|
366
|
-
- Latest release of $name
|
|
367
|
-
]===]
|
|
368
|
-
|
|
369
|
-
default_lookup_table = {
|
|
370
|
-
date = os.date("%a %b %d %Y"),
|
|
371
|
-
version = package_version,
|
|
372
|
-
release = package_release,
|
|
373
|
-
name = package_name
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
changelog = io.open(src_dir .. "/CHANGELOG","r")
|
|
377
|
-
if changelog then
|
|
378
|
-
first_line = changelog:read()
|
|
379
|
-
if string.match(first_line, "^*%s+%a%a%a%s+%a%a%a%s+%d%d?%s+%d%d%d%d%s+.+") then
|
|
380
|
-
changelog:seek("set",0)
|
|
381
|
-
print(changelog:read("*all"))
|
|
382
|
-
else
|
|
383
|
-
print((default_changelog:gsub('$(%w+)', default_lookup_table)))
|
|
384
|
-
end
|
|
385
|
-
else
|
|
386
|
-
print((default_changelog:gsub('$(%w+)', default_lookup_table)))
|
|
387
|
-
end
|
|
388
|
-
}
|
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
require 'spec_helper_acceptance'
|
|
2
|
-
require_relative 'support/pkg_rpm_helpers'
|
|
3
|
-
|
|
4
|
-
require 'beaker/puppet_install_helper'
|
|
5
|
-
require 'json'
|
|
6
|
-
|
|
7
|
-
RSpec.configure do |c|
|
|
8
|
-
c.include Simp::BeakerHelpers::SimpRakeHelpers::PkgRpmHelpers
|
|
9
|
-
c.extend Simp::BeakerHelpers::SimpRakeHelpers::PkgRpmHelpers
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# This tests RPM upgrade scenarios for components that use
|
|
13
|
-
# simp-adapter's simp_rpm_helper to copy files from the RPM install
|
|
14
|
-
# directory to a second destination directory
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
shared_examples_for 'RPM generator' do
|
|
18
|
-
it 'should create RPMs' do
|
|
19
|
-
testpackages.each do |package|
|
|
20
|
-
on host, %Q(#{run_cmd} "cd #{pkg_root_dir}/#{package}; ) +
|
|
21
|
-
%Q(rvm use default; bundle update --local || bundle update")
|
|
22
|
-
rpm_name = package.sub(/-[^-]+$/,'')
|
|
23
|
-
# In case previous tests haven't been clean
|
|
24
|
-
on host, "rpm -q #{rpm_name} && rpm -e #{rpm_name}; :"
|
|
25
|
-
|
|
26
|
-
on host, %(#{run_cmd} "cd #{pkg_root_dir}/#{package}; #{rake_cmd} pkg:rpm")
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
shared_examples_for 'an upgrade path that works safely with simp_rpm_helper' do |first_package_file, second_package_file|
|
|
32
|
-
let( :rpm_regex ) do
|
|
33
|
-
/^(?<name>pupmod-[a-z0-9_]+-[a-z0-9_]+)-(?<version>\d+\.\d+\.\d+)-(?<release>\d+)\..*\.rpm$/
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
let( :first_package_version ){ first_package_file.match(rpm_regex)['version'] }
|
|
37
|
-
let( :first_package_name ){ first_package_file.match(rpm_regex)['name'] }
|
|
38
|
-
let( :first_package_forge_name ){ first_package_name.sub(/^[^-]+-/,'') }
|
|
39
|
-
let( :first_package_module_name ){ first_package_forge_name.sub(/^[^-]+-/,'') }
|
|
40
|
-
let( :first_package_dir_name ){ first_package_name + '-' + first_package_version.sub(/\.\d+-\d+$/,'') }
|
|
41
|
-
|
|
42
|
-
let( :second_package_name ){ second_package_file.match(rpm_regex)['name'] }
|
|
43
|
-
let( :second_package_forge_name ){ second_package_name.sub(/^[^-]+-/,'') }
|
|
44
|
-
let( :second_package_module_name ){ second_package_forge_name.sub(/^[^-]+-/,'') }
|
|
45
|
-
let( :second_package_version ){ second_package_file.match(rpm_regex)['version'] }
|
|
46
|
-
let( :second_package_dir_name ){ second_package_name + '-' + second_package_version.sub(/\.\d+-\d+$/,'') }
|
|
47
|
-
|
|
48
|
-
context "When upgrading from #{first_package_file} to #{second_package_file}" do
|
|
49
|
-
it "should clean out any old installs" do
|
|
50
|
-
on host, "rpm -e #{first_package_name} &> /dev/null; " +
|
|
51
|
-
"rpm -e #{second_package_name} &> /dev/null ",
|
|
52
|
-
accept_all_exit_codes: true
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
it "should install #{first_package_file}" do
|
|
56
|
-
on host, "cd #{pkg_root_dir}/#{first_package_dir_name.gsub(/\.\d+$/,'')}; "+
|
|
57
|
-
"rpm -Uvh dist/#{first_package_file}"
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
it "should transfer contents of #{first_package_file} into the code directory" do
|
|
61
|
-
result = on host, "cat /opt/test/puppet/code/#{first_package_module_name}/metadata.json"
|
|
62
|
-
metadata = JSON.parse(result.stdout)
|
|
63
|
-
expect(metadata['name']).to eq first_package_forge_name
|
|
64
|
-
expect(metadata['version']).to eq first_package_version
|
|
65
|
-
|
|
66
|
-
# This verifies all files/dirs from the first package are copied
|
|
67
|
-
on host, "diff -r /usr/share/simp/modules/#{first_package_module_name} /opt/test/puppet/code/#{first_package_module_name}"
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
it "should upgrade to #{second_package_file}" do
|
|
71
|
-
on host, "cd #{pkg_root_dir}/#{second_package_dir_name.gsub(/\.\d+$/,'')}; rpm -Uvh dist/#{second_package_file}"
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
it "should transfer contents of #{second_package_file} into the code directory" do
|
|
75
|
-
result = on host, "cat /opt/test/puppet/code/#{second_package_module_name}/metadata.json"
|
|
76
|
-
metadata = JSON.parse(result.stdout)
|
|
77
|
-
expect(metadata['name']).to eq second_package_forge_name
|
|
78
|
-
expect(metadata['version']).to eq second_package_version
|
|
79
|
-
|
|
80
|
-
# This verifies all files/dirs from the second package are copied and
|
|
81
|
-
# no files/dirs onyn in the old package remain
|
|
82
|
-
on host, "diff -r /usr/share/simp/modules/#{second_package_module_name} /opt/test/puppet/code/#{second_package_module_name}"
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
describe 'rake pkg:rpm + component upgrade scenarios' do
|
|
89
|
-
|
|
90
|
-
before :all do
|
|
91
|
-
copy_host_files_into_build_user_homedir(hosts)
|
|
92
|
-
|
|
93
|
-
comment 'ensure the Puppet AIO is installed'
|
|
94
|
-
run_puppet_install_helper_on(hosts)
|
|
95
|
-
|
|
96
|
-
comment 'configure puppet agent to look like a Puppet server for simp_rpm_helper'
|
|
97
|
-
on hosts, '/opt/puppetlabs/bin/puppet config --section master set user root; ' +
|
|
98
|
-
'/opt/puppetlabs/bin/puppet config --section master set group root; ' +
|
|
99
|
-
'/opt/puppetlabs/bin/puppet config --section master set codedir /opt/test/puppet/code; ' +
|
|
100
|
-
'/opt/puppetlabs/bin/puppet config --section master set confdir /opt/test/puppet/code'
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
# TODO This mock simp-adapter has old functionality that corresponds to
|
|
104
|
-
# SIMP < 6.4.0 (i.e, a version that rsync's modules to a directory).
|
|
105
|
-
# Once SIMP 6.4.0 is released, we may want to update it to match that
|
|
106
|
-
# of the newer simp-adapter (i.e., the version that creates and updates
|
|
107
|
-
# local Git repositories). The tests that assume the copy behavior will
|
|
108
|
-
# have to be updated as well.
|
|
109
|
-
comment 'build and install mock RPMs'
|
|
110
|
-
mock_pkg_dir = '/home/build_user/host_files/spec/acceptance/files/mock_packages'
|
|
111
|
-
on hosts, %Q[#{run_cmd} "cd #{mock_pkg_dir}; rm -rf pkg"]
|
|
112
|
-
on hosts, %Q[#{run_cmd} "cd #{mock_pkg_dir}; bash rpmbuild.sh simp-adapter.spec"]
|
|
113
|
-
on hosts, %Q[#{run_cmd} "cd #{mock_pkg_dir}; bash rpmbuild.sh pupmod-puppetlabs-stdlib.spec"]
|
|
114
|
-
on hosts, %Q[#{run_cmd} "cd #{mock_pkg_dir}; bash rpmbuild.sh pupmod-simp-simplib.spec"]
|
|
115
|
-
on hosts, %Q[#{run_cmd} "cd #{mock_pkg_dir}; bash rpmbuild.sh pupmod-simp-foo.spec"]
|
|
116
|
-
|
|
117
|
-
on hosts, %Q[rpm -Uvh "#{mock_pkg_dir}/pkg/dist/*.noarch.rpm"], acceptable_exit_codes: [0,1]
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
hosts.each do |_host|
|
|
121
|
-
context "on #{_host}" do
|
|
122
|
-
let!(:host){ _host }
|
|
123
|
-
|
|
124
|
-
# This tests standard upgrades, which should
|
|
125
|
-
context 'with normal module RPM upgrades' do
|
|
126
|
-
let(:pkg_root_dir) do
|
|
127
|
-
'/home/build_user/host_files/spec/acceptance/files/package_upgrades'
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
let(:testpackages) do
|
|
131
|
-
[
|
|
132
|
-
'pupmod-simp-testpackage-1.0',
|
|
133
|
-
'pupmod-simp-testpackage-2.0',
|
|
134
|
-
]
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
context 'RPM build' do
|
|
138
|
-
it_should_behave_like('RPM generator')
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
context 'RPM upgrades' do
|
|
142
|
-
it_should_behave_like('an upgrade path that works safely with simp_rpm_helper',
|
|
143
|
-
'pupmod-simp-testpackage-1.0.0-0.noarch.rpm',
|
|
144
|
-
'pupmod-simp-testpackage-2.0.0-0.noarch.rpm')
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
context 'RPM erase' do
|
|
148
|
-
it 'should remove copied files on an erase' do
|
|
149
|
-
on host, 'rpm -e pupmod-simp-testpackage'
|
|
150
|
-
on host, 'ls /opt/test/puppet/code/testpackage', acceptable_exit_codes: [2]
|
|
151
|
-
end
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
context 'RPM transaction state directory' do
|
|
155
|
-
it 'should use /var/lib/rpm-state/simp-adapter for RPM state' do
|
|
156
|
-
on host, 'test -d /var/lib/rpm-state/simp-adapter'
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
it 'should not use /%{_localstatedir}/lib/rpm-state/simp-adapter for RPM state' do
|
|
160
|
-
on host, "test ! -d '/%{_localstatedir}/lib/rpm-state/simp-adapter'"
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
# These tests demonstrate custom RPM triggers that work around the obsolete
|
|
166
|
-
# module RPM upgrate + simp_rpm_helper problem described in SIMP-3895:
|
|
167
|
-
#
|
|
168
|
-
# https://simp-project.atlassian.net/browse/SIMP-3988
|
|
169
|
-
#
|
|
170
|
-
# The expected outcome is that simp_rpm_helper always ensures the correct
|
|
171
|
-
# content is installed after an upgrade, even during after a package has been
|
|
172
|
-
# obsoleted. This is accomplished via %triggerpostun -- <name of old package>
|
|
173
|
-
#
|
|
174
|
-
# old 1.0 -> old 2.0 = no need for a trigger
|
|
175
|
-
# old 1.0 -> new 2.0 = must re-run simp_rpm_helper
|
|
176
|
-
# old 1.0 -> new 3.0 = must re-run simp_rpm_helper
|
|
177
|
-
# old 2.0 -> new 2.0 = must re-run simp_rpm_helper
|
|
178
|
-
# old 2.0 -> new 3.0 = must re-run simp_rpm_helper
|
|
179
|
-
# new 2.0 -> new 3.0 = no need for a trigger
|
|
180
|
-
#
|
|
181
|
-
context 'with module RPMs that are susceptible to SIMP-3895' do
|
|
182
|
-
let(:pkg_root_dir) do
|
|
183
|
-
'/home/build_user/host_files/spec/acceptance/files/custom_scriptlet_triggers'
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
let(:testpackages) do
|
|
187
|
-
[
|
|
188
|
-
'pupmod-old-package-1.0',
|
|
189
|
-
'pupmod-old-package-2.0',
|
|
190
|
-
'pupmod-old-package-2.2',
|
|
191
|
-
'pupmod-new-package-2.1',
|
|
192
|
-
'pupmod-new-package-3.0',
|
|
193
|
-
]
|
|
194
|
-
end
|
|
195
|
-
|
|
196
|
-
context 'RPM build' do
|
|
197
|
-
it_should_behave_like('RPM generator')
|
|
198
|
-
end
|
|
199
|
-
|
|
200
|
-
context 'RPM upgrades' do
|
|
201
|
-
it_should_behave_like('an upgrade path that works safely with simp_rpm_helper',
|
|
202
|
-
'pupmod-old-package-1.0.0-0.noarch.rpm',
|
|
203
|
-
'pupmod-old-package-2.0.0-0.noarch.rpm')
|
|
204
|
-
|
|
205
|
-
it_should_behave_like('an upgrade path that works safely with simp_rpm_helper',
|
|
206
|
-
'pupmod-old-package-1.0.0-0.noarch.rpm',
|
|
207
|
-
'pupmod-new-package-2.1.0-0.noarch.rpm')
|
|
208
|
-
|
|
209
|
-
it_should_behave_like('an upgrade path that works safely with simp_rpm_helper',
|
|
210
|
-
'pupmod-new-package-2.1.0-0.noarch.rpm',
|
|
211
|
-
'pupmod-old-package-2.2.0-0.noarch.rpm')
|
|
212
|
-
|
|
213
|
-
it_should_behave_like('an upgrade path that works safely with simp_rpm_helper',
|
|
214
|
-
'pupmod-old-package-1.0.0-0.noarch.rpm',
|
|
215
|
-
'pupmod-new-package-3.0.0-0.noarch.rpm')
|
|
216
|
-
|
|
217
|
-
it_should_behave_like('an upgrade path that works safely with simp_rpm_helper',
|
|
218
|
-
'pupmod-old-package-2.0.0-0.noarch.rpm',
|
|
219
|
-
'pupmod-new-package-2.1.0-0.noarch.rpm')
|
|
220
|
-
|
|
221
|
-
it_should_behave_like('an upgrade path that works safely with simp_rpm_helper',
|
|
222
|
-
'pupmod-old-package-2.0.0-0.noarch.rpm',
|
|
223
|
-
'pupmod-new-package-3.0.0-0.noarch.rpm')
|
|
224
|
-
|
|
225
|
-
it_should_behave_like('an upgrade path that works safely with simp_rpm_helper',
|
|
226
|
-
'pupmod-old-package-2.2.0-0.noarch.rpm',
|
|
227
|
-
'pupmod-new-package-3.0.0-0.noarch.rpm')
|
|
228
|
-
|
|
229
|
-
it_should_behave_like('an upgrade path that works safely with simp_rpm_helper',
|
|
230
|
-
'pupmod-new-package-2.1.0-0.noarch.rpm',
|
|
231
|
-
'pupmod-new-package-3.0.0-0.noarch.rpm')
|
|
232
|
-
end
|
|
233
|
-
end
|
|
234
|
-
end
|
|
235
|
-
end
|
|
236
|
-
end
|