]> git.pld-linux.org Git - packages/puppet.git/blob - puppet.spec
f572609f343d4050fb6489999938925243e90463
[packages/puppet.git] / puppet.spec
1 # TODO
2 # for man - rst2man.py needed (docutils snap?)
3 Summary:        A network tool for managing many disparate systems
4 Name:           puppet
5 Version:        3.7.3
6 Release:        0.4
7 License:        Apache v2.0
8 Group:          Networking/Admin
9 Source0:        http://rubygems.org/downloads/%{name}-%{version}.gem
10 # Source0-md5:  f25bfe4d20a8d8c1e99622072331d0f5
11 Patch0:         install-p.patch
12 Patch1:         ruby19.patch
13 URL:            http://www.puppetlabs.com/
14 BuildRequires:  docutils
15 BuildRequires:  hiera
16 BuildRequires:  rpm-rubyprov
17 BuildRequires:  rpmbuild(macros) >= 1.656
18 BuildRequires:  ruby-facter >= 1.6
19 BuildRequires:  sed >= 4.0
20 BuildRequires:  which
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
30 Requires:       hiera < 3
31 Requires:       hiera >= 1.0
32 Requires:       ruby-facter < 4
33 Requires:       ruby-facter >= 2.0
34 BuildArch:      noarch
35 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
36
37 %define         schemadir       /usr/share/openldap/schema
38
39 %description
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.
45
46 %package server
47 Summary:        Server for the puppet system management tool
48 Group:          Base
49 Requires:       %{name} = %{version}-%{release}
50 Requires(post,preun):   /sbin/chkconfig
51 Requires:       rc-scripts
52
53 %description server
54 Provides the central puppet server daemon which provides manifests to
55 clients. The server can also function as a certificate authority and
56 file server.
57
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
65 Requires:       sed >= 4.0
66
67 %description -n openldap-schema-%{name}
68 This package contains puppet.schema for openldap.
69
70 %description -n openldap-schema-%{name} -l pl.UTF-8
71 Ten pakiet zawiera puppet.schema dla pakietu openldap.
72
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
77
78 %description -n vim-syntax-%{name}
79 Vim syntax for puppet .pp files
80
81 %prep
82 %setup -q
83 #%patch0 -p1
84 #%patch1 -p1
85
86 %build
87 # write .gemspec
88 %__gem_helper spec
89 # why pure? just json will do
90 %{__sed} -i -e 's/json_pure/json/' *.gemspec
91
92 %install
93 rm -rf $RPM_BUILD_ROOT
94 %{__ruby} install.rb \
95         --quick \
96         --no-rdoc \
97         --sitelibdir=%{ruby_vendorlibdir} \
98         --destdir=$RPM_BUILD_ROOT
99
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}
103
104 # install gemspec
105 cp -p %{name}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
106
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
112
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
116
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}
120
121 install -d $RPM_BUILD_ROOT%{schemadir}
122 cp -p ext/ldap/puppet.schema $RPM_BUILD_ROOT%{schemadir}
123
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}
128
129 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
130 cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
131
132 # emacs and vim bits are installed elsewhere
133 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}/ext/{emacs,vim}
134
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*}
139
140 # Rpmlint fixup
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
143
144 install -d $RPM_BUILD_ROOT%{systemdtmpfilesdir}
145 echo "D /var/run/%{name} 0755 %{name} %{name} -" > \
146     $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
147
148 %clean
149 rm -rf $RPM_BUILD_ROOT
150
151 %pre
152 %groupadd -g 292 puppet
153 %useradd -u 292 -g puppet -c "Puppet" -d %{_localstatedir}/lib/%{name} puppet
154
155 %postun
156 if [ "$1" = "0" ]; then
157         %userremove puppet
158         %groupremove puppet
159 fi
160
161 %post
162 /sbin/chkconfig --add puppet
163 %service puppet restart
164
165 %preun
166 if [ "$1" = "0" ]; then
167         %service -q puppet stop
168         /sbin/chkconfig --del puppet
169 fi
170
171 %post server
172 /sbin/chkconfig --add puppetmaster
173 /sbin/chkconfig --add puppetqueue
174 %service puppetmaster restart
175 %service puppetqueue restart
176
177 %preun server
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
183 fi
184
185 %post -n openldap-schema-%{name}
186 %openldap_schema_register %{schemadir}/%{name}.schema -d core
187 %service -q ldap restart
188
189 %postun -n openldap-schema-%{name}
190 if [ "$1" = "0" ]; then
191         %openldap_schema_unregister %{schemadir}/%{name}.schema
192         %service -q ldap restart
193 fi
194
195
196 %files
197 %defattr(644,root,root,755)
198 %doc README.md
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}
216
217 %dir %{_datadir}/%{name}
218 %{_datadir}/%{name}/modules
219 %{_datadir}/%{name}/ext
220
221 # hiera addons
222 %{ruby_vendorlibdir}/hiera/backend/puppet_backend.rb
223 %{ruby_vendorlibdir}/hiera/scope.rb
224 %{ruby_vendorlibdir}/hiera_puppet.rb
225
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
231
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}
236
237 %files server
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*
246
247 %files -n openldap-schema-%{name}
248 %defattr(644,root,root,755)
249 %{schemadir}/*.schema
250
251 %files -n vim-syntax-%{name}
252 %defattr(644,root,root,755)
253 %{_datadir}/vim/ftdetect/puppet.vim
254 %{_datadir}/vim/syntax/puppet.vim
This page took 0.067429 seconds and 2 git commands to generate.