@ -1,30 +1,33 @@
%{!?ruby_sitelibdir: %define ruby_sitelibdir %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]')}
%define pbuild %{_builddir}/%{name}-%{version}
%define confdir conf/redhat
%define has_ruby_abi 0%{?fedora:%fedora} >= 5 || 0%{?rhel:%rhel} >= 5
%define has_ruby_noarch %has_ruby_abi
Summary: A network tool for managing many disparate systems
Name: puppet
Version: 0.24.5
Version: 0.24.6
Release: 1%{?dist}
License: GPLv2+
Summary: A network tool for managing many disparate systems
Group: System Environment/Base
License: GPLv2+
URL: http://puppet.reductivelabs.com/
Source: http://reductivelabs.com/downloads/puppet/%{name}-%{version}.tgz
Source0: http://reductivelabs.com/downloads/puppet/%{name}-%{version}.tgz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: ruby >= 1.8.1
%if %has_ruby_abi
BuildRequires: ruby >= 1.8.1
%if 0%{?fedora} || 0%{?rhel} >= 5
BuildArch: noarch
Requires: ruby(abi) = 1.8
Requires: ruby-shadow
%endif
Requires: facter >= 1.1.4
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if %has_ruby_noarch
BuildArchitectures: noarch
%endif
BuildRequires: ruby >= 1.8.1
Requires: ruby >= 1.8.1
Requires(pre): shadow-utils
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
%description
Puppet lets you centrally manage every important aspect of your system using a
@ -36,6 +39,10 @@ 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}
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
%description server
Provides the central puppet server daemon which provides manifests to clients.
@ -54,6 +61,9 @@ 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
sed -i -e '1d' lib/puppet/$f
done
find examples/ -type f -empty | xargs rm
find examples/ -type f | xargs chmod a-x
@ -69,14 +79,14 @@ 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}
install -Dp -m0755 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}
install -Dp -m0644 lib/puppet.rb %{buildroot}%{ruby_sitelibdir}/puppet.rb
cp -a lib/puppet %{buildroot}%{ruby_sitelibdir}
find %{buildroot}%{ruby_sitelibdir} -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 %{confdir}/client.init %{buildroot}%{_initrddir}/puppet
@ -136,40 +146,59 @@ touch %{buildroot}%{_sysconfdir}/puppet/puppetd.conf
%doc %{_mandir}/man8/puppetrun.8.gz
%pre
/usr/sbin/groupadd -r puppet 2>/dev/null || :
/usr/sbin/useradd -g puppet -c "Puppet" \
-s /sbin/nologin -r -d /var/lib/puppet puppet 2> /dev/null || :
getent group puppet >/dev/null || groupadd -r puppet
getent passwd puppet >/dev/null || \
useradd -r -g puppet -d %{_localstatedir}/lib/puppet -s /sbin/nologin \
-c "Puppet" puppet || :
# ensure that old setups have the right puppet home dir
if [ $1 -gt 1 ] ; then
/usr/sbin/usermod -d /var/lib/puppet puppet || :
usermod -d %{_localstatedir} /lib/puppet puppet || :
fi
%post
/sbin/chkconfig --add puppet
exit 0
/sbin/chkconfig --add puppet || :
%post server
/sbin/chkconfig --add puppetmaster
/sbin/chkconfig --add puppetmaster || :
%preun
if [ "$1" = 0 ] ; then
/sbin/service puppet stop > /dev/null 2>&1
/sbin/chkconfig --del puppet
/sbin/chkconfig --del puppet || :
fi
%preun server
if [ "$1" = 0 ] ; then
/sbin/service puppetmaster stop > /dev/null 2>&1
/sbin/chkconfig --del puppetmaster
/sbin/chkconfig --del puppetmaster || :
fi
%postun
if [ "$1" -ge 1 ]; then
/sbin/service puppet condrestart >/dev/null 2>&1 || :
fi
%postun server
if [ "$1" -ge 1 ]; then
/sbin/service puppetmaster condrestart > /dev/null 2>&1
/sbin/service puppetmaster condrestart > /dev/null 2>&1 || :
fi
%clean
rm -rf %{buildroot}
%changelog
* Wed Oct 22 2008 Todd Zullinger <tmz@pobox.com> - 0.24.6-1
- Update to 0.24.6
- Require ruby-shadow on Fedora and RHEL >= 5
- Simplify Fedora/RHEL version checks for ruby(abi) and BuildArch
- Require chkconfig and initstripts for preun, post, and postun scripts
- Conditionally restart puppet in %%postun
- Ensure %%preun, %%post, and %%postun scripts exit cleanly
- Create puppet user/group according to Fedora packaging guidelines
- Quiet a few rpmlint complaints
- Remove useless %%pbuild macro
- Make specfile more like the Fedora/EPEL template
* Mon Jul 28 2008 David Lutterkort <dlutter@redhat.com> - 0.24.5-1
- Add /usr/bin/puppetdoc