%define name puppet %define version 0.24.5 %define release %mkrel 1 %define pbuild %{_builddir}/%{name}-%{version} %define confdir conf/redhat #Avoid automatic dependency on bash triggered by shebang line in conf/{redhat,suse}/*.init which we don't use anyway ! %define _requires_exceptions bash Name: %{name} Version: %{version} Release: %{release} Summary: System Automation and Configuration Management Software License: GPLv2+ Group: Monitoring URL: http://puppet.reductivelabs.com/ Source0: http://reductivelabs.com/downloads/puppet/%{name}-%{version}.tgz Source100: puppet.init Source101: puppetmaster.init BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildRequires: ruby >= 1.8.1 Requires: ruby >= 1.8.1 Requires: facter >= 1.1.4 Requires(post): rpm-helper Requires(preun):rpm-helper %description Puppet lets you centrally manage every important aspect of your system using a cross-platform specification language that manages all the separate elements normally aggregated in different files, like users, cron jobs, and hosts, along with obviously discrete elements like packages, services, and files. This package provide the puppet client daemon. %pre %_pre_useradd puppet %{_localstatedir}/%{name} /sbin/nologin %post %_post_service puppet %preun %_preun_service puppet %files %defattr(-, root, root, 0755) %{_bindir}/puppet %{_bindir}/ralsh %{_bindir}/filebucket %{_bindir}/puppetdoc %exclude %{_mandir}/man8/pi.8* %{_sbindir}/puppetd %{ruby_sitelibdir}/puppet.rb %{ruby_sitelibdir}/%{name} %{_initrddir}/puppet %dir %{_sysconfdir}/puppet %config(noreplace) %{_sysconfdir}/sysconfig/puppet %config(noreplace) %{_sysconfdir}/puppet/puppet.conf %ghost %config(noreplace,missingok) %{_sysconfdir}/%{name}/puppetd.conf %doc CHANGELOG COPYING LICENSE README examples %config(noreplace) %{_sysconfdir}/logrotate.d/puppet # These need to be owned by puppet so the server can # write to them %attr(-, puppet, puppet) %{_localstatedir}/run/puppet %attr(-, puppet, puppet) %{_localstatedir}/log/puppet %attr(-, puppet, puppet) %{_localstatedir}/lib/puppet %doc %{_mandir}/man8/puppet.8* %doc %{_mandir}/man8/puppet.conf.8* %doc %{_mandir}/man8/puppetd.8* %doc %{_mandir}/man8/ralsh.8* %doc %{_mandir}/man8/puppetdoc.8* %config(noreplace) %{_sysconfdir}/logcheck/ignore.d.workstation/puppet %config(noreplace) %{_sysconfdir}/logcheck/ignore.d.server/puppet %config %{_sysconfdir}/emacs/site-start.d/puppet-mode-init.el %{_datadir}/emacs/site-lisp/puppet-mode.el %{_datadir}/vim/syntax/puppet.vim %{_datadir}/puppet #------------------------------------------------------ %package server Group: Monitoring Summary: Server for the puppet system management tool Requires: %{name} = %{version} Requires(post): rpm-helper Requires(preun):rpm-helper %description server Provides the central puppet server daemon (puppetmaster) which provides manifests to clients. The server can also function as a certificate authority and file server. %post server %_post_service puppetmaster %preun server %_preun_service puppetmaster %files server %defattr(-, root, root, 0755) %{_sbindir}/puppetmasterd %{_bindir}/puppetrun %{_initrddir}/puppetmaster %config(noreplace) %{_sysconfdir}/puppet/fileserver.conf %dir %{_sysconfdir}/puppet/manifests %config(noreplace) %{_sysconfdir}/sysconfig/puppetmaster %ghost %config(noreplace,missingok) %{_sysconfdir}/puppet/puppetca.conf %ghost %config(noreplace,missingok) %{_sysconfdir}/puppet/puppetmasterd.conf %{_sbindir}/puppetca %doc %{_mandir}/man8/filebucket.8* %doc %{_mandir}/man8/puppetca.8* %doc %{_mandir}/man8/puppetmasterd.8* %doc %{_mandir}/man8/puppetrun.8* #------------------------------------------------------ %prep %setup -q %build # Use /usr/bin/ruby directly instead of /usr/bin/env ruby in #+ executables. Otherwise, initscripts break since pidof can't #+ find the right process for f in bin/* ; do sed -i -e '1c#!/usr/bin/ruby' $f done # Fix some rpmlint complaints for f in mac_dscl.pp mac_dscl_revert.pp \ mac_netinfo.pp mac_pkgdmg.pp ; do sed -i -e'1d' examples/$f chmod a-x examples/$f done find examples/ -type f -empty | xargs rm find examples/ -type f | xargs chmod a-x %install rm -rf %{buildroot} install -d -m0755 %{buildroot}%{_sbindir} install -d -m0755 %{buildroot}%{_bindir} install -d -m0755 %{buildroot}%{ruby_sitelibdir}/%{name} install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/manifests install -d -m0755 %{buildroot}%{_sysconfdir}/sysconfig install -d -m0755 %{buildroot}%{_initrddir} install -d -m0755 %{buildroot}%{_defaultdocdir}/%{name} install -d -m0755 %{buildroot}%{_mandir}/man8 install -d -m0755 %{buildroot}%{_localstatedir}/lib/puppet install -d -m0755 %{buildroot}%{_localstatedir}/run/puppet install -d -m0755 %{buildroot}%{_localstatedir}/log/puppet install -Dp -m0755 %{pbuild}/bin/* %{buildroot}%{_sbindir} mv %{buildroot}%{_sbindir}/puppet %{buildroot}%{_bindir}/puppet mv %{buildroot}%{_sbindir}/ralsh %{buildroot}%{_bindir}/ralsh mv %{buildroot}%{_sbindir}/filebucket %{buildroot}%{_bindir}/filebucket mv %{buildroot}%{_sbindir}/puppetrun %{buildroot}%{_bindir}/puppetrun mv %{buildroot}%{_sbindir}/puppetdoc %{buildroot}%{_bindir}/puppetdoc install -Dp -m0644 %{pbuild}/lib/puppet.rb %{buildroot}%{ruby_sitelibdir}/puppet.rb cp -a %{pbuild}/lib/puppet %{buildroot}%{ruby_sitelibdir} find %{buildroot}%{ruby_sitelibdir}/%{name} -type f -perm +ugo+x -print0 | xargs -0 -r chmod a-x install -Dp -m0644 %{confdir}/client.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppet install -Dp -m0755 %{SOURCE100} %{buildroot}%{_initrddir}/puppet install -Dp -m0755 %{confdir}/client.init %{buildroot}%{_initrddir}/puppet install -Dp -m0644 %{confdir}/server.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppetmaster install -Dp -m0755 %{SOURCE101} %{buildroot}%{_initrddir}/puppetmaster 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 install -Dp -m0644 man/man8/* %{buildroot}%{_mandir}/man8 # 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 # install vim syntax file install -d -m0755 %{buildroot}%{_datadir}/vim/syntax install -m0644 ext/vim/syntax/puppet.vim %{buildroot}%{_datadir}/vim/syntax/ #FIXME: what to do with ext/vim/ftdetect/puppet.vim which seems to be Debian #+ specific (see http://pkg-vim.alioth.debian.org/vim-policy.html/x112.html#addon-packages )? #+ And how to get vim autodetect puppet file ? # install emacs syntax file install -d -m0755 %{buildroot}%{_sysconfdir}/emacs/site-start.d install -d -m0755 %{buildroot}%{_datadir}/emacs/site-lisp install -m0644 ext/emacs/puppet-mode-init.el %{buildroot}%{_sysconfdir}/emacs/site-start.d install -m0644 ext/emacs/puppet-mode.el %{buildroot}%{_datadir}/emacs/site-lisp # Install logcheck files install -d -m0755 %{buildroot}%{_sysconfdir}/logcheck/ignore.d.{server,workstation} install -m0644 ext/logcheck/puppet %{buildroot}%{_sysconfdir}/logcheck/ignore.d.server/ install -m0644 ext/logcheck/puppet %{buildroot}%{_sysconfdir}/logcheck/ignore.d.workstation/ # Install other ext/* files install -d -m0755 %{buildroot}%{_datadir}/%{name}/ext cp -a ext/{module_puppet,puppet-test,ldap} %{buildroot}%{_datadir}/%{name}/ext/ %clean rm -rf %{buildroot} %changelog * Thu Aug 01 2008 roudoud0u - 0.24.5-1mdv2009.0 - New version - Sync with fedora spec file - Add /usr/bin/puppetdoc - Man pages now ship with tarball - examples/code moved to root examples dir in upstream tarball * Tue Oct 30 2007 Funda Wang 0.23.2-1mdv2008.1 - BR ruby - import puppet * Thu Oct 30 2007 roudoud0u - 0.23.2-1mdv2008.0 - Initial Mandriva rpm package (based on David Lutterkort spec file) * Thu Jul 26 2007 David Lutterkort - 0.23.1-1 - Remove old config files * Wed Jun 20 2007 David Lutterkort - 0.23.0-1 - Install one puppet.conf instead of old config files, keep old configs around to ease update - Use plain shell commands in install instead of macros * Wed May 2 2007 David Lutterkort - 0.22.4-1 - New version * Thu Mar 29 2007 David Lutterkort - 0.22.3-1 - Claim ownership of _sysconfdir/puppet (bz 233908) * Mon Mar 19 2007 David Lutterkort - 0.22.2-1 - Set puppet's homedir to /var/lib/puppet, not /var/puppet - Remove no-lockdir patch, not needed anymore * Mon Feb 12 2007 David Lutterkort - 0.22.1-2 - Fix bogus config parameter in puppetd.conf * Sat Feb 3 2007 David Lutterkort - 0.22.1-1 - New version * Fri Jan 5 2007 David Lutterkort - 0.22.0-1 - New version * Mon Nov 20 2006 David Lutterkort - 0.20.1-2 - Make require ruby(abi) and buildarch: noarch conditional for fedora 5 or later to allow building on older fedora releases * Mon Nov 13 2006 David Lutterkort - 0.20.1-1 - New version * Mon Oct 23 2006 David Lutterkort - 0.20.0-1 - New version * Tue Sep 26 2006 David Lutterkort - 0.19.3-1 - New version * Mon Sep 18 2006 David Lutterkort - 0.19.1-1 - New version * Thu Sep 7 2006 David Lutterkort - 0.19.0-1 - New version * Tue Aug 1 2006 David Lutterkort - 0.18.4-2 - Use /usr/bin/ruby directly instead of /usr/bin/env ruby in executables. Otherwise, initscripts break since pidof can't find the right process * Tue Aug 1 2006 David Lutterkort - 0.18.4-1 - New version * Fri Jul 14 2006 David Lutterkort - 0.18.3-1 - New version * Wed Jul 5 2006 David Lutterkort - 0.18.2-1 - New version * Wed Jun 28 2006 David Lutterkort - 0.18.1-1 - Removed lsb-config.patch and yumrepo.patch since they are upstream now * Mon Jun 19 2006 David Lutterkort - 0.18.0-1 - Patch config for LSB compliance (lsb-config.patch) - Changed config moves /var/puppet to /var/lib/puppet, /etc/puppet/ssl to /var/lib/puppet, /etc/puppet/clases.txt to /var/lib/puppet/classes.txt, /etc/puppet/localconfig.yaml to /var/lib/puppet/localconfig.yaml * Fri May 19 2006 David Lutterkort - 0.17.2-1 - Added /usr/bin/puppetrun to server subpackage - Backported patch for yumrepo type (yumrepo.patch) * Wed May 3 2006 David Lutterkort - 0.16.4-1 - Rebuilt * Fri Apr 21 2006 David Lutterkort - 0.16.0-1 - Fix default file permissions in server subpackage - Run puppetmaster as user puppet - rebuilt for 0.16.0 * Mon Apr 17 2006 David Lutterkort - 0.15.3-2 - Don't create empty log files in post-install scriptlet * Fri Apr 7 2006 David Lutterkort - 0.15.3-1 - Rebuilt for new version * Wed Mar 22 2006 David Lutterkort - 0.15.1-1 - Patch0: Run puppetmaster as root; running as puppet is not ready for primetime * Mon Mar 13 2006 David Lutterkort - 0.15.0-1 - Commented out noarch; requires fix for bz184199 * Mon Mar 6 2006 David Lutterkort - 0.14.0-1 - Added BuildRequires for ruby * Wed Mar 1 2006 David Lutterkort - 0.13.5-1 - Removed use of fedora-usermgmt. It is not required for Fedora Extras and makes it unnecessarily hard to use this rpm outside of Fedora. Just allocate the puppet uid/gid dynamically * Sun Feb 19 2006 David Lutterkort - 0.13.0-4 - Use fedora-usermgmt to create puppet user/group. Use uid/gid 24. Fixed problem with listing fileserver.conf and puppetmaster.conf twice * Wed Feb 8 2006 David Lutterkort - 0.13.0-3 - Fix puppetd.conf * Wed Feb 8 2006 David Lutterkort - 0.13.0-2 - Changes to run puppetmaster as user puppet * Mon Feb 6 2006 David Lutterkort - 0.13.0-1 - Don't mark initscripts as config files * Mon Feb 6 2006 David Lutterkort - 0.12.0-2 - Fix BuildRoot. Add dist to release * Tue Jan 17 2006 David Lutterkort - 0.11.0-1 - Rebuild * Thu Jan 12 2006 David Lutterkort - 0.10.2-1 - Updated for 0.10.2 Fixed minor kink in how Source is given * Wed Jan 11 2006 David Lutterkort - 0.10.1-3 - Added basic fileserver.conf * Wed Jan 11 2006 David Lutterkort - 0.10.1-1 - Updated. Moved installation of library files to sitelibdir. Pulled initscripts into separate files. Folded tools rpm into server * Thu Nov 24 2005 Duane Griffin - Added init scripts for the client * Wed Nov 23 2005 Duane Griffin - First packaging