1 |
%define name puppet |
2 |
%define version 2.7.20 |
3 |
%define release %mkrel 4 |
4 |
|
5 |
%define ppconfdir conf/redhat |
6 |
|
7 |
Name: %{name} |
8 |
Version: %{version} |
9 |
Release: %{release} |
10 |
Summary: System Automation and Configuration Management Software |
11 |
License: Apache Software License |
12 |
Group: Monitoring |
13 |
URL: http://www.puppetlabs.com/ |
14 |
Source0: http://puppetlabs.com/downloads/puppet/%{name}-%{version}.tar.gz |
15 |
Source100: puppet.service |
16 |
Source101: puppetmaster.service |
17 |
Source102: %{name}-tmpfiles.conf |
18 |
BuildArch: noarch |
19 |
BuildRequires: ruby facter |
20 |
Requires: facter |
21 |
Suggests: vim-puppet |
22 |
Suggests: emacs-puppet |
23 |
Requires(post): systemd >= %{systemd_required_version} |
24 |
Requires(pre): rpm-helper |
25 |
Requires(post): rpm-helper |
26 |
Requires(preun):rpm-helper |
27 |
|
28 |
%description |
29 |
Puppet lets you centrally manage every important aspect of your system using a |
30 |
cross-platform specification language that manages all the separate elements |
31 |
normally aggregated in different files, like users, cron jobs, and hosts, |
32 |
along with obviously discrete elements like packages, services, and files. |
33 |
|
34 |
This package provide the puppet client daemon. |
35 |
|
36 |
|
37 |
%package server |
38 |
Group: Monitoring |
39 |
Summary: Server for the puppet system management tool |
40 |
Requires: %{name} = %{version} |
41 |
Requires(post): rpm-helper |
42 |
Requires(preun):rpm-helper |
43 |
|
44 |
%description server |
45 |
Provides the central puppet server daemon (puppetmaster) which provides |
46 |
manifests to clients. |
47 |
The server can also function as a certificate authority and file server. |
48 |
|
49 |
%package -n vim-puppet |
50 |
Group: Editors |
51 |
Summary: Syntax highlighting for puppet manifests in vim |
52 |
|
53 |
%description -n vim-puppet |
54 |
The vim-puppet package provides filetype detection and syntax highlighting for |
55 |
puppet manifests (files ending with ".pp"). |
56 |
|
57 |
%package -n emacs-puppet |
58 |
Group: Editors |
59 |
Summary: Syntax highlighting for puppet manifests in emacs |
60 |
|
61 |
%description -n emacs-puppet |
62 |
The emacs-puppet package provides filetype detection and syntax highlighting for |
63 |
puppet manifests (files ending with ".pp"). |
64 |
|
65 |
%prep |
66 |
%setup -q |
67 |
|
68 |
%build |
69 |
# Use /usr/bin/ruby directly instead of /usr/bin/env ruby in |
70 |
#+ executables. Otherwise, initscripts break since pidof can't |
71 |
#+ find the right process |
72 |
for f in bin/* ; do |
73 |
sed -i -e '1c#!/usr/bin/ruby' $f |
74 |
done |
75 |
|
76 |
%install |
77 |
%{__rm} -rf %{buildroot} |
78 |
|
79 |
ruby install.rb --destdir=%{buildroot} --quick --no-rdoc |
80 |
|
81 |
%{__install} -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/manifests |
82 |
%{__install} -d -m 0755 %{buildroot}%{_defaultdocdir}/%{name} |
83 |
%{__install} -d -m 0755 %{buildroot}%{_localstatedir}/lib/%{name} |
84 |
%{__install} -D -p -m 0644 %{SOURCE102} %{buildroot}%{_tmpfilesdir}/%{name}.conf |
85 |
%{__install} -d -m 0755 %{buildroot}%{_logdir}/%{name} |
86 |
|
87 |
#%{__find} %{buildroot}%{ruby_sitelibdir}/%{name} -type f -perm +ugo+x -print0 | xargs -0 -r %{__chmod} a-x |
88 |
# |
89 |
%{__install} -Dp -m 0644 %{ppconfdir}/client.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppetd |
90 |
%{__install} -Dp -m 0644 %{ppconfdir}/server.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppetmasterd |
91 |
%{__install} -Dp -m 0644 %{ppconfdir}/fileserver.conf %{buildroot}%{_sysconfdir}/%{name}/fileserver.conf |
92 |
%{__install} -Dp -m 0644 %{ppconfdir}/puppet.conf %{buildroot}%{_sysconfdir}/%{name}/puppet.conf |
93 |
%{__install} -Dp -m 0644 %{ppconfdir}/logrotate %{buildroot}%{_sysconfdir}/logrotate.d/puppet |
94 |
# We need something for these ghosted files, otherwise rpmbuild |
95 |
# will complain loudly. They won't be included in the binary packages |
96 |
touch %{buildroot}%{_sysconfdir}/%{name}/puppetmasterd.conf |
97 |
touch %{buildroot}%{_sysconfdir}/%{name}/puppetca.conf |
98 |
touch %{buildroot}%{_sysconfdir}/%{name}/puppetd.conf |
99 |
|
100 |
# systemd |
101 |
%{__install} -d -m 0755 %{buildroot}%{_unitdir} |
102 |
%{__install} -m 755 %{SOURCE100} %{buildroot}%{_unitdir}/puppet.service |
103 |
%{__install} -m 755 %{SOURCE101} %{buildroot}%{_unitdir}/puppetmaster.service |
104 |
|
105 |
## install vim syntax file |
106 |
%{__install} -d -m 755 %{buildroot}%{_datadir}/vim/syntax |
107 |
%{__install} -d -m 755 %{buildroot}%{_datadir}/vim/ftdetect |
108 |
|
109 |
%{__install} -m 644 ext/vim/syntax/puppet.vim %{buildroot}%{_datadir}/vim/syntax |
110 |
%{__install} -m 644 ext/vim/ftdetect/puppet.vim %{buildroot}%{_datadir}/vim/ftdetect |
111 |
|
112 |
## install emacs syntax file |
113 |
%{__install} -d -m 0755 %{buildroot}%{_sysconfdir}/emacs/site-start.d |
114 |
%{__install} -d -m 0755 %{buildroot}%{_datadir}/emacs/site-lisp |
115 |
%{__install} -m 0644 ext/emacs/puppet-mode-init.el %{buildroot}%{_sysconfdir}/emacs/site-start.d |
116 |
%{__install} -m 0644 ext/emacs/puppet-mode.el %{buildroot}%{_datadir}/emacs/site-lisp |
117 |
|
118 |
## Install logcheck files |
119 |
%{__install} -d -m 0755 %{buildroot}%{_sysconfdir}/logcheck/ignore.d.{server,workstation} |
120 |
%{__install} -m 0644 ext/logcheck/puppet %{buildroot}%{_sysconfdir}/logcheck/ignore.d.server/ |
121 |
%{__install} -m 0644 ext/logcheck/puppet %{buildroot}%{_sysconfdir}/logcheck/ignore.d.workstation/ |
122 |
|
123 |
%pre |
124 |
%_pre_useradd puppet %{_localstatedir}/lib/%{name} /sbin/nologin |
125 |
|
126 |
%post |
127 |
%_tmpfilescreate %{name} |
128 |
%_post_service puppet |
129 |
|
130 |
%preun |
131 |
%_preun_service puppet |
132 |
|
133 |
%post server |
134 |
%_post_service puppetmaster |
135 |
|
136 |
%preun server |
137 |
%_preun_service puppetmaster |
138 |
|
139 |
%files |
140 |
%doc CHANGELOG LICENSE examples |
141 |
%dir %{_sysconfdir}/puppet |
142 |
%{_bindir}/puppet |
143 |
%{_bindir}/ralsh |
144 |
%{_bindir}/pi |
145 |
%{_bindir}/filebucket |
146 |
%{_bindir}/puppetdoc |
147 |
%{_sbindir}/puppetd |
148 |
%{ruby_sitelibdir}/puppet.rb |
149 |
%{ruby_sitelibdir}/%{name} |
150 |
%{ruby_sitelibdir}/semver.rb |
151 |
%{_unitdir}/puppet.service |
152 |
%{_tmpfilesdir}/%{name}.conf |
153 |
|
154 |
%{_mandir}/man8/puppet.* |
155 |
%{_mandir}/man8/ralsh.* |
156 |
%{_mandir}/man8/pi.* |
157 |
%{_mandir}/man8/filebucket.* |
158 |
%{_mandir}/man8/puppetdoc.* |
159 |
%{_mandir}/man8/puppetd.* |
160 |
%{_mandir}/man5/puppet.conf.* |
161 |
%{_mandir}/man8/puppet-* |
162 |
|
163 |
%config(noreplace) %{_sysconfdir}/sysconfig/puppetd |
164 |
%config(noreplace) %{_sysconfdir}/%{name}/puppet.conf |
165 |
%config(noreplace) %{_sysconfdir}/logrotate.d/puppet |
166 |
%ghost %config(noreplace,missingok) %{_sysconfdir}/%{name}/puppetd.conf |
167 |
|
168 |
%{_sysconfdir}/logcheck/ignore.d.workstation/%{name} |
169 |
%{_sysconfdir}/logcheck/ignore.d.server/ |
170 |
|
171 |
# These need to be owned by puppet so the server can |
172 |
# write to them |
173 |
%attr(-, %{name}, %{name}) %{_logdir}/%{name} |
174 |
%attr(-, %{name}, %{name}) %{_localstatedir}/lib/%{name} |
175 |
|
176 |
%files server |
177 |
%{_sbindir}/puppetmasterd |
178 |
%{_sbindir}/puppetca |
179 |
%{_sbindir}/puppetrun |
180 |
%{_sbindir}/puppetqd |
181 |
%{_unitdir}/puppetmaster.service |
182 |
%config(noreplace) %{_sysconfdir}/%{name}/fileserver.conf |
183 |
%config(noreplace) %{_sysconfdir}/%{name}/auth.conf |
184 |
%dir %{_sysconfdir}/puppet/manifests |
185 |
%config(noreplace) %{_sysconfdir}/sysconfig/puppetmasterd |
186 |
%ghost %config(noreplace,missingok) %{_sysconfdir}/%{name}/puppetca.conf |
187 |
%ghost %config(noreplace,missingok) %{_sysconfdir}/%{name}/puppetmasterd.conf |
188 |
|
189 |
%{_mandir}/man8/puppetca.* |
190 |
%{_mandir}/man8/puppetrun.* |
191 |
%{_mandir}/man8/puppetqd.* |
192 |
%{_mandir}/man8/puppetmasterd.* |
193 |
|
194 |
%files -n vim-puppet |
195 |
%{_datadir}/vim/syntax/puppet.vim |
196 |
%{_datadir}/vim/ftdetect/puppet.vim |
197 |
|
198 |
%files -n emacs-puppet |
199 |
%{_sysconfdir}/emacs/site-start.d/puppet-mode-init.el |
200 |
%{_datadir}/emacs/site-lisp/puppet-mode.el |