aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRomain Tartière <romain@FreeBSD.org>2025-10-21 18:44:30 +0000
committerRomain Tartière <romain@FreeBSD.org>2025-10-27 18:39:12 +0000
commite4b2538d1c649d94e2a531ff2745694e94f279b7 (patch)
tree005df11f4776d30b169034fa460794c118ea7ca6
parent30e325a6bc362a303e1d6e0aab46e3470f622336 (diff)
sysutils/rubygem-openbolt: New port
OpenBolt is an open source orchestration tool that automates the manual work it takes to maintain your infrastructure. Use OpenBolt to automate tasks that you perform on an as-needed basis or as part of a greater orchestration workflow. For example, you can use OpenBolt to patch and update systems, troubleshoot servers, deploy applications, or stop and restart services. OpenBolt can be installed on your local workstation and connects directly to remote targets with SSH or WinRM, so you are not required to install any agent software. OpenBolt is a community implementation of Puppet Bolt. With hat: puppet
-rw-r--r--sysutils/Makefile1
-rw-r--r--sysutils/rubygem-bolt/Makefile1
-rw-r--r--sysutils/rubygem-openbolt/Makefile51
-rw-r--r--sysutils/rubygem-openbolt/distinfo3
-rw-r--r--sysutils/rubygem-openbolt/files/patch-openbolt.gemspec11
-rw-r--r--sysutils/rubygem-openbolt/pkg-descr9
-rw-r--r--sysutils/rubygem-openbolt/pkg-message36
7 files changed, 112 insertions, 0 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile
index 178156d18e58..04efbe92f958 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1222,6 +1222,7 @@
SUBDIR += rubygem-mothra
SUBDIR += rubygem-murder
SUBDIR += rubygem-ohai
+ SUBDIR += rubygem-openbolt
SUBDIR += rubygem-openfact
SUBDIR += rubygem-openvoxserver-ca
SUBDIR += rubygem-parallel
diff --git a/sysutils/rubygem-bolt/Makefile b/sysutils/rubygem-bolt/Makefile
index 7ec8897dd147..40aa8a8e2538 100644
--- a/sysutils/rubygem-bolt/Makefile
+++ b/sysutils/rubygem-bolt/Makefile
@@ -34,6 +34,7 @@ RUN_DEPENDS= r10k:sysutils/rubygem-r10k \
USES= gem shebangfix
+CONFLICTS_INSTALL=rubygem-openbolt
ruby_OLD_CMD+= /opt/puppetlabs/puppet/bin/ruby
SHEBANG_FILES= libexec/*
diff --git a/sysutils/rubygem-openbolt/Makefile b/sysutils/rubygem-openbolt/Makefile
new file mode 100644
index 000000000000..871cf89565c3
--- /dev/null
+++ b/sysutils/rubygem-openbolt/Makefile
@@ -0,0 +1,51 @@
+PORTNAME= openbolt
+PORTVERSION= 5.1.0
+CATEGORIES= sysutils rubygems
+MASTER_SITES= RG
+
+MAINTAINER= puppet@FreeBSD.org
+COMMENT= Execute commands remotely over SSH and WinRM
+WWW= https://github.com/OpenVoxProject/openbolt/
+
+LICENSE= APACHE20
+
+RUN_DEPENDS= puppet:sysutils/openvox-agent8 \
+ r10k:sysutils/rubygem-r10k \
+ rubygem-addressable>=2.5:www/rubygem-addressable \
+ rubygem-aws-sdk-ec2>1:devel/rubygem-aws-sdk-ec2 \
+ rubygem-CFPropertyList>=2.2:devel/rubygem-CFPropertyList \
+ rubygem-concurrent-ruby11>=1.0:devel/rubygem-concurrent-ruby11 \
+ rubygem-ffi>=1.13<2:devel/rubygem-ffi \
+ rubygem-hiera-eyaml>=3:sysutils/rubygem-hiera-eyaml \
+ rubygem-json>=2.12.0:devel/rubygem-json \
+ rubygem-jwt>=2.2:www/rubygem-jwt \
+ rubygem-logging>=2.2:devel/rubygem-logging \
+ rubygem-minitar>=0.6:archivers/rubygem-minitar \
+ rubygem-net-scp>=1.2<5:security/rubygem-net-scp \
+ rubygem-net-ssh6>=4.0<8:security/rubygem-net-ssh6 \
+ rubygem-net-ssh-krb>=0.5:security/rubygem-net-ssh-krb \
+ rubygem-openvox-strings>=5.0:textproc/rubygem-openvox-strings \
+ rubygem-orchestrator_client>=0.5:net/rubygem-orchestrator_client \
+ rubygem-puppet-resource_api>=1.8.1:devel/rubygem-puppet-resource_api \
+ rubygem-puppetfile-resolver>=0.6.2:sysutils/rubygem-puppetfile-resolver \
+ rubygem-ruby_smb>=1.0:net/rubygem-ruby_smb \
+ rubygem-terminal-table>=3.0<4:textproc/rubygem-terminal-table \
+ rubygem-winrm-fs>=1.3:filesystems/rubygem-winrm-fs \
+ rubygem-winrm>=2.0:sysutils/rubygem-winrm
+
+USES= gem shebangfix
+
+CONFLICTS_INSTALL= rubygem-bolt
+ruby_OLD_CMD+= /opt/puppetlabs/puppet/bin/ruby
+SHEBANG_FILES= libexec/*
+
+NO_ARCH= yes
+
+PLIST_FILES= bin/bolt \
+ etc/bash_completion.d/bolt
+
+post-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d
+ ${INSTALL_DATA} ${WRKSRC}/resources/bolt_bash_completion.sh ${STAGEDIR}${PREFIX}/etc/bash_completion.d/bolt
+
+.include <bsd.port.mk>
diff --git a/sysutils/rubygem-openbolt/distinfo b/sysutils/rubygem-openbolt/distinfo
new file mode 100644
index 000000000000..6cf208c3210d
--- /dev/null
+++ b/sysutils/rubygem-openbolt/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760644437
+SHA256 (rubygem/openbolt-5.1.0.gem) = ae2a80af51f9098511d6e7a1385bacf3fc8b51859217292bf4f28e3e2b8d750a
+SIZE (rubygem/openbolt-5.1.0.gem) = 231936
diff --git a/sysutils/rubygem-openbolt/files/patch-openbolt.gemspec b/sysutils/rubygem-openbolt/files/patch-openbolt.gemspec
new file mode 100644
index 000000000000..ad3f9ae315ca
--- /dev/null
+++ b/sysutils/rubygem-openbolt/files/patch-openbolt.gemspec
@@ -0,0 +1,11 @@
+--- openbolt.gemspec.orig 2025-10-21 18:36:14 UTC
++++ openbolt.gemspec
+@@ -39,7 +39,7 @@ Gem::Specification.new do |s|
+ s.add_runtime_dependency(%q<puppetfile-resolver>.freeze, [">= 0.6.2".freeze, "< 1.0".freeze])
+ s.add_runtime_dependency(%q<puppet-resource_api>.freeze, [">= 1.8.1".freeze])
+ s.add_runtime_dependency(%q<r10k>.freeze, [">= 3.10".freeze, "< 6".freeze])
+- s.add_runtime_dependency(%q<ruby_smb>.freeze, ["~> 1.0".freeze])
++ s.add_runtime_dependency(%q<ruby_smb>.freeze, [">= 1.0".freeze])
+ s.add_runtime_dependency(%q<terminal-table>.freeze, ["~> 3.0".freeze])
+ s.add_runtime_dependency(%q<winrm>.freeze, ["~> 2.0".freeze])
+ s.add_runtime_dependency(%q<winrm-fs>.freeze, ["~> 1.3".freeze])
diff --git a/sysutils/rubygem-openbolt/pkg-descr b/sysutils/rubygem-openbolt/pkg-descr
new file mode 100644
index 000000000000..60a418cf9889
--- /dev/null
+++ b/sysutils/rubygem-openbolt/pkg-descr
@@ -0,0 +1,9 @@
+OpenBolt is an open source orchestration tool that automates the manual work it
+takes to maintain your infrastructure. Use OpenBolt to automate tasks that you
+perform on an as-needed basis or as part of a greater orchestration workflow.
+For example, you can use OpenBolt to patch and update systems, troubleshoot
+servers, deploy applications, or stop and restart services. OpenBolt can be
+installed on your local workstation and connects directly to remote targets
+with SSH or WinRM, so you are not required to install any agent software.
+
+OpenBolt is a community implementation of Puppet Bolt.
diff --git a/sysutils/rubygem-openbolt/pkg-message b/sysutils/rubygem-openbolt/pkg-message
new file mode 100644
index 000000000000..82138ff79f15
--- /dev/null
+++ b/sysutils/rubygem-openbolt/pkg-message
@@ -0,0 +1,36 @@
+[
+{ type: install
+ message: <<EOM
+This port depends on security/rubygem-net-ssh which has stricter defaults that
+OpenSSH: when using strict host key checking, security/rubygem-net-ssh will
+refuse the connexion if both the remote host name and IP address are not on the
+same line of a known_host file.
+
+security/rubygem-net-ssh added support for disabling strict host key checking
+in version 5.2.0, however this setting is still enabled by default because
+upstream OpenSSH has it enabled by default. However, FreeBSD ships with a
+modified version of OpenSSH where strict host key checking is disabled by
+default. As a result:
+ - When adding an entry for a new host, only the host name is added in the
+ known_host file;
+ - The absence of CheckHostIP in the SSH configuration means the feature is
+ disabled while such absence is generally the indication of the feature
+ being enabled.
+
+As a consequence, host key verification may need additional work:
+ - When using security/rubygem-net-ssh < 5.2.0, either:
+ - Disable host key checking totally (--no-host-key-check parameter of the
+ bolt command);
+ - Update your remote host entries in the known_hosts file to use the
+ format:
+ <host-name>,<IP address> <key-type> <key>
+ - When using security/rubygem-net-ssh >= 5.2.0
+ - Add "CheckHostIP no" to your SSH client configuration file
+ (/etc/ssh/ssh_config or ~/.ssh/config).
+
+Some future version of security/rubygem-net-ssh should drop strict host key
+checking entirely, for more details, see:
+https://github.com/net-ssh/net-ssh/pull/663
+EOM
+}
+]