Index: head/sysutils/puppet/Makefile =================================================================== --- head/sysutils/puppet/Makefile +++ head/sysutils/puppet/Makefile @@ -2,12 +2,11 @@ # $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 Index: head/sysutils/puppet/distinfo =================================================================== --- head/sysutils/puppet/distinfo +++ head/sysutils/puppet/distinfo @@ -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 +++ head/sysutils/puppet/files/patch-lib_puppet_provider_package_pkgng.rb @@ -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 Index: head/sysutils/puppet/files/puppetmaster.in =================================================================== --- head/sysutils/puppet/files/puppetmaster.in +++ head/sysutils/puppet/files/puppetmaster.in @@ -28,13 +28,13 @@ 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