omnibus 4.0.0.beta.1 → 4.0.0.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/docs/Building on RHEL.md +1 -0
- data/lib/omnibus/builder.rb +48 -1
- data/lib/omnibus/config.rb +13 -0
- data/lib/omnibus/digestable.rb +2 -2
- data/lib/omnibus/exceptions.rb +21 -0
- data/lib/omnibus/fetchers/git_fetcher.rb +75 -9
- data/lib/omnibus/fetchers/net_fetcher.rb +5 -3
- data/lib/omnibus/generator.rb +0 -13
- data/{resources/bff/postinstall.sh → lib/omnibus/generator_files/package_scripts/makeselfinst.erb} +0 -0
- data/lib/omnibus/packagers/base.rb +25 -1
- data/lib/omnibus/packagers/bff.rb +99 -12
- data/lib/omnibus/packagers/deb.rb +10 -8
- data/lib/omnibus/packagers/makeself.rb +24 -16
- data/lib/omnibus/packagers/msi.rb +6 -5
- data/lib/omnibus/packagers/pkg.rb +59 -10
- data/lib/omnibus/packagers/rpm.rb +42 -25
- data/lib/omnibus/packagers/solaris.rb +5 -5
- data/lib/omnibus/project.rb +54 -5
- data/lib/omnibus/software.rb +37 -39
- data/lib/omnibus/version.rb +1 -1
- data/omnibus.gemspec +1 -0
- data/resources/bff/gen.template.erb +3 -2
- data/resources/rpm/signing.erb +1 -1
- data/spec/functional/builder_spec.rb +75 -3
- data/spec/functional/fetchers/git_fetcher_spec.rb +31 -2
- data/spec/support/examples.rb +8 -2
- data/spec/support/git_helpers.rb +8 -0
- data/spec/unit/builder_spec.rb +6 -0
- data/spec/unit/config_spec.rb +1 -0
- data/spec/unit/generator_spec.rb +0 -12
- data/spec/unit/packagers/base_spec.rb +16 -0
- data/spec/unit/packagers/bff_spec.rb +58 -5
- data/spec/unit/packagers/deb_spec.rb +15 -3
- data/spec/unit/packagers/makeself_spec.rb +56 -9
- data/spec/unit/packagers/pkg_spec.rb +57 -4
- data/spec/unit/packagers/rpm_spec.rb +38 -23
- data/spec/unit/project_spec.rb +16 -5
- data/spec/unit/software_spec.rb +0 -1
- metadata +18 -6
- data/resources/bff/unpostinstall.sh +0 -0
- data/resources/makeself/post_extract.sh.erb +0 -27
data/spec/support/git_helpers.rb
CHANGED
@@ -33,6 +33,14 @@ module Omnibus
|
|
33
33
|
git %|remote add origin "#{remote_url}"|
|
34
34
|
git %|push origin master|
|
35
35
|
|
36
|
+
options[:annotated_tags].each do |tag|
|
37
|
+
File.open('tag', 'w') { |f| f.write(tag) }
|
38
|
+
git %|add tag|
|
39
|
+
git %|commit -am "Create tag #{tag}"|
|
40
|
+
git %|tag "#{tag}" -m "#{tag}"|
|
41
|
+
git %|push origin "#{tag}"|
|
42
|
+
end if options[:annotated_tags]
|
43
|
+
|
36
44
|
options[:tags].each do |tag|
|
37
45
|
File.open('tag', 'w') { |f| f.write(tag) }
|
38
46
|
git %|add tag|
|
data/spec/unit/builder_spec.rb
CHANGED
@@ -48,6 +48,12 @@ module Omnibus
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
+
describe '#appbundle' do
|
52
|
+
it 'is a DSL method' do
|
53
|
+
expect(subject).to have_exposed_method(:appbundle)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
51
57
|
describe '#block' do
|
52
58
|
it 'is a DSL method' do
|
53
59
|
expect(subject).to have_exposed_method(:block)
|
data/spec/unit/config_spec.rb
CHANGED
@@ -41,6 +41,7 @@ module Omnibus
|
|
41
41
|
include_examples 'a configurable', :append_timestamp, true
|
42
42
|
include_examples 'a configurable', :build_retries, 0
|
43
43
|
include_examples 'a configurable', :use_git_caching, true
|
44
|
+
include_examples 'a configurable', :fetcher_read_timeout, 60
|
44
45
|
|
45
46
|
describe '#workers' do
|
46
47
|
context 'when the Ohai data is not present' do
|
data/spec/unit/generator_spec.rb
CHANGED
@@ -53,8 +53,6 @@ module Omnibus
|
|
53
53
|
|
54
54
|
expect(structure).to include(*%w(
|
55
55
|
omnibus-name/resources/bff/gen.template.erb
|
56
|
-
omnibus-name/resources/bff/postinstall.sh
|
57
|
-
omnibus-name/resources/bff/unpostinstall.sh
|
58
56
|
))
|
59
57
|
end
|
60
58
|
end
|
@@ -82,16 +80,6 @@ module Omnibus
|
|
82
80
|
end
|
83
81
|
end
|
84
82
|
|
85
|
-
context 'with the --makeself-assets flag' do
|
86
|
-
it 'generates the proper file structure' do
|
87
|
-
Generator.new(['name'], path: tmp_path, makeself_assets: true).invoke_all
|
88
|
-
|
89
|
-
expect(structure).to include(*%w(
|
90
|
-
omnibus-name/resources/makeself/post_extract.sh.erb
|
91
|
-
))
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
83
|
context 'with the --msi-assets flag' do
|
96
84
|
it 'generates the proper file structure' do
|
97
85
|
Generator.new(['name'], path: tmp_path, msi_assets: true).invoke_all
|
@@ -71,6 +71,22 @@ module Omnibus
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
+
describe '#install_dir' do
|
75
|
+
it 'is a DSL method' do
|
76
|
+
expect(subject).to have_exposed_method(:install_dir)
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'returns the project instances install_dir' do
|
80
|
+
expect(subject.install_dir).to eq('/opt/project')
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe '#windows_safe_path' do
|
85
|
+
it 'is a DSL method' do
|
86
|
+
expect(subject).to have_exposed_method(:windows_safe_path)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
74
90
|
describe '#run!' do
|
75
91
|
before do
|
76
92
|
allow(subject).to receive(:remove_directory)
|
@@ -25,6 +25,7 @@ module Omnibus
|
|
25
25
|
|
26
26
|
allow(subject).to receive(:staging_dir).and_return(staging_dir)
|
27
27
|
create_directory(staging_dir)
|
28
|
+
create_directory(subject.scripts_staging_dir)
|
28
29
|
end
|
29
30
|
|
30
31
|
describe '#id' do
|
@@ -43,6 +44,41 @@ module Omnibus
|
|
43
44
|
end
|
44
45
|
end
|
45
46
|
|
47
|
+
describe '#scripts_install_dir' do
|
48
|
+
it 'is nested inside the project install_dir' do
|
49
|
+
expect(subject.scripts_install_dir).to eq("#{project.install_dir}/embedded/share/installp")
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe '#scripts_staging_dir' do
|
54
|
+
it 'is nested inside the staging_dir' do
|
55
|
+
expect(subject.scripts_staging_dir).to eq("#{staging_dir}#{subject.scripts_install_dir}")
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe '#write_scripts' do
|
60
|
+
context 'when scripts are given' do
|
61
|
+
let(:scripts) { %w( preinst postinst prerm postrm ) }
|
62
|
+
before do
|
63
|
+
scripts.each do |script_name|
|
64
|
+
create_file("#{project_root}/package-scripts/project/#{script_name}") do
|
65
|
+
"Contents of #{script_name}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'writes the scripts into scripts staging dir' do
|
71
|
+
subject.write_scripts
|
72
|
+
|
73
|
+
scripts.each do |script_name|
|
74
|
+
script_file = "#{subject.scripts_staging_dir}/#{script_name}"
|
75
|
+
contents = File.read(script_file)
|
76
|
+
expect(contents).to include("Contents of #{script_name}")
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
46
82
|
describe '#write_gen_template' do
|
47
83
|
before do
|
48
84
|
allow(subject).to receive(:safe_architecture).and_return('x86_64')
|
@@ -67,8 +103,6 @@ module Omnibus
|
|
67
103
|
expect(contents).to include(" Fileset VRMF: 1.2.3.2")
|
68
104
|
expect(contents).to include(" Fileset Description: The full stack of project")
|
69
105
|
expect(contents).to include(" USRLIBLPPFiles")
|
70
|
-
expect(contents).to include(" Configuration Script:")
|
71
|
-
expect(contents).to include(" Unconfiguration Script:")
|
72
106
|
expect(contents).to include(" EOUSRLIBLPPFiles")
|
73
107
|
expect(contents).to include(" Bosboot required: N")
|
74
108
|
expect(contents).to include(" License agreement acceptance required: N")
|
@@ -98,6 +132,25 @@ module Omnibus
|
|
98
132
|
expect(contents).to include("/file2")
|
99
133
|
end
|
100
134
|
end
|
135
|
+
|
136
|
+
context 'when script files are present' do
|
137
|
+
before do
|
138
|
+
create_file("#{subject.scripts_staging_dir}/preinst")
|
139
|
+
create_file("#{subject.scripts_staging_dir}/postinst")
|
140
|
+
create_file("#{subject.scripts_staging_dir}/prerm")
|
141
|
+
create_file("#{subject.scripts_staging_dir}/postrm")
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'writes them into the template' do
|
145
|
+
subject.write_gen_template
|
146
|
+
contents = File.read(gen_file)
|
147
|
+
|
148
|
+
expect(contents).to include(" Pre-installation Script: #{subject.scripts_install_dir}/preinst")
|
149
|
+
expect(contents).to include(" Post-installation Script: #{subject.scripts_install_dir}/postinst")
|
150
|
+
expect(contents).to include(" Pre_rm Script: #{subject.scripts_install_dir}/prerm")
|
151
|
+
expect(contents).to include(" Unconfiguration Script: #{subject.scripts_install_dir}/postrm")
|
152
|
+
end
|
153
|
+
end
|
101
154
|
end
|
102
155
|
|
103
156
|
describe '#create_bff_file' do
|
@@ -118,10 +171,10 @@ module Omnibus
|
|
118
171
|
end
|
119
172
|
end
|
120
173
|
|
121
|
-
describe '#
|
174
|
+
describe '#safe_base_package_name' do
|
122
175
|
context 'when the project name is "safe"' do
|
123
176
|
it 'returns the value without logging a message' do
|
124
|
-
expect(subject.
|
177
|
+
expect(subject.safe_base_package_name).to eq('project')
|
125
178
|
expect(subject).to_not receive(:log)
|
126
179
|
end
|
127
180
|
end
|
@@ -131,7 +184,7 @@ module Omnibus
|
|
131
184
|
|
132
185
|
it 'returns the value while logging a message' do
|
133
186
|
output = capture_logging do
|
134
|
-
expect(subject.
|
187
|
+
expect(subject.safe_base_package_name).to eq('pro-ject123.for-realz-2')
|
135
188
|
end
|
136
189
|
|
137
190
|
expect(output).to include("The `name' compontent of BFF package names can only include")
|
@@ -247,10 +247,10 @@ module Omnibus
|
|
247
247
|
end
|
248
248
|
end
|
249
249
|
|
250
|
-
describe '#
|
250
|
+
describe '#safe_base_package_name' do
|
251
251
|
context 'when the project name is "safe"' do
|
252
252
|
it 'returns the value without logging a message' do
|
253
|
-
expect(subject.
|
253
|
+
expect(subject.safe_base_package_name).to eq('project')
|
254
254
|
expect(subject).to_not receive(:log)
|
255
255
|
end
|
256
256
|
end
|
@@ -260,7 +260,7 @@ module Omnibus
|
|
260
260
|
|
261
261
|
it 'returns the value while logging a message' do
|
262
262
|
output = capture_logging do
|
263
|
-
expect(subject.
|
263
|
+
expect(subject.safe_base_package_name).to eq('Pro-ject123.for-realz-2')
|
264
264
|
end
|
265
265
|
|
266
266
|
expect(output).to include("The `name' compontent of Debian package names can only include")
|
@@ -319,6 +319,18 @@ module Omnibus
|
|
319
319
|
expect(subject.safe_architecture).to eq('i386')
|
320
320
|
end
|
321
321
|
end
|
322
|
+
|
323
|
+
context 'when i686' do
|
324
|
+
before do
|
325
|
+
stub_ohai(platform: 'ubuntu', version: '12.04') do |data|
|
326
|
+
data['kernel']['machine'] = 'i686'
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
330
|
+
it 'returns i386' do
|
331
|
+
expect(subject.safe_architecture).to eq('i386')
|
332
|
+
end
|
333
|
+
end
|
322
334
|
end
|
323
335
|
end
|
324
336
|
end
|
@@ -43,19 +43,66 @@ module Omnibus
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
describe '#
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
46
|
+
describe '#write_scripts' do
|
47
|
+
before do
|
48
|
+
create_file("#{project_root}/package-scripts/project/makeselfinst") { 'Contents of makeselfinst' }
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'copies the scripts into the STAGING dir' do
|
52
|
+
subject.write_scripts
|
53
|
+
expect("#{staging_dir}/makeselfinst").to be_a_file
|
51
54
|
end
|
52
55
|
|
53
56
|
it 'has the correct content' do
|
54
|
-
subject.
|
55
|
-
contents = File.read("#{staging_dir}/
|
57
|
+
subject.write_scripts
|
58
|
+
contents = File.read("#{staging_dir}/makeselfinst")
|
59
|
+
|
60
|
+
expect(contents).to include('Contents of makeselfinst')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe '#write_scripts' do
|
65
|
+
context 'when scripts are given' do
|
66
|
+
let(:scripts) { %w( makeselfinst ) }
|
67
|
+
before do
|
68
|
+
scripts.each do |script_name|
|
69
|
+
create_file("#{project_root}/package-scripts/project/#{script_name}") do
|
70
|
+
"Contents of #{script_name}"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'writes the scripts into the staging dir' do
|
76
|
+
subject.write_scripts
|
77
|
+
|
78
|
+
scripts.each do |script_name|
|
79
|
+
script_file = "#{staging_dir}/#{script_name}"
|
80
|
+
contents = File.read(script_file)
|
81
|
+
expect(contents).to include("Contents of #{script_name}")
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context 'when scripts with default omnibus naming are given' do
|
87
|
+
let(:default_scripts) { %w( postinst ) }
|
88
|
+
before do
|
89
|
+
default_scripts.each do |script_name|
|
90
|
+
create_file("#{project_root}/package-scripts/project/#{script_name}") do
|
91
|
+
"Contents of #{script_name}"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'writes the scripts into the staging dir' do
|
97
|
+
subject.write_scripts
|
56
98
|
|
57
|
-
|
58
|
-
|
99
|
+
default_scripts.each do |script_name|
|
100
|
+
mapped_name = Packager::Makeself::SCRIPT_MAP[script_name.to_sym]
|
101
|
+
script_file = "#{staging_dir}/#{mapped_name}"
|
102
|
+
contents = File.read(script_file)
|
103
|
+
expect(contents).to include("Contents of #{script_name}")
|
104
|
+
end
|
105
|
+
end
|
59
106
|
end
|
60
107
|
end
|
61
108
|
|
@@ -27,6 +27,7 @@ module Omnibus
|
|
27
27
|
|
28
28
|
allow(subject).to receive(:staging_dir).and_return(staging_dir)
|
29
29
|
create_directory(staging_dir)
|
30
|
+
create_directory("#{staging_dir}/Scripts")
|
30
31
|
end
|
31
32
|
|
32
33
|
describe 'DSL' do
|
@@ -57,13 +58,65 @@ module Omnibus
|
|
57
58
|
end
|
58
59
|
end
|
59
60
|
|
61
|
+
describe '#scripts_dir' do
|
62
|
+
it 'is nested inside the staging_dir' do
|
63
|
+
expect(subject.scripts_dir).to eq("#{staging_dir}/Scripts")
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe '#write_scripts' do
|
68
|
+
context 'when scripts are given' do
|
69
|
+
let(:scripts) { %w( preinstall postinstall ) }
|
70
|
+
before do
|
71
|
+
scripts.each do |script_name|
|
72
|
+
create_file("#{project_root}/package-scripts/project/#{script_name}") do
|
73
|
+
"Contents of #{script_name}"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'writes the scripts into scripts staging dir' do
|
79
|
+
subject.write_scripts
|
80
|
+
|
81
|
+
scripts.each do |script_name|
|
82
|
+
script_file = "#{staging_dir}/Scripts/#{script_name}"
|
83
|
+
contents = File.read(script_file)
|
84
|
+
expect(contents).to include("Contents of #{script_name}")
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context 'when scripts with default omnibus naming are given' do
|
90
|
+
let(:default_scripts) { %w( preinst postinst ) }
|
91
|
+
before do
|
92
|
+
default_scripts.each do |script_name|
|
93
|
+
create_file("#{project_root}/package-scripts/project/#{script_name}") do
|
94
|
+
"Contents of #{script_name}"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'writes the scripts into scripts staging dir' do
|
100
|
+
subject.write_scripts
|
101
|
+
|
102
|
+
default_scripts.each do |script_name|
|
103
|
+
mapped_name = Packager::PKG::SCRIPT_MAP[script_name.to_sym]
|
104
|
+
script_file = "#{staging_dir}/Scripts/#{mapped_name}"
|
105
|
+
contents = File.read(script_file)
|
106
|
+
expect(contents).to include("Contents of #{script_name}")
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
|
60
113
|
describe '#build_component_pkg' do
|
61
114
|
it 'executes the pkgbuild command' do
|
62
115
|
expect(subject).to receive(:shellout!).with <<-EOH.gsub(/^ {10}/, '')
|
63
116
|
pkgbuild \\
|
64
117
|
--identifier "com.getchef.project" \\
|
65
118
|
--version "1.2.3" \\
|
66
|
-
--scripts "#{
|
119
|
+
--scripts "#{staging_dir}/Scripts" \\
|
67
120
|
--root "/opt/project" \\
|
68
121
|
--install-location "/opt/project" \\
|
69
122
|
"project-core.pkg"
|
@@ -138,10 +191,10 @@ module Omnibus
|
|
138
191
|
end
|
139
192
|
end
|
140
193
|
|
141
|
-
describe '#
|
194
|
+
describe '#safe_base_package_name' do
|
142
195
|
context 'when the project name is "safe"' do
|
143
196
|
it 'returns the value without logging a message' do
|
144
|
-
expect(subject.
|
197
|
+
expect(subject.safe_base_package_name).to eq('project')
|
145
198
|
expect(subject).to_not receive(:log)
|
146
199
|
end
|
147
200
|
end
|
@@ -151,7 +204,7 @@ module Omnibus
|
|
151
204
|
|
152
205
|
it 'returns the value while logging a message' do
|
153
206
|
output = capture_logging do
|
154
|
-
expect(subject.
|
207
|
+
expect(subject.safe_base_package_name).to eq('project123forrealz2')
|
155
208
|
end
|
156
209
|
|
157
210
|
expect(output).to include("The `name' compontent of Mac package names can only include")
|
@@ -153,10 +153,34 @@ module Omnibus
|
|
153
153
|
end
|
154
154
|
|
155
155
|
context 'when scripts are given' do
|
156
|
+
let(:scripts) { %w( pre post preun postun verifyscript pretans posttrans ) }
|
157
|
+
|
158
|
+
before do
|
159
|
+
scripts.each do |script_name|
|
160
|
+
create_file("#{project_root}/package-scripts/project/#{script_name}") do
|
161
|
+
"Contents of #{script_name}"
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
it 'writes the scripts into the spec' do
|
167
|
+
subject.write_rpm_spec
|
168
|
+
contents = File.read(spec_file)
|
169
|
+
|
170
|
+
scripts.each do |script_name|
|
171
|
+
expect(contents).to include("%#{script_name}")
|
172
|
+
expect(contents).to include("Contents of #{script_name}")
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
context 'when scripts with default omnibus naming are given' do
|
178
|
+
let(:default_scripts) { %w( preinst postinst prerm postrm ) }
|
179
|
+
|
156
180
|
before do
|
157
|
-
|
158
|
-
create_file("#{project_root}/package-scripts/project/#{
|
159
|
-
"Contents of #{
|
181
|
+
default_scripts.each do |default_name|
|
182
|
+
create_file("#{project_root}/package-scripts/project/#{default_name}") do
|
183
|
+
"Contents of #{default_name}"
|
160
184
|
end
|
161
185
|
end
|
162
186
|
end
|
@@ -165,20 +189,11 @@ module Omnibus
|
|
165
189
|
subject.write_rpm_spec
|
166
190
|
contents = File.read(spec_file)
|
167
191
|
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
expect(contents).to include("Contents of preun")
|
174
|
-
expect(contents).to include("%postun")
|
175
|
-
expect(contents).to include("Contents of postun")
|
176
|
-
expect(contents).to include("%verifyscript")
|
177
|
-
expect(contents).to include("Contents of verifyscript")
|
178
|
-
expect(contents).to include("%pretans")
|
179
|
-
expect(contents).to include("Contents of pretans")
|
180
|
-
expect(contents).to include("%posttrans")
|
181
|
-
expect(contents).to include("Contents of posttrans")
|
192
|
+
default_scripts.each do |script_name|
|
193
|
+
mapped_name = Packager::RPM::SCRIPT_MAP[script_name.to_sym]
|
194
|
+
expect(contents).to include("%#{mapped_name}")
|
195
|
+
expect(contents).to include("Contents of #{script_name}")
|
196
|
+
end
|
182
197
|
end
|
183
198
|
end
|
184
199
|
|
@@ -265,10 +280,10 @@ module Omnibus
|
|
265
280
|
end
|
266
281
|
end
|
267
282
|
|
268
|
-
describe '#
|
283
|
+
describe '#safe_base_package_name' do
|
269
284
|
context 'when the project name is "safe"' do
|
270
285
|
it 'returns the value without logging a message' do
|
271
|
-
expect(subject.
|
286
|
+
expect(subject.safe_base_package_name).to eq('project')
|
272
287
|
expect(subject).to_not receive(:log)
|
273
288
|
end
|
274
289
|
end
|
@@ -278,7 +293,7 @@ module Omnibus
|
|
278
293
|
|
279
294
|
it 'returns the value while logging a message' do
|
280
295
|
output = capture_logging do
|
281
|
-
expect(subject.
|
296
|
+
expect(subject.safe_base_package_name).to eq('pro-ject123.for-realz-2')
|
282
297
|
end
|
283
298
|
|
284
299
|
expect(output).to include("The `name' compontent of RPM package names can only include")
|
@@ -301,14 +316,14 @@ module Omnibus
|
|
301
316
|
end
|
302
317
|
|
303
318
|
context 'when the project build_version has invalid characters' do
|
304
|
-
before { project.build_version("1.2$alpha.##__2") }
|
319
|
+
before { project.build_version("1.2-pre$alpha.##__2") }
|
305
320
|
|
306
321
|
it 'returns the value while logging a message' do
|
307
322
|
output = capture_logging do
|
308
|
-
expect(subject.safe_version).to eq('1.
|
323
|
+
expect(subject.safe_version).to eq('1.2_pre$alpha.##__2')
|
309
324
|
end
|
310
325
|
|
311
|
-
expect(output).to include("The `version'
|
326
|
+
expect(output).to include("The `version' component of RPM package names can only include")
|
312
327
|
end
|
313
328
|
end
|
314
329
|
end
|