summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenedikt Boehm <hollow@gentoo.org>2009-10-08 09:53:45 +0000
committerBenedikt Boehm <hollow@gentoo.org>2009-10-08 09:53:45 +0000
commitfe64d08e3dddc38d9b984e2e215e06b9ba2120d5 (patch)
tree3a69c6117e909bd0947bd17cb892d04fe0144b40 /app-admin/puppet
parentBump gitg to 0.0.5 (missing ChangeLog entry) (diff)
downloadgentoo-2-fe64d08e3dddc38d9b984e2e215e06b9ba2120d5.tar.gz
gentoo-2-fe64d08e3dddc38d9b984e2e215e06b9ba2120d5.tar.bz2
gentoo-2-fe64d08e3dddc38d9b984e2e215e06b9ba2120d5.zip
add hotfix for 0.24.x CA compatibility. Upstream bug #2617
(Portage version: 2.2_rc40/cvs/Linux i686)
Diffstat (limited to 'app-admin/puppet')
-rw-r--r--app-admin/puppet/ChangeLog8
-rw-r--r--app-admin/puppet/files/puppet-0.25.0-cert-names.patch86
-rw-r--r--app-admin/puppet/puppet-0.25.0-r1.ebuild133
3 files changed, 226 insertions, 1 deletions
diff --git a/app-admin/puppet/ChangeLog b/app-admin/puppet/ChangeLog
index da7a52c0dd51..4c0f5a2b0126 100644
--- a/app-admin/puppet/ChangeLog
+++ b/app-admin/puppet/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for app-admin/puppet
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-admin/puppet/ChangeLog,v 1.47 2009/09/06 23:00:10 matsuu Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-admin/puppet/ChangeLog,v 1.48 2009/10/08 09:53:44 hollow Exp $
+
+*puppet-0.25.0-r1 (08 Oct 2009)
+
+ 08 Oct 2009; Benedikt Böhm <hollow@gentoo.org> +puppet-0.25.0-r1.ebuild,
+ +files/puppet-0.25.0-cert-names.patch:
+ add hotfix for 0.24.x CA compatibility. Upstream bug #2617
*puppet-0.25.0 (06 Sep 2009)
diff --git a/app-admin/puppet/files/puppet-0.25.0-cert-names.patch b/app-admin/puppet/files/puppet-0.25.0-cert-names.patch
new file mode 100644
index 000000000000..4a5f891733ea
--- /dev/null
+++ b/app-admin/puppet/files/puppet-0.25.0-cert-names.patch
@@ -0,0 +1,86 @@
+commit a1d3b04296babc42b6a00956508c86c18e2b39bc
+Author: Luke Kanies <luke@madstop.com>
+Date: Fri Sep 18 12:09:44 2009 -0700
+
+ Fixing #2617 - use the cert name as specified
+
+ This allows us to search for a cert, and we use the searched-for
+ term as the cert name (for the wrapper, not the actual cert object),
+ rather than the real cert name.
+
+ This allows us to use symbolic names like 'ca', as we're currently doing.
+
+ Signed-off-by: Luke Kanies <luke@madstop.com>
+
+diff --git a/lib/puppet/indirector/certificate/rest.rb b/lib/puppet/indirector/certificate/rest.rb
+index 5999830..6f47c25 100644
+--- a/lib/puppet/indirector/certificate/rest.rb
++++ b/lib/puppet/indirector/certificate/rest.rb
+@@ -6,4 +6,10 @@ class Puppet::SSL::Certificate::Rest < Puppet::Indirector::REST
+
+ use_server_setting(:ca_server)
+ use_port_setting(:ca_port)
++
++ def find(request)
++ return nil unless result = super
++ result.name = request.key unless result.name == request.key
++ result
++ end
+ end
+diff --git a/spec/integration/indirector/certificate/rest.rb b/spec/integration/indirector/certificate/rest.rb
+index 3ebd1e5..71ef443 100755
+--- a/spec/integration/indirector/certificate/rest.rb
++++ b/spec/integration/indirector/certificate/rest.rb
+@@ -64,6 +64,8 @@ describe "Certificate REST Terminus" do
+
+ # There's no good '==' method on certs.
+ result.content.to_s.should == @host.certificate.content.to_s
+- result.name.should == @host.certificate.name
++
++ # also make sure it uses the provided name, rather than the internal one.
++ result.name.should == "bar"
+ end
+ end
+diff --git a/spec/unit/indirector/certificate/rest.rb b/spec/unit/indirector/certificate/rest.rb
+index d5959c4..a325754 100755
+--- a/spec/unit/indirector/certificate/rest.rb
++++ b/spec/unit/indirector/certificate/rest.rb
+@@ -20,4 +20,38 @@ describe Puppet::SSL::Certificate::Rest do
+ it "should set port_setting to :ca_port" do
+ Puppet::SSL::Certificate::Rest.port_setting.should == :ca_port
+ end
++
++ it "should make sure found certificates have their names set to the search string" do
++ terminus = Puppet::SSL::Certificate::Rest.new
++
++ # This has 'boo.com' in the CN
++ cert_string = "-----BEGIN CERTIFICATE-----
++MIICPzCCAaigAwIBAgIBBDANBgkqhkiG9w0BAQUFADAWMRQwEgYDVQQDDAtidWNr
++eS5sb2NhbDAeFw0wOTA5MTcxNzI1MzJaFw0xNDA5MTYxNzI1MzJaMBIxEDAOBgNV
++BAMMB2Jvby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKG9B+DkTCNh
++F5xHchNDfnbC9NzWKM600oxrr84pgUVAG6B2wAZcdfoEtXszhsY9Jzpwqkvxk4Mx
++AbYqo9+TCi4UoiH6e+vAKOOJD3DHrlf+/RW4hGtyaI41DBhf4+B4/oFz5PH9mvKe
++NSfHFI/yPW+1IXYjxKLQNwF9E7q3JbnzAgMBAAGjgaAwgZ0wOAYJYIZIAYb4QgEN
++BCsWKVB1cHBldCBSdWJ5L09wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMAwG
++A1UdEwEB/wQCMAAwHQYDVR0OBBYEFJOxEUeyf4cNOBmf9zIaE1JTuNdLMAsGA1Ud
++DwQEAwIFoDAnBgNVHSUEIDAeBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwME
++MA0GCSqGSIb3DQEBBQUAA4GBAFTJxKprMg6tfhGnvEvURPmlJrINn9c2b5Y4AGYp
++tO86PFFkWw/EIJvvJzbj3s+Butr+eUo//+f1xxX7UCwwGqGxKqjtVS219oU/wkx8
++h7rW4Xk7MrLl0auSS1p4wLcAMm+ZImf94+j8Cj+tkr8eGozZceRV13b8+EkdaE3S
++rn/G
++-----END CERTIFICATE-----
++"
++
++ network = stub 'network'
++ terminus.stubs(:network).returns network
++
++ response = stub 'response', :code => "200", :body => cert_string
++ response.stubs(:[]).with('content-type').returns "text/plain"
++ network.expects(:get).returns response
++
++ request = Puppet::Indirector::Request.new(:certificate, :find, "foo.com")
++ result = terminus.find(request)
++ result.should_not be_nil
++ result.name.should == "foo.com"
++ end
+ end
diff --git a/app-admin/puppet/puppet-0.25.0-r1.ebuild b/app-admin/puppet/puppet-0.25.0-r1.ebuild
new file mode 100644
index 000000000000..179a2ce32112
--- /dev/null
+++ b/app-admin/puppet/puppet-0.25.0-r1.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-admin/puppet/puppet-0.25.0-r1.ebuild,v 1.1 2009/10/08 09:53:44 hollow Exp $
+
+EAPI="2"
+inherit elisp-common eutils ruby
+
+MY_P="${P/_}"
+DESCRIPTION="A system automation and configuration management software"
+HOMEPAGE="http://reductivelabs.com/projects/puppet"
+SRC_URI="http://reductivelabs.com/downloads/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="augeas emacs ldap rrdtool shadow vim-syntax"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+DEPEND="dev-lang/ruby[ssl]
+ emacs? ( virtual/emacs )
+ >=dev-ruby/facter-1.5.0"
+RDEPEND="${DEPEND}
+ >=app-portage/eix-0.9.4
+ augeas? ( dev-ruby/ruby-augeas )
+ ldap? ( dev-ruby/ruby-ldap )
+ rrdtool? ( >=net-analyzer/rrdtool-1.2.23[ruby] )
+ shadow? ( dev-ruby/ruby-shadow )"
+# || (
+# www-servers/webrick
+# www-servers/mongrel
+# )
+# dev-ruby/diff-lcs
+# dev-ruby/rails
+
+S="${WORKDIR}/${MY_P}"
+USE_RUBY="ruby18"
+
+SITEFILE="50${PN}-mode-gentoo.el"
+
+pkg_setup() {
+ enewgroup puppet
+ enewuser puppet -1 -1 /var/lib/puppet puppet
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-0.24.6-eix.patch"
+ epatch "${FILESDIR}/${PN}-0.25.0-cert-names.patch"
+}
+
+src_compile() {
+ if use emacs ; then
+ elisp-compile ext/emacs/puppet-mode.el || die "elisp-compile failed"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" ruby_einstall "$@" || die
+ DESTDIR="${D}" erubydoc
+
+ #
+ # bug #237071
+ #
+ #doinitd conf/gentoo/init.d/puppetmaster
+ newinitd "${FILESDIR}"/puppetmaster-0.25.init puppetmaster
+ #doconfd conf/gentoo/conf.d/puppetmaster
+ newconfd "${FILESDIR}"/puppetmaster.confd puppetmaster
+ #doinitd conf/gentoo/init.d/puppet
+ newinitd "${FILESDIR}"/puppet-0.25.init puppet
+ doconfd conf/gentoo/conf.d/puppet
+
+ # Initial configuration files
+ keepdir /etc/puppet/manifests
+ insinto /etc/puppet
+ doins conf/gentoo/puppet/*
+
+ # Location of log and data files
+ keepdir /var/run/puppet
+ keepdir /var/log/puppet
+ keepdir /var/lib/puppet/ssl
+ keepdir /var/lib/puppet/files
+ fowners -R puppet:puppet /var/{run,log,lib}/puppet
+
+ if use emacs ; then
+ elisp-install ${PN} ext/emacs/puppet-mode.el* || die "elisp-install failed"
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+
+ if use ldap ; then
+ insinto /etc/openldap/schema; doins ext/ldap/puppet.schema
+ fi
+
+ if use vim-syntax ; then
+ insinto /usr/share/vim/vimfiles/syntax; doins ext/vim/syntax/puppet.vim
+ insinto /usr/share/vim/vimfiles/ftdetect; doins ext/vim/ftdetect/puppet.vim
+ fi
+
+ # ext and examples files
+ for f in $(find ext examples -type f) ; do
+ docinto "$(dirname ${f})"; dodoc "${f}"
+ done
+ docinto conf; dodoc conf/namespaceauth.conf
+}
+
+pkg_postinst() {
+ elog
+ elog "Please, *don't* include the --ask option in EMERGE_EXTRA_OPTS as this could"
+ elog "cause puppet to hang while installing packages."
+ elog
+ elog "Puppet uses eix to get information about currently installed packages,"
+ elog "so please keep the eix metadata cache updated so puppet is able to properly"
+ elog "handle package installations."
+ elog
+ elog "Currently puppet only supports adding and removing services to the default"
+ elog "runlevel, if you want to add/remove a service from another runlevel you may"
+ elog "do so using symlinking."
+ elog
+
+ if [ \
+ -f "${ROOT}/etc/puppet/puppetd.conf" -o \
+ -f "${ROOT}/etc/puppet/puppetmaster.conf" -o \
+ -f "${ROOT}/etc/puppet/puppetca.conf" \
+ ] ; then
+ elog
+ elog "Please remove deprecated config files."
+ elog " /etc/puppet/puppetca.conf"
+ elog " /etc/puppet/puppetd.conf"
+ elog " /etc/puppet/puppetmasterd.conf"
+ elog
+ fi
+ use emacs && elisp-site-regen
+}
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}