@ -1,30 +1,33 @@
%{!?ruby_sitelibdir: %define ruby_sitelibdir %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]')}
%{!?ruby_sitelibdir: %define ruby_sitelibdir %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]')}
%define pbuild %{_builddir}/%{name}-%{version}
%define confdir conf/redhat
%define confdir conf/redhat
%define has_ruby_abi 0%{?fedora:%fedora} >= 5 || 0%{?rhel:%rhel} >= 5
Name: puppet
%define has_ruby_noarch %has_ruby_abi
Version: 0.24.6
Release: 1%{?dist}
Summary: A network tool for managing many disparate systems
Summary: A network tool for managing many disparate systems
Group: System Environment/Base
Name: puppet
Version: 0.24.5
Release: 1%{?dist}
License: GPLv2+
Group: System Environment/Base
URL: http://puppet.reductivelabs.com/
License: GPLv2+
Source: http://reductivelabs.com/downloads/puppet/%{name}-%{version}.tgz
URL: http://puppet.reductivelabs.com/
Source0: http://reductivelabs.com/downloads/puppet/%{name}-%{version}.tgz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: ruby >= 1.8.1
BuildRequires: ruby >= 1.8.1
%if %has_ruby_abi
Requires: ruby(abi) = 1.8
%if 0%{?fedora} || 0%{?rhel} >= 5
%endif
BuildArch: noarch
Requires: facter >= 1.1.4
Requires: ruby(abi) = 1.8
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: ruby-shadow
%if %has_ruby_noarch
BuildArchitectures: noarch
%endif
%endif
BuildRequires: ruby >= 1.8.1
Requires: facter >= 1.1.4
Requires: ruby >= 1.8.1
Requires(pre): shadow-utils
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
%description
%description
Puppet lets you centrally manage every important aspect of your system using a
Puppet lets you centrally manage every important aspect of your system using a
@ -33,9 +36,13 @@ normally aggregated in different files, like users, cron jobs, and hosts,
along with obviously discrete elements like packages, services, and files.
along with obviously discrete elements like packages, services, and files.
%package server
%package server
Group: System Environment/Base
Group: System Environment/Base
Summary: Server for the puppet system management tool
Summary: Server for the puppet system management tool
Requires: puppet = %{version}-%{release}
Requires: puppet = %{version}-%{release}
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
%description server
%description server
Provides the central puppet server daemon which provides manifests to clients.
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
sed -i -e'1d' examples/$f
chmod a-x examples/$f
chmod a-x examples/$f
done
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 -empty | xargs rm
find examples/ -type f | xargs chmod a-x
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}/lib/puppet
install -d -m0755 %{buildroot}%{_localstatedir}/run/puppet
install -d -m0755 %{buildroot}%{_localstatedir}/run/puppet
install -d -m0755 %{buildroot}%{_localstatedir}/log/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}/puppet %{buildroot}%{_bindir}/puppet
mv %{buildroot}%{_sbindir}/ralsh %{buildroot}%{_bindir}/ralsh
mv %{buildroot}%{_sbindir}/ralsh %{buildroot}%{_bindir}/ralsh
mv %{buildroot}%{_sbindir}/filebucket %{buildroot}%{_bindir}/filebucket
mv %{buildroot}%{_sbindir}/filebucket %{buildroot}%{_bindir}/filebucket
mv %{buildroot}%{_sbindir}/puppetrun %{buildroot}%{_bindir}/puppetrun
mv %{buildroot}%{_sbindir}/puppetrun %{buildroot}%{_bindir}/puppetrun
mv %{buildroot}%{_sbindir}/puppetdoc %{buildroot}%{_bindir}/puppetdoc
mv %{buildroot}%{_sbindir}/puppetdoc %{buildroot}%{_bindir}/puppetdoc
install -Dp -m0644 %{pbuild}/ lib/puppet.rb %{buildroot}%{ruby_sitelibdir}/puppet.rb
install -Dp -m0644 lib/puppet.rb %{buildroot}%{ruby_sitelibdir}/puppet.rb
cp -a %{pbuild}/ lib/puppet %{buildroot}%{ruby_sitelibdir}
cp -a lib/puppet %{buildroot}%{ruby_sitelibdir}
find %{buildroot}%{ruby_sitelibdir} -type f -perm +ugo+x -print0 | xargs -0 -r chmod a-x
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 -m0644 %{confdir}/client.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppet
install -Dp -m0755 %{confdir}/client.init %{buildroot}%{_initrddir}/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
%doc %{_mandir}/man8/puppetrun.8.gz
%pre
%pre
/usr/sbin/groupadd -r puppet 2>/dev/null || :
getent group puppet >/dev/null || groupadd -r puppet
/usr/sbin/useradd -g puppet -c "Puppet" \
getent passwd puppet >/dev/null || \
-s /sbin/nologin -r -d /var/lib/puppet puppet 2> /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
if [ $1 -gt 1 ] ; then
/usr/sbin/usermod -d /var/lib/puppet puppet || :
usermod -d %{_localstatedir} /lib/puppet puppet || :
fi
fi
%post
%post
/sbin/chkconfig --add puppet
/sbin/chkconfig --add puppet || :
exit 0
%post server
%post server
/sbin/chkconfig --add puppetmaster
/sbin/chkconfig --add puppetmaster || :
%preun
%preun
if [ "$1" = 0 ] ; then
if [ "$1" = 0 ] ; then
/sbin/service puppet stop > /dev/null 2>&1
/sbin/service puppet stop > /dev/null 2>&1
/sbin/chkconfig --del puppet
/sbin/chkconfig --del puppet || :
fi
fi
%preun server
%preun server
if [ "$1" = 0 ] ; then
if [ "$1" = 0 ] ; then
/sbin/service puppetmaster stop > /dev/null 2>&1
/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
fi
%postun server
%postun server
if [ "$1" -ge 1 ]; then
if [ "$1" -ge 1 ]; then
/sbin/service puppetmaster condrestart > /dev/null 2>&1
/sbin/service puppetmaster condrestart > /dev/null 2>&1 || :
fi
fi
%clean
%clean
rm -rf %{buildroot}
rm -rf %{buildroot}
%changelog
%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
* Mon Jul 28 2008 David Lutterkort <dlutter@redhat.com> - 0.24.5-1
- Add /usr/bin/puppetdoc
- Add /usr/bin/puppetdoc