openvox 9.0.0.pre.rc1 → 9.0.0.pre.rc2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ef1491733287f7ad6ddc499fcfcca54685fe898227d9e68f173e9f4f3095b45
4
- data.tar.gz: b28cc28f298639589a13cbc065ea1e91401712231beaf0d0a305f5a73d8befa6
3
+ metadata.gz: f29edf50ba8dd2fc88054cd64eea9e92ebd6eb453d2fcb13b8a27423a97030f4
4
+ data.tar.gz: 64407b9b3b0b1a3440b2e3939642b0b5500dd60114ee4cdcd5f8600ab2ae38fe
5
5
  SHA512:
6
- metadata.gz: d8076bff9b0a844d6de19d4b1e5f638be62a716c120671a3350555583a2cd13ec583367903175bdf078da02625b8a92e56b7740ea41474556e77c27c81a81578
7
- data.tar.gz: 4944cd94e1812f9d09f0ec2ab8c62d76855f4743007b9b4e947197f094ceb28e92a4a8ffba2e84666f2a51336e47104017d37c09b94b82fa25c3e47b9338a18f
6
+ metadata.gz: 2695f5441ae64957e961fd90ab0cbd4fe2a9c3a7ae4e3a9473116207c25b7f2860cb54fdf1ca688ed550ab87626cb353d09c564a84c96ee680757c8c2ed2bc55
7
+ data.tar.gz: d92d00bab1a6e223d09b2931ab34b8b5165e0fee80b0d1cfd24e74400ed5d280fdc7285b3176da02ca9f8b893276bbfd5ea6c93c7611d5c847b6ef98dfac9432
data/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [9.0.0-rc2](https://github.com/openvoxproject/openvox/tree/9.0.0-rc2) (2026-09-25)
6
+
7
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/9.0.0-rc1...9.0.0-rc2)
8
+
9
+ **Implemented enhancements:**
10
+
11
+ - openfact: update 6.1.0 -\> 6.2.0 [\#677](https://github.com/OpenVoxProject/openvox/pull/677) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
12
+ - Promote openfact 6.1.0 into main [\#668](https://github.com/OpenVoxProject/openvox/pull/668) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
13
+
14
+ **Fixed bugs:**
15
+
16
+ - \[Bug\]: use of "server\_list" \(instead of server\) throws an error [\#658](https://github.com/OpenVoxProject/openvox/issues/658)
17
+ - Wait for certificates in the forked child, not in the daemon [\#683](https://github.com/OpenVoxProject/openvox/pull/683) ([silug](https://github.com/silug))
18
+ - Only require the server setting when no explicit server is given [\#659](https://github.com/OpenVoxProject/openvox/pull/659) ([silug](https://github.com/silug))
19
+ - print "Loading facts" just once [\#656](https://github.com/OpenVoxProject/openvox/pull/656) ([bastelfreak](https://github.com/bastelfreak))
20
+ - Pin json below 3 to unblock CI [\#655](https://github.com/OpenVoxProject/openvox/pull/655) ([miharp](https://github.com/miharp))
21
+ - Do not swallow RunTimeoutError while collecting facts [\#643](https://github.com/OpenVoxProject/openvox/pull/643) ([silug](https://github.com/silug))
22
+ - Kill the forked agent run if it outlives runtimeout [\#642](https://github.com/OpenVoxProject/openvox/pull/642) ([silug](https://github.com/silug))
23
+
24
+ **Merged pull requests:**
25
+
26
+ - puppet-runtime: Update 2026.09.02.1 -\> 2026.09.24.1 [\#684](https://github.com/OpenVoxProject/openvox/pull/684) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
27
+ - Accept ca\_server and report\_server without server when running as root [\#661](https://github.com/OpenVoxProject/openvox/pull/661) ([silug](https://github.com/silug))
28
+ - Document --environment in puppet agent help [\#653](https://github.com/OpenVoxProject/openvox/pull/653) ([miharp](https://github.com/miharp))
29
+ - Install the service defaults file on Debian [\#645](https://github.com/OpenVoxProject/openvox/pull/645) ([jcharaoui](https://github.com/jcharaoui))
30
+ - Fix systemd unreferenced variable warning on Debian [\#644](https://github.com/OpenVoxProject/openvox/pull/644) ([jcharaoui](https://github.com/jcharaoui))
31
+ - Increase delay affordance in waitforlock test [\#641](https://github.com/OpenVoxProject/openvox/pull/641) ([jcharaoui](https://github.com/jcharaoui))
32
+
5
33
  ## [9.0.0-rc1](https://github.com/openvoxproject/openvox/tree/9.0.0-rc1) (2026-09-04)
6
34
 
7
35
  [Full Changelog](https://github.com/openvoxproject/openvox/compare/9.0.0-beta2...9.0.0-rc1)
@@ -95,7 +123,7 @@ All notable changes to this project will be documented in this file.
95
123
 
96
124
  ## [9.0.0-beta1](https://github.com/openvoxproject/openvox/tree/9.0.0-beta1) (2026-07-15)
97
125
 
98
- [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.28.1...9.0.0-beta1)
126
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/9.0.0-alpha2...9.0.0-beta1)
99
127
 
100
128
  **Breaking changes:**
101
129
 
@@ -108,6 +136,8 @@ All notable changes to this project will be documented in this file.
108
136
 
109
137
  **Fixed bugs:**
110
138
 
139
+ - \[Bug\]: ca\_refresh\_interval is not respected — agent refreshes CA on every run when server responds 304 [\#435](https://github.com/OpenVoxProject/openvox/issues/435)
140
+ - \[Bug\]: Puppet 8 introduced a regex node definition regression [\#14](https://github.com/OpenVoxProject/openvox/issues/14)
111
141
  - Update ca\_last\_update/crl\_last\_update on HTTP 304 [\#524](https://github.com/OpenVoxProject/openvox/pull/524) ([bastelfreak](https://github.com/bastelfreak))
112
142
  - Copy input mtime to files generated by puppet generate types [\#522](https://github.com/OpenVoxProject/openvox/pull/522) ([silug](https://github.com/silug))
113
143
  - Tolerate concurrent creation of directories [\#506](https://github.com/OpenVoxProject/openvox/pull/506) ([Sharpie](https://github.com/Sharpie))
@@ -117,6 +147,12 @@ All notable changes to this project will be documented in this file.
117
147
  **Closed issues:**
118
148
 
119
149
  - \[Deprecation\] Fine-Grained `filetimeout` Control [\#345](https://github.com/OpenVoxProject/openvox/issues/345)
150
+ - \[Deprecation\] `Puppet::SSL::Certificate` Class [\#344](https://github.com/OpenVoxProject/openvox/issues/344)
151
+ - \[Deprecation\] PAL Script Evaluation APIs [\#343](https://github.com/OpenVoxProject/openvox/issues/343)
152
+ - \[Deprecation\] `source_permissions` File Parameter [\#340](https://github.com/OpenVoxProject/openvox/issues/340)
153
+ - \[Deprecation\] `pluginsync` Setting [\#339](https://github.com/OpenVoxProject/openvox/issues/339)
154
+ - \[Deprecation\] `configprint` Setting [\#337](https://github.com/OpenVoxProject/openvox/issues/337)
155
+ - \[Deprecation\] `regsubst()` Encoding Argument [\#336](https://github.com/OpenVoxProject/openvox/issues/336)
120
156
 
121
157
  **Merged pull requests:**
122
158
 
@@ -126,27 +162,9 @@ All notable changes to this project will be documented in this file.
126
162
  - Remove source\_permissions deprecation warning [\#418](https://github.com/OpenVoxProject/openvox/pull/418) ([silug](https://github.com/silug))
127
163
  - add runtime deprecation warnings to Puppet::Util ENV wrappers [\#417](https://github.com/OpenVoxProject/openvox/pull/417) ([silug](https://github.com/silug))
128
164
 
129
- ## [8.28.1](https://github.com/openvoxproject/openvox/tree/8.28.1) (2026-07-07)
130
-
131
- [Full Changelog](https://github.com/openvoxproject/openvox/compare/9.0.0-alpha2...8.28.1)
132
-
133
- **Fixed bugs:**
134
-
135
- - \[Bug\]: ca\_refresh\_interval is not respected — agent refreshes CA on every run when server responds 304 [\#435](https://github.com/OpenVoxProject/openvox/issues/435)
136
- - \[Bug\]: Puppet 8 introduced a regex node definition regression [\#14](https://github.com/OpenVoxProject/openvox/issues/14)
137
-
138
- **Closed issues:**
139
-
140
- - \[Deprecation\] `Puppet::SSL::Certificate` Class [\#344](https://github.com/OpenVoxProject/openvox/issues/344)
141
- - \[Deprecation\] PAL Script Evaluation APIs [\#343](https://github.com/OpenVoxProject/openvox/issues/343)
142
- - \[Deprecation\] `source_permissions` File Parameter [\#340](https://github.com/OpenVoxProject/openvox/issues/340)
143
- - \[Deprecation\] `pluginsync` Setting [\#339](https://github.com/OpenVoxProject/openvox/issues/339)
144
- - \[Deprecation\] `configprint` Setting [\#337](https://github.com/OpenVoxProject/openvox/issues/337)
145
- - \[Deprecation\] `regsubst()` Encoding Argument [\#336](https://github.com/OpenVoxProject/openvox/issues/336)
146
-
147
165
  ## [9.0.0-alpha2](https://github.com/openvoxproject/openvox/tree/9.0.0-alpha2) (2026-06-10)
148
166
 
149
- [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.28.0...9.0.0-alpha2)
167
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/9.0.0-alpha1...9.0.0-alpha2)
150
168
 
151
169
  **Breaking changes:**
152
170
 
@@ -169,13 +187,27 @@ All notable changes to this project will be documented in this file.
169
187
  - CI: Use bot account for backports [\#472](https://github.com/OpenVoxProject/openvox/pull/472) ([bastelfreak](https://github.com/bastelfreak))
170
188
  - Add JRuby 10.0.5.0 and 10.1.0.0 to test matrix [\#463](https://github.com/OpenVoxProject/openvox/pull/463) ([silug](https://github.com/silug))
171
189
 
172
- ## [8.28.0](https://github.com/openvoxproject/openvox/tree/8.28.0) (2026-06-10)
190
+ ## [8.28.1](https://github.com/openvoxproject/openvox/tree/8.28.1) (2026-07-07)
191
+
192
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.28.0...8.28.1)
193
+
194
+ **Fixed bugs:**
173
195
 
174
- [Full Changelog](https://github.com/openvoxproject/openvox/compare/9.0.0-alpha1...8.28.0)
196
+ - \[Bug\]: ca\_refresh\_interval is not respected — agent refreshes CA on every run when server responds 304 [\#435](https://github.com/OpenVoxProject/openvox/issues/435)
197
+ - \[Bug\]: Puppet 8 introduced a regex node definition regression [\#14](https://github.com/OpenVoxProject/openvox/issues/14)
175
198
 
176
- ## [9.0.0-alpha1](https://github.com/openvoxproject/openvox/tree/9.0.0-alpha1) (2026-05-20)
199
+ **Closed issues:**
200
+
201
+ - \[Deprecation\] `Puppet::SSL::Certificate` Class [\#344](https://github.com/OpenVoxProject/openvox/issues/344)
202
+ - \[Deprecation\] PAL Script Evaluation APIs [\#343](https://github.com/OpenVoxProject/openvox/issues/343)
203
+ - \[Deprecation\] `source_permissions` File Parameter [\#340](https://github.com/OpenVoxProject/openvox/issues/340)
204
+ - \[Deprecation\] `pluginsync` Setting [\#339](https://github.com/OpenVoxProject/openvox/issues/339)
205
+ - \[Deprecation\] `configprint` Setting [\#337](https://github.com/OpenVoxProject/openvox/issues/337)
206
+ - \[Deprecation\] `regsubst()` Encoding Argument [\#336](https://github.com/OpenVoxProject/openvox/issues/336)
207
+
208
+ ## [8.28.0](https://github.com/openvoxproject/openvox/tree/8.28.0) (2026-06-10)
177
209
 
178
- [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.27.0...9.0.0-alpha1)
210
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.27.0...8.28.0)
179
211
 
180
212
  **Implemented enhancements:**
181
213
 
data/Gemfile CHANGED
@@ -58,7 +58,7 @@ group(:test) do
58
58
  # The source gemspec has the generic ruby platform, so declare this explicitly for Windows development and CI.
59
59
  gem 'win32ole', '>= 1.8', '< 2.0', require: false, platforms: [:windows]
60
60
 
61
- gem 'rubocop', '~> 1.90.0', require: false, platforms: [:ruby]
61
+ gem 'rubocop', '~> 1.91.0', require: false, platforms: [:ruby]
62
62
  gem 'rubocop-i18n', '~> 3.0', require: false, platforms: [:ruby]
63
63
  gem 'rubocop-performance', '~> 1.0', require: false, platforms: [:ruby]
64
64
  gem 'rubocop-rake', '~> 0.6', require: false, platforms: [:ruby]
@@ -79,7 +79,7 @@ group(:packaging) do
79
79
  gem 'vanagon', *location_for(ENV['VANAGON_LOCATION'] || 'https://github.com/openvoxproject/vanagon#main')
80
80
  end
81
81
  gem 'artifactory'
82
- gem 'json'
82
+ gem 'json', '< 3'
83
83
  gem 'octokit'
84
84
  end
85
85
 
data/Gemfile.lock CHANGED
@@ -1,6 +1,6 @@
1
1
  GIT
2
2
  remote: https://github.com/openvoxproject/vanagon
3
- revision: ba96f5cad60c6962e29111fa7d0a587065a233b7
3
+ revision: bc75ba5a3279eed484270ab088bf6e2020fb8946
4
4
  branch: main
5
5
  specs:
6
6
  vanagon (1.3.1)
@@ -14,7 +14,7 @@ GIT
14
14
  PATH
15
15
  remote: .
16
16
  specs:
17
- openvox (9.0.0.pre.rc1)
17
+ openvox (9.0.0.pre.rc2)
18
18
  base64 (>= 0.1, < 0.4)
19
19
  benchmark (>= 0.2, < 0.6)
20
20
  concurrent-ruby (~> 1.0)
@@ -37,7 +37,7 @@ GEM
37
37
  base64
38
38
  nkf
39
39
  rexml
40
- activesupport (8.1.3.1)
40
+ activesupport (8.1.4)
41
41
  base64
42
42
  bigdecimal
43
43
  concurrent-ruby (~> 1.0, >= 1.3.1)
@@ -54,32 +54,32 @@ GEM
54
54
  public_suffix (>= 2.0.2, < 8.0)
55
55
  artifactory (3.0.17)
56
56
  ast (2.4.3)
57
- async (2.45.1)
57
+ async (2.46.0)
58
58
  console (~> 1.29)
59
59
  fiber-annotation
60
60
  io-event (~> 1.21)
61
- async-http (0.103.0)
61
+ async-http (0.105.0)
62
62
  async (>= 2.35.1)
63
63
  async-pool (~> 0.12)
64
64
  io-endpoint (~> 0.18)
65
65
  io-stream (~> 0.14)
66
- protocol-http (~> 0.66)
66
+ protocol-http (~> 0.72)
67
67
  protocol-http1 (~> 0.41)
68
68
  protocol-http2 (~> 0.28)
69
69
  protocol-url (~> 0.2)
70
- async-http-faraday (0.23.0)
71
- async-http (~> 0.42)
70
+ async-http-faraday (0.24.0)
71
+ async-http (~> 0.99)
72
72
  faraday
73
73
  async-pool (0.12.0)
74
74
  async (>= 2.0)
75
75
  base64 (0.3.0)
76
76
  benchmark (0.5.0)
77
- bigdecimal (4.1.2)
77
+ bigdecimal (4.1.3)
78
78
  build-uri (1.0.1)
79
79
  coderay (1.1.3)
80
80
  concurrent-ruby (1.3.8)
81
81
  connection_pool (3.0.2)
82
- console (1.37.0)
82
+ console (1.38.0)
83
83
  fiber-annotation
84
84
  fiber-local (~> 1.1)
85
85
  json
@@ -96,13 +96,13 @@ GEM
96
96
  drb (2.2.3)
97
97
  erb (6.0.7)
98
98
  erubi (1.13.1)
99
- faraday (2.14.3)
99
+ faraday (2.14.4)
100
100
  faraday-net_http (>= 2.0, < 3.5)
101
101
  json
102
102
  logger
103
103
  faraday-follow_redirects (0.5.0)
104
104
  faraday (>= 1, < 3)
105
- faraday-http-cache (2.7.0)
105
+ faraday-http-cache (3.0.0)
106
106
  faraday (>= 0.8)
107
107
  faraday-net_http (3.4.4)
108
108
  net-http (~> 0.5)
@@ -136,7 +136,7 @@ GEM
136
136
  fast_gettext (>= 2.1, < 5.0)
137
137
  gettext (~> 3.4)
138
138
  locale
139
- git (4.4.3)
139
+ git (4.4.5)
140
140
  activesupport (>= 5.0)
141
141
  addressable (~> 2.8)
142
142
  process_executer (~> 4.1)
@@ -161,7 +161,7 @@ GEM
161
161
  retriable (>= 3.1, < 5.0)
162
162
  google-apis-iamcredentials_v1 (0.28.0)
163
163
  google-apis-core (>= 0.15.0, < 2.a)
164
- google-apis-storage_v1 (0.66.0)
164
+ google-apis-storage_v1 (0.67.0)
165
165
  google-apis-core (>= 0.15.0, < 2.a)
166
166
  google-cloud-core (1.9.0)
167
167
  google-cloud-env (>= 1.0, < 3.a)
@@ -198,10 +198,10 @@ GEM
198
198
  hocon (1.4.0)
199
199
  i18n (1.15.2)
200
200
  concurrent-ruby (~> 1.0)
201
- io-console (0.9.2)
202
- io-endpoint (0.18.0)
201
+ io-console (0.9.4)
202
+ io-endpoint (0.19.0)
203
203
  openssl (>= 3.3.0)
204
- io-event (1.21.1)
204
+ io-event (1.22.1)
205
205
  io-stream (0.14.0)
206
206
  openssl (>= 3.3)
207
207
  irb (1.18.0)
@@ -213,7 +213,7 @@ GEM
213
213
  json-schema (6.2.0)
214
214
  addressable (~> 2.8)
215
215
  bigdecimal (>= 3.1, < 5)
216
- jwt (3.2.0)
216
+ jwt (3.3.0)
217
217
  base64
218
218
  kramdown (2.5.2)
219
219
  rexml (>= 3.4.4)
@@ -233,8 +233,8 @@ GEM
233
233
  minitest (6.0.6)
234
234
  drb (~> 2.0)
235
235
  prism (~> 1.5)
236
- msgpack (1.8.4)
237
- multi_json (1.21.1)
236
+ msgpack (1.8.5)
237
+ multi_json (1.21.2)
238
238
  mustache (1.1.3)
239
239
  net-http (0.9.1)
240
240
  uri (>= 0.11.1)
@@ -258,7 +258,7 @@ GEM
258
258
  octokit (4.25.1)
259
259
  faraday (>= 1, < 3)
260
260
  sawyer (~> 0.9)
261
- openfact (6.0.0)
261
+ openfact (6.2.0)
262
262
  base64 (>= 0.1, < 0.4)
263
263
  benchmark (< 0.6)
264
264
  hocon (~> 1.3)
@@ -286,7 +286,7 @@ GEM
286
286
  retriable (~> 3.1, >= 3.1.2)
287
287
  rexml
288
288
  pandoc-ruby (2.1.10)
289
- parallel (2.1.0)
289
+ parallel (2.2.0)
290
290
  parser (3.3.12.0)
291
291
  ast (~> 2.4.1)
292
292
  racc
@@ -300,13 +300,13 @@ GEM
300
300
  process_executer (4.1.1)
301
301
  track_open_instances (~> 0.1)
302
302
  protocol-hpack (1.5.1)
303
- protocol-http (0.71.0)
303
+ protocol-http (0.72.0)
304
304
  protocol-http1 (0.41.0)
305
305
  protocol-http (~> 0.68)
306
306
  protocol-http2 (0.28.0)
307
307
  protocol-hpack (~> 1.4)
308
308
  protocol-http (~> 0.62)
309
- protocol-url (0.18.0)
309
+ protocol-url (0.19.0)
310
310
  pry (0.16.0)
311
311
  coderay (~> 1.1)
312
312
  method_source (~> 1.0)
@@ -329,13 +329,13 @@ GEM
329
329
  rbs (>= 4.0.0)
330
330
  tsort
331
331
  redis (3.3.5)
332
- regexp_parser (2.12.0)
332
+ regexp_parser (2.13.0)
333
333
  release-metrics (1.1.0)
334
334
  csv
335
335
  docopt
336
336
  reline (0.7.0)
337
337
  io-console (~> 0.5)
338
- representable (3.2.0)
338
+ representable (3.3.0)
339
339
  declarative (< 0.1.0)
340
340
  trailblazer-option (>= 0.1.1, < 0.2.0)
341
341
  uber (< 0.2.0)
@@ -363,7 +363,7 @@ GEM
363
363
  diff-lcs (>= 1.2.0, < 2.0)
364
364
  rspec-support (~> 3.13.0)
365
365
  rspec-support (3.13.7)
366
- rubocop (1.90.0)
366
+ rubocop (1.91.0)
367
367
  json (>= 2.3)
368
368
  language_server-protocol (~> 3.17.0.2)
369
369
  lint_roller (~> 1.1.0)
@@ -416,9 +416,9 @@ GEM
416
416
  tzinfo (2.0.6)
417
417
  concurrent-ruby (~> 1.0)
418
418
  uber (0.1.0)
419
- unicode-display_width (3.2.0)
420
- unicode-emoji (~> 4.1)
421
- unicode-emoji (4.2.0)
419
+ unicode-display_width (3.3.0)
420
+ unicode-emoji (~> 4.3)
421
+ unicode-emoji (4.3.0)
422
422
  uri (1.1.1)
423
423
  vcr (6.4.0)
424
424
  webmock (3.26.4)
@@ -448,7 +448,7 @@ DEPENDENCIES
448
448
  github_changelog_generator (~> 1.18)
449
449
  hiera-eyaml
450
450
  hocon (~> 1.0)
451
- json
451
+ json (< 3)
452
452
  json-schema (>= 2, < 7)
453
453
  memory_profiler
454
454
  minitar (~> 1.0)
@@ -469,7 +469,7 @@ DEPENDENCIES
469
469
  rspec-expectations (~> 3.9, != 3.9.3)
470
470
  rspec-its (~> 2.0)
471
471
  rspec-mocks (< 3.13.3)
472
- rubocop (~> 1.90.0)
472
+ rubocop (~> 1.91.0)
473
473
  rubocop-i18n (~> 3.0)
474
474
  rubocop-performance (~> 1.0)
475
475
  rubocop-rake (~> 0.6)
@@ -486,22 +486,22 @@ DEPENDENCIES
486
486
 
487
487
  CHECKSUMS
488
488
  CFPropertyList (4.0.0) sha256=385e7bbd7c27e176b23415275ca936ca0ece1727e5b890b08e36632076b00aff
489
- activesupport (8.1.3.1) sha256=85458765f25ea48b9019c46b6bb3fa5683197bf4280d9f06710a6e8d7a831376
489
+ activesupport (8.1.4) sha256=891dd3fe43c4fc8391934b237b1189bb1f661c932a84a840043db9d46a4e80df
490
490
  addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
491
491
  artifactory (3.0.17) sha256=3023d5c964c31674090d655a516f38ca75665c15084140c08b7f2841131af263
492
492
  ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
493
- async (2.45.1) sha256=95849f7432eca535146c69f3078dab3c7228d0075ed71f48733f3e585dd7c267
494
- async-http (0.103.0) sha256=137e3d5d419f7d72d5fa33cf04f30232e79c57b690025a650b8f9e48ece8bc41
495
- async-http-faraday (0.23.0) sha256=fd2d3c5225d5289f5c2eafe0324cc12a068e94cde5631efe23c0aa2f9d820def
493
+ async (2.46.0) sha256=34f984733dbf63a997376346451ec995e858cacc3105e86ccfeaf8877b4f490b
494
+ async-http (0.105.0) sha256=55191969d5cf61be5fbc2e0aadd51d77085318ba192a5ff5e12e3aba0826906a
495
+ async-http-faraday (0.24.0) sha256=eb0bf50b19c9784ee39b6bd0b424964269e1b7d5be58392e32fab7a300e327eb
496
496
  async-pool (0.12.0) sha256=5580493dc024bd704dab2ed0bf1307100722e49cbb825c7965f8501194f58506
497
497
  base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
498
498
  benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c
499
- bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
499
+ bigdecimal (4.1.3) sha256=61ebe1e5e559bdc3cc6f2c0ee7f427321fc838f59611c294356eb04d6e21cf66
500
500
  build-uri (1.0.1) sha256=e0ad3add2ee215e69b6b454c59f54603cd42d4003593b1f87c7a9c4c33232e9a
501
501
  coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
502
502
  concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
503
503
  connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
504
- console (1.37.0) sha256=8093b286c2595a063849c098594fee5155ecc7967d36f3aa8cbe7569c8f3efd7
504
+ console (1.38.0) sha256=35b82f59130e95e9be6b832d9e539c8b3988fc192e4a8e9a86ab4922f44ad5de
505
505
  crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e
506
506
  csv (3.3.6) sha256=aba61e7e507a66f03d45cb1f3c4b6359861c3504038b422962875dce099e4456
507
507
  declarative (0.0.20) sha256=8021dd6cb17ab2b61233c56903d3f5a259c5cf43c80ff332d447d395b17d9ff9
@@ -512,9 +512,9 @@ CHECKSUMS
512
512
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
513
513
  erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92
514
514
  erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
515
- faraday (2.14.3) sha256=1882247e6766615c8220b4392bf1d27f6ebb63d8e28267587cef1fb0bf37f278
515
+ faraday (2.14.4) sha256=9bb4408c44621b0dbaaaa39e5dbfc4dbe58cc6751b6eb94d16ae9e1f2f2fab6e
516
516
  faraday-follow_redirects (0.5.0) sha256=5cde93c894b30943a5d2b93c2fe9284216a6b756f7af406a1e55f211d97d10ad
517
- faraday-http-cache (2.7.0) sha256=cd7ac4bbe6c08592ea7af6655f98b2f76c4db0bad31bf40340df5aad719f0d89
517
+ faraday-http-cache (3.0.0) sha256=44e0b5441825b80aa59446fdb0ceb5a1cf83e9f58fc89752b336d87a991c7994
518
518
  faraday-net_http (3.4.4) sha256=0e78af151747ed1b00f33e25973b4bc220d7f16c00c39676817c8b12331eb588
519
519
  faraday-retry (2.4.0) sha256=7b79c48fb7e56526faf247b12d94a680071ff40c9fda7cf1ec1549439ad11ebe
520
520
  fast_gettext (4.1.1) sha256=e8c532f6945b0dc31efb2e91366bd56630bc3ae6a05a4126937124e40366efd8
@@ -534,11 +534,11 @@ CHECKSUMS
534
534
  getoptlong (0.2.1) sha256=fd23f07397b994bf9310d4531cfdb4332629a9b8e8c9c457c32b7edf5bf21ba5
535
535
  gettext (3.5.2) sha256=ada02c59aa7e9f56bd2522faedaed16421dd2f3ddb5fe28628c0be5abcbf3c74
536
536
  gettext-setup (1.1.1) sha256=15ce653696283c9835b0ad9f02f236b9f240cb35facd3341cc62b85d42c6b667
537
- git (4.4.3) sha256=4ba26f619f40eaaa7279e80692e507beb05f24a93154b8f450cd154372d9bbae
537
+ git (4.4.5) sha256=1ee6dfa5ffc4cec038d47ef21a503d160b1d800e97f129a521b2a78dc23b2b62
538
538
  github_changelog_generator (1.18.0) sha256=f6ad4c53a14e8d1e440492f5a7b3d0a4c76e072add568e78b437510b2f02d000
539
539
  google-apis-core (1.2.5) sha256=e21562b5627a0fc6a0c3165e429c3afed0f6a628eaa514e83f7204dda1adff69
540
540
  google-apis-iamcredentials_v1 (0.28.0) sha256=0a92ffe6cc39c569554af2a77a25dfc61519ed8bbb64ab04cffdd352dc5ef106
541
- google-apis-storage_v1 (0.66.0) sha256=fdf6d65d3fc77e7046b3494333a818ece9e2afd763bb161e1a7a9e70cf198351
541
+ google-apis-storage_v1 (0.67.0) sha256=13befc89bf03512783f535d214590f15993b0c56411155fd8090ca607e1b8d20
542
542
  google-cloud-core (1.9.0) sha256=ab55409f51488e8deefb6edcc1ce4771dfb5da2fe7b3bc075709a030c2b682a4
543
543
  google-cloud-env (2.4.0) sha256=01cb35ecee5d1c4d1cd4deaed8bb5bddc838e296bcc2a35c5d1ddd07ce40d28d
544
544
  google-cloud-errors (1.7.0) sha256=6e682f42d89aae08689f36f28495de629d756da076bafff0003bac7f8042ebb3
@@ -550,14 +550,14 @@ CHECKSUMS
550
550
  highline (3.1.2) sha256=67cbd34d19f6ef11a7ee1d82ffab5d36dfd5b3be861f450fc1716c7125f4bb4a
551
551
  hocon (1.4.0) sha256=e71023ed7c56ae780ec34c0ce7789a233bcead08c045d50bc7b3af40f5afcd80
552
552
  i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
553
- io-console (0.9.2) sha256=efa74f891dd03c0939a931dfc6e74c2813d904763d456ea9762b0525e748db08
554
- io-endpoint (0.18.0) sha256=720d186bcd584e8ba490bfc91dab332cc3c5ffee848b5b03894555cb275151aa
555
- io-event (1.21.1) sha256=b3088f89ad67edf9be9fc2f48a5fae0790e92862487551eeb337b49098eb99e6
553
+ io-console (0.9.4) sha256=a403304f32928ee85e56d457b4612ca43f2703b561a3258844992bd24085fbb1
554
+ io-endpoint (0.19.0) sha256=547aaefe9a78bc57fe25f9f7661b460395ebdfda506f70fdf4cc71d2ae5ca578
555
+ io-event (1.22.1) sha256=0dd054cefe4a29f1b8286604f332c14f3208d75f54902961e91e94d45e5e1600
556
556
  io-stream (0.14.0) sha256=07d9b13ea2066ccbbc761fff8d69ad5a31e47561d31e02cc271f3ed9c1a8f1cd
557
557
  irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
558
558
  json (2.21.2) sha256=1f1d3b7cf2b3ba1a69beca0bb6db13d5438b80bff3cd54cdaaa620b9b07c1c6a
559
559
  json-schema (6.2.0) sha256=e8bff46ed845a22c1ab2bd0d7eccf831c01fe23bb3920caa4c74db4306813666
560
- jwt (3.2.0) sha256=5419b1fe37b1da0982bd07051f573a8b8789ab724c2aa7e785e4784a3ed217d7
560
+ jwt (3.3.0) sha256=44cc34fbc341c148233cf66641522b4bce0dfb1ce55e8073f05c56f44f4ee546
561
561
  kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa
562
562
  kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729
563
563
  language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
@@ -570,8 +570,8 @@ CHECKSUMS
570
570
  mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
571
571
  minitar (1.1.0) sha256=38db0cfb6f3801017946cdcd8dc53f2cf3fd41ff752892312bf9a1639c9ea23e
572
572
  minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1
573
- msgpack (1.8.4) sha256=4411c22d350dd1c20250f7eada3cca2695438c2f769cf0782f0cd065d90a3e7b
574
- multi_json (1.21.1) sha256=e6126a31808e3b4d19f483c775ceac34df190dffa62adfb63a165ee14ba68080
573
+ msgpack (1.8.5) sha256=97419eaa7b35dfe3e462c0e6c1a3dfdcbfc8756605c09e46e4c6daef127517ba
574
+ multi_json (1.21.2) sha256=245531eaf54bdba57aba515ff08b4503505c5e09911daa89c5a561e2f85bea8e
575
575
  mustache (1.1.3) sha256=75bdfeaa17e4af168fae2c262867b2992087aef39d8580965cb90d37a7d093c2
576
576
  net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996
577
577
  nkf (0.3.0) sha256=357a8dbeba38b727b75930f665146546076a394a1c243faf634ff176e3588895
@@ -584,9 +584,9 @@ CHECKSUMS
584
584
  nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a
585
585
  nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b
586
586
  octokit (4.25.1) sha256=c02092ee82dcdfe84db0e0ea630a70d32becc54245a4f0bacfd21c010df09b96
587
- openfact (6.0.0) sha256=9fed8d3e626791e194b9b75070e0b5dcef9144e468c3482f200146b4d5223057
587
+ openfact (6.2.0) sha256=b9d2ecb4324cccfe51ef708f2ede9966b1c845918f86621c85b9f7d0cf972c7f
588
588
  openssl (4.0.2) sha256=1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2
589
- openvox (9.0.0.pre.rc1)
589
+ openvox (9.0.0.pre.rc2)
590
590
  openvox-strings (7.1.0) sha256=54787ea8da5759657b3b94dac1af2ec458b4fa1d822c96ddefcde36b91ab39ab
591
591
  openvoxserver-ca (3.3.0) sha256=8cf3860b4fd1562e381256b2c2d8c4360db843e8be7c81cc3232d775d7ec9c80
592
592
  optimist (3.2.1) sha256=8cf8a0fd69f3aa24ab48885d3a666717c27bc3d9edd6e976e18b9d771e72e34e
@@ -594,7 +594,7 @@ CHECKSUMS
594
594
  ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
595
595
  packaging (0.122.3) sha256=f9e8258c30ca15a66ca32434dfcd641efb4cef4c1cbda5dac630350aa1e9b1a1
596
596
  pandoc-ruby (2.1.10) sha256=37653d6b5e71657fb25b3cb230e6eebbfb8c925c7f1fcf69dfb6b929d12b74b2
597
- parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356
597
+ parallel (2.2.0) sha256=e1059c5fd7b649558a0aec38a769f06a42942bdb40503d005a59c352fe011cd8
598
598
  parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828
599
599
  pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
600
600
  prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
@@ -602,10 +602,10 @@ CHECKSUMS
602
602
  prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
603
603
  process_executer (4.1.1) sha256=02e93624eb984c94282a892084781d8343d39198b983a25753c862c228f1786e
604
604
  protocol-hpack (1.5.1) sha256=6feca238b8078da1cd295677d6f306c6001af92d75fe0643d33e6956cbc3ad91
605
- protocol-http (0.71.0) sha256=38577bf3df0bf0c3f7ee7e21b43fcb4bd7624e36f697dbe9c3eea344f14bd9ba
605
+ protocol-http (0.72.0) sha256=b153474785979495b9f2df78f0fdc2e02edc7e92c1f7ea00425eed73bd02194c
606
606
  protocol-http1 (0.41.0) sha256=9863874a1228948a896c3e7ea16d13a680c8f3ed50706007c78b7033018b0ea3
607
607
  protocol-http2 (0.28.0) sha256=b7c6195dcfa80ec2484670e9fd8fc21024cc654a391aa0792433aff1188c1691
608
- protocol-url (0.18.0) sha256=b16f55983094b46d18e04b709333b260e4ab5962a32696728e33a6c396150ed6
608
+ protocol-url (0.19.0) sha256=3f6b9f6aa742a259a0b3610fbbd9685dcd9506adf6734f428ff96259faabfb21
609
609
  pry (0.16.0) sha256=d76c69065698ed1f85e717bd33d7942c38a50868f6b0673c636192b3d1b6054e
610
610
  pstore (0.2.1) sha256=03904d0f2c66579e96d1e6704cdabc0c88df7ea8ed8782d9f3569f6f6c702c1a
611
611
  public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
@@ -617,10 +617,10 @@ CHECKSUMS
617
617
  rchardet (1.10.2) sha256=e041cb195f464dc10e49ab130f78c8b5956cd9a4f4f6df84e0c183b87c135f33
618
618
  rdoc (8.0.0) sha256=03bf8c08a9639658855a0cfd77c0abca8325c227693f7f33f82957811348c469
619
619
  redis (3.3.5) sha256=3b47205af551f81623da98160550270c3aa365e97b46e3a3de8581f8502f8144
620
- regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
620
+ regexp_parser (2.13.0) sha256=d105d95d2138954e73914d2fbfb3d0a8f8605a49a3e89864c32e78b9107cb770
621
621
  release-metrics (1.1.0) sha256=1feda514f3d9795c8333ece9daa91a39c1cc7b744b8a7f1bc519e97c168c8085
622
622
  reline (0.7.0) sha256=5b012d8e55dbf9d450f12bde2cf7d15ff546ae80b3f8f3b30e570d431815583d
623
- representable (3.2.0) sha256=cc29bf7eebc31653586849371a43ffe36c60b54b0a6365b5f7d95ec34d1ebace
623
+ representable (3.3.0) sha256=22beca7d07104d8dfe30667eb267756c764c8bdc6c0f1481922502ecc4f0d8cf
624
624
  retriable (3.8.0) sha256=9f2f1b0207594c7817f17f671587b8ec7587387ac6cebda6c941a802bb98a8e5
625
625
  rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
626
626
  rgen (0.10.2) sha256=d978f84887a0b4815ff3a0e0c4d43a15cdeeac9fd4da02db8ec3ecd0f222f371
@@ -631,7 +631,7 @@ CHECKSUMS
631
631
  rspec-its (2.0.0) sha256=a88e8bc38149f2835e93533591ec4f5c829aacbfd41269a2e6f9f5b82f5260df
632
632
  rspec-mocks (3.13.2) sha256=2327335def0e1665325a9b617e3af9ae20272741d80ac550336309a7c59abdef
633
633
  rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
634
- rubocop (1.90.0) sha256=9eb4c065b5c5154e4ef554c547972f3905a9eb6b53e657e580b6796b54bf8242
634
+ rubocop (1.91.0) sha256=9c82b7bf391c5d7e3798c5b9996e22a1fe3bd7468e351dfdeb96140c058296d0
635
635
  rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
636
636
  rubocop-i18n (3.3.0) sha256=6cd5977aeac9eb9e34962c0d2bd8e0225a4b43117d21b7e315dc56500c38a96b
637
637
  rubocop-performance (1.27.0) sha256=eeeb1374d062a368ee1c787b70eb0b0cc4b184cb1f8565f424760946146d61ce
@@ -653,8 +653,8 @@ CHECKSUMS
653
653
  tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
654
654
  tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
655
655
  uber (0.1.0) sha256=5beeb407ff807b5db994f82fa9ee07cfceaa561dad8af20be880bc67eba935dc
656
- unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
657
- unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
656
+ unicode-display_width (3.3.0) sha256=4b7aa66a4b11db50f6f7e98411215cd0dd10eaecb665d36eec5bcacb3fa0b613
657
+ unicode-emoji (4.3.0) sha256=11c02fa73290378c066bb0562cd4c87d8e1b706fbbe0059ca12746a4244de8ce
658
658
  uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
659
659
  vanagon (1.3.1)
660
660
  vcr (6.4.0) sha256=077ac92cc16efc5904eb90492a18153b5e6ca5398046d8a249a7c96a9ea24ae6
@@ -663,4 +663,4 @@ CHECKSUMS
663
663
  yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51
664
664
 
665
665
  BUNDLED WITH
666
- 4.0.16
666
+ 4.0.20
data/HISTORY.md ADDED
@@ -0,0 +1,311 @@
1
+ ## [8.28.1](https://github.com/openvoxproject/openvox/tree/8.28.1) (2026-07-07)
2
+
3
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.28.0...8.28.1)
4
+
5
+ **Fixed bugs:**
6
+
7
+ - \[Bug\]: ca\_refresh\_interval is not respected — agent refreshes CA on every run when server responds 304 [\#435](https://github.com/OpenVoxProject/openvox/issues/435)
8
+ - \[Bug\]: Puppet 8 introduced a regex node definition regression [\#14](https://github.com/OpenVoxProject/openvox/issues/14)
9
+
10
+ **Closed issues:**
11
+
12
+ - \[Deprecation\] `Puppet::SSL::Certificate` Class [\#344](https://github.com/OpenVoxProject/openvox/issues/344)
13
+ - \[Deprecation\] PAL Script Evaluation APIs [\#343](https://github.com/OpenVoxProject/openvox/issues/343)
14
+ - \[Deprecation\] `source_permissions` File Parameter [\#340](https://github.com/OpenVoxProject/openvox/issues/340)
15
+ - \[Deprecation\] `pluginsync` Setting [\#339](https://github.com/OpenVoxProject/openvox/issues/339)
16
+ - \[Deprecation\] `configprint` Setting [\#337](https://github.com/OpenVoxProject/openvox/issues/337)
17
+ - \[Deprecation\] `regsubst()` Encoding Argument [\#336](https://github.com/OpenVoxProject/openvox/issues/336)
18
+
19
+ ## [8.28.0](https://github.com/openvoxproject/openvox/tree/8.28.0) (2026-06-10)
20
+
21
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.27.0...8.28.0)
22
+
23
+ **Implemented enhancements:**
24
+
25
+ - Add platform definitions for Fedora 44 [\#455](https://github.com/OpenVoxProject/openvox/pull/455) ([Sharpie](https://github.com/Sharpie))
26
+ - Promote openfact 5.6.1 into main [\#436](https://github.com/OpenVoxProject/openvox/pull/436) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
27
+
28
+ **Fixed bugs:**
29
+
30
+ - avoid badly anchored regular expression [\#414](https://github.com/OpenVoxProject/openvox/pull/414) ([corporate-gadfly](https://github.com/corporate-gadfly))
31
+
32
+ **Merged pull requests:**
33
+
34
+ - Promote puppet-runtime 2026.05.20.1 into main [\#453](https://github.com/OpenVoxProject/openvox/pull/453) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
35
+ - Switch from puppet-strings to openvox-strings [\#434](https://github.com/OpenVoxProject/openvox/pull/434) ([tuxmea](https://github.com/tuxmea))
36
+ - Update acceptance defaults and descriptions for OpenVox 9 [\#431](https://github.com/OpenVoxProject/openvox/pull/431) ([nmburgan](https://github.com/nmburgan))
37
+ - Promote puppet-runtime 2026.05.07.1 into main [\#429](https://github.com/OpenVoxProject/openvox/pull/429) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
38
+ - Change branch name in promote workflow [\#428](https://github.com/OpenVoxProject/openvox/pull/428) ([nmburgan](https://github.com/nmburgan))
39
+ - Changes to prepare for 8.x branching [\#425](https://github.com/OpenVoxProject/openvox/pull/425) ([nmburgan](https://github.com/nmburgan))
40
+ - Add release version check and stop trying to bump to an RC version [\#413](https://github.com/OpenVoxProject/openvox/pull/413) ([nmburgan](https://github.com/nmburgan))
41
+
42
+ ## [8.27.0](https://github.com/openvoxproject/openvox/tree/8.27.0) (2026-05-15)
43
+
44
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.26.2...8.27.0)
45
+
46
+ ## [8.26.2](https://github.com/openvoxproject/openvox/tree/8.26.2) (2026-04-18)
47
+
48
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.26.1...8.26.2)
49
+
50
+ **Fixed bugs:**
51
+
52
+ - \[Bug\]: `provides puppet-agent` uses bare major version, breaking `>= x.y.z` dependency constraints \(e.g. foreman-installer\) [\#406](https://github.com/OpenVoxProject/openvox/issues/406)
53
+ - Revert "Add syslog as a runtime dependency" [\#410](https://github.com/OpenVoxProject/openvox/pull/410) ([nmburgan](https://github.com/nmburgan))
54
+ - \(\#406\) packaging: Set Maj.Min.Patch version as `provides` instead of major one [\#407](https://github.com/OpenVoxProject/openvox/pull/407) ([bastelfreak](https://github.com/bastelfreak))
55
+
56
+ **Merged pull requests:**
57
+
58
+ - Promote puppet-runtime 2026.04.17.1 [\#411](https://github.com/OpenVoxProject/openvox/pull/411) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
59
+ - .gitignore: Ignore /acceptance/.vendor [\#408](https://github.com/OpenVoxProject/openvox/pull/408) ([bastelfreak](https://github.com/bastelfreak))
60
+
61
+ ## [8.26.1](https://github.com/openvoxproject/openvox/tree/8.26.1) (2026-04-15)
62
+
63
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.26.0...8.26.1)
64
+
65
+ **Merged pull requests:**
66
+
67
+ - Promote puppet-runtime 2026.04.15.1 [\#404](https://github.com/OpenVoxProject/openvox/pull/404) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
68
+ - Add signoff to promote action [\#402](https://github.com/OpenVoxProject/openvox/pull/402) ([nmburgan](https://github.com/nmburgan))
69
+ - Add syslog as a runtime dependency [\#400](https://github.com/OpenVoxProject/openvox/pull/400) ([nmburgan](https://github.com/nmburgan))
70
+ - acceptance: add hiera-eyaml v5 backend test [\#399](https://github.com/OpenVoxProject/openvox/pull/399) ([nmburgan](https://github.com/nmburgan))
71
+ - avoid command injection risk [\#398](https://github.com/OpenVoxProject/openvox/pull/398) ([corporate-gadfly](https://github.com/corporate-gadfly))
72
+
73
+ ## [8.26.0](https://github.com/openvoxproject/openvox/tree/8.26.0) (2026-04-14)
74
+
75
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.25.0...8.26.0)
76
+
77
+ **Implemented enhancements:**
78
+
79
+ - \[Feature request\]: file resource should support etag [\#328](https://github.com/OpenVoxProject/openvox/issues/328)
80
+ - \[Feature request\]: Provide SLES16 packages [\#246](https://github.com/OpenVoxProject/openvox/issues/246)
81
+ - Add a renew\_cert subcommand to puppet ssl [\#363](https://github.com/OpenVoxProject/openvox/pull/363) ([jay7x](https://github.com/jay7x))
82
+ - Make regsubst\(\) sensitive-aware [\#354](https://github.com/OpenVoxProject/openvox/pull/354) ([cocker-cc](https://github.com/cocker-cc))
83
+ - Feature: file etag support [\#329](https://github.com/OpenVoxProject/openvox/pull/329) ([C24-AK](https://github.com/C24-AK))
84
+ - Add environment parameter to the package resource type [\#321](https://github.com/OpenVoxProject/openvox/pull/321) ([C24-AK](https://github.com/C24-AK))
85
+
86
+ **Fixed bugs:**
87
+
88
+ - \[Bug\]: OpenVox Agent on SuSE 15.5 fails with `version 'GLIBC_2.34' not found` [\#226](https://github.com/OpenVoxProject/openvox/issues/226)
89
+ - fix: puppet module install should honor manage\_file\_permissions=false [\#362](https://github.com/OpenVoxProject/openvox/pull/362) ([dotconfig404](https://github.com/dotconfig404))
90
+ - unbreak OpenBSD package handling. [\#316](https://github.com/OpenVoxProject/openvox/pull/316) ([buzzdeee](https://github.com/buzzdeee))
91
+ - Use usermod\(8\) on OpenBSD to unbreak password management [\#294](https://github.com/OpenVoxProject/openvox/pull/294) ([klemensn](https://github.com/klemensn))
92
+
93
+ **Merged pull requests:**
94
+
95
+ - Promote openfact 5.6.0 [\#387](https://github.com/OpenVoxProject/openvox/pull/387) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
96
+ - Promote puppet-runtime 2026.04.09.1 [\#386](https://github.com/OpenVoxProject/openvox/pull/386) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
97
+ - fix: skip SHA1 CSR signing test when OpenSSL doesn't support it [\#378](https://github.com/OpenVoxProject/openvox/pull/378) ([silug](https://github.com/silug))
98
+ - fix: stub SRV DNS in ca\_server session spec [\#377](https://github.com/OpenVoxProject/openvox/pull/377) ([silug](https://github.com/silug))
99
+ - Fix acceptance tests for systemd PrivateTmp compatibility [\#376](https://github.com/OpenVoxProject/openvox/pull/376) ([nmburgan](https://github.com/nmburgan))
100
+ - Fix acceptance tests for systemd PrivateTmp compatibility [\#375](https://github.com/OpenVoxProject/openvox/pull/375) ([nmburgan](https://github.com/nmburgan))
101
+ - Add libffi-devel to Windows setup script [\#373](https://github.com/OpenVoxProject/openvox/pull/373) ([nmburgan](https://github.com/nmburgan))
102
+ - Promote puppet-runtime 2026.04.05.1 [\#372](https://github.com/OpenVoxProject/openvox/pull/372) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
103
+ - Restore the legend of help help help help help [\#364](https://github.com/OpenVoxProject/openvox/pull/364) ([nmburgan](https://github.com/nmburgan))
104
+ - Fixes for Ruby 4.0 compatibility [\#311](https://github.com/OpenVoxProject/openvox/pull/311) ([silug](https://github.com/silug))
105
+
106
+ ## [8.25.0](https://github.com/openvoxproject/openvox/tree/8.25.0) (2026-02-17)
107
+
108
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.24.2...8.25.0)
109
+
110
+ **Implemented enhancements:**
111
+
112
+ - \[Feature request\]: environment parameter for package resource [\#298](https://github.com/OpenVoxProject/openvox/issues/298)
113
+ - Add Ubuntu 26.04 support [\#315](https://github.com/OpenVoxProject/openvox/pull/315) ([bastelfreak](https://github.com/bastelfreak))
114
+ - Reduce OpenSSL monkey patch to only calling set\_params [\#308](https://github.com/OpenVoxProject/openvox/pull/308) ([ekohl](https://github.com/ekohl))
115
+ - Remove monkey patch to remove daemonize [\#307](https://github.com/OpenVoxProject/openvox/pull/307) ([ekohl](https://github.com/ekohl))
116
+ - Add SLES 16 ARM64 support [\#306](https://github.com/OpenVoxProject/openvox/pull/306) ([bastelfreak](https://github.com/bastelfreak))
117
+ - Add SLES16 [\#302](https://github.com/OpenVoxProject/openvox/pull/302) ([sbernhard](https://github.com/sbernhard))
118
+ - Drop multi\_json support [\#293](https://github.com/OpenVoxProject/openvox/pull/293) ([ekohl](https://github.com/ekohl))
119
+ - Do not explicitly disable SSLv3 [\#287](https://github.com/OpenVoxProject/openvox/pull/287) ([smortex](https://github.com/smortex))
120
+ - feat: add `{debian13,ubuntu24.04,ubuntu25.04}-armhf` platform configs [\#286](https://github.com/OpenVoxProject/openvox/pull/286) ([Gitii](https://github.com/Gitii))
121
+
122
+ **Fixed bugs:**
123
+
124
+ - \[Bug\]: OpenVox Agent fails/gets deactivated after update with theforeman-puppet [\#279](https://github.com/OpenVoxProject/openvox/issues/279)
125
+ - Include missing EC2 stub request [\#272](https://github.com/OpenVoxProject/openvox/pull/272) ([eciii](https://github.com/eciii))
126
+
127
+ **Merged pull requests:**
128
+
129
+ - Promote puppet-runtime 2026.02.16.1 [\#324](https://github.com/OpenVoxProject/openvox/pull/324) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
130
+ - Promote openfact 5.4.0 [\#322](https://github.com/OpenVoxProject/openvox/pull/322) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
131
+ - Promote puppet-runtime 2026.02.06.1 [\#313](https://github.com/OpenVoxProject/openvox/pull/313) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
132
+ - puppet-runtime: Update 2025.12.05.1-\>2026.01.30.1 [\#305](https://github.com/OpenVoxProject/openvox/pull/305) ([bastelfreak](https://github.com/bastelfreak))
133
+ - Promote openssl-fips 2025.12.17.1 [\#284](https://github.com/OpenVoxProject/openvox/pull/284) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
134
+ - Update promotion action [\#283](https://github.com/OpenVoxProject/openvox/pull/283) ([nmburgan](https://github.com/nmburgan))
135
+
136
+ ## [8.24.2](https://github.com/openvoxproject/openvox/tree/8.24.2) (2025-12-15)
137
+
138
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.24.1...8.24.2)
139
+
140
+ **Fixed bugs:**
141
+
142
+ - \[Bug\]: Version 8.24.0 fails with Error: Could not find a suitable provider for augeas [\#262](https://github.com/OpenVoxProject/openvox/issues/262)
143
+
144
+ **Merged pull requests:**
145
+
146
+ - Promote openfact 5.2.1 [\#277](https://github.com/OpenVoxProject/openvox/pull/277) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
147
+ - Relax version requirements for some default gems [\#275](https://github.com/OpenVoxProject/openvox/pull/275) ([nmburgan](https://github.com/nmburgan))
148
+
149
+ ## [8.24.1](https://github.com/openvoxproject/openvox/tree/8.24.1) (2025-12-05)
150
+
151
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.24.0...8.24.1)
152
+
153
+ **Fixed bugs:**
154
+
155
+ - \[Bug\]: sysctl augeas broken after upgrade to Version 8.24.0 [\#264](https://github.com/OpenVoxProject/openvox/issues/264)
156
+ - \[Bug\]: Augeas broken since openvox 8.24.0, missing augeas/facade [\#263](https://github.com/OpenVoxProject/openvox/issues/263)
157
+
158
+ **Merged pull requests:**
159
+
160
+ - Promote puppet-runtime 2025.12.05.1 [\#266](https://github.com/OpenVoxProject/openvox/pull/266) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
161
+ - Update augeas test to detect provider failure [\#265](https://github.com/OpenVoxProject/openvox/pull/265) ([nmburgan](https://github.com/nmburgan))
162
+ - Add dbus feature [\#261](https://github.com/OpenVoxProject/openvox/pull/261) ([ananace](https://github.com/ananace))
163
+
164
+ ## [8.24.0](https://github.com/openvoxproject/openvox/tree/8.24.0) (2025-12-04)
165
+
166
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.23.1...8.24.0)
167
+
168
+ **Implemented enhancements:**
169
+
170
+ - Loosen some gem dependencies for new versions and update minitar usage [\#242](https://github.com/OpenVoxProject/openvox/pull/242) ([nmburgan](https://github.com/nmburgan))
171
+ - Create execution\_wrapper.bat to allow Choria to work with Windows [\#222](https://github.com/OpenVoxProject/openvox/pull/222) ([magarvo](https://github.com/magarvo))
172
+ - feat: add opkg package management support for TurrisOS [\#221](https://github.com/OpenVoxProject/openvox/pull/221) ([VILJkid](https://github.com/VILJkid))
173
+ - Add jruby-9.4.14.0 to CI matrix [\#210](https://github.com/OpenVoxProject/openvox/pull/210) ([bastelfreak](https://github.com/bastelfreak))
174
+
175
+ **Fixed bugs:**
176
+
177
+ - \[Bug\]: `implementation` is just a local fact [\#220](https://github.com/OpenVoxProject/openvox/issues/220)
178
+ - \[Bug\]: puppet apply warns about missing client certificates [\#21](https://github.com/OpenVoxProject/openvox/issues/21)
179
+
180
+ **Merged pull requests:**
181
+
182
+ - Promote openfact 5.2.0 [\#258](https://github.com/OpenVoxProject/openvox/pull/258) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
183
+ - Promote openfact 6a26ce51cf65f7cc325330c40922e9556651cf35 [\#257](https://github.com/OpenVoxProject/openvox/pull/257) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
184
+ - Use PR for promotion action [\#255](https://github.com/OpenVoxProject/openvox/pull/255) ([nmburgan](https://github.com/nmburgan))
185
+ - Use token when checking out repo [\#254](https://github.com/OpenVoxProject/openvox/pull/254) ([nmburgan](https://github.com/nmburgan))
186
+ - Add promote action [\#253](https://github.com/OpenVoxProject/openvox/pull/253) ([nmburgan](https://github.com/nmburgan))
187
+ - Update release automation [\#252](https://github.com/OpenVoxProject/openvox/pull/252) ([nmburgan](https://github.com/nmburgan))
188
+ - add note about server\_list precedence [\#251](https://github.com/OpenVoxProject/openvox/pull/251) ([binford2k](https://github.com/binford2k))
189
+ - Fix description of `source` since `yum` allows it now [\#249](https://github.com/OpenVoxProject/openvox/pull/249) ([binford2k](https://github.com/binford2k))
190
+ - include "local" facts in facts output [\#240](https://github.com/OpenVoxProject/openvox/pull/240) ([binford2k](https://github.com/binford2k))
191
+ - Correct homepage in gemspec [\#223](https://github.com/OpenVoxProject/openvox/pull/223) ([ekohl](https://github.com/ekohl))
192
+ - CI: Build gem for each PR & Move packaging checks to global config & Windows: Run one spec file per CPU core [\#216](https://github.com/OpenVoxProject/openvox/pull/216) ([bastelfreak](https://github.com/bastelfreak))
193
+ - Add switch for uploading to S3 [\#212](https://github.com/OpenVoxProject/openvox/pull/212) ([nmburgan](https://github.com/nmburgan))
194
+ - Update acceptance workflow for changed beaker acceptance [\#209](https://github.com/OpenVoxProject/openvox/pull/209) ([jpartlow](https://github.com/jpartlow))
195
+ - `yum` package provider: add `assumeyes` to `yum check-update` [\#188](https://github.com/OpenVoxProject/openvox/pull/188) ([SvenVD-be](https://github.com/SvenVD-be))
196
+ - Prevents spurious clientcert warnings in serverless mode [\#22](https://github.com/OpenVoxProject/openvox/pull/22) ([binford2k](https://github.com/binford2k))
197
+
198
+ ## [8.23.1](https://github.com/openvoxproject/openvox/tree/8.23.1) (2025-09-08)
199
+
200
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.23.0...8.23.1)
201
+
202
+ **Fixed bugs:**
203
+
204
+ - Fix how we find the version library [\#203](https://github.com/OpenVoxProject/openvox/pull/203) ([nmburgan](https://github.com/nmburgan))
205
+
206
+ **Merged pull requests:**
207
+
208
+ - Promote puppet-runtime 2025.09.08.1 [\#204](https://github.com/OpenVoxProject/openvox/pull/204) ([nmburgan](https://github.com/nmburgan))
209
+ - Test for r10k failure condition [\#202](https://github.com/OpenVoxProject/openvox/pull/202) ([nmburgan](https://github.com/nmburgan))
210
+
211
+ ## [8.23.0](https://github.com/openvoxproject/openvox/tree/8.23.0) (2025-09-07)
212
+
213
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.22.0...8.23.0)
214
+
215
+ - This is our first release where MacOS and Windows agents are built entirely in GitHub Actions!
216
+ - MacOS x86_64 is now supported
217
+ - The MacOS agents now work on all currently supported MacOS versions (13, 14, and 15). No need for separate packages!
218
+ - The openvox-agent repo, which was the repo used for building the openvox-agent packages, has now been integrated into this openvox repo under the 'packaging' directory. This will allow us to have fewer steps in the build process and tag changes more cleanly, rather than having to tag two separate repos. Note that for releases prior to this one, the changelog in this file refers only to the changes to openvox itself and not packaging changes. For example, 8.22.1 was released to fix an unintentional service renaming issue and details are in the openvox-agent repo. At some point, we may try to integrate the two changelogs.
219
+ - This release contains a large number of dependencies bumps. Most are not security related, but many dependencies were lagging for a long time. See [this PR](https://github.com/OpenVoxProject/puppet-runtime/pull/35) for details.
220
+ - A patch for Augeas to address [CVE-2025-2588](https://github.com/advisories/GHSA-hxwj-c5vw-fwgp)
221
+
222
+ **Implemented enhancements:**
223
+
224
+ - Respect systemd's RUNTIME\_DIRECTORY environment variable [\#165](https://github.com/OpenVoxProject/openvox/pull/165) ([ekohl](https://github.com/ekohl))
225
+
226
+ **Fixed bugs:**
227
+
228
+ - treat windows service accounts as case insensitive [\#172](https://github.com/OpenVoxProject/openvox/pull/172) ([binford2k](https://github.com/binford2k))
229
+ - Ensure confdir exists [\#171](https://github.com/OpenVoxProject/openvox/pull/171) ([binford2k](https://github.com/binford2k))
230
+
231
+ **Merged pull requests:**
232
+
233
+ - Promote puppet-runtime 2025.09.04.1 [\#191](https://github.com/OpenVoxProject/openvox/pull/191) ([nmburgan](https://github.com/nmburgan))
234
+ - Merge openvox-agent vanagon repo [\#186](https://github.com/OpenVoxProject/openvox/pull/186) ([austb](https://github.com/austb))
235
+
236
+ ## [8.22.0](https://github.com/openvoxproject/openvox/tree/8.22.0) (2025-08-23)
237
+
238
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.21.1...8.22.0)
239
+
240
+ ## [8.21.1](https://github.com/openvoxproject/openvox/tree/8.21.1) (2025-07-23)
241
+
242
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.21.0...8.21.1)
243
+
244
+ **Fixed bugs:**
245
+
246
+ - Make passing invalid options to install.rb fatal [\#156](https://github.com/OpenVoxProject/openvox/pull/156) ([ekohl](https://github.com/ekohl))
247
+
248
+ **Merged pull requests:**
249
+
250
+ - Revert "Mark some failing 8.3 Windows tests as pending" [\#159](https://github.com/OpenVoxProject/openvox/pull/159) ([ekohl](https://github.com/ekohl))
251
+ - \(maint\) Drop debian-10 from testing matrix [\#152](https://github.com/OpenVoxProject/openvox/pull/152) ([jpartlow](https://github.com/jpartlow))
252
+
253
+ ## [8.21.0](https://github.com/openvoxproject/openvox/tree/8.21.0) (2025-07-09)
254
+
255
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.20.0...8.21.0)
256
+
257
+ **Implemented enhancements:**
258
+
259
+ - Remove facter from install.rb [\#147](https://github.com/OpenVoxProject/openvox/pull/147) ([ekohl](https://github.com/ekohl))
260
+
261
+ ## [8.20.0](https://github.com/openvoxproject/openvox/tree/8.20.0) (2025-06-27)
262
+
263
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.19.2...8.20.0)
264
+
265
+ **Implemented enhancements:**
266
+
267
+ - Switch from facter to openfact [\#142](https://github.com/OpenVoxProject/openvox/pull/142) ([smortex](https://github.com/smortex))
268
+ - \(PUP-12083\) Update soft limit warning for fact value & name length [\#137](https://github.com/OpenVoxProject/openvox/pull/137) ([bastelfreak](https://github.com/bastelfreak))
269
+
270
+ **Fixed bugs:**
271
+
272
+ - Maintain consistent JSON formatting [\#132](https://github.com/OpenVoxProject/openvox/pull/132) ([bastelfreak](https://github.com/bastelfreak))
273
+
274
+ **Merged pull requests:**
275
+
276
+ - cleanup gem metadata after Perforce-\>OpenVoxProject migration [\#140](https://github.com/OpenVoxProject/openvox/pull/140) ([smortex](https://github.com/smortex))
277
+
278
+ ## [8.19.2](https://github.com/openvoxproject/openvox/tree/8.19.2) (2025-06-06)
279
+
280
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.19.1...8.19.2)
281
+
282
+ **Fixed bugs:**
283
+
284
+ - server\_facts: Switch implementation-\>serverimplementation [\#107](https://github.com/OpenVoxProject/openvox/pull/107) ([binford2k](https://github.com/binford2k))
285
+ - Reflect Ruby 3.4 stack trace changes [\#100](https://github.com/OpenVoxProject/openvox/pull/100) ([ekohl](https://github.com/ekohl))
286
+ - Add base64 as gem dependencies for Ruby 3.4 [\#98](https://github.com/OpenVoxProject/openvox/pull/98) ([ekohl](https://github.com/ekohl))
287
+ - Add racc gem dependency [\#89](https://github.com/OpenVoxProject/openvox/pull/89) ([ekohl](https://github.com/ekohl))
288
+
289
+ ## [8.19.1](https://github.com/openvoxproject/openvox/tree/8.19.1) (2025-06-03)
290
+
291
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.19.0...8.19.1)
292
+
293
+ **Fixed bugs:**
294
+
295
+ - Fix invalid gemspec in AIO package [\#91](https://github.com/OpenVoxProject/openvox/pull/91) ([smortex](https://github.com/smortex))
296
+
297
+ ## [8.19.0](https://github.com/openvoxproject/openvox/tree/8.19.0) (2025-05-30)
298
+
299
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.18.1...8.19.0)
300
+
301
+ **Implemented enhancements:**
302
+
303
+ - Add `implementation` fact to agent and server. [\#63](https://github.com/OpenVoxProject/openvox/pull/63) ([ffrank](https://github.com/ffrank))
304
+
305
+ **Fixed bugs:**
306
+
307
+ - Replace `erase` with `remove`, since it's no longer supported with DNF5 [\#68](https://github.com/OpenVoxProject/openvox/pull/68) ([Stricken1670](https://github.com/Stricken1670))
308
+
309
+
310
+
311
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/Rakefile CHANGED
@@ -159,9 +159,9 @@ begin
159
159
  config.user = "openvoxproject"
160
160
  config.project = "openvox"
161
161
  config.exclude_labels = %w[dependencies duplicate question invalid wontfix wont-fix modulesync skip-changelog]
162
- config.since_tag = "8.18.1"
162
+ config.since_tag = "9.0.0-alpha1"
163
163
  config.future_release = Puppet::PUPPETVERSION
164
- config.exclude_tags_regex = /\A7\./
164
+ config.exclude_tags_regex = /\A[7,8]\./
165
165
  end
166
166
  rescue LoadError
167
167
  task :changelog do
@@ -1,4 +1,4 @@
1
- # Defaults for puppet - sourced by /etc/init.d/puppet
1
+ # Defaults for puppet - sourced by /etc/init.d/puppet and puppet.service
2
2
 
3
3
  # Startup options
4
- DAEMON_OPTS=""
4
+ PUPPET_EXTRA_OPTS=""
@@ -9,7 +9,7 @@
9
9
  ### END INIT INFO
10
10
 
11
11
  DAEMON=/opt/puppetlabs/puppet/bin/puppet
12
- DAEMON_OPTS=""
12
+ PUPPET_EXTRA_OPTS=""
13
13
  NAME="agent"
14
14
  PROCNAME="puppet"
15
15
  DESC="puppet agent"
@@ -26,7 +26,7 @@ reload_puppet_agent() {
26
26
  }
27
27
 
28
28
  start_puppet_agent() {
29
- start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON -- $NAME $DAEMON_OPTS
29
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON -- $NAME $PUPPET_EXTRA_OPTS
30
30
  }
31
31
 
32
32
  stop_puppet_agent() {
data/lib/puppet/agent.rb CHANGED
@@ -22,6 +22,12 @@ class Puppet::Agent
22
22
  class RunTimeoutError < Exception # rubocop:disable Lint/InheritException
23
23
  end
24
24
 
25
+ # Exit status the forked child uses to tell the daemon that the SSL state
26
+ # machine gave up waiting for a certificate, so the daemon can exit as it
27
+ # did when the wait happened in the parent. Must not collide with the
28
+ # detailed exit codes returned by a run (0, 1, 2, 4, 6) or with 254 (NoMemoryError).
29
+ CERTIFICATE_FAILURE_EXIT_STATUS = 253
30
+
25
31
  attr_reader :client_class, :client, :should_fork
26
32
 
27
33
  def initialize(client_class, should_fork = true)
@@ -60,12 +66,28 @@ class Puppet::Agent
60
66
  end
61
67
  end
62
68
 
63
- # waiting for certs may sleep for awhile depending on onetime, waitforcert and maxwaitforcert!
64
- # this needs to happen before forking so that if we fail to obtain certs and try to exit, then
65
- # we exit the main process and not the forked child.
66
- ssl_context = wait_for_certificates(client_options)
67
-
68
69
  result = run_in_fork(should_fork) do
70
+ # waiting for certs may sleep for awhile depending on onetime, waitforcert and maxwaitforcert!
71
+ #
72
+ # This happens in the forked child, not in the long-lived daemon. Refreshing
73
+ # the CRL or renewing the certificate resolves the server's name, and on
74
+ # Ruby 3.3+ that runs in short-lived native threads. If the daemon forks
75
+ # while one of those threads is exiting, the child inherits glibc's
76
+ # resolv.conf lock in the locked state and every name lookup in the run
77
+ # hangs (#485). Keeping the lookups out of the parent avoids that.
78
+ #
79
+ # The state machine calls exit when it gives up waiting for a certificate
80
+ # (waitforcert 0 or maxwaitforcert exceeded). Report that back so the
81
+ # daemon exits, as it did when the wait happened in the parent.
82
+ begin
83
+ ssl_context = wait_for_certificates(client_options)
84
+ rescue SystemExit
85
+ next CERTIFICATE_FAILURE_EXIT_STATUS
86
+ rescue StandardError => detail
87
+ Puppet.log_exception(detail, _("Could not obtain certificates: %{detail}") % { detail: detail })
88
+ next nil
89
+ end
90
+
69
91
  with_client(client_options[:transaction_uuid], client_options[:job_id]) do |client|
70
92
  client_args = client_options.merge(:pluginsync => Puppet::Configurer.should_pluginsync?)
71
93
  begin
@@ -115,6 +137,9 @@ class Puppet::Agent
115
137
  end
116
138
  end
117
139
  end
140
+ # The child could not obtain a certificate and the state machine asked to exit.
141
+ exit(1) if result == CERTIFICATE_FAILURE_EXIT_STATUS
142
+
118
143
  true
119
144
  end
120
145
  Puppet.notice _("Shutdown/restart in progress (%{status}); skipping run") % { status: Puppet::Application.run_status.inspect } unless block_run
@@ -146,8 +171,55 @@ class Puppet::Agent
146
171
  atForkHandler.parent
147
172
  end
148
173
 
149
- exit_code = Process.waitpid2(child_pid)
150
- exit_code[1].exitstatus
174
+ _, status = wait_for_child(child_pid)
175
+ status.exitstatus
176
+ end
177
+
178
+ # Wait for the forked child to exit. The child enforces `runtimeout` on its
179
+ # own run, but it may fail to exit afterwards (a stranded thread, a hung
180
+ # subprocess, etc.). Without a deadline here, the parent blocks forever and
181
+ # the agent stops checking in. Once the run timeout plus a grace period has
182
+ # elapsed, the child is killed so the daemon can carry on.
183
+ def wait_for_child(child_pid)
184
+ deadline = child_deadline
185
+ return Process.waitpid2(child_pid) unless deadline
186
+
187
+ loop do
188
+ result = Process.waitpid2(child_pid, Process::WNOHANG)
189
+ return result if result
190
+
191
+ if monotonic_now >= deadline
192
+ Puppet.err _("Agent run (pid %{pid}) did not exit within %{timeout} seconds of the run timeout, killing it") %
193
+ { pid: child_pid, timeout: child_grace_period }
194
+ begin
195
+ Process.kill(:KILL, child_pid)
196
+ rescue Errno::ESRCH
197
+ # The child exited between the last check and the kill.
198
+ end
199
+ return Process.waitpid2(child_pid)
200
+ end
201
+
202
+ sleep 1
203
+ end
204
+ end
205
+
206
+ # After the run timeout fires inside the child, it may still need to send
207
+ # its report, which is bounded by the HTTP connect and read timeouts.
208
+ def child_grace_period
209
+ Puppet[:http_connect_timeout] + Puppet[:http_read_timeout]
210
+ end
211
+
212
+ # Returns the absolute monotonic deadline for the child, or nil when
213
+ # `runtimeout` is disabled.
214
+ def child_deadline
215
+ runtimeout = Puppet[:runtimeout]
216
+ return nil if runtimeout.nil? || runtimeout <= 0
217
+
218
+ monotonic_now + runtimeout + child_grace_period
219
+ end
220
+
221
+ def monotonic_now
222
+ Process.clock_gettime(Process::CLOCK_MONOTONIC)
151
223
  end
152
224
 
153
225
  private
@@ -103,9 +103,13 @@ class Puppet::Application::Agent < Puppet::Application
103
103
  -----
104
104
  puppet agent [--certname <NAME>] [-D|--daemonize|--no-daemonize]
105
105
  [-d|--debug] [--detailed-exitcodes] [--digest <DIGEST>] [--disable [MESSAGE]] [--enable]
106
- [--fingerprint] [-h|--help] [-l|--logdest syslog|eventlog|<ABS FILEPATH>|console]
106
+ [--environment <NAME>] [--fingerprint] [-h|--help]
107
+ [-l|--logdest syslog|eventlog|<ABS FILEPATH>|console]
107
108
  [--serverport <PORT>] [--noop] [-o|--onetime] [--sourceaddress <IP_ADDRESS>] [-t|--test]
108
- [-v|--verbose] [-V|--version] [-w|--waitforcert <SECONDS>]
109
+ [-v|--verbose] [-V|--version] [-w|--waitforcert <SECONDS>] [--<setting> <VALUE>]
110
+
111
+ Any setting that is valid in puppet.conf is also accepted as a long argument,
112
+ not only the ones listed above. See OPTIONS below.
109
113
 
110
114
 
111
115
  DESCRIPTION
@@ -199,8 +203,7 @@ class Puppet::Application::Agent < Puppet::Application
199
203
 
200
204
  * --no-daemonize:
201
205
  Do not send the process into the background.
202
- (This is an OpenVox setting, and can go in puppet.conf. Note the special 'no-'
203
- prefix for boolean settings on the command line.)
206
+ (This is an OpenVox setting, and can go in puppet.conf.)
204
207
 
205
208
  * --debug:
206
209
  Enable full debugging.
@@ -249,6 +252,18 @@ class Puppet::Application::Agent < Puppet::Application
249
252
 
250
253
  'puppet agent' exits after executing this.
251
254
 
255
+ * --environment:
256
+ Request a catalog for the given environment. When set on the command line,
257
+ the agent uses this environment directly and skips both the environment
258
+ recorded by the previous run and the node request to the server, which is
259
+ how it picks an environment otherwise. This is the usual way to move an
260
+ agent out of an environment it switched to on an earlier run. The server
261
+ can still assign a different environment, for example through an ENC. In
262
+ that case the agent switches to the server's environment and requests
263
+ the catalog again. If 'strict_environment_mode' is set, the agent refuses
264
+ the mismatched catalog and fails the run instead of switching.
265
+ (This is an OpenVox setting, and can go in puppet.conf.)
266
+
252
267
  * --evaltrace:
253
268
  Logs each resource as it is being evaluated. This allows you to interactively
254
269
  see exactly what is being done. (This is an OpenVox setting, and can go in
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative '../../puppet/agent'
3
4
  require_relative '../../puppet/indirector/facts/facter'
4
5
 
5
6
  require_relative '../../puppet/configurer'
@@ -20,7 +21,10 @@ module Puppet::Configurer::FactHandler
20
21
  facts.name = Puppet[:node_name_value]
21
22
  end
22
23
  facts
23
- rescue SystemExit, NoMemoryError
24
+ rescue SystemExit, NoMemoryError, Puppet::Agent::RunTimeoutError
25
+ # RunTimeoutError means the agent run as a whole has exceeded `runtimeout`.
26
+ # Let it propagate so the run is aborted instead of wrapping it in a
27
+ # Puppet::Error and carrying on with the rest of the run.
24
28
  raise
25
29
  rescue Exception => detail
26
30
  message = _("Could not retrieve local facts: %{detail}") % { detail: detail }
@@ -32,29 +32,10 @@ class Puppet::HTTP::Service
32
32
  #
33
33
  # @api private
34
34
  def self.create_service(client, session, name, server = nil, port = nil)
35
- # this is the entry point for creating all services, check and issue error(s)/warning(s) here.
36
- unless Puppet.settings.set_by_config? :server
37
- if Puppet.features.root?
38
- error_message = <<~MSG
39
- OpenVox does not default to `server=puppet` as of version 9.0. Please update your configuration appropriately by providing a specific server of your choice.
40
-
41
- You can update the server setting in puppet.conf by running a command similar to:
42
- puppet config --section main set server YOUR_SERVER_NAME
43
- MSG
44
- raise ArgumentError, error_message
45
- else
46
- Puppet.deprecation_warning('OpenVox no longer defaults to `server=puppet` when running as a non-privileged user. (Did you mean to run as root?)')
47
-
48
- case name
49
- when :ca
50
- raise ArgumentError, 'Neither `server` nor `ca_server` is specified.' unless Puppet.settings.set_by_config? :ca_server
51
- when :report
52
- raise ArgumentError, 'Neither `server` nor `report_server` is specified.' unless Puppet.settings.set_by_config? :report_server
53
- when :fileserver, :puppet, :puppetserver
54
- raise ArgumentError, 'Required setting `server` is not specified.'
55
- end
56
- end
57
- end
35
+ # Resolvers that already know which server to use (SRV records,
36
+ # server_list, or an explicit URL) pass it in. Only fall back on the
37
+ # `server` setting, and complain if it is missing, when they don't.
38
+ check_server_setting(name) if server.nil?
58
39
 
59
40
  case name
60
41
  when :ca
@@ -72,6 +53,48 @@ class Puppet::HTTP::Service
72
53
  end
73
54
  end
74
55
 
56
+ # Verify that the setting a service falls back on when no explicit server is
57
+ # given has been configured. OpenVox no longer defaults `server` to `puppet`.
58
+ #
59
+ # @param [Symbol] name the type of service being created
60
+ #
61
+ # @raise [ArgumentError] if the service cannot determine which server to use
62
+ #
63
+ # @api private
64
+ def self.check_server_setting(name)
65
+ return if Puppet.settings.set_by_config? :server
66
+
67
+ # These services fall back on their own setting before `server`. It has to
68
+ # resolve to a host: `ca_server = $server` without `server` is set but empty.
69
+ case name
70
+ when :ca
71
+ return if Puppet.settings.set_by_config?(:ca_server) && !Puppet[:ca_server].empty?
72
+ when :report
73
+ return if Puppet.settings.set_by_config?(:report_server) && !Puppet[:report_server].empty?
74
+ end
75
+
76
+ if Puppet.features.root?
77
+ error_message = <<~MSG
78
+ OpenVox does not default to `server=puppet` as of version 9.0. Please update your configuration appropriately by providing a specific server of your choice.
79
+
80
+ You can update the server setting in puppet.conf by running a command similar to:
81
+ puppet config --section main set server YOUR_SERVER_NAME
82
+ MSG
83
+ raise ArgumentError, error_message
84
+ end
85
+
86
+ Puppet.deprecation_warning('OpenVox no longer defaults to `server=puppet` when running as a non-privileged user. (Did you mean to run as root?)')
87
+
88
+ case name
89
+ when :ca
90
+ raise ArgumentError, 'Neither `server` nor `ca_server` is specified.'
91
+ when :report
92
+ raise ArgumentError, 'Neither `server` nor `report_server` is specified.'
93
+ when :fileserver, :puppet, :puppetserver
94
+ raise ArgumentError, 'Required setting `server` is not specified.'
95
+ end
96
+ end
97
+
75
98
  # Check if the service named is included in the list of available services.
76
99
  #
77
100
  # @param [Symbol] name
@@ -62,21 +62,22 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
62
62
  end
63
63
  end.flatten + Puppet[:factpath].split(File::PATH_SEPARATOR)
64
64
 
65
- dirs = dirs.select do |dir|
66
- next false unless FileTest.directory?(dir)
67
-
68
- # Even through we no longer directly load facts in the terminus,
69
- # print out each .rb in the facts directory as module
70
- # developers may find that information useful for debugging purposes
71
- if Puppet::Util::Log.sendlevel?(:info)
72
- Puppet.info _("Loading facts")
73
- Dir.glob("#{dir}/*.rb").each do |file|
74
- Puppet.debug { "Loading facts from #{file}" }
65
+ dirs.select! { |dir| FileTest.directory?(dir) }
66
+
67
+ # Even though we no longer directly load facts in the terminus,
68
+ # print out each .rb in the facts directory as module
69
+ # developers may find that information useful for debugging purposes
70
+ unless dirs.empty?
71
+ Puppet.info _("Loading facts")
72
+ if Puppet::Util::Log.sendlevel?(:debug)
73
+ dirs.each do |dir|
74
+ Dir.glob("#{dir}/*.rb").each do |file|
75
+ Puppet.debug { "Loading facts from #{file}" }
76
+ end
75
77
  end
76
78
  end
77
-
78
- true
79
79
  end
80
+
80
81
  dirs << request.options[:custom_dir] if request.options[:custom_dir]
81
82
  Puppet.runtime[:facter].search(*dirs)
82
83
  end
@@ -8,7 +8,7 @@
8
8
  # Raketasks and such to set the version based on the output of `git describe`
9
9
 
10
10
  module Puppet
11
- PUPPETVERSION = '9.0.0-rc1'
11
+ PUPPETVERSION = '9.0.0-rc2'
12
12
  IMPLEMENTATION = 'openvox'
13
13
 
14
14
  ##
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "PUPPET\-AGENT" "8" "August 2026" "Vox Pupuli" "OpenVox manual"
3
+ .TH "PUPPET\-AGENT" "8" "September 2026" "Vox Pupuli" "OpenVox manual"
4
4
  .SH "NAME"
5
5
  \fBpuppet\-agent\fR \- The puppet agent daemon provided by OpenVox
6
6
  .SH "SYNOPSIS"
@@ -8,7 +8,9 @@ Retrieves the client configuration from the OpenVox server and applies it to the
8
8
  .P
9
9
  This service may be run as a daemon, run periodically using cron (or something similar), or run interactively for testing purposes\.
10
10
  .SH "USAGE"
11
- puppet agent [\-\-certname \fINAME\fR] [\-D|\-\-daemonize|\-\-no\-daemonize] [\-d|\-\-debug] [\-\-detailed\-exitcodes] [\-\-digest \fIDIGEST\fR] [\-\-disable [MESSAGE]] [\-\-enable] [\-\-fingerprint] [\-h|\-\-help] [\-l|\-\-logdest syslog|eventlog|\fIABS FILEPATH\fR|console] [\-\-serverport \fIPORT\fR] [\-\-noop] [\-o|\-\-onetime] [\-\-sourceaddress \fIIP_ADDRESS\fR] [\-t|\-\-test] [\-v|\-\-verbose] [\-V|\-\-version] [\-w|\-\-waitforcert \fISECONDS\fR]
11
+ puppet agent [\-\-certname \fINAME\fR] [\-D|\-\-daemonize|\-\-no\-daemonize] [\-d|\-\-debug] [\-\-detailed\-exitcodes] [\-\-digest \fIDIGEST\fR] [\-\-disable [MESSAGE]] [\-\-enable] [\-\-environment \fINAME\fR] [\-\-fingerprint] [\-h|\-\-help] [\-l|\-\-logdest syslog|eventlog|\fIABS FILEPATH\fR|console] [\-\-serverport \fIPORT\fR] [\-\-noop] [\-o|\-\-onetime] [\-\-sourceaddress \fIIP_ADDRESS\fR] [\-t|\-\-test] [\-v|\-\-verbose] [\-V|\-\-version] [\-w|\-\-waitforcert \fISECONDS\fR] [\-\-\fIsetting\fR \fIVALUE\fR]
12
+ .P
13
+ Any setting that is valid in puppet\.conf is also accepted as a long argument, not only the ones listed above\. See OPTIONS below\.
12
14
  .SH "DESCRIPTION"
13
15
  This is the main OpenVox client\. Its job is to retrieve the local machine's configuration from a remote server and apply it\. In order to successfully communicate with the remote server, the client must have a certificate signed by a certificate authority that the server trusts; the recommended method for this, at the moment, is to run a certificate authority as part of the OpenVox server (which is the default)\. The client will connect and request a signed certificate, and will continue connecting until it receives one\.
14
16
  .P
@@ -45,7 +47,7 @@ See the configuration file documentation at https://docs\.openvoxproject\.org/op
45
47
  .IP "\(bu" 4
46
48
  \-\-daemonize: Send the process into the background\. This is the default\. (This is an OpenVox setting, and can go in puppet\.conf\. Note the special 'no\-' prefix for boolean settings on the command line\.)
47
49
  .IP "\(bu" 4
48
- \-\-no\-daemonize: Do not send the process into the background\. (This is an OpenVox setting, and can go in puppet\.conf\. Note the special 'no\-' prefix for boolean settings on the command line\.)
50
+ \-\-no\-daemonize: Do not send the process into the background\. (This is an OpenVox setting, and can go in puppet\.conf\.)
49
51
  .IP "\(bu" 4
50
52
  \-\-debug: Enable full debugging\.
51
53
  .IP "\(bu" 4
@@ -75,6 +77,8 @@ Disable can also take an optional message that will be reported by the 'puppet a
75
77
  .IP
76
78
  \&'puppet agent' exits after executing this\.
77
79
  .IP "\(bu" 4
80
+ \-\-environment: Request a catalog for the given environment\. When set on the command line, the agent uses this environment directly and skips both the environment recorded by the previous run and the node request to the server, which is how it picks an environment otherwise\. This is the usual way to move an agent out of an environment it switched to on an earlier run\. The server can still assign a different environment, for example through an ENC\. In that case the agent switches to the server's environment and requests the catalog again\. If 'strict_environment_mode' is set, the agent refuses the mismatched catalog and fails the run instead of switching\. (This is an OpenVox setting, and can go in puppet\.conf\.)
81
+ .IP "\(bu" 4
78
82
  \-\-evaltrace: Logs each resource as it is being evaluated\. This allows you to interactively see exactly what is being done\. (This is an OpenVox setting, and can go in puppet\.conf\. Note the special 'no\-' prefix for boolean settings on the command line\.)
79
83
  .IP "\(bu" 4
80
84
  \-\-fingerprint: Display the current certificate or certificate signing request fingerprint and then exit\. Use the '\-\-digest' option to change the digest algorithm used\.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openvox
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0.pre.rc1
4
+ version: 9.0.0.pre.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenVox Project
@@ -243,6 +243,7 @@ files:
243
243
  - Gemfile
244
244
  - Gemfile.lock
245
245
  - Guardfile.example
246
+ - HISTORY.md
246
247
  - LICENSE
247
248
  - README.md
248
249
  - Rakefile
@@ -1364,7 +1365,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1364
1365
  - !ruby/object:Gem::Version
1365
1366
  version: 1.3.1
1366
1367
  requirements: []
1367
- rubygems_version: 4.0.16
1368
+ rubygems_version: 4.0.20
1368
1369
  specification_version: 4
1369
1370
  summary: OpenVox, a community implementation of Puppet -- an automated configuration
1370
1371
  management tool