diff options
author | Benedikt Boehm <hollow@gentoo.org> | 2009-10-08 09:53:45 +0000 |
---|---|---|
committer | Benedikt Boehm <hollow@gentoo.org> | 2009-10-08 09:53:45 +0000 |
commit | fe64d08e3dddc38d9b984e2e215e06b9ba2120d5 (patch) | |
tree | 3a69c6117e909bd0947bd17cb892d04fe0144b40 /app-admin/puppet | |
parent | Bump gitg to 0.0.5 (missing ChangeLog entry) (diff) | |
download | gentoo-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/ChangeLog | 8 | ||||
-rw-r--r-- | app-admin/puppet/files/puppet-0.25.0-cert-names.patch | 86 | ||||
-rw-r--r-- | app-admin/puppet/puppet-0.25.0-r1.ebuild | 133 |
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 +} |