From 8db2ca579719f9490011cec37c6028ed31e22c23 Mon Sep 17 00:00:00 2001 From: anders Date: Sat, 6 Oct 2012 21:45:14 +0000 Subject: Resurrect Puppet 2.6, useful for those who have a Puppet master running 2.6. Approved by: swills (current sysutils/puppet maintainer) --- sysutils/puppet26/Makefile | 103 +++++++++++ sysutils/puppet26/distinfo | 2 + sysutils/puppet26/files/optpatch-package_origin | 202 +++++++++++++++++++++ .../puppet26/files/patch-demote_ports_provider | 13 ++ .../puppet26/files/patch-fix_password_provider | 42 +++++ sysutils/puppet26/files/pkg-deinstall.in | 14 ++ sysutils/puppet26/files/pkg-install.in | 54 ++++++ sysutils/puppet26/files/pkg-message.in | 14 ++ sysutils/puppet26/files/puppet.in | 32 ++++ sysutils/puppet26/files/puppetmaster.in | 57 ++++++ sysutils/puppet26/pkg-descr | 7 + sysutils/puppet26/pkg-plist | 14 ++ 12 files changed, 554 insertions(+) create mode 100644 sysutils/puppet26/Makefile create mode 100644 sysutils/puppet26/distinfo create mode 100644 sysutils/puppet26/files/optpatch-package_origin create mode 100644 sysutils/puppet26/files/patch-demote_ports_provider create mode 100644 sysutils/puppet26/files/patch-fix_password_provider create mode 100644 sysutils/puppet26/files/pkg-deinstall.in create mode 100644 sysutils/puppet26/files/pkg-install.in create mode 100644 sysutils/puppet26/files/pkg-message.in create mode 100644 sysutils/puppet26/files/puppet.in create mode 100644 sysutils/puppet26/files/puppetmaster.in create mode 100644 sysutils/puppet26/pkg-descr create mode 100644 sysutils/puppet26/pkg-plist (limited to 'sysutils') diff --git a/sysutils/puppet26/Makefile b/sysutils/puppet26/Makefile new file mode 100644 index 000000000000..4e52d44f56bc --- /dev/null +++ b/sysutils/puppet26/Makefile @@ -0,0 +1,103 @@ +# New ports collection makefile for: rubygem-puppet +# Date created: 2007-03-03 +# Whom: Tomoyuki Sakurai +# +# $FreeBSD$ +# + +PORTNAME= puppet +PORTVERSION= 2.6.7 +CATEGORIES= sysutils +MASTER_SITES= http://www.puppetlabs.com/downloads/puppet/ + +MAINTAINER= anders@FreeBSD.org +COMMENT= A configuration management framework written in Ruby + +RUN_DEPENDS= ${RUBY_SITELIBDIR}/facter.rb:${PORTSDIR}/sysutils/facter \ + rubygem-ruby-augeas>=0:${PORTSDIR}/textproc/rubygem-augeas \ + ${RUBY_ARCHLIBDIR}/iconv.so:${PORTSDIR}/converters/ruby-iconv + +CONFLICTS= puppet-[0-9]* + +NO_BUILD= yes +USE_RUBY= yes +USE_RC_SUBR= puppet puppetmaster +PORTDOCS= CHANGELOG README LICENSE COPYING +PORTEXAMPLES= * +PUPPET_USER:= puppet +PUPPET_GROUP:= ${PUPPET_USER} +PUPPET_VARDIR:= /var/${PORTNAME} +PUPPET_RUNDIR:= /var/run/${PORTNAME} +SUB_FILES+= pkg-install pkg-message pkg-deinstall +SUB_LIST+= PUPPET_USER="${PUPPET_USER}" \ + PUPPET_GROUP="${PUPPET_GROUP}" \ + PUPPET_VARDIR="${PUPPET_VARDIR}" \ + PUPPET_RUNDIR="${PUPPET_RUNDIR}" + +MANCOMPRESSED= yes +MAN5= puppet.conf.5 +MAN8= filebucket.8 pi.8 puppet.8 puppetca.8 puppetd.8 \ + puppetdoc.8 puppetmasterd.8 puppetrun.8 ralsh.8 puppetqd.8 + +OPTIONS= MONGREL "Run puppet server as a mongrel service" Off \ + PACKAGE_ORIGIN "Use port origin as package name" On + +.include + +.if defined(WITH_MONGREL) +RUN_DEPENDS+= rubygem-mongrel>=0:${PORTSDIR}/www/rubygem-mongrel +.endif + +.if defined(WITH_PACKAGE_ORIGIN) +EXTRA_PATCHES+= ${FILESDIR}/optpatch-package_origin +RUN_DEPENDS+= ${RUBY_SITEARCHLIBDIR}/bz2.so:${PORTSDIR}/archivers/ruby-bz2 +.endif + +.include + +post-patch: + @${REINPLACE_CMD} -e "s|/etc/puppet|${ETCDIR}|" \ + ${WRKSRC}/install.rb \ + ${WRKSRC}/lib/puppet/reference/configuration.rb \ + ${WRKSRC}/lib/puppet/defaults.rb \ + ${WRKSRC}/lib/puppet/util/run_mode.rb + @${REINPLACE_CMD} -e "s|/var/lib/puppet|${PUPPET_VARDIR}|" \ + ${WRKSRC}/lib/puppet/reference/configuration.rb \ + ${WRKSRC}/lib/puppet/util/run_mode.rb + @${REINPLACE_CMD} -e "s|\$$vardir/run|${PUPPET_RUNDIR}|" \ + ${WRKSRC}/lib/puppet/util/run_mode.rb + @${REINPLACE_CMD} -e "s|\$$confdir/ssl|${PUPPET_VARDIR}/ssl|" \ + ${WRKSRC}/lib/puppet/defaults.rb + +pre-install: + @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL + +do-install: + @cd ${WRKSRC} && ${SETENV} PREFIX=${PREFIX} ${RUBY} ${WRKSRC}/install.rb --no-configs + +post-install: + ${INSTALL} -d ${ETCDIR} + ${INSTALL} -m 0644 ${WRKSRC}/conf/auth.conf ${ETCDIR}/auth.conf-dist + ${RUBY} -I ${RUBY_SITELIBDIR} ${PREFIX}/sbin/puppetmasterd \ + --confdir=${ETCDIR} \ + --rundir=${PUPPET_RUNDIR} \ + --genconfig | \ + ${SED} -e 's/genconfig = true/# genconfig = false/' \ + > ${ETCDIR}/puppet.conf-dist + @${ECHO} ${RUBY_SITELIBDIR}/puppet.rb | \ + ${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST} + @${FIND} ${RUBY_SITELIBDIR}/${PORTNAME} -type f | \ + ${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST} + @${FIND} ${RUBY_SITELIBDIR}/${PORTNAME} -type d | ${SORT} -r | \ + ${SED} 's,^${PREFIX}/,@dirrm ,' >> ${TMPPLIST} + @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL +.if !defined(NOPORTDOCS) + ${INSTALL} -d ${DOCSDIR} + cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR} +.endif +.if !defined(NOPORTEXAMPLES) + cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} . ${EXAMPLESDIR} +.endif + @${CAT} ${PKGMESSAGE} + +.include diff --git a/sysutils/puppet26/distinfo b/sysutils/puppet26/distinfo new file mode 100644 index 000000000000..17dcc99b92e7 --- /dev/null +++ b/sysutils/puppet26/distinfo @@ -0,0 +1,2 @@ +SHA256 (puppet-2.6.7.tar.gz) = 90c0741f66d15716cfd76f0b8cd15f5b867056f0180ba160ce868350c6dd4ddc +SIZE (puppet-2.6.7.tar.gz) = 1530756 diff --git a/sysutils/puppet26/files/optpatch-package_origin b/sysutils/puppet26/files/optpatch-package_origin new file mode 100644 index 000000000000..e1cef54cfb52 --- /dev/null +++ b/sysutils/puppet26/files/optpatch-package_origin @@ -0,0 +1,202 @@ +diff --git lib/puppet/provider/package/freebsd.rb lib/puppet/provider/package/freebsd.rb +index e10a20b..f36e29e 100755 +--- lib/puppet/provider/package/freebsd.rb ++++ lib/puppet/provider/package/freebsd.rb +@@ -1,37 +1,165 @@ +-Puppet::Type.type(:package).provide :freebsd, :parent => :openbsd do +- desc "The specific form of package management on FreeBSD. This is an +- extremely quirky packaging system, in that it freely mixes between +- ports and packages. Apparently all of the tools are written in Ruby, +- so there are plans to rewrite this support to directly use those +- libraries." ++require 'open-uri' ++require 'net/ftp' ++require 'bz2' + +- commands :pkginfo => "/usr/sbin/pkg_info", +- :pkgadd => "/usr/sbin/pkg_add", +- :pkgdelete => "/usr/sbin/pkg_delete" ++Puppet::Type.type(:package).provide :freebsd, :parent => Puppet::Provider::Package do ++ include Puppet::Util::Execution ++ ++ desc "The specific form of package management on FreeBSD. Resource names must be ++ specified as the port origin: /." ++ ++ commands :pkginfo => "/usr/sbin/pkg_info", ++ :pkgadd => "/usr/sbin/pkg_add", ++ :pkgdelete => "/usr/sbin/pkg_delete" + + confine :operatingsystem => :freebsd ++ defaultfor :operatingsystem => :freebsd ++ ++ @@lock = Mutex.new ++ @@ports_index = nil + +- def self.listcmd +- command(:pkginfo) ++ # fix bug in URI::FTP merge method that tries to set typecode ++ # even when other is a string. ++ class URI::FTP ++ def merge(other) ++ tmp = super(other) ++ if self != tmp ++ tmp.set_typecode(other.typecode) rescue NoMethodError ++ end ++ return tmp ++ end + end + +- def install +- should = @resource.should(:ensure) ++ def self.parse_pkg_string(pkg_string) ++ { ++ :pkg_name => pkg_string.split("-").slice(0..-2).join("-"), ++ :pkg_version => pkg_string.split("-")[-1], ++ } ++ end ++ ++ def self.unparse_pkg_info(pkg_info) ++ [:pkg_name, :pkg_version].map { |key| pkg_info[key] }.join("-") ++ end ++ ++ def self.parse_origin(origin_path) ++ begin ++ origin = { ++ :port_category => origin_path.split("/").fetch(-2), ++ :port_name => origin_path.split("/").fetch(-1), ++ } ++ rescue IndexError ++ raise Puppet::Error.new "#{origin_path}: not in required origin format: .*//" ++ end ++ origin ++ end + +- if @resource[:source] =~ /\/$/ +- if @resource[:source] =~ /^(ftp|https?):/ +- Puppet::Util::Execution::withenv :PACKAGESITE => @resource[:source] do +- pkgadd "-r", @resource[:name] ++ def self.instances ++ packages = [] ++ output = pkginfo "-aoQ" ++ output.split("\n").each do |data| ++ pkg_string, pkg_origin = data.split(":") ++ pkg_info = self.parse_pkg_string(pkg_string) ++ ++ packages << new({ ++ :provider => self.name, ++ :name => pkg_origin, ++ :ensure => pkg_info[:pkg_version], ++ }) ++ end ++ packages ++ end ++ ++ def ports_index ++ @@lock.synchronize do ++ if @@ports_index.nil? ++ @@ports_index = {} ++ uri = source.merge "INDEX.bz2" ++ Puppet.debug "Fetching INDEX: #{uri.inspect}" ++ begin ++ open(uri, "r") do |f| ++ BZ2::Reader.open(f.path) do |f| ++ while (line = f.gets) ++ fields = line.split("|") ++ pkg_info = self.class.parse_pkg_string(fields[0]) ++ origin = self.class.parse_origin(fields[1]) ++ @@ports_index[origin] = pkg_info ++ end ++ end ++ end ++ rescue IOError, OpenURI::HTTPError, Net::FTPError ++ @@ports_index = nil ++ raise Puppet::Error.new "Could not fetch ports INDEX: #{$!}" + end +- else +- Puppet::Util::Execution::withenv :PKG_PATH => @resource[:source] do +- pkgadd @resource[:name] ++ end ++ end ++ @@ports_index ++ end ++ ++ def uri_path ++ Facter.loadfacts ++ File.join( ++ "/", "pub", "FreeBSD", "ports", ++ Facter.value(:hardwareisa), ++ [ ++ "packages", ++ Facter.value(:kernelmajversion).split(".")[0], ++ "stable", ++ ].join("-") ++ ) << "/" ++ end ++ ++ def source ++ if !defined? @source ++ if @resource[:source] ++ @source = URI.parse(@resource[:source]) ++ if @source.path.empty? ++ @source.merge! uri_path + end ++ else # source parameter not set; build default source URI ++ @source = URI::FTP.build({ ++ :host => "ftp.freebsd.org", ++ :path => uri_path, ++ }) + end ++ Puppet.debug "Package: #{@resource[:name]}: source => #{@source.inspect}" ++ end ++ @source ++ end ++ ++ def origin ++ if !defined? @origin ++ @origin = self.class.parse_origin(@resource[:name]) ++ Puppet.debug "Package: #{@resource[:name]}: origin => #{@origin.inspect}" ++ end ++ @origin ++ end ++ ++ def package_uri ++ begin ++ pkg_name = self.class.unparse_pkg_info(ports_index.fetch(origin)) ++ rescue IndexError ++ raise Puppet::Error.new "package not found in INDEX" ++ end ++ uri = source.merge File.join("All", pkg_name + ".tbz") ++ Puppet.debug "Package: #{@resource[:name]}: package_uri => #{uri.inspect}" ++ uri ++ end ++ ++ def install ++ should = @resource.should(:ensure) ++ origin # call origin so we check the package name for correctness early ++ ++ # Source URI is for local file path. ++ if !source.absolute? or source.scheme == "file" ++ pkgadd source.path ++ # Source URI is to specific package file ++ elsif source.absolute? && source.path.end_with?(".tbz") ++ pkgadd source.to_s ++ # Source URI is to a package repository + else +- Puppet.warning "source is defined but does not have trailing slash, ignoring #{@resource[:source]}" if @resource[:source] +- pkgadd "-r", @resource[:name] ++ pkgadd "-f", package_uri.to_s + end ++ nil + end + + def query +@@ -44,7 +172,7 @@ Puppet::Type.type(:package).provide :freebsd, :parent => :openbsd do + end + + def uninstall +- pkgdelete "#{@resource[:name]}-#{@resource.should(:ensure)}" ++ output = pkginfo "-qO", @resource[:name] ++ output.split("\n").each { |pkg_name| pkgdelete([pkg_name]) } + end + end +- diff --git a/sysutils/puppet26/files/patch-demote_ports_provider b/sysutils/puppet26/files/patch-demote_ports_provider new file mode 100644 index 000000000000..6e5245f4c44c --- /dev/null +++ b/sysutils/puppet26/files/patch-demote_ports_provider @@ -0,0 +1,13 @@ +diff --git a/lib/puppet/provider/package/ports.rb b/lib/puppet/provider/package/ports.rb +index c802092..1f2ed43 100755 +--- lib/puppet/provider/package/ports.rb ++++ lib/puppet/provider/package/ports.rb +@@ -6,8 +6,6 @@ Puppet::Type.type(:package).provide :ports, :parent => :freebsd, :source => :fre + :portuninstall => "/usr/local/sbin/pkg_deinstall", + :portinfo => "/usr/sbin/pkg_info" + +- defaultfor :operatingsystem => :freebsd +- + # I hate ports + %w{INTERACTIVE UNAME}.each do |var| + ENV.delete(var) if ENV.include?(var) diff --git a/sysutils/puppet26/files/patch-fix_password_provider b/sysutils/puppet26/files/patch-fix_password_provider new file mode 100644 index 000000000000..8fd0e20fac78 --- /dev/null +++ b/sysutils/puppet26/files/patch-fix_password_provider @@ -0,0 +1,42 @@ +diff --git lib/puppet/provider/user/pw.rb lib/puppet/provider/user/pw.rb +index a5988ca..c2fff37 100644 +--- lib/puppet/provider/user/pw.rb ++++ lib/puppet/provider/user/pw.rb +@@ -1,10 +1,11 @@ + require 'puppet/provider/nameservice/pw' ++require 'open3' + + Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService::PW do + desc "User management via `pw` on FreeBSD." + + commands :pw => "pw" +- has_features :manages_homedir, :allows_duplicates ++ has_features :manages_homedir, :allows_duplicates, :manages_passwords + + defaultfor :operatingsystem => :freebsd + +@@ -37,5 +38,24 @@ Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService:: + + cmd + end ++ ++ # use pw to update password hash ++ def password=(cryptopw) ++ Puppet.debug "change password for user '#{@resource[:name]}' method called with hash '#{cryptopw}'" ++ stdin, stdout, stderr = Open3.popen3("pw user mod #{@resource[:name]} -H 0") ++ stdin.puts(cryptopw) ++ stdin.close ++ Puppet.debug "finished password for user '#{@resource[:name]}' method called with hash '#{cryptopw}'" ++ end ++ ++ # get password from /etc/master.passwd ++ def password ++ Puppet.debug "checking password for user '#{@resource[:name]}' method called" ++ current_passline = `getent passwd #{@resource[:name]}` ++ current_password = current_passline.chomp.split(':')[1] if current_passline ++ Puppet.debug "finished password for user '#{@resource[:name]}' method called : '#{current_password}'" ++ current_password ++ end ++ + end + diff --git a/sysutils/puppet26/files/pkg-deinstall.in b/sysutils/puppet26/files/pkg-deinstall.in new file mode 100644 index 000000000000..695acf2661ef --- /dev/null +++ b/sysutils/puppet26/files/pkg-deinstall.in @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD$ + +PATH="/bin:/sbin:/usr/bin:/usr/sbin" + +RUNDIR=%%PUPPET_RUNDIR%% +VARDIR=%%PUPPET_VARDIR%% + +if [ "$2" = "POST-DEINSTALL" ]; then + echo "=> Deleting ${RUNDIR} if empty..." + rm -d ${RUNDIR} 2>/dev/null || true + echo "=> Deleting ${VARDIR} if empty..." + rm -d ${VARDIR} 2>/dev/null || true +fi diff --git a/sysutils/puppet26/files/pkg-install.in b/sysutils/puppet26/files/pkg-install.in new file mode 100644 index 000000000000..9aad2d58e591 --- /dev/null +++ b/sysutils/puppet26/files/pkg-install.in @@ -0,0 +1,54 @@ +#!/bin/sh +# $FreeBSD$ +PATH="/bin:/sbin:/usr/bin:/usr/sbin" + +PUPPET_USER=%%PUPPET_USER%% +PUPPET_GROUP=%%PUPPET_GROUP%% +UID=814 +GID=$UID + +RUNDIR=%%PUPPET_RUNDIR%% +VARDIR=%%PUPPET_VARDIR%% + +PW="pw" +CHOWN="chown" +INSTALL_DIR="install -d -o ${PUPPET_USER} -g ${PUPPET_GROUP} -m 0755" + +if [ "$2" = "PRE-INSTALL" ]; then + + if ! ${PW} groupshow ${PUPPET_GROUP} 2>/dev/null 1>&2; then + if ${PW} groupadd ${PUPPET_GROUP} -g $GID; then + echo "=> Added group \"${PUPPET_GROUP}\"." + else + echo "=> Adding group \"${PUPPET_GROUP}\" failed..." + exit 1 + fi + fi + + if ! ${PW} usershow ${PUPPET_USER} 2>/dev/null 1>&2; then + if ${PW} useradd ${PUPPET_USER} -u $UID -g ${PUPPET_GROUP} -h - \ + -s "/sbin/nologin" -d "/nonexistent" \ + -c "Puppet Daemon"; then + echo "=> Added user \"${PUPPET_USER}\"." + else + echo "=> Adding user \"${PUPPET_USER}\" failed..." + exit 1 + fi + fi + +elif [ "$2" = "POST-INSTALL" ]; then + if [ -d ${RUNDIR} ]; then + echo "=> ${RUNDIR} already exists." + else + echo -n "=> Creating RUNDIR ${RUNDIR}... " + ${INSTALL_DIR} ${RUNDIR} || echo "failed" + fi + if [ -d ${VARDIR} ]; then + echo "=> ${VARDIR} already exists." + else + echo -n "=> Creating VARDIR ${VARDIR}... " + ${INSTALL_DIR} ${VARDIR} || echo "failed" + fi +fi + +exit 0 diff --git a/sysutils/puppet26/files/pkg-message.in b/sysutils/puppet26/files/pkg-message.in new file mode 100644 index 000000000000..1ba663e6a5fe --- /dev/null +++ b/sysutils/puppet26/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 %%PUPPET_RUNDIR%%. + diff --git a/sysutils/puppet26/files/puppet.in b/sysutils/puppet26/files/puppet.in new file mode 100644 index 000000000000..7ffa33d40404 --- /dev/null +++ b/sysutils/puppet26/files/puppet.in @@ -0,0 +1,32 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: puppet +# REQUIRE: NETWORK + +# +# Add the following lines to /etc/rc.conf to enable the puppet agent: +# +# puppet_enable="YES" + +. /etc/rc.subr + +name="puppet" +rcvar=`set_rcvar` + +load_rc_config "$name" + +: ${puppet_enable="NO"} +: ${puppet_rundir="%%PUPPET_RUNDIR%%"} +: ${puppet_flags="--rundir=${puppet_rundir}"} + +command_interpreter="%%PREFIX%%/bin/ruby18" +command="%%PREFIX%%/bin/puppet" +command_args="agent ${puppet_flags}" +unset puppet_flags + +pidfile="${puppet_rundir}/agent.pid" + +run_rc_command "$1" diff --git a/sysutils/puppet26/files/puppetmaster.in b/sysutils/puppet26/files/puppetmaster.in new file mode 100644 index 000000000000..9cf60b580000 --- /dev/null +++ b/sysutils/puppet26/files/puppetmaster.in @@ -0,0 +1,57 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: puppetmaster +# REQUIRE: NETWORK + +# Add the following lines to /etc/rc.conf to enable the puppetmaster: +# +# puppetmaster_enable="YES" +# + +. /etc/rc.subr + +name="puppetmaster" +rcvar=`set_rcvar` + +load_rc_config "${name}" + +: ${puppetmaster_enable="NO"} +: ${puppetmaster_rundir="%%PUPPET_RUNDIR%%"} +: ${puppetmaster_flags="--rundir=${puppetmaster_rundir}"} +: ${puppetmaster_mongrel_ports=""} + +command_interpreter="%%PREFIX%%/bin/ruby18" +command="%%PREFIX%%/bin/puppet" +command_args="master ${puppetmaster_flags}" +unset puppetmaster_flags + +pidfile="${puppetmaster_rundir}/master.pid" + +start_precmd="puppetmaster_checkconfig" +restart_precmd="puppetmaster_checkconfig" +puppetmaster_checkconfig() { + echo -n "Performing sanity check of ${name} configuration: " + ${command} ${command_args} --parseonly >/dev/null 2>&1 + rv=$? + if [ $rv != 0 ]; then + echo "FAILED, ${name} exited with status ${rv}" + ${command} ${command_args} --parseonly + return 1 + else + echo "OK" + 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/puppet26/pkg-descr b/sysutils/puppet26/pkg-descr new file mode 100644 index 000000000000..a29c19f53ba8 --- /dev/null +++ b/sysutils/puppet26/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: http://www.puppetlabs.com diff --git a/sysutils/puppet26/pkg-plist b/sysutils/puppet26/pkg-plist new file mode 100644 index 000000000000..5fe745387d77 --- /dev/null +++ b/sysutils/puppet26/pkg-plist @@ -0,0 +1,14 @@ +@comment $FreeBSD$ +bin/filebucket +bin/pi +bin/puppet +bin/puppetdoc +bin/ralsh +sbin/puppetca +sbin/puppetd +sbin/puppetmasterd +sbin/puppetqd +sbin/puppetrun +%%ETCDIR%%/puppet.conf-dist +%%ETCDIR%%/auth.conf-dist +@dirrmtry etc/puppet -- cgit