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://rubygems.org/downloads/%{name}-%{version}.gem
10 # Source0-md5: f25bfe4d20a8d8c1e99622072331d0f5
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 < 4
33 Requires: ruby-facter >= 2.0
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
89 # why pure? just json will do
90 %{__sed} -i -e 's/json_pure/json/' *.gemspec
93 rm -rf $RPM_BUILD_ROOT
94 %{__ruby} install.rb \
97 --sitelibdir=%{ruby_vendorlibdir} \
98 --destdir=$RPM_BUILD_ROOT
100 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/{manifests,modules},%{_datadir}/%{name}/modules,%{ruby_specdir}} \
101 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,logrotate.d} \
102 $RPM_BUILD_ROOT%{_localstatedir}/{lib,log,run}/%{name}
105 cp -p %{name}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
107 cp -p ext/redhat/client.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/puppet
108 cp -p ext/redhat/client.init $RPM_BUILD_ROOT/etc/rc.d/init.d/puppet
109 cp -p ext/redhat/server.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/puppetmaster
110 cp -p ext/redhat/server.init $RPM_BUILD_ROOT/etc/rc.d/init.d/puppetmaster
111 cp -p ext/redhat/queue.init $RPM_BUILD_ROOT/etc/rc.d/init.d/puppetqueue
113 cp -p ext/redhat/fileserver.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/fileserver.conf
114 cp -p ext/redhat/puppet.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/puppet.conf
115 cp -p ext/redhat/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/puppet
117 # Install the ext/ directory to %{_datadir}/%{name}
118 install -d $RPM_BUILD_ROOT%{_datadir}/%{name}
119 cp -a ext $RPM_BUILD_ROOT%{_datadir}/%{name}
121 install -d $RPM_BUILD_ROOT%{schemadir}
122 cp -p ext/ldap/puppet.schema $RPM_BUILD_ROOT%{schemadir}
124 # Install vim syntax files
125 install -d $RPM_BUILD_ROOT%{_datadir}/vim/{ftdetect,syntax}
126 mv $RPM_BUILD_ROOT{%{_datadir}/%{name}/ext/vim/ftdetect/puppet.vim,%{_datadir}/vim/ftdetect}
127 mv $RPM_BUILD_ROOT{%{_datadir}/%{name}/ext/vim/syntax/puppet.vim,%{_datadir}/vim/syntax}
129 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
130 cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
132 # emacs and vim bits are installed elsewhere
133 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/{emacs,vim}
135 # remove misc packaging artifacts not applicable to rpms or other cruft
136 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/{gentoo,freebsd,solaris,suse,windows,osx,ips,debian}
137 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/{redhat,ldap,systemd}
138 %{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/{build_defaults.yaml,project_data.yaml,envpuppet*}
141 chmod 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/regexp_nodes/regexp_nodes.rb
142 chmod 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/puppet-load.rb
144 install -d $RPM_BUILD_ROOT%{systemdtmpfilesdir}
145 echo "D /var/run/%{name} 0755 %{name} %{name} -" > \
146 $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
149 rm -rf $RPM_BUILD_ROOT
152 %groupadd -g 292 puppet
153 %useradd -u 292 -g puppet -c "Puppet" -d %{_localstatedir}/lib/%{name} puppet
156 if [ "$1" = "0" ]; then
162 /sbin/chkconfig --add puppet
163 %service puppet restart
166 if [ "$1" = "0" ]; then
167 %service -q puppet stop
168 /sbin/chkconfig --del puppet
172 /sbin/chkconfig --add puppetmaster
173 /sbin/chkconfig --add puppetqueue
174 %service puppetmaster restart
175 %service puppetqueue restart
178 if [ "$1" = "0" ]; then
179 /sbin/chkconfig --del puppetmaster
180 /sbin/chkconfig --del puppetqueue
181 %service -q puppetmaster stop
182 %service -q puppetqueue stop
185 %post -n openldap-schema-%{name}
186 %openldap_schema_register %{schemadir}/%{name}.schema -d core
187 %service -q ldap restart
189 %postun -n openldap-schema-%{name}
190 if [ "$1" = "0" ]; then
191 %openldap_schema_unregister %{schemadir}/%{name}.schema
192 %service -q ldap restart
197 %defattr(644,root,root,755)
199 %dir %{_sysconfdir}/%{name}
200 %dir %{_sysconfdir}/%{name}/modules
201 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/auth.conf
202 %attr(755,root,root) %{_bindir}/extlookup2hiera
203 %attr(755,root,root) %{_bindir}/puppet
204 %{ruby_vendorlibdir}/puppet
205 %{ruby_vendorlibdir}/puppet.rb
206 %{ruby_vendorlibdir}/semver.rb
207 %{ruby_vendorlibdir}/puppetx.rb
208 %{ruby_vendorlibdir}/puppetx
209 %{ruby_specdir}/%{name}-%{version}.gemspec
210 %{_mandir}/man5/puppet.conf.5*
211 %{_mandir}/man8/extlookup2hiera.8*
212 %{_mandir}/man8/puppet*.8*
213 %exclude %{_mandir}/man8/puppet-ca.8*
214 %exclude %{_mandir}/man8/puppet-master.8*
215 %{_examplesdir}/%{name}-%{version}
217 %dir %{_datadir}/%{name}
218 %{_datadir}/%{name}/modules
219 %{_datadir}/%{name}/ext
222 %{ruby_vendorlibdir}/hiera/backend/puppet_backend.rb
223 %{ruby_vendorlibdir}/hiera/scope.rb
224 %{ruby_vendorlibdir}/hiera_puppet.rb
226 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/puppet
227 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/puppet
228 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/puppet.conf
229 %attr(754,root,root) /etc/rc.d/init.d/puppet
230 %{systemdtmpfilesdir}/puppet.conf
232 # These need to be owned by puppet so the server can write to them.
233 %dir %attr(755,puppet,puppet) %{_localstatedir}/run/%{name}
234 %dir %attr(750,puppet,puppet) %{_localstatedir}/log/%{name}
235 %dir %{_localstatedir}/lib/%{name}
238 %defattr(644,root,root,755)
239 %dir %{_sysconfdir}/%{name}/manifests
240 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/fileserver.conf
241 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/puppetmaster
242 %attr(754,root,root) /etc/rc.d/init.d/puppetmaster
243 %attr(754,root,root) /etc/rc.d/init.d/puppetqueue
244 %{_mandir}/man8/puppet-ca.8*
245 %{_mandir}/man8/puppet-master.8*
247 %files -n openldap-schema-%{name}
248 %defattr(644,root,root,755)
249 %{schemadir}/*.schema
251 %files -n vim-syntax-%{name}
252 %defattr(644,root,root,755)
253 %{_datadir}/vim/ftdetect/puppet.vim
254 %{_datadir}/vim/syntax/puppet.vim