openvox 8.22.0 → 8.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/Gemfile +10 -4
- data/lib/puppet/face/config.rb +1 -0
- data/lib/puppet/file_system.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
- data/lib/puppet/pops/issues.rb +4 -4
- data/lib/puppet/pops/validation/checker4_0.rb +1 -1
- data/lib/puppet/provider/package/nim.rb +1 -1
- data/lib/puppet/provider/service/windows.rb +1 -1
- data/lib/puppet/type.rb +3 -5
- data/lib/puppet/util/run_mode.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/tasks/build.rake +26 -0
- data/tasks/cleanup.rake +19 -0
- data/tasks/promote.rake +36 -0
- data/tasks/upload.rake +50 -0
- data/tasks/vox.rake +0 -6
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aed4767f47fbc8e2cada7f28bd3eb89af5c63a93d77c51cfe6863db5613f360d
|
4
|
+
data.tar.gz: 35906d9b41395c95d8162d1cc3af5109c265c4bd6a9749483f3572de3802940f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23098a31bba7f56c0c52c81a7f22964034f11e695ac23f19fcf927ff51ffd74d2e41b1fd6cb2bf0c6d3e88aacad039e0e84e77717c0601ec546289d3c1809d6d
|
7
|
+
data.tar.gz: 24aa9b6b9f4b03bcff0c52de755ce6d29584cc8462a985b3fd7474124aee6edeeaca5b5be4dc139776246b441fd6c886d74d3c455986106734b795cfcc0e31b6
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,35 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
|
5
|
+
## [8.23.0](https://github.com/openvoxproject/openvox/tree/8.23.0) (2025-09-07)
|
6
|
+
|
7
|
+
[Full Changelog](https://github.com/openvoxproject/openvox/compare/8.22.0...8.23.0)
|
8
|
+
|
9
|
+
- This is our first release where MacOS and Windows agents are built entirely in GitHub Actions!
|
10
|
+
- MacOS x86_64 is now supported
|
11
|
+
- The MacOS agents now work on all currently supported MacOS versions (13, 14, and 15). No need for separate packages!
|
12
|
+
- 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.
|
13
|
+
- 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.
|
14
|
+
- A patch for Augeas to address [CVE-2025-2588](https://github.com/advisories/GHSA-hxwj-c5vw-fwgp)
|
15
|
+
|
16
|
+
**Implemented enhancements:**
|
17
|
+
|
18
|
+
- Respect systemd's RUNTIME\_DIRECTORY environment variable [\#165](https://github.com/OpenVoxProject/openvox/pull/165) ([ekohl](https://github.com/ekohl))
|
19
|
+
|
20
|
+
**Fixed bugs:**
|
21
|
+
|
22
|
+
- treat windows service accounts as case insensitive [\#172](https://github.com/OpenVoxProject/openvox/pull/172) ([binford2k](https://github.com/binford2k))
|
23
|
+
- Ensure confdir exists [\#171](https://github.com/OpenVoxProject/openvox/pull/171) ([binford2k](https://github.com/binford2k))
|
24
|
+
|
25
|
+
**Merged pull requests:**
|
26
|
+
|
27
|
+
- Promote puppet-runtime 2025.09.04.1 [\#191](https://github.com/OpenVoxProject/openvox/pull/191) ([nmburgan](https://github.com/nmburgan))
|
28
|
+
- Merge openvox-agent vanagon repo [\#186](https://github.com/OpenVoxProject/openvox/pull/186) ([austb](https://github.com/austb))
|
29
|
+
|
30
|
+
## [8.22.0](https://github.com/openvoxproject/openvox/tree/8.22.0) (2025-08-23)
|
31
|
+
|
32
|
+
[Full Changelog](https://github.com/openvoxproject/openvox/compare/8.21.1...8.22.0)
|
33
|
+
|
5
34
|
## [8.21.1](https://github.com/openvoxproject/openvox/tree/8.21.1) (2025-07-23)
|
6
35
|
|
7
36
|
[Full Changelog](https://github.com/openvoxproject/openvox/compare/8.21.0...8.21.1)
|
data/Gemfile
CHANGED
@@ -12,7 +12,7 @@ def location_for(place, fake_version = nil)
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
# Make sure these gem requirements are in sync with the
|
15
|
+
# Make sure these gem requirements are in sync with the gemspec. Specifically,
|
16
16
|
# the runtime_dependencies in openvox.gemspec match the runtime dependencies here
|
17
17
|
# (like openfact, semantic_puppet, and puppet-resource_api)
|
18
18
|
|
@@ -53,7 +53,7 @@ group(:test) do
|
|
53
53
|
gem 'webrick', '~> 1.7', require: false
|
54
54
|
gem 'yard', require: false
|
55
55
|
|
56
|
-
gem 'rubocop', '~> 1.
|
56
|
+
gem 'rubocop', '~> 1.80.0', require: false, platforms: [:ruby]
|
57
57
|
gem 'rubocop-i18n', '~> 3.0', require: false, platforms: [:ruby]
|
58
58
|
gem 'rubocop-performance', '~> 1.0', require: false, platforms: [:ruby]
|
59
59
|
gem 'rubocop-rake', '~> 0.6', require: false, platforms: [:ruby]
|
@@ -69,7 +69,13 @@ group(:development, optional: true) do
|
|
69
69
|
end
|
70
70
|
|
71
71
|
group(:packaging) do
|
72
|
-
gem 'packaging', *location_for(ENV['PACKAGING_LOCATION'] || '~> 0.
|
72
|
+
gem 'packaging', *location_for(ENV['PACKAGING_LOCATION'] || '~> 0.105')
|
73
|
+
if RUBY_VERSION >= '3.2'
|
74
|
+
gem 'vanagon', *location_for(ENV['VANAGON_LOCATION'] || 'https://github.com/openvoxproject/vanagon#main')
|
75
|
+
end
|
76
|
+
gem 'artifactory'
|
77
|
+
gem 'json'
|
78
|
+
gem 'octokit'
|
73
79
|
end
|
74
80
|
|
75
81
|
group(:documentation, optional: true) do
|
@@ -81,7 +87,7 @@ end
|
|
81
87
|
|
82
88
|
group :release, optional: true do
|
83
89
|
gem 'faraday-retry', require: false
|
84
|
-
gem 'github_changelog_generator', require: false
|
90
|
+
gem 'github_changelog_generator', require: false, git: 'https://github.com/voxpupuli/github-changelog-generator', branch: 'avoid-processing-a-single-commit-multiple-time'
|
85
91
|
end
|
86
92
|
|
87
93
|
if File.exist? "#{__FILE__}.local"
|
data/lib/puppet/face/config.rb
CHANGED
@@ -171,6 +171,7 @@ Puppet::Face.define(:config, '0.0.1') do
|
|
171
171
|
end
|
172
172
|
|
173
173
|
path = Puppet::FileSystem.pathname(Puppet.settings.which_configuration_file)
|
174
|
+
Puppet::FileSystem.dir_mkpath(path)
|
174
175
|
Puppet::FileSystem.touch(path)
|
175
176
|
Puppet::FileSystem.open(path, nil, 'r+:UTF-8') do |file|
|
176
177
|
Puppet::Settings::IniFile.update(file) do |config|
|
data/lib/puppet/file_system.rb
CHANGED
@@ -169,7 +169,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
169
169
|
elsif sources.empty?
|
170
170
|
# TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
171
171
|
Puppet::Util::Profiler.profile(_("Not inlining resource without sources"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :no_sources]) { false }
|
172
|
-
elsif !
|
172
|
+
elsif !sources.all? { |source| source =~ /^puppet:/ }
|
173
173
|
# TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
174
174
|
Puppet::Util::Profiler.profile(_("Not inlining unsupported source scheme"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :unsupported_scheme]) { false }
|
175
175
|
else
|
@@ -234,7 +234,7 @@ module Puppet::FileBucketFile
|
|
234
234
|
# @api private
|
235
235
|
def verify_identical_file(contents_file, bucket_file)
|
236
236
|
(bucket_file.to_binary.bytesize == Puppet::FileSystem.size(contents_file)) &&
|
237
|
-
|
237
|
+
bucket_file.stream() { |s| Puppet::FileSystem.compare_stream(contents_file, s) }
|
238
238
|
end
|
239
239
|
|
240
240
|
# @param contents_file [Pathname] Opaque file path to intended backup
|
data/lib/puppet/pops/issues.rb
CHANGED
@@ -922,12 +922,12 @@ module Issues
|
|
922
922
|
_("The 'bolt' library is required to %{action}") % { action: action }
|
923
923
|
end
|
924
924
|
|
925
|
-
UNKNOWN_TASK = issue :UNKNOWN_TASK, :
|
926
|
-
_('Task not found: %{
|
925
|
+
UNKNOWN_TASK = issue :UNKNOWN_TASK, :task_name do
|
926
|
+
_('Task not found: %{task_name}') % { task_name: task_name }
|
927
927
|
end
|
928
928
|
|
929
|
-
LOADER_FAILURE = issue :LOADER_FAILURE, :
|
930
|
-
_('Failed to load: %{
|
929
|
+
LOADER_FAILURE = issue :LOADER_FAILURE, :task_name do
|
930
|
+
_('Failed to load: %{task_name}') % { task_name: task_name }
|
931
931
|
end
|
932
932
|
end
|
933
933
|
end
|
@@ -43,7 +43,7 @@ class Checker4_0 < Evaluator::LiteralEvaluator
|
|
43
43
|
@acceptor = diagnostics_producer
|
44
44
|
|
45
45
|
# Use null migration checker unless given in context
|
46
|
-
@migration_checker =
|
46
|
+
@migration_checker = Puppet.lookup(:migration_checker) { Migration::MigrationChecker.new() }
|
47
47
|
end
|
48
48
|
|
49
49
|
# Validates the entire model by visiting each model element and calling `check`.
|
@@ -274,7 +274,7 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
274
274
|
[packages[package_name][version], nil]
|
275
275
|
else
|
276
276
|
versions = packages[package_name].keys
|
277
|
-
latest_version =
|
277
|
+
latest_version = versions.sort { |a, b| Puppet::Util::Package.versioncmp(b, a) }[0]
|
278
278
|
[packages[package_name][latest_version], latest_version]
|
279
279
|
end
|
280
280
|
end
|
@@ -127,7 +127,7 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
|
|
127
127
|
@normalized_logon_account ||= normalize_logonaccount
|
128
128
|
@resource[:logonaccount] = @normalized_logon_account
|
129
129
|
|
130
|
-
insync = @resource[:logonaccount]
|
130
|
+
insync = @resource[:logonaccount].casecmp?(current)
|
131
131
|
self.logonpassword = @resource[:logonpassword] if insync
|
132
132
|
insync
|
133
133
|
end
|
data/lib/puppet/type.rb
CHANGED
@@ -374,11 +374,9 @@ class Type
|
|
374
374
|
# @see uniqueness_key
|
375
375
|
# @return [Array<Puppet::Parameter>] WARNING: this return type is uncertain
|
376
376
|
def self.key_attribute_parameters
|
377
|
-
@key_attribute_parameters ||=
|
378
|
-
|
379
|
-
|
380
|
-
}
|
381
|
-
)
|
377
|
+
@key_attribute_parameters ||= @parameters.find_all { |param|
|
378
|
+
param.isnamevar? or param.name == :name
|
379
|
+
}
|
382
380
|
end
|
383
381
|
|
384
382
|
# Returns cached {key_attribute_parameters} names.
|
data/lib/puppet/util/run_mode.rb
CHANGED
data/lib/puppet/version.rb
CHANGED
data/tasks/build.rake
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
namespace :vox do
|
4
|
+
desc 'Build vanagon project with Docker'
|
5
|
+
task :build, [:project, :platform] do |_, args|
|
6
|
+
args.with_defaults(project: 'openvox-agent')
|
7
|
+
project = args[:project]
|
8
|
+
|
9
|
+
ENV['SOURCE_DATE_EPOCH'] ||= `git log -1 --format=%ct`.chomp
|
10
|
+
|
11
|
+
abort 'You must provide a platform.' if args[:platform].nil? || args[:platform].empty?
|
12
|
+
platform = args[:platform]
|
13
|
+
os, _ver, arch = platform.match(/^(\w+)-([\w|\.]+)-(\w+)$/).captures
|
14
|
+
if os == 'macos'
|
15
|
+
abort "You must run this build from a #{arch} machine or shell. To do this on the current host, run 'arch -#{arch} /bin/bash'" if `uname -m`.chomp != arch
|
16
|
+
abort "You must run this build with a #{arch} Ruby version. To do this on the current host, install Ruby from an #{arch} shell via 'arch -#{arch} /bin/bash'." unless `ruby -v`.chomp =~ /#{arch}/
|
17
|
+
end
|
18
|
+
|
19
|
+
engine = platform =~ /^(macos|windows)-/ ? 'local' : 'docker'
|
20
|
+
cmd = "bundle exec build #{project} #{platform} --engine #{engine}"
|
21
|
+
|
22
|
+
Dir.chdir('packaging') do
|
23
|
+
run_command(cmd, silent: false, print_command: true, report_status: true)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/tasks/cleanup.rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
namespace :vox do
|
4
|
+
desc 'Cleanup after puppet-runtime compile'
|
5
|
+
task :cleanup, [:platform] do |_, args|
|
6
|
+
abort 'You must provide a platform.' if args[:platform].nil? || args[:platform].empty?
|
7
|
+
platform = args[:platform]
|
8
|
+
|
9
|
+
if platform =~ /^windows-/
|
10
|
+
FileUtils.rm_rf('C:/ProgramFiles64Folder')
|
11
|
+
elsif platform =~ /^macos-/
|
12
|
+
FileUtils.rm_rf('/opt/puppetlabs')
|
13
|
+
FileUtils.rm_rf('/private/etc/puppetlabs')
|
14
|
+
else
|
15
|
+
FileUtils.rm_rf('/opt/puppetlabs')
|
16
|
+
FileUtils.rm_rf('/etc/puppetlabs')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/tasks/promote.rake
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
namespace :vox do
|
2
|
+
desc 'Promote a component with a given ref into this repo. For puppet-runtime and pxp-agent, use the tag that has been built and uploaded to openvox-artifacts.'
|
3
|
+
task :promote, [:component, :ref] do |_, args|
|
4
|
+
component = args[:component]
|
5
|
+
ref = args[:ref]
|
6
|
+
|
7
|
+
abort 'You must specify a component.' if component.nil? || component.empty?
|
8
|
+
abort "Could not find configs/components/#{component}.json" unless File.exist?("packaging/configs/components/#{component}.json")
|
9
|
+
abort 'You must provide a ref.' if ref.nil? || ref.empty?
|
10
|
+
|
11
|
+
if component == 'puppet-runtime'
|
12
|
+
munged = ref.gsub('-', '.')
|
13
|
+
data = <<~DATA
|
14
|
+
{"location":"https://s3.osuosl.org/openvox-artifacts/#{component}/#{ref}/","version":"#{munged}"}
|
15
|
+
DATA
|
16
|
+
else
|
17
|
+
data = <<~DATA
|
18
|
+
{"url":"https://github.com/openvoxproject/#{component}.git","ref":"#{ref}"}
|
19
|
+
DATA
|
20
|
+
end
|
21
|
+
|
22
|
+
branch = run_command('git rev-parse --abbrev-ref HEAD')
|
23
|
+
|
24
|
+
Dir.chdir('packaging') do
|
25
|
+
puts "Writing #{component}.json"
|
26
|
+
File.write("configs/components/#{component}.json", data)
|
27
|
+
run_command("git add configs/components/#{component}.json")
|
28
|
+
puts 'Creating commit'
|
29
|
+
run_command("git commit -m 'Promote #{component} #{ref}'")
|
30
|
+
if ENV['NOPUSH'].nil?
|
31
|
+
puts 'Pushing to origin'
|
32
|
+
run_command("git push origin #{branch}")
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/tasks/upload.rake
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
namespace :vox do
|
2
|
+
desc 'Upload artifacts from the output directory to S3. Requires the AWS CLI to be installed and configured appropriately.'
|
3
|
+
task :upload, [:tag, :platform] do |_, args|
|
4
|
+
endpoint = ENV.fetch('ENDPOINT_URL')
|
5
|
+
bucket = ENV.fetch('BUCKET_NAME')
|
6
|
+
component = 'openvox-agent'
|
7
|
+
os = nil
|
8
|
+
arch = nil
|
9
|
+
if args[:platform]
|
10
|
+
parts = args[:platform].split('-')
|
11
|
+
os = parts[0].gsub('fedora','fc')
|
12
|
+
osver = parts[1]
|
13
|
+
# On MacOS, the dmg name has "macos.all"
|
14
|
+
os = os == 'macos' ? "#{os}.#{osver}" : "#{os}#{osver}"
|
15
|
+
arch = parts[2]
|
16
|
+
end
|
17
|
+
|
18
|
+
abort 'You must set the ENDPOINT_URL environment variable to the S3 server you want to upload to.' if endpoint.nil? || endpoint.empty?
|
19
|
+
abort 'You must set the BUCKET_NAME environment variable to the S3 bucket you are uploading to.' if bucket.nil? || bucket.empty?
|
20
|
+
abort 'You must provide a tag.' if args[:tag].nil? || args[:tag].empty?
|
21
|
+
|
22
|
+
munged_tag = args[:tag].gsub('-', '.')
|
23
|
+
s3 = "aws s3 --endpoint-url=#{endpoint}"
|
24
|
+
|
25
|
+
# Ensure the AWS CLI isn't going to fail with the given parameters
|
26
|
+
run_command("#{s3} ls s3://#{bucket}/")
|
27
|
+
|
28
|
+
glob = "#{__dir__}/../packaging/output/**/*#{munged_tag}*"
|
29
|
+
if os
|
30
|
+
if os =~ /windows/
|
31
|
+
# We don't put the OS in the filename for Windows
|
32
|
+
glob += "#{arch}.msi"
|
33
|
+
else
|
34
|
+
# "arch" is not used here because we are currently horrifyingly
|
35
|
+
# inconsistent with the platform -> package name
|
36
|
+
# (e.g. debian-12-aarch64 ends up as debian12.arm64).
|
37
|
+
glob += "#{os}*"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
puts "Searching for files with glob #{glob}"
|
41
|
+
files = Dir.glob(glob)
|
42
|
+
abort 'No files for the given tag found in the output directory.' if files.empty?
|
43
|
+
|
44
|
+
path = "s3://#{bucket}/#{component}/#{args[:tag]}"
|
45
|
+
files.each do |f|
|
46
|
+
f = `cygpath -m #{f}`.chomp if os =~ /windows/
|
47
|
+
run_command("#{s3} cp #{f} #{path}/#{File.basename(f)}", silent: false)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/tasks/vox.rake
CHANGED
@@ -13,11 +13,5 @@ namespace :vox do
|
|
13
13
|
warn 'Failed to update version in lib/puppet/version.rb' if data == new_data
|
14
14
|
|
15
15
|
File.write('lib/puppet/version.rb', new_data)
|
16
|
-
|
17
|
-
data = File.read('openvox.gemspec')
|
18
|
-
new_data = data.sub(/spec.version = "\d+\.\d+\.\d+(\.rc\d+)?"/, "spec.version = \"#{version}\"")
|
19
|
-
warn 'Failed to update version in openvox.gemspec' if data == new_data
|
20
|
-
|
21
|
-
File.write('openvox.gemspec', new_data)
|
22
16
|
end
|
23
17
|
end
|
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: 8.
|
4
|
+
version: 8.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenVox Project
|
@@ -86,7 +86,7 @@ dependencies:
|
|
86
86
|
version: '2.1'
|
87
87
|
- - "<"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '5'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -96,7 +96,7 @@ dependencies:
|
|
96
96
|
version: '2.1'
|
97
97
|
- - "<"
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version: '
|
99
|
+
version: '5'
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
name: getoptlong
|
102
102
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1332,6 +1332,10 @@ files:
|
|
1332
1332
|
- man/man8/puppet-script.8
|
1333
1333
|
- man/man8/puppet-ssl.8
|
1334
1334
|
- man/man8/puppet.8
|
1335
|
+
- tasks/build.rake
|
1336
|
+
- tasks/cleanup.rake
|
1337
|
+
- tasks/promote.rake
|
1338
|
+
- tasks/upload.rake
|
1335
1339
|
- tasks/vox.rake
|
1336
1340
|
homepage: https://github.com/OpenVoxProject/puppet
|
1337
1341
|
licenses:
|