From 56cea4008a8691eb47c7cf5453b362089b56511f Mon Sep 17 00:00:00 2001 From: Moses Mendoza Date: Tue, 6 Nov 2012 10:12:39 -0800 Subject: [PATCH] Update puppet spec to 3.0.2 This patch updates the puppet spec for upstream version 3.0.2. Puppet 3.0.2 includes service management files for systemd, which ships with F17, so this updates the spec to include systemd conditionals where applicable. Several deprecated manpages and executables, including everything Puppet shipped in %{_sbindir}, are removed in Puppet 3.0.x as well; This commit updates the spec as such. The patch for commit a71208b is removed as its in the 3.0.2 source. Per existing comments, the deprecated puppetstoredconfigclean.rb script is removed. Additionally, the patch for preserving timestamps in install.rb is removed, as this has been merged into upstream. Puppet 3.0.2 requires ruby >= 1.8.7 and facter >= 1.6.6, so updated BuildRequires and Requires are added for these. A new requires of hiera >= 1.0.0 is added as well. Puppet >= 3.0.0 also entirely absorbed the source of the package hiera-puppet, so this is obsoleted and provided here. Finally, the built-in mongrel support is removed in puppet 3.x, so the reference to it is removed in the spec. Signed-off-by: Moses Mendoza Signed-off-by: Michael Stahnke --- ...rve-timestamps-when-installing-files.patch | 87 -------- ...a-different-error-when-require-fails.patch | 31 --- puppet-2.7.18.tar.gz.asc | 18 -- puppet-3.0.2.tar.gz.asc | 18 ++ puppet.spec | 209 ++++++++++++------ puppetstoredconfigclean.rb | 109 --------- 6 files changed, 158 insertions(+), 314 deletions(-) delete mode 100644 0001-Preserve-timestamps-when-installing-files.patch delete mode 100644 0001-Ruby-1.9.3-has-a-different-error-when-require-fails.patch delete mode 100644 puppet-2.7.18.tar.gz.asc create mode 100644 puppet-3.0.2.tar.gz.asc delete mode 100644 puppetstoredconfigclean.rb diff --git a/0001-Preserve-timestamps-when-installing-files.patch b/0001-Preserve-timestamps-when-installing-files.patch deleted file mode 100644 index 6fb536a..0000000 --- a/0001-Preserve-timestamps-when-installing-files.patch +++ /dev/null @@ -1,87 +0,0 @@ -From cfce8cf0baa7a96498f0ddc2c46170ed38c9aea7 Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Thu, 12 Jul 2012 00:34:28 -0400 -Subject: [PATCH/puppet] Preserve timestamps when installing files - -Without the preserve option, ruby's FileUtils.install method uses the -current time for all installed files. For backup systems, package -installs, and general pedantic sysadmins, preserving timestamps makes a -small improvement in the world. ---- - install.rb | 16 ++++++++-------- - 1 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/install.rb b/install.rb -index a55d929..c77edff 100755 ---- a/install.rb -+++ b/install.rb -@@ -84,7 +84,7 @@ def do_configs(configs, target, strip = 'conf/') - if $haveftools - File.install(cf, ocf, 0644, true) - else -- FileUtils.install(cf, ocf, {:mode => 0644, :verbose => true}) -+ FileUtils.install(cf, ocf, {:mode => 0644, :preserve => true, :verbose => true}) - end - end - -@@ -94,7 +94,7 @@ def do_configs(configs, target, strip = 'conf/') - if $haveftools - File.install(src_dll, dst_dll, 0644, true) - else -- FileUtils.install(src_dll, dst_dll, {:mode => 0644, :verbose => true}) -+ FileUtils.install(src_dll, dst_dll, {:mode => 0644, :preserve => true, :verbose => true}) - end - - require 'win32/registry' -@@ -130,7 +130,7 @@ def do_libs(libs, strip = 'lib/') - else - FileUtils.makedirs(op, {:mode => 0755, :verbose => true}) - FileUtils.chmod(0755, op) -- FileUtils.install(lf, olf, {:mode => 0644, :verbose => true}) -+ FileUtils.install(lf, olf, {:mode => 0644, :preserve => true, :verbose => true}) - end - end - end -@@ -146,7 +146,7 @@ def do_man(man, strip = 'man/') - else - FileUtils.makedirs(om, {:mode => 0755, :verbose => true}) - FileUtils.chmod(0755, om) -- FileUtils.install(mf, omf, {:mode => 0644, :verbose => true}) -+ FileUtils.install(mf, omf, {:mode => 0644, :preserve => true, :verbose => true}) - end - gzip = %x{which gzip} - gzip.chomp! -@@ -420,12 +420,12 @@ def install_binfile(from, op_file, target) - installed_wrapper = false - - if File.exists?("#{from}.bat") -- FileUtils.install("#{from}.bat", File.join(target, "#{op_file}.bat"), :mode => 0755, :verbose => true) -+ FileUtils.install("#{from}.bat", File.join(target, "#{op_file}.bat"), :mode => 0755, :preserve => true, :verbose => true) - installed_wrapper = true - end - - if File.exists?("#{from}.cmd") -- FileUtils.install("#{from}.cmd", File.join(target, "#{op_file}.cmd"), :mode => 0755, :verbose => true) -+ FileUtils.install("#{from}.cmd", File.join(target, "#{op_file}.cmd"), :mode => 0755, :preserve => true, :verbose => true) - installed_wrapper = true - end - -@@ -439,13 +439,13 @@ set RUBY_BIN=%RUBY_BIN:\\=/% - "%RUBY_BIN%ruby.exe" -x "%RUBY_BIN%puppet" %* - EOS - File.open(tmp_file2.path, "w") { |cw| cw.puts cwv } -- FileUtils.install(tmp_file2.path, File.join(target, "#{op_file}.bat"), :mode => 0755, :verbose => true) -+ FileUtils.install(tmp_file2.path, File.join(target, "#{op_file}.bat"), :mode => 0755, :preserve => true, :verbose => true) - - tmp_file2.unlink - installed_wrapper = true - end - end -- FileUtils.install(tmp_file.path, File.join(target, op_file), :mode => 0755, :verbose => true) -+ FileUtils.install(tmp_file.path, File.join(target, op_file), :mode => 0755, :preserve => true, :verbose => true) - tmp_file.unlink - end - --- -1.7.6 - diff --git a/0001-Ruby-1.9.3-has-a-different-error-when-require-fails.patch b/0001-Ruby-1.9.3-has-a-different-error-when-require-fails.patch deleted file mode 100644 index f7fed29..0000000 --- a/0001-Ruby-1.9.3-has-a-different-error-when-require-fails.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a71208ba651d96d2ac9792c5358f10231a140e10 Mon Sep 17 00:00:00 2001 -From: Daniel Pittman -Date: Fri, 9 Mar 2012 14:43:02 -0800 -Subject: [PATCH/puppet] Ruby 1.9.3 has a different error when `require` - fails. - -The text of the error message when load fails has changed, resulting in the -test failing. This adapts that to catch the different versions, allowing this -to pass in all cases. - -Signed-off-by: Daniel Pittman ---- - lib/puppet/provider/confine.rb | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/lib/puppet/provider/confine.rb b/lib/puppet/provider/confine.rb -index 6825def..b28d07d 100644 ---- a/lib/puppet/provider/confine.rb -+++ b/lib/puppet/provider/confine.rb -@@ -25,7 +25,7 @@ class Puppet::Provider::Confine - begin - require "puppet/provider/confine/#{name}" - rescue LoadError => detail -- unless detail.to_s =~ /No such file/i -+ unless detail.to_s =~ /No such file|cannot load such file/i - warn "Could not load confine test '#{name}': #{detail}" - end - # Could not find file --- -1.7.6 - diff --git a/puppet-2.7.18.tar.gz.asc b/puppet-2.7.18.tar.gz.asc deleted file mode 100644 index ffa35a6..0000000 --- a/puppet-2.7.18.tar.gz.asc +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG/MacGPG2 v2.0.18 (Darwin) -Comment: GPGTools - http://gpgtools.org - -iQIcBAABAgAGBQJP/JQ9AAoJEBBUt6JL1uwwko0P/igNdI01Lkss73TaRRSGiJcF -dLSSqyNjrgyiAoZkBTlyL7qPf76l5t7qhzO6cjj6q64e5yaGfZAbr65d4LhIGs7Z -fcpzC4MpRhcaZKTqp9864Fhwd0UC/rzMAMaR1bRkSLVgcR0F6WXDcoclnwcRZXb5 -e6b51JI85G0lyQB95Gq0SIUZQ/n8OsMDC/IhLpJLCbZIw7jRB1hciFPL6SuMGFlK -Zw+3ZpMwWGOpLU0bxLL6Nw54vVwJDf1pq/Upi+EChPdkzJQw2rZR0qwDlavNd6Ax -mEBwFyBOQ/mEiIRZslQk/TYQ+xuq3eCSk11E3ZJ+VDx2h7T4mqdEdZRoYmwliGOW -EXR/+QmB7Jqmgi0Ue0Y1LYUsydHKvXYTeR8R/wmm4O3qD8CTQ0SxbsemO78o/dp0 -pM++wMjoAKO5vyZ0/3k+kblIzXy+BYdzeqThZArMhV5q3iIm5daYSegyIA4RCSgG -mnyTGtaSQRQP685gwGdlF9P1kfrhnvw7UK2HW3WDsmkZh9lGlKSM3stwlB4FgXGu -9OAFFhRVh23Ka5B6CAXBqIdXvjz3LOmKKalxcRwR36UEaJZ4OIlTDMAmbXofOvHq -YbR0dWBovVMUn7N9vMC5AosOXApbQWNQINW2th21KV4lNvzc76bi3j5iTMsBKARE -qNhzL1TXuJYNPUv88UxJ -=mjJz ------END PGP SIGNATURE----- diff --git a/puppet-3.0.2.tar.gz.asc b/puppet-3.0.2.tar.gz.asc new file mode 100644 index 0000000..656d979 --- /dev/null +++ b/puppet-3.0.2.tar.gz.asc @@ -0,0 +1,18 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG/MacGPG2 v2.0.18 (Darwin) +Comment: GPGTools - http://gpgtools.org + +iQIcBAABAgAGBQJQ24gaAAoJEBBUt6JL1uwwFBQP/Rnl+wuQW9cq7MC3JCGpNwNn +8RkUvEnFCCzvomfRd7LXhzJ4b/X0EPQNr5Kr3VNEDpHJgekLdddb+NJRec22FXnV +TV11sf6meeDBYMyYm0tz1+OXjW+eBLklRVtM9eHzP6B8OTcfmreGBGtMMexQkgch +QYVZYL8g4v9464K5KJ8kU+5Wa9vXfulfMNz0sPAcjCWaqu6whE+LoCd29pWkBhGf +q14fqmKJK2A8V8FyGrcUn/v6Pg2vLizS5gmna+1w7tHGfyDViKA9U4lj0nA/Y7/n +NISQk0l0VXlsrFoUtk3+TaOvAzvO0fQ3opwELvLsyBf+76JUZZqgbfUaNtk1l7sY +PR4plQRJ2hDIzKOvEkonnqHe8OnSTw0S3mdCxq8oVF5VUvgynpw3YNIfLrWVArNW +Zzskz/nfyD/oaJDimwi+JdgLcEInUJWws98ElgaLOBb43reirNXAgYCXl53jwf/e +dzOIyspL9OmrISoff0hvH2lP6RmJ5mX30KaIkNN0St9fhg/9dmI1NGB3vwiEJwyq +GdHd+j3ViZsgMW2nC2Wi258Wk6zMvNWKn+7rYWmaeZwwTLSYECI7oRtshuFKYirz +TpcIRBFuBbgoSX1rrt0DFhB6sQRzbDPaLl4DMeUdRw5OK+EkKVurfbenhkLqMO// +IQJbtEkNKqARBCpvuyKY +=ljH5 +-----END PGP SIGNATURE----- diff --git a/puppet.spec b/puppet.spec index 28563ce..38e92c1 100644 --- a/puppet.spec +++ b/puppet.spec @@ -8,30 +8,32 @@ %global puppet_libdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitelibdir"]') %endif -%global confdir conf/redhat +# F-17 also ships with systemd; package/use systemd files in this case +%if 0%{?fedora} >= 17 +%global _with_systemd 1 +%else +%global _with_systemd 0 +%endif + +%global confdir ext/redhat %global ruby_version %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["ruby_version"]') Name: puppet -Version: 2.7.18 +Version: 3.0.2 Release: 1%{?dist} Summary: A network tool for managing many disparate systems License: ASL 2.0 URL: http://puppetlabs.com Source0: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz Source1: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz.asc -Source2: puppetstoredconfigclean.rb -Source3: puppet-nm-dispatcher -# https://projects.puppetlabs.com/issues/11325 -# https://github.com/puppetlabs/puppet/commit/a71208ba -Patch0: 0001-Ruby-1.9.3-has-a-different-error-when-require-fails.patch -Patch1: 0001-Preserve-timestamps-when-installing-files.patch +Source2: puppet-nm-dispatcher Group: System Environment/Base BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: facter >= 1.5 -BuildRequires: ruby >= 1.8.5 +BuildRequires: facter >= 1.6.6 +BuildRequires: ruby >= 1.8.7 %if 0%{?fedora} || 0%{?rhel} >= 5 BuildArch: noarch @@ -51,17 +53,28 @@ Requires: ruby(shadow) %endif %endif -Requires: facter >= 1.5 +Requires: facter >= 1.6.6 +Requires: hiera >= 1.0.0 +Obsoletes: hiera-puppet < 1.0.0-2 +Provides: hiera-puppet = %{version}-%{release} + +# Puppet 3.x drops ruby 1.8.5 support and adds ruby 1.9 support %if "%{ruby_version}" == "1.8" -Requires: ruby >= 1.8.5 +Requires: ruby >= 1.8.7 %endif %{!?_without_augeas:Requires: ruby(augeas)} Requires(pre): shadow-utils +%if 0%{?_with_systemd} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else Requires(post): chkconfig Requires(preun): chkconfig Requires(preun): initscripts Requires(postun): initscripts +%endif %description Puppet lets you centrally manage every important aspect of your system using a @@ -73,10 +86,16 @@ along with obviously discrete elements like packages, services, and files. Group: System Environment/Base Summary: Server for the puppet system management tool Requires: puppet = %{version}-%{release} +%if 0%{?_with_systemd} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else Requires(post): chkconfig Requires(preun): chkconfig Requires(preun): initscripts Requires(postun): initscripts +%endif %description server Provides the central puppet server daemon which provides manifests to clients. @@ -84,9 +103,7 @@ The server can also function as a certificate authority and file server. %prep %setup -q -%patch0 -p1 -%patch1 -p1 -patch -s -p1 < conf/redhat/rundir-perms.patch +patch -s -p1 < %{confdir}/rundir-perms.patch # Fix some rpmlint complaints for f in mac_dscl.pp mac_dscl_revert.pp \ @@ -94,7 +111,7 @@ for f in mac_dscl.pp mac_dscl_revert.pp \ sed -i -e'1d' examples/$f chmod a-x examples/$f done -for f in external/nagios.rb network/http_server/mongrel.rb relationship.rb; do +for f in external/nagios.rb relationship.rb; do sed -i -e '1d' lib/puppet/$f done chmod +x ext/puppet-load.rb ext/regexp_nodes/regexp_nodes.rb @@ -117,36 +134,26 @@ install -d -m0755 %{buildroot}%{_datadir}/%{name}/modules install -d -m0755 %{buildroot}%{_localstatedir}/lib/puppet install -d -m0755 %{buildroot}%{_localstatedir}/run/puppet install -d -m0750 %{buildroot}%{_localstatedir}/log/puppet + +%if 0%{?_with_systemd} +%{__install} -d -m0755 %{buildroot}%{_unitdir} +install -Dp -m0644 ext/systemd/puppetagent.service %{buildroot}%{_unitdir}/puppetagent.service +install -Dp -m0644 ext/systemd/puppetmaster.service %{buildroot}%{_unitdir}/puppetmaster.service +%else install -Dp -m0644 %{confdir}/client.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppet install -Dp -m0755 %{confdir}/client.init %{buildroot}%{_initrddir}/puppet install -Dp -m0644 %{confdir}/server.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppetmaster install -Dp -m0755 %{confdir}/server.init %{buildroot}%{_initrddir}/puppetmaster +install -Dp -m0755 %{confdir}/queue.init %{buildroot}%{_initrddir}/puppetqueue +%endif + install -Dp -m0644 %{confdir}/fileserver.conf %{buildroot}%{_sysconfdir}/puppet/fileserver.conf install -Dp -m0644 %{confdir}/puppet.conf %{buildroot}%{_sysconfdir}/puppet/puppet.conf install -Dp -m0644 %{confdir}/logrotate %{buildroot}%{_sysconfdir}/logrotate.d/puppet -# We need something for these ghosted files, otherwise rpmbuild -# will complain loudly. They won't be included in the binary packages -touch %{buildroot}%{_sysconfdir}/puppet/puppetmasterd.conf -touch %{buildroot}%{_sysconfdir}/puppet/puppetca.conf -touch %{buildroot}%{_sysconfdir}/puppet/puppetd.conf - -# Replace redundant man pages with links to the canonical man page -pushd %{buildroot}%{_mandir}/man8 >/dev/null -ln -svf puppet-cert.8.gz puppetca.8.gz -ln -svf puppet-queue.8.gz puppetqd.8.gz -ln -svf puppet-kick.8.gz puppetrun.8.gz -ln -svf puppet-describe.8.gz pi.8.gz -ln -svf puppet-master.8.gz puppetmasterd.8.gz -ln -svf puppet-filebucket.8.gz filebucket.8.gz -ln -svf puppet-agent.8.gz puppetd.8.gz -ln -svf puppet-doc.8.gz puppetdoc.8.gz -ln -svf puppet-resource.8.gz ralsh.8.gz -popd >/dev/null - # Install a NetworkManager dispatcher script to pickup changes to # /etc/resolv.conf and such (https://bugzilla.redhat.com/532085). -install -Dpv %{SOURCE3} \ +install -Dpv %{SOURCE2} \ %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/98-%{name} # Install the ext/ directory to %%{_datadir}/%%{name} @@ -154,12 +161,10 @@ install -d %{buildroot}%{_datadir}/%{name} cp -a ext/ %{buildroot}%{_datadir}/%{name} # emacs and vim bits are installed elsewhere rm -rf %{buildroot}%{_datadir}/%{name}/ext/{emacs,vim} - -# The puppetstoredconfigclean script was removed now that puppet node clean -# does this job and more. For folks that were using this, let's provide the -# script and give them a hint to use puppet node clean. Remove this for the -# next major release after 2.7. -install -pv %{SOURCE2} %{buildroot}%{_datadir}/%{name}/ext/ +# remove misc packaging artifacts in source not applicable to rpm +rm -rf %{buildroot}%{_datadir}/%{name}/ext/{gentoo,freebsd,solaris,suse,windows,osx,ips,debian} +rm -f %{buildroot}%{_datadir}/%{name}/ext/{build_defaults.yaml,project_data.yaml} +rm -f %{buildroot}%{_datadir}/%{name}/ext/redhat/*.init # Install emacs mode files emacsdir=%{buildroot}%{_datadir}/emacs/site-lisp @@ -179,27 +184,28 @@ echo "D /var/run/%{name} 0755 %{name} %{name} -" > \ %{buildroot}%{_sysconfdir}/tmpfiles.d/%{name}.conf %endif +# Create puppet modules directory for puppet module tool +mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules + %files %defattr(-, root, root, 0755) -%doc CHANGELOG LICENSE README.md examples -%{_bindir}/pi +%doc LICENSE README.md examples %{_bindir}/puppet -%{_bindir}/ralsh -%{_bindir}/filebucket -%{_bindir}/puppetdoc -%{_sbindir}/puppetca -%{_sbindir}/puppetd +%{_bindir}/extlookup2hiera %{puppet_libdir}/* +%if 0%{?_with_systemd} +%{_unitdir}/puppetagent.service +%else %{_initrddir}/puppet +%config(noreplace) %{_sysconfdir}/sysconfig/puppet +%endif %dir %{_sysconfdir}/puppet +%dir %{_sysconfdir}/%{name}/modules %if 0%{?fedora} >= 15 %config(noreplace) %{_sysconfdir}/tmpfiles.d/%{name}.conf %endif -%config(noreplace) %{_sysconfdir}/sysconfig/puppet %config(noreplace) %{_sysconfdir}/puppet/puppet.conf %config(noreplace) %{_sysconfdir}/puppet/auth.conf -%ghost %config(noreplace,missingok) %{_sysconfdir}/puppet/puppetca.conf -%ghost %config(noreplace,missingok) %{_sysconfdir}/puppet/puppetd.conf %config(noreplace) %{_sysconfdir}/logrotate.d/puppet %dir %{_sysconfdir}/NetworkManager %dir %{_sysconfdir}/NetworkManager/dispatcher.d @@ -213,33 +219,54 @@ echo "D /var/run/%{name} 0755 %{name} %{name} -" > \ %attr(-, puppet, puppet) %{_localstatedir}/run/puppet %attr(0750, puppet, puppet) %{_localstatedir}/log/puppet %attr(-, puppet, puppet) %{_localstatedir}/lib/puppet -# Exclude man pages from the server package -%exclude %{_mandir}/man8/puppet-kick.8.gz -%exclude %{_mandir}/man8/puppet-master.8.gz -%exclude %{_mandir}/man8/puppet-queue.8.gz -%exclude %{_mandir}/man8/puppetmasterd.8.gz -%exclude %{_mandir}/man8/puppetqd.8.gz -%exclude %{_mandir}/man8/puppetrun.8.gz %{_mandir}/man5/puppet.conf.5.gz -%{_mandir}/man8/*.8.gz +%{_mandir}/man8/puppet.8.gz +%{_mandir}/man8/puppet-agent.8.gz +%{_mandir}/man8/puppet-apply.8.gz +%{_mandir}/man8/puppet-catalog.8.gz +%{_mandir}/man8/puppet-describe.8.gz +%{_mandir}/man8/puppet-ca.8.gz +%{_mandir}/man8/puppet-cert.8.gz +%{_mandir}/man8/puppet-certificate.8.gz +%{_mandir}/man8/puppet-certificate_request.8.gz +%{_mandir}/man8/puppet-certificate_revocation_list.8.gz +%{_mandir}/man8/puppet-config.8.gz +%{_mandir}/man8/puppet-device.8.gz +%{_mandir}/man8/puppet-doc.8.gz +%{_mandir}/man8/puppet-facts.8.gz +%{_mandir}/man8/puppet-file.8.gz +%{_mandir}/man8/puppet-filebucket.8.gz +%{_mandir}/man8/puppet-help.8.gz +%{_mandir}/man8/puppet-inspect.8.gz +%{_mandir}/man8/puppet-instrumentation_data.8.gz +%{_mandir}/man8/puppet-instrumentation_listener.8.gz +%{_mandir}/man8/puppet-instrumentation_probe.8.gz +%{_mandir}/man8/puppet-key.8.gz +%{_mandir}/man8/puppet-man.8.gz +%{_mandir}/man8/puppet-module.8.gz +%{_mandir}/man8/puppet-node.8.gz +%{_mandir}/man8/puppet-parser.8.gz +%{_mandir}/man8/puppet-plugin.8.gz +%{_mandir}/man8/puppet-report.8.gz +%{_mandir}/man8/puppet-resource.8.gz +%{_mandir}/man8/puppet-resource_type.8.gz +%{_mandir}/man8/puppet-secret_agent.8.gz +%{_mandir}/man8/puppet-status.8.gz %files server %defattr(-, root, root, 0755) -%{_sbindir}/puppetmasterd -%{_sbindir}/puppetrun -%{_sbindir}/puppetqd +%if 0%{?_with_systemd} +%{_unitdir}/puppetmaster.service +%else %{_initrddir}/puppetmaster +%{_initrddir}/puppetqueue +%config(noreplace) %{_sysconfdir}/sysconfig/puppetmaster +%endif %config(noreplace) %{_sysconfdir}/puppet/fileserver.conf %dir %{_sysconfdir}/puppet/manifests -%config(noreplace) %{_sysconfdir}/sysconfig/puppetmaster -%ghost %config(noreplace,missingok) %{_sysconfdir}/puppet/puppetmasterd.conf -# Ensure that man pages listed here are excluded from the main package %{_mandir}/man8/puppet-kick.8.gz %{_mandir}/man8/puppet-master.8.gz %{_mandir}/man8/puppet-queue.8.gz -%{_mandir}/man8/puppetmasterd.8.gz -%{_mandir}/man8/puppetqd.8.gz -%{_mandir}/man8/puppetrun.8.gz # Fixed uid/gid were assigned in bz 472073 (Fedora), 471918 (RHEL-5), # and 471919 (RHEL-4) @@ -255,37 +282,81 @@ fi exit 0 %post +%if 0%{?_with_systemd} +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +%else /sbin/chkconfig --add puppet || : +%endif %post server +%if 0%{?_with_systemd} +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +%else /sbin/chkconfig --add puppetmaster || : +%endif %preun +%if 0%{?_with_systemd} +if [ "$1" -eq 0 ] ; then + /bin/systemctl --no-reload disable puppetagent.service > /dev/null 2>&1 || : + /bin/systemctl stop puppetagent.service > /dev/null 2>&1 || : + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi +%else if [ "$1" = 0 ] ; then /sbin/service puppet stop >/dev/null 2>&1 /sbin/chkconfig --del puppet || : fi +%endif %preun server +%if 0%{?_with_systemd} +if [ $1 -eq 0 ] ; then + /bin/systemctl --no-reload disable puppetmaster.service > /dev/null 2>&1 || : + /bin/systemctl stop puppetmaster.service > /dev/null 2>&1 || : + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi +%else if [ "$1" = 0 ] ; then /sbin/service puppetmaster stop >/dev/null 2>&1 /sbin/chkconfig --del puppetmaster || : fi +%endif %postun +%if 0%{?_with_systemd} +if [ $1 -ge 1 ] ; then + /bin/systemctl try-restart puppetagent.service >/dev/null 2>&1 || : +fi +%else if [ "$1" -ge 1 ]; then /sbin/service puppet condrestart >/dev/null 2>&1 || : fi +%endif %postun server +%if 0%{?_with_systemd} +if [ $1 -ge 1 ] ; then + /bin/systemctl try-restart puppetmaster.service >/dev/null 2>&1 || : +fi +%else if [ "$1" -ge 1 ]; then /sbin/service puppetmaster condrestart >/dev/null 2>&1 || : fi +%endif %clean rm -rf %{buildroot} %changelog +* Tue Oct 30 2012 Moses Mendoza - 3.0.2-1 +- Update to 3.0.2 +- Update new dependencies (ruby >= 1.8.7, facter >= 1.6.6, hiera >= 1.0.0) +- Update for manpage and file changes in upstream +- Add conditionals for systemd service management +- Remove 0001-Ruby-1.9.3-has-a-different-error-when-require-fails.patch +- Remove 0001-Preserve-timestamps-when-installing-files.patch + * Wed Jul 11 2012 Todd Zullinger - 2.7.18-1 - Update to 2.7.17, fixes CVE-2012-3864, CVE-2012-3865, CVE-2012-3866, CVE-2012-3867 diff --git a/puppetstoredconfigclean.rb b/puppetstoredconfigclean.rb deleted file mode 100644 index 3d0abdd..0000000 --- a/puppetstoredconfigclean.rb +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env ruby - -# Script to clean up stored configs for (a) given host(s) -# -# Credits: -# Script was taken from http://reductivelabs.com/trac/puppet/attachment/wiki/UsingStoredConfiguration/kill_node_in_storedconfigs_db.rb (link no longer valid), -# which haven been initially posted by James Turnbull -# duritong adapted and improved the script a bit. - -require 'getoptlong' -require 'puppet' -require 'puppet/rails' - -config = Puppet[:config] - -def printusage(error_code) - puts "Usage: #{$0} [ list of hostnames as stored in hosts table ]" - puts "\n Options:" - puts "--config " - exit(error_code) -end - -# Print a deprecation notice, pointing to puppet node clean the supported -# method of cleaning nodes in puppet >= 2.7. Unfortunately, puppet node clean -# removes far more than just storedconfig data. -puts "\nTHIS SCRIPT IS DEPRECATED." -puts "'puppet node clean' replaces it, but also removes certificates and reports.\n\n" - -opts = GetoptLong.new( - [ "--config", "-c", GetoptLong::REQUIRED_ARGUMENT ], - [ "--help", "-h", GetoptLong::NO_ARGUMENT ], - [ "--usage", "-u", GetoptLong::NO_ARGUMENT ], - [ "--version", "-v", GetoptLong::NO_ARGUMENT ] -) - -begin - opts.each do |opt, arg| - case opt - when "--config" - config = arg - - when "--help" - printusage(0) - - when "--usage" - printusage(0) - - when "--version" - puts "#{Puppet.version}" - exit - end - end -rescue GetoptLong::InvalidOption => detail - $stderr.puts "Try '#{$0} --help'" - exit(1) -end - -printusage(1) unless ARGV.size > 0 - -if config != Puppet[:config] - Puppet[:config]=config - Puppet.settings.parse -end - -master = Puppet.settings.instance_variable_get(:@values)[:master] -main = Puppet.settings.instance_variable_get(:@values)[:main] -db_config = main.merge(master) - -# get default values -[:master, :main, :rails].each do |section| - Puppet.settings.params(section).each do |key| - db_config[key] ||= Puppet[key] - end -end - -adapter = db_config[:dbadapter] -args = {:adapter => adapter, :log_level => db_config[:rails_loglevel]} - -case adapter - when "sqlite3" - args[:dbfile] = db_config[:dblocation] - when "mysql", "mysql2", "postgresql" - args[:host] = db_config[:dbserver] unless db_config[:dbserver].to_s.empty? - args[:username] = db_config[:dbuser] unless db_config[:dbuser].to_s.empty? - args[:password] = db_config[:dbpassword] unless db_config[:dbpassword].to_s.empty? - args[:database] = db_config[:dbname] unless db_config[:dbname].to_s.empty? - args[:port] = db_config[:dbport] unless db_config[:dbport].to_s.empty? - socket = db_config[:dbsocket] - args[:socket] = socket unless socket.to_s.empty? - else - raise ArgumentError, "Invalid db adapter #{adapter}" -end - -args[:database] = "puppet" unless not args[:database].to_s.empty? - -ActiveRecord::Base.establish_connection(args) - -ARGV.each do |hostname| - if @host = Puppet::Rails::Host.find_by_name(hostname.strip) - print "Removing #{hostname} from storedconfig..." - $stdout.flush - @host.destroy - puts "done." - else - puts "Error: Can't find host #{hostname}." - end -end - -exit 0