summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO26
-rw-r--r--PKGBUILD61
-rw-r--r--mcollective.service15
-rw-r--r--ruby30.patch52
4 files changed, 154 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..4b507a8e9a04
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,26 @@
+pkgbase = mcollective
+ pkgdesc = The Marionette Collective, a framework for building server orchestration or parallel job-execution systems.
+ pkgver = 2.12.5
+ pkgrel = 3
+ url = https://puppet.com/docs/mcollective/current/index.html
+ arch = any
+ license = Apache
+ depends = ruby
+ depends = puppet5
+ depends = ruby-stomp
+ optdepends = ruby-nats-pure: NATS backend
+ optdepends = ruby-net-ping: ping interface supporting various protocols
+ optdepends = ruby-sys-proctable: interface for providing process table info
+ backup = etc/puppetlabs/mcollective/server.cfg
+ backup = etc/puppetlabs/mcollective/client.cfg
+ source = https://downloads.puppetlabs.com/mcollective/mcollective-2.12.5.tar.gz
+ source = https://downloads.puppetlabs.com/mcollective/mcollective-2.12.5.tar.gz.asc
+ source = mcollective.service
+ source = ruby30.patch
+ validpgpkeys = 6F6B15509CF8E59E6E469F327F438280EF8D349F
+ sha512sums = f24c971a816f89196085574416a209ccf5584e61975a6a301aa6c697debf675a3ef49acf5ad3c772b8225d50fd149848afa79e7a5666b471299beb11e213cd57
+ sha512sums = SKIP
+ sha512sums = 132cdf7d4262ed3969ab09d2951bf79a3182e2a795a2778bd6f4d5d66b53b17f170a7b106e4499f73acdd4a0b29b48eb34fb7a1cd5cba36b70570a9775fda9b1
+ sha512sums = cd1e76378e3f6c3d759d2d9cb52825484c7f0efc11a577cf317a937dcd1597b1d7f7c5ae2049a2be5fb6f922b731a94851c7c7d10415e63f8b9928383536a614
+
+pkgname = mcollective
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..55affe4178ce
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Thore Bödecker <foxxx0@archlinux.org
+
+pkgname=mcollective
+pkgver=2.12.5
+pkgrel=3
+pkgdesc="The Marionette Collective, a framework for building server orchestration or parallel job-execution systems."
+arch=('any')
+url='https://puppet.com/docs/mcollective/current/index.html'
+license=('Apache')
+backup=('etc/puppetlabs/mcollective/server.cfg' 'etc/puppetlabs/mcollective/client.cfg')
+depends=('ruby' 'puppet5' 'ruby-stomp')
+optdepends=(
+ 'ruby-nats-pure: NATS backend'
+ 'ruby-net-ping: ping interface supporting various protocols'
+ 'ruby-sys-proctable: interface for providing process table info'
+)
+source=(
+ "https://downloads.puppetlabs.com/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.asc}
+ 'mcollective.service'
+ 'ruby30.patch'
+)
+sha512sums=('f24c971a816f89196085574416a209ccf5584e61975a6a301aa6c697debf675a3ef49acf5ad3c772b8225d50fd149848afa79e7a5666b471299beb11e213cd57'
+ 'SKIP'
+ '132cdf7d4262ed3969ab09d2951bf79a3182e2a795a2778bd6f4d5d66b53b17f170a7b106e4499f73acdd4a0b29b48eb34fb7a1cd5cba36b70570a9775fda9b1'
+ 'cd1e76378e3f6c3d759d2d9cb52825484c7f0efc11a577cf317a937dcd1597b1d7f7c5ae2049a2be5fb6f922b731a94851c7c7d10415e63f8b9928383536a614')
+validpgpkeys=(
+ '6F6B15509CF8E59E6E469F327F438280EF8D349F' # Puppet, Inc. Release Key
+)
+
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../ruby30.patch
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ruby install.rb \
+ --destdir="${pkgdir}" \
+ --rdoc \
+ --configs \
+ --configdir="/etc/puppetlabs/${pkgname}" \
+ --bindir="/usr/bin" \
+ --sbindir="/usr/bin" \
+ --plugindir="/usr/lib/${pkgname}" \
+ --sitelibdir="$(ruby -e 'puts RbConfig::CONFIG["vendorlibdir"]')" \
+ --no-batch-files \
+ --full
+
+ find "${pkgdir}" -type d -name 'debian' -exec rm -rf {} +
+ find "${pkgdir}" -type d -name 'redhat' -exec rm -rf {} +
+
+ install -D -m755 -d "${pkgdir}/usr/lib/${pkgname}"
+
+ install -D -m644 "${srcdir}/mcollective.service" "${pkgdir}/usr/lib/systemd/system/mcollective.service"
+
+ sed -i \
+ -e "s|/usr/libexec/${pkgname}|/usr/lib/${pkgname}|g" \
+ -e "s|/etc/${pkgname}|/etc/puppetlabs/${pkgname}|g" \
+ "${pkgdir}/etc/puppetlabs/${pkgname}"/*.cfg
+}
diff --git a/mcollective.service b/mcollective.service
new file mode 100644
index 000000000000..6fcb1684ae6d
--- /dev/null
+++ b/mcollective.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=The Marionette Collective Daemon
+After=network.target
+
+[Service]
+Type=simple
+StandardOutput=syslog
+StandardError=syslog
+PIDFile=/run/puppetlabs/mcollective.pid
+ExecStart=/usr/bin/mcollectived --config=/etc/puppetlabs/mcollective/server.cfg --pidfile=/run/puppetlabs/mcollective.pid
+ExecReload=/usr/bin/kill -USR1 $MAINPID
+KillMode=process
+
+[Install]
+WantedBy=multi-user.target
diff --git a/ruby30.patch b/ruby30.patch
new file mode 100644
index 000000000000..f14f76d2bfb8
--- /dev/null
+++ b/ruby30.patch
@@ -0,0 +1,52 @@
+commit b03686459ad1eca67c8ddb64e90284e0623ae3b1
+Author: Anatol Pomozov <anatol.pomozov@gmail.com>
+Date: Fri Mar 19 16:35:03 2021 -0700
+
+ Port to ruby 3.0
+
+ Ruby 3.0 removed long deprecated constants
+ https://bigbinary.com/blog/ruby-2-4-has-depecated-constants-true-false-and-nil
+
+ Use keyword arguments
+
+diff --git a/install.rb b/install.rb
+index 902d5e8..98f5704 100755
+--- a/install.rb
++++ b/install.rb
+@@ -46,9 +46,9 @@ rescue LoadError
+ end
+
+ if (defined?(RbConfig) ? RbConfig : Config)::CONFIG['host_os'] =~ /mswin|win32|dos|mingw|cygwin/i
+- WINDOWS = TRUE
++ WINDOWS = true
+ else
+- WINDOWS = FALSE
++ WINDOWS = false
+ end
+
+ PREREQS = %w{}
+@@ -79,8 +79,8 @@ def do_configs(configs, target, strip = 'etc/')
+ configs.each do |cf|
+ ocf = File.join(target, cf.gsub(Regexp.new(strip), ''))
+ oc = File.dirname(ocf)
+- makedirs(oc, {:mode => 0755, :verbose => true})
+- install(cf, ocf, {:mode => 0644, :preserve => true, :verbose => true})
++ makedirs(oc, :mode => 0755, :verbose => true)
++ install(cf, ocf, :mode => 0644, :preserve => true, :verbose => true)
+ end
+ end
+
+@@ -97,10 +97,10 @@ def do_libs(libs, target, strip = 'lib/')
+ olf = File.join(target, lf.sub(/^#{strip}/, ''))
+ op = File.dirname(olf)
+ if File.directory?(lf)
+- makedirs(olf, {:mode => 0755, :verbose => true})
++ makedirs(olf, :mode => 0755, :verbose => true)
+ else
+- makedirs(op, {:mode => 0755, :verbose => true})
+- install(lf, olf, {:mode => 0644, :preserve => true, :verbose => true})
++ makedirs(op, :mode => 0755, :verbose => true)
++ install(lf, olf, :mode => 0644, :preserve => true, :verbose => true)
+ end
+ end
+ end