Index: head/sysutils/puppet/Makefile =================================================================== --- head/sysutils/puppet/Makefile (revision 400709) +++ head/sysutils/puppet/Makefile (revision 400710) @@ -1,106 +1,105 @@ # Created by: Tomoyuki Sakurai # $FreeBSD$ PORTNAME= puppet -PORTVERSION= 3.8.2 -PORTREVISION= 1 +PORTVERSION= 3.8.3 CATEGORIES= sysutils MASTER_SITES= http://downloads.puppetlabs.com/puppet/ -MAINTAINER= swills@FreeBSD.org +MAINTAINER= mmoll@FreeBSD.org COMMENT= Configuration management framework written in Ruby LICENSE= APACHE20 BUILD_DEPENDS= rubygem-facter>=0:${PORTSDIR}/sysutils/rubygem-facter \ rubygem-hiera1>=0:${PORTSDIR}/sysutils/rubygem-hiera1 RUN_DEPENDS= rubygem-facter>=0:${PORTSDIR}/sysutils/rubygem-facter \ rubygem-ruby-augeas>=0:${PORTSDIR}/textproc/rubygem-ruby-augeas \ rubygem-hiera1>=0:${PORTSDIR}/sysutils/rubygem-hiera1 USES= cpe CPE_VENDOR= puppetlabs CONFLICTS_INSTALL= puppet37-* puppet4-* NO_BUILD= yes USE_RUBY= yes USE_RUBY_FEATURES= iconv 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= PACKAGE_ORIGIN OPTIONS_RADIO= PATCHES OPTIONS_RADIO_PATCHES= PACKAGE_ORIGIN PACKAGE_ROOT PACKAGE_ORIGIN_DESC= Use port origin as package name PACKAGE_ROOT_DESC= Use PACKAGEROOT instead of PACKAGESITE PATCHES_DESC= Optional exclusive patches .include .if ${PORT_OPTIONS:MPACKAGE_ROOT} .if ! ${PORT_OPTIONS:MPACKAGE_ORIGIN} EXTRA_PATCHES+= ${FILESDIR}/optpatch-package_root .else BROKEN= PACKAGE_ROOT option patch is incompatible with PACKAGE_ORIGIN patch. .endif .endif .include .if ${PORT_OPTIONS:MPACKAGE_ORIGIN} EXTRA_PATCHES+= ${FILESDIR}/optpatch-package_origin RUN_DEPENDS+= rubygem-bzip2-ruby>=0:${PORTSDIR}/archivers/rubygem-bzip2-ruby .endif 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|/var/puppet|" \ ${WRKSRC}/lib/puppet/reference/configuration.rb \ ${WRKSRC}/lib/puppet/util/run_mode.rb @${REINPLACE_CMD} -e "s|\$$vardir/run|/var/run/puppet|" \ ${WRKSRC}/lib/puppet/util/run_mode.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} ${RUBY} ${WRKSRC}/install.rb --no-configs --destdir=${STAGEDIR} 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 ${RUBY} -I ${STAGEDIR}/${RUBY_SITELIBDIR} ${STAGEDIR}${PREFIX}/bin/puppet agent --genconfig \ --confdir=${ETCDIR} \ --rundir=/var/run/puppet \ --vardir=/var/puppet \ --logdir=/var/log/puppet \ > ${STAGEDIR}${ETCDIR}/puppet.conf-dist @${ECHO} ${STAGEDIR}${RUBY_SITELIBDIR}/puppet.rb | \ ${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST} @${ECHO} ${STAGEDIR}${RUBY_SITELIBDIR}/semver.rb | \ ${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST} @${FIND} ${STAGEDIR}${RUBY_SITELIBDIR}/${PORTNAME} -type f | \ ${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST} @${FIND} ${STAGEDIR}${RUBY_SITELIBDIR}/${PORTNAME} -type d | ${SORT} -r | \ ${SED} 's,^${STAGEDIR}${PREFIX}/,@dirrm ,' >> ${TMPPLIST} @${MKDIR} ${STAGEDIR}${WWWDIR} ${INSTALL_DATA} ${WRKSRC}/ext/rack/config.ru ${STAGEDIR}${WWWDIR} @${MKDIR} ${STAGEDIR}${DOCSDIR} cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR} @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} ${INSTALL_DATA} ${WRKSRC}/ext/rack/example-passenger-vhost.conf ${STAGEDIR}${EXAMPLESDIR} .include Index: head/sysutils/puppet/distinfo =================================================================== --- head/sysutils/puppet/distinfo (revision 400709) +++ head/sysutils/puppet/distinfo (revision 400710) @@ -1,2 +1,2 @@ -SHA256 (puppet-3.8.2.tar.gz) = 5a89c623f22fc96a2919801ff874b10f8f1a66e95c09976c73b257b8bbc39986 -SIZE (puppet-3.8.2.tar.gz) = 2637591 +SHA256 (puppet-3.8.3.tar.gz) = bbdf5e32428fe005ea7279e9396bfcdf2c9b112763595fbfed48fb599108df7f +SIZE (puppet-3.8.3.tar.gz) = 2638669 Index: head/sysutils/puppet/files/patch-lib_puppet_provider_package_pkgng.rb =================================================================== --- head/sysutils/puppet/files/patch-lib_puppet_provider_package_pkgng.rb (nonexistent) +++ head/sysutils/puppet/files/patch-lib_puppet_provider_package_pkgng.rb (revision 400710) @@ -0,0 +1,153 @@ +--- /dev/null ++++ lib/puppet/provider/package/pkgng.rb +@@ -0,0 +1,150 @@ ++require 'puppet/provider/package' ++ ++Puppet::Type.type(:package).provide :pkgng, :parent => Puppet::Provider::Package do ++ desc "A PkgNG provider for FreeBSD and DragonFly." ++ ++ commands :pkg => "/usr/local/sbin/pkg" ++ ++ confine :operatingsystem => [:freebsd, :dragonfly] ++ ++ defaultfor :operatingsystem => [:freebsd, :dragonfly] ++ ++ has_feature :versionable ++ has_feature :upgradeable ++ ++ def self.get_query ++ @pkg_query = @pkg_query || pkg(['query', '-a', '%n %v %o']) ++ @pkg_query ++ end ++ ++ def self.get_version_list ++ @version_list = @version_list || pkg(['version', '-voRL=']) ++ @version_list ++ end ++ ++ def self.get_latest_version(origin) ++ if latest_version = self.get_version_list.lines.find { |l| l =~ /^#{origin} / } ++ latest_version = latest_version.split(' ').last.split(')').first ++ return latest_version ++ end ++ nil ++ end ++ ++ def self.instances ++ packages = [] ++ begin ++ info = self.get_query ++ ++ unless info ++ return packages ++ end ++ ++ info.lines.each do |line| ++ ++ name, version, origin = line.chomp.split(" ", 3) ++ latest_version = get_latest_version(origin) || version ++ ++ pkg = { ++ :ensure => version, ++ :name => name, ++ :provider => self.name, ++ :origin => origin, ++ :version => version, ++ :latest => latest_version ++ } ++ packages << new(pkg) ++ end ++ ++ return packages ++ rescue Puppet::ExecutionFailure ++ nil ++ end ++ end ++ ++ def self.prefetch(resources) ++ packages = instances ++ resources.keys.each do |name| ++ if provider = packages.find{|p| p.name == name or p.origin == name } ++ resources[name].provider = provider ++ end ++ end ++ end ++ ++ def repo_tag_from_urn(urn) ++ # extract repo tag from URN: urn:freebsd:repo: ++ match = /^urn:freebsd:repo:(.+)$/.match(urn) ++ raise ArgumentError urn.inspect unless match ++ match[1] ++ end ++ ++ def install ++ source = resource[:source] ++ source = URI(source) unless source.nil? ++ ++ # If resource[:name] is actually an origin (e.g. 'www/curl' instead of ++ # just 'curl'), drop the category prefix. pkgng doesn't support version ++ # pinning with the origin syntax (pkg install curl-1.2.3 is valid, but ++ # pkg install www/curl-1.2.3 is not). ++ if resource[:name] =~ /\// ++ installname = resource[:name].split('/')[1] ++ else ++ installname = resource[:name] ++ end ++ ++ # Ensure we handle the version ++ if resource[:ensure] =~ /\./ ++ installname += '-' + resource[:ensure] ++ end ++ ++ if not source # install using default repo logic ++ args = ['install', '-qy', installname] ++ elsif source.scheme == 'urn' # install from repo named in URN ++ tag = repo_tag_from_urn(source.to_s) ++ args = ['install', '-qy', '-r', tag, installname] ++ else # add package located at URL ++ args = ['add', '-q', source.to_s] ++ end ++ pkg(args) ++ end ++ ++ def uninstall ++ pkg(['remove', '-qy', resource[:name]]) ++ end ++ ++ def query ++ debug @property_hash ++ if @property_hash[:ensure] == nil ++ return nil ++ else ++ version = @property_hash[:version] ++ return { :version => version } ++ end ++ end ++ ++ def version ++ debug @property_hash[:version].inspect ++ @property_hash[:version] ++ end ++ ++ def version= ++ pkg(['install', '-qy', "#{resource[:name]}-#{resource[:version]}"]) ++ end ++ ++ def origin ++ debug @property_hash[:origin].inspect ++ @property_hash[:origin] ++ end ++ ++ # Upgrade to the latest version ++ def update ++ debug 'pkgng: update called' ++ install ++ end ++ ++ # Return the latest version of the package ++ def latest ++ debug "returning the latest #{@property_hash[:name].inspect} version #{@property_hash[:latest].inspect}" ++ @property_hash[:latest] ++ end ++ ++end Property changes on: head/sysutils/puppet/files/patch-lib_puppet_provider_package_pkgng.rb ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/puppet/files/puppetmaster.in =================================================================== --- head/sysutils/puppet/files/puppetmaster.in (revision 400709) +++ head/sysutils/puppet/files/puppetmaster.in (revision 400710) @@ -1,56 +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_manifestdir="$($command config print manifestdir)" +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_manifestdir}/site.pp" + 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