diff options
author | romain <romain@FreeBSD.org> | 2017-08-12 21:53:05 +0800 |
---|---|---|
committer | romain <romain@FreeBSD.org> | 2017-08-12 21:53:05 +0800 |
commit | ba4261dcdd8bb4c0902564ec0243a3465b6623e0 (patch) | |
tree | d16ee1e8e8aa4889b10a4a25cfe153f217a720de /sysutils | |
parent | 1c834b3a1b3b05d19c649fd277e4f83454eda782 (diff) | |
download | freebsd-ports-gnome-ba4261dcdd8bb4c0902564ec0243a3465b6623e0.tar.gz freebsd-ports-gnome-ba4261dcdd8bb4c0902564ec0243a3465b6623e0.tar.zst freebsd-ports-gnome-ba4261dcdd8bb4c0902564ec0243a3465b6623e0.zip |
New port sysutils/puppet5
Copy sysutils/puppet4 to sysutils/puppet5 and update.
With this update, we switched the default facter implementation from ruby
(sysutils/rubygem-facter) to C++ (sysutils/facter). The legacy implementation
can still be chosen with options.
With hat: puppet
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/Makefile | 1 | ||||
-rw-r--r-- | sysutils/puppet5/Makefile | 110 | ||||
-rw-r--r-- | sysutils/puppet5/distinfo | 3 | ||||
-rw-r--r-- | sysutils/puppet5/files/patch-ext__rack__config.ru | 19 | ||||
-rw-r--r-- | sysutils/puppet5/files/patch-lib_puppet_provider_service_daemontools.rb | 20 | ||||
-rw-r--r-- | sysutils/puppet5/files/pkg-message.in | 14 | ||||
-rw-r--r-- | sysutils/puppet5/files/puppet.in | 49 | ||||
-rw-r--r-- | sysutils/puppet5/files/puppetmaster.in | 56 | ||||
-rw-r--r-- | sysutils/puppet5/pkg-descr | 7 | ||||
-rw-r--r-- | sysutils/puppet5/pkg-plist | 47 |
10 files changed, 326 insertions, 0 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile index dacc028bdd36..f8fcacb92492 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -856,6 +856,7 @@ SUBDIR += puppet-lint SUBDIR += puppet-mode.el SUBDIR += puppet4 + SUBDIR += puppet5 SUBDIR += puppetserver SUBDIR += pv SUBDIR += pwd_unmkdb diff --git a/sysutils/puppet5/Makefile b/sysutils/puppet5/Makefile new file mode 100644 index 000000000000..6e402558611b --- /dev/null +++ b/sysutils/puppet5/Makefile @@ -0,0 +1,110 @@ +# $FreeBSD$ + +PORTNAME= puppet +PORTVERSION= 5.0.1 +CATEGORIES= sysutils +MASTER_SITES= http://downloads.puppetlabs.com/puppet/ +PKGNAMESUFFIX= 5 + +MAINTAINER= puppet@FreeBSD.org +COMMENT= Configuration management framework written in Ruby + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= rubygem-hiera>=2.0:sysutils/rubygem-hiera \ + rubygem-json_pure>=0:devel/rubygem-json_pure +RUN_DEPENDS= rubygem-hiera>=2.0:sysutils/rubygem-hiera \ + rubygem-hocon>=0:devel/rubygem-hocon \ + rubygem-json_pure>=0:devel/rubygem-json_pure \ + rubygem-ruby-augeas>=0:textproc/rubygem-ruby-augeas + +USES= cpe +CPE_VENDOR= puppetlabs +CONFLICTS_INSTALL= puppet4-* +NO_ARCH= yes +NO_BUILD= yes +USE_RUBY= yes +USE_RC_SUBR= puppet puppetmaster +PORTDOCS= LICENSE README.md +PORTEXAMPLES= * +USERS= puppet +GROUPS= puppet +SUB_FILES+= pkg-message +SUB_LIST= RUBY=${RUBY} + +OPTIONS_DEFINE= DOCS EXAMPLES +OPTIONS_DEFAULT= CFACTER +OPTIONS_RADIO= FACTER +OPTIONS_RADIO_FACTER= CFACTER RFACTER + +RFACTER_DESC= Use facter 2.x (written in Ruby) +CFACTER_DESC= Use facter 3.x (experimental rewrite in C++) + +RFACTER_BUILD_DEPENDS= rubygem-facter>=2.0:sysutils/rubygem-facter +RFACTER_RUN_DEPENDS= rubygem-facter>=2.0:sysutils/rubygem-facter + +CFACTER_BUILD_DEPENDS= facter>=3.0:sysutils/facter +CFACTER_RUN_DEPENDS= facter>=3.0:sysutils/facter + +post-patch: + @${REINPLACE_CMD} -e "s|/etc/puppetlabs/puppet|${ETCDIR}|" \ + ${WRKSRC}/install.rb \ + ${WRKSRC}/lib/puppet/reference/configuration.rb \ + ${WRKSRC}/lib/puppet/util/run_mode.rb + @${REINPLACE_CMD} -e "s|/etc/puppetlabs/code|${ETCDIR}|" \ + ${WRKSRC}/install.rb \ + ${WRKSRC}/lib/puppet/reference/configuration.rb \ + ${WRKSRC}/lib/puppet/util/run_mode.rb + @${REINPLACE_CMD} -e "s|/opt/puppetlabs/puppet/cache|/var/puppet|" \ + ${WRKSRC}/install.rb \ + ${WRKSRC}/lib/puppet/reference/configuration.rb \ + ${WRKSRC}/lib/puppet/util/run_mode.rb + @${REINPLACE_CMD} -e "s|/var/run/puppetlabs|/var/run/puppet|" \ + ${WRKSRC}/install.rb \ + ${WRKSRC}/lib/puppet/util/run_mode.rb + @${REINPLACE_CMD} -e "s|/var/log/puppetlabs/puppet|/var/log/puppet|" \ + ${WRKSRC}/install.rb \ + ${WRKSRC}/lib/puppet/util/run_mode.rb + @${REINPLACE_CMD} -e "s|/opt/puppetlabs/puppet/modules|${ETCDIR}/modules|" \ + ${WRKSRC}/lib/puppet/defaults.rb + @${REINPLACE_CMD} -e "s|/opt/puppetlabs/puppet/bin/gem|${LOCALBASE}/bin/gem|" \ + ${WRKSRC}/lib/puppet/provider/package/puppet_gem.rb + @${REINPLACE_CMD} -e "s|\$$confdir/ssl|/var/puppet/ssl|" \ + ${WRKSRC}/lib/puppet/defaults.rb + @${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|" \ + ${WRKSRC}/ext/rack/config.ru + +do-install: + @cd ${WRKSRC} && ${SETENV} PREFIX=${PREFIX} LC_ALL=C.UTF-8 ${RUBY} ${WRKSRC}/install.rb --no-configs --destdir=${STAGEDIR} \ + --localedir=/var/puppet/share/locales + +post-install: + ${MKDIR} ${STAGEDIR}${ETCDIR}/manifests + ${MKDIR} ${STAGEDIR}${ETCDIR}/modules + ${MKDIR} ${STAGEDIR}/var/puppet + ${INSTALL_DATA} ${WRKSRC}/conf/auth.conf ${STAGEDIR}${ETCDIR}/auth.conf-dist + ${SETENV} LC_ALL=C.UTF-8 ${RUBY} -I ${STAGEDIR}/${RUBY_SITELIBDIR} ${STAGEDIR}${PREFIX}/bin/puppet agent --genconfig \ + --confdir=${ETCDIR} \ + --rundir=/var/run/puppet \ + --vardir=/var/puppet \ + --logdir=/var/log/puppet \ + --codedir=${ETCDIR} \ + > ${STAGEDIR}${ETCDIR}/puppet.conf-dist + @${ECHO} ${STAGEDIR}${RUBY_SITELIBDIR}/puppet.rb | \ + ${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST} + @${FIND} ${STAGEDIR}${RUBY_SITELIBDIR}/${PORTNAME} -type f | \ + ${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST} + @${MKDIR} ${STAGEDIR}${WWWDIR} + ${INSTALL_DATA} ${WRKSRC}/ext/rack/config.ru ${STAGEDIR}${WWWDIR} + +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR} + +post-install-EXAMPLES-on: + @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} + ${INSTALL_DATA} ${WRKSRC}/ext/rack/example-passenger-vhost.conf ${STAGEDIR}${EXAMPLESDIR} + +.include <bsd.port.mk> diff --git a/sysutils/puppet5/distinfo b/sysutils/puppet5/distinfo new file mode 100644 index 000000000000..73d8d8827818 --- /dev/null +++ b/sysutils/puppet5/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1501136893 +SHA256 (puppet-5.0.1.tar.gz) = ff80092c7bfde7198ec2cf776b8d0b8ba1c2c95be927a5cb5edae9f670038c4a +SIZE (puppet-5.0.1.tar.gz) = 2715867 diff --git a/sysutils/puppet5/files/patch-ext__rack__config.ru b/sysutils/puppet5/files/patch-ext__rack__config.ru new file mode 100644 index 000000000000..51facb111557 --- /dev/null +++ b/sysutils/puppet5/files/patch-ext__rack__config.ru @@ -0,0 +1,19 @@ +--- ext/rack/config.ru.orig 2015-08-09 23:14:59 UTC ++++ ext/rack/config.ru +@@ -14,11 +14,11 @@ ARGV << "--rack" + # Rack applications typically don't start as root. Set --confdir, --vardir, + # --logdir, --rundir to prevent reading configuration from + # ~/ based pathing. +-ARGV << "--confdir" << "/etc/puppetlabs/puppet" +-ARGV << "--vardir" << "/opt/puppetlabs/server/data/puppetmaster" +-ARGV << "--logdir" << "/var/log/puppetlabs/puppetmaster" +-ARGV << "--rundir" << "/var/run/puppetlabs/puppetmaster" +-ARGV << "--codedir" << "/etc/puppetlabs/code" ++ARGV << "--confdir" << "%%PREFIX%%/etc/puppet" ++ARGV << "--vardir" << "/var/puppet" ++ARGV << "--logdir" << "/var/log/puppet" ++ARGV << "--rundir" << "/var/run/puppet" ++ARGV << "--codedir" << "%%PREFIX%%/etc/puppet" + + # always_cache_features is a performance improvement and safe for a master to + # apply. This is intended to allow agents to recognize new features that may be diff --git a/sysutils/puppet5/files/patch-lib_puppet_provider_service_daemontools.rb b/sysutils/puppet5/files/patch-lib_puppet_provider_service_daemontools.rb new file mode 100644 index 000000000000..3857c824a1ba --- /dev/null +++ b/sysutils/puppet5/files/patch-lib_puppet_provider_service_daemontools.rb @@ -0,0 +1,20 @@ +--- lib/puppet/provider/service/daemontools.rb.orig 2016-04-25 18:52:09 UTC ++++ lib/puppet/provider/service/daemontools.rb +@@ -39,7 +39,7 @@ Puppet::Type.type(:service).provide :dae + + EOT + +- commands :svc => "/usr/bin/svc", :svstat => "/usr/bin/svstat" ++ commands :svc => "%%PREFIX%%/bin/svc", :svstat => "%%PREFIX%%/bin/svstat" + + class << self + attr_writer :defpath +@@ -88,7 +88,7 @@ Puppet::Type.type(:service).provide :dae + # find the service dir on this node + def servicedir + unless @servicedir +- ["/service", "/etc/service","/var/lib/svscan"].each do |path| ++ ["/var/service", "/etc/service","/var/lib/svscan"].each do |path| + if Puppet::FileSystem.exist?(path) + @servicedir = path + break diff --git a/sysutils/puppet5/files/pkg-message.in b/sysutils/puppet5/files/pkg-message.in new file mode 100644 index 000000000000..d036be0a93e0 --- /dev/null +++ b/sysutils/puppet5/files/pkg-message.in @@ -0,0 +1,14 @@ + +To enable the puppet agent, add the following to /etc/rc.conf: + + puppet_enable="YES" + +To enable the puppetmaster, add the following to /etc/rc.conf: + + puppetmaster_enable="YES" + +Individual config files such as %%PREFIX%%/etc/puppetmasterd.conf are +deprecated. Use a single file, %%ETCDIR%%/puppet.conf. + +The default PID directory is /var/run/puppet + diff --git a/sysutils/puppet5/files/puppet.in b/sysutils/puppet5/files/puppet.in new file mode 100644 index 000000000000..74ea2c3793f2 --- /dev/null +++ b/sysutils/puppet5/files/puppet.in @@ -0,0 +1,49 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: puppet +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following lines to /etc/rc.conf to enable the puppet agent: +# +# puppet_enable="YES" + +. /etc/rc.subr + +name="puppet" +rcvar=puppet_enable + +load_rc_config "$name" + +: ${puppet_enable="NO"} +: ${puppet_rundir="/var/run/puppet"} + +command="%%PREFIX%%/bin/puppet" +command_args="agent ${puppet_flags} --rundir=${puppet_rundir}" +command_interpreter=%%RUBY%% +unset puppet_flags + +pidfile="${puppet_rundir}/agent.pid" +start_precmd="install -d -o puppet -g puppet ${pidfile%/*}" + +PATH="${PATH}:/usr/local/bin" + +# An UTF-8 locale is required +: LC_ALL=${LC_ALL:=C.UTF-8} +case $LC_ALL in + *.UTF-8) + ;; + *.*) + LC_ALL="${LC_ALL%.*}.UTF-8" + ;; + *) + LC_ALL=C.UTF-8 + ;; +esac +export LC_ALL + +run_rc_command "$1" diff --git a/sysutils/puppet5/files/puppetmaster.in b/sysutils/puppet5/files/puppetmaster.in new file mode 100644 index 000000000000..8c7a93d19033 --- /dev/null +++ b/sysutils/puppet5/files/puppetmaster.in @@ -0,0 +1,56 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: puppetmaster +# REQUIRE: LOGIN + +# Add the following lines to /etc/rc.conf to enable the puppetmaster: +# +# puppetmaster_enable="YES" +# + +. /etc/rc.subr + +name="puppetmaster" +rcvar=puppetmaster_enable + +load_rc_config "${name}" + +: ${puppetmaster_enable="NO"} +: ${puppetmaster_rundir="/var/run/puppet"} +: ${puppetmaster_flags="--rundir=${puppetmaster_rundir}"} + +command_interpreter=%%RUBY%% +command="%%PREFIX%%/bin/puppet" +command_args="master ${puppetmaster_flags}" +unset puppetmaster_flags + +pidfile="${puppetmaster_rundir}/master.pid" +puppet_manifest="$($command config print manifest)" + +start_precmd="puppetmaster_checkconfig" +restart_precmd="puppetmaster_checkconfig" +puppetmaster_checkconfig() { + echo -n "Performing sanity check of ${name} configuration: " + if ! ${command} parser validate "${puppet_manifest}" + then + echo "FAILED" + return 1 + else + echo "OK" + return 0 + fi +} + +if [ -z "${puppetmaster_mongrel_ports}" ]; then + run_rc_command "$1" +else + for port in ${puppetmaster_mongrel_ports}; do + pidfile="${puppetmaster_rundir}/mongrel.${port}.pid" + command_args="master --pidfile=${pidfile} --servertype=mongrel --masterport=${port}" + run_rc_command "$1" + _rc_restart_done="false" + done +fi diff --git a/sysutils/puppet5/pkg-descr b/sysutils/puppet5/pkg-descr new file mode 100644 index 000000000000..89a2fce63e8d --- /dev/null +++ b/sysutils/puppet5/pkg-descr @@ -0,0 +1,7 @@ +Puppet lets you centrally manage every important aspect of your system using +a cross-platform specification language that manages all the separate +elements normally aggregated in different files, like users, cron jobs, and +hosts, along with obviously discrete elements like packages, services, and +files. + +WWW: https://puppetlabs.com/puppet/puppet-open-source diff --git a/sysutils/puppet5/pkg-plist b/sysutils/puppet5/pkg-plist new file mode 100644 index 000000000000..c66e6ffb91ea --- /dev/null +++ b/sysutils/puppet5/pkg-plist @@ -0,0 +1,47 @@ +bin/puppet +%%ETCDIR%%/auth.conf-dist +%%ETCDIR%%/puppet.conf-dist +%%RUBY_SITELIBDIR%%/hiera/puppet_function.rb +%%RUBY_SITELIBDIR%%/hiera/scope.rb +%%RUBY_SITELIBDIR%%/hiera_puppet.rb +%%RUBY_SITELIBDIR%%/puppet_x.rb +man/man5/puppet.conf.5.gz +man/man8/puppet-agent.8.gz +man/man8/puppet-apply.8.gz +man/man8/puppet-ca.8.gz +man/man8/puppet-catalog.8.gz +man/man8/puppet-cert.8.gz +man/man8/puppet-certificate.8.gz +man/man8/puppet-certificate_request.8.gz +man/man8/puppet-certificate_revocation_list.8.gz +man/man8/puppet-config.8.gz +man/man8/puppet-describe.8.gz +man/man8/puppet-device.8.gz +man/man8/puppet-doc.8.gz +man/man8/puppet-epp.8.gz +man/man8/puppet-facts.8.gz +man/man8/puppet-filebucket.8.gz +man/man8/puppet-generate.8.gz +man/man8/puppet-help.8.gz +man/man8/puppet-key.8.gz +man/man8/puppet-lookup.8.gz +man/man8/puppet-man.8.gz +man/man8/puppet-master.8.gz +man/man8/puppet-module.8.gz +man/man8/puppet-node.8.gz +man/man8/puppet-parser.8.gz +man/man8/puppet-plugin.8.gz +man/man8/puppet-report.8.gz +man/man8/puppet-resource.8.gz +man/man8/puppet-status.8.gz +man/man8/puppet.8.gz +/var/puppet/share/locales/config.yaml +/var/puppet/share/locales/puppet.pot +@(puppet,puppet,) %%WWWDIR%%/config.ru +@dir(puppet,puppet,) %%ETCDIR%%/manifests +@dir(puppet,puppet,) %%ETCDIR%%/modules +@dir(puppet,puppet,) /var/puppet +@dir(puppet,puppet,) /var/puppet/share +@dir(puppet,puppet,) /var/puppet/share/locales +@dir(puppet,puppet,) /var/log/puppet +@dir /var/run/puppet |