2 # for man - rst2man.py needed (docutils snap?)
3 Summary: A network tool for managing many disparate systems
8 Group: Networking/Admin
9 Source0: http://puppetlabs.com/downloads/puppet/%{name}-%{version}.tar.gz
10 # Source0-md5: cc294da1d51df07bcc7f6cf78bd90ce0
11 Patch0: install-p.patch
13 URL: http://www.puppetlabs.com/
14 BuildRequires: docutils
16 BuildRequires: rpm-rubyprov
17 BuildRequires: rpmbuild(macros) >= 1.656
18 BuildRequires: ruby-facter >= 1.6
19 BuildRequires: sed >= 4.0
21 BuildConflicts: ruby-ftools
22 Provides: group(puppet)
23 Provides: user(puppet)
24 Requires(postun): /usr/sbin/groupdel
25 Requires(postun): /usr/sbin/userdel
26 Requires(pre): /bin/id
27 Requires(pre): /usr/bin/getgid
28 Requires(pre): /usr/sbin/groupadd
29 Requires(pre): /usr/sbin/useradd
31 Requires: hiera >= 1.0
32 Requires: ruby-facter < 2
33 Requires: ruby-facter >= 1.6
35 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
37 %define schemadir /usr/share/openldap/schema
40 Puppet lets you centrally manage every important aspect of your system
41 using a cross-platform specification language that manages all the
42 separate elements normally aggregated in different files, like users,
43 cron jobs, and hosts, along with obviously discrete elements like
44 packages, services, and files.
47 Summary: Server for the puppet system management tool
49 Requires: %{name} = %{version}-%{release}
50 Requires(post,preun): /sbin/chkconfig
54 Provides the central puppet server daemon which provides manifests to
55 clients. The server can also function as a certificate authority and
58 %package -n openldap-schema-%{name}
59 Summary: Puppet LDAP schema
60 Summary(pl.UTF-8): Schemat LDAP dla Puppet
61 Group: Networking/Daemons
62 Requires(post,postun): sed >= 4.0
63 Requires: openldap-schema-rfc2739
64 Requires: openldap-servers
67 %description -n openldap-schema-%{name}
68 This package contains puppet.schema for openldap.
70 %description -n openldap-schema-%{name} -l pl.UTF-8
71 Ten pakiet zawiera puppet.schema dla pakietu openldap.
73 %package -n vim-syntax-%{name}
74 Summary: Vim syntax for puppet .pp files
75 Group: Applications/Editors/Vim
76 Requires: vim-rt >= 4:7.2.170
78 %description -n vim-syntax-%{name}
79 Vim syntax for puppet .pp files
87 rm -rf $RPM_BUILD_ROOT
88 %{__ruby} install.rb \
91 --sitelibdir=%{ruby_vendorlibdir} \
92 --destdir=$RPM_BUILD_ROOT
94 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/{manifests,modules},%{_datadir}/%{name}/modules} \
95 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,logrotate.d} \
96 $RPM_BUILD_ROOT%{_localstatedir}/{lib,log,run}/%{name}
98 cp -p ext/redhat/client.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/puppet
99 cp -p ext/redhat/client.init $RPM_BUILD_ROOT/etc/rc.d/init.d/puppet
100 cp -p ext/redhat/server.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/puppetmaster
101 cp -p ext/redhat/server.init $RPM_BUILD_ROOT/etc/rc.d/init.d/puppetmaster
102 cp -p ext/redhat/queue.init $RPM_BUILD_ROOT/etc/rc.d/init.d/puppetqueue
104 cp -p ext/redhat/fileserver.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/fileserver.conf
105 cp -p ext/redhat/puppet.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/puppet.conf
106 cp -p ext/redhat/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/puppet
108 # Install the ext/ directory to %{_datadir}/%{name}
109 install -d $RPM_BUILD_ROOT%{_datadir}/%{name}
110 cp -a ext $RPM_BUILD_ROOT%{_datadir}/%{name}
112 install -d $RPM_BUILD_ROOT%{schemadir}
113 cp -p ext/ldap/puppet.schema $RPM_BUILD_ROOT%{schemadir}
115 # Install vim syntax files
116 install -d $RPM_BUILD_ROOT%{_datadir}/vim/{ftdetect,syntax}
117 mv $RPM_BUILD_ROOT{%{_datadir}/%{name}/ext/vim/ftdetect/puppet.vim,%{_datadir}/vim/ftdetect}
118 mv $RPM_BUILD_ROOT{%{_datadir}/%{name}/ext/vim/syntax/puppet.vim,%{_datadir}/vim/syntax}
120 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
121 cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
123 # emacs and vim bits are installed elsewhere
124 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/{emacs,vim}
126 # remove misc packaging artifacts not applicable to rpms or other cruft
127 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/{gentoo,freebsd,solaris,suse,windows,osx,ips,debian}
128 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/{redhat,ldap,systemd}
129 %{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/{build_defaults.yaml,project_data.yaml,envpuppet*}
132 chmod 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/regexp_nodes/regexp_nodes.rb
133 chmod 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/puppet-load.rb
135 install -d $RPM_BUILD_ROOT%{systemdtmpfilesdir}
136 echo "D /var/run/%{name} 0755 %{name} %{name} -" > \
137 $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
140 rm -rf $RPM_BUILD_ROOT
143 %groupadd -g 292 puppet
144 %useradd -u 292 -g puppet -c "Puppet" -d %{_localstatedir}/lib/%{name} puppet
147 if [ "$1" = "0" ]; then
153 /sbin/chkconfig --add puppet
154 %service puppet restart
157 if [ "$1" = "0" ]; then
158 %service -q puppet stop
159 /sbin/chkconfig --del puppet
163 /sbin/chkconfig --add puppetmaster
164 /sbin/chkconfig --add puppetqueue
165 %service puppetmaster restart
166 %service puppetqueue restart
169 if [ "$1" = "0" ]; then
170 /sbin/chkconfig --del puppetmaster
171 /sbin/chkconfig --del puppetqueue
172 %service -q puppetmaster stop
173 %service -q puppetqueue stop
176 %post -n openldap-schema-%{name}
177 %openldap_schema_register %{schemadir}/%{name}.schema -d core
178 %service -q ldap restart
180 %postun -n openldap-schema-%{name}
181 if [ "$1" = "0" ]; then
182 %openldap_schema_unregister %{schemadir}/%{name}.schema
183 %service -q ldap restart
188 %defattr(644,root,root,755)
190 %dir %{_sysconfdir}/%{name}
191 %dir %{_sysconfdir}/%{name}/modules
192 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/auth.conf
193 %attr(755,root,root) %{_bindir}/extlookup2hiera
194 %attr(755,root,root) %{_bindir}/puppet
195 %{ruby_vendorlibdir}/puppet
196 %{ruby_vendorlibdir}/puppet.rb
197 %{ruby_vendorlibdir}/semver.rb
198 %{ruby_vendorlibdir}/puppetx.rb
199 %{ruby_vendorlibdir}/puppetx
200 %{_mandir}/man5/puppet.conf.5*
201 %{_mandir}/man8/extlookup2hiera.8*
202 %{_mandir}/man8/puppet*.8*
203 %exclude %{_mandir}/man8/puppet-ca.8*
204 %exclude %{_mandir}/man8/puppet-master.8*
205 %{_examplesdir}/%{name}-%{version}
207 %dir %{_datadir}/%{name}
208 %{_datadir}/%{name}/modules
209 %{_datadir}/%{name}/ext
212 %{ruby_vendorlibdir}/hiera/backend/puppet_backend.rb
213 %{ruby_vendorlibdir}/hiera/scope.rb
214 %{ruby_vendorlibdir}/hiera_puppet.rb
216 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/puppet
217 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/puppet
218 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/puppet.conf
219 %attr(754,root,root) /etc/rc.d/init.d/puppet
220 %{systemdtmpfilesdir}/puppet.conf
222 # These need to be owned by puppet so the server can write to them.
223 %dir %attr(755,puppet,puppet) %{_localstatedir}/run/%{name}
224 %dir %attr(750,puppet,puppet) %{_localstatedir}/log/%{name}
225 %dir %{_localstatedir}/lib/%{name}
228 %defattr(644,root,root,755)
229 %dir %{_sysconfdir}/%{name}/manifests
230 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/fileserver.conf
231 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/puppetmaster
232 %attr(754,root,root) /etc/rc.d/init.d/puppetmaster
233 %attr(754,root,root) /etc/rc.d/init.d/puppetqueue
234 %{_mandir}/man8/puppet-ca.8*
235 %{_mandir}/man8/puppet-master.8*
237 %files -n openldap-schema-%{name}
238 %defattr(644,root,root,755)
239 %{schemadir}/*.schema
241 %files -n vim-syntax-%{name}
242 %defattr(644,root,root,755)
243 %{_datadir}/vim/ftdetect/puppet.vim
244 %{_datadir}/vim/syntax/puppet.vim