2 # - check releases here: https://github.com/opscode/chef/releases
5 %bcond_with tests # build without tests
7 Summary: A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure
12 Group: Networking/Admin
13 Source0: http://rubygems.org/downloads/%{name}-%{version}.gem
14 # Source0-md5: 084038481d60dc6311284e3a4ab22a2d
15 Source2: %{name}.tmpfiles
16 Source3: https://raw.github.com/stevendanna/knife-hacks/master/shell/knife_completion.sh
17 # Source3-md5: a4c1e41370be8088a59ddb3b2e7ea397
18 Patch0: platform-pld.patch
21 Patch3: https://github.com/glensc/chef/compare/pld-knife-boostrap.patch
22 # Patch3-md5: 8ff0fdfde6dc90018698775bf8f13062
23 Patch4: optional-plist.patch
24 URL: https://wiki.opscode.com/display/chef/
25 BuildRequires: rpm-rubyprov
26 BuildRequires: rpmbuild(macros) >= 1.673
27 BuildRequires: sed >= 4.0
29 BuildRequires: ruby-rack
30 BuildRequires: ruby-rake
31 BuildRequires: ruby-rspec-core < 2.15
32 BuildRequires: ruby-rspec-core >= 2.14.0
33 BuildRequires: ruby-rspec-expectations < 2.15
34 BuildRequires: ruby-rspec-expectations >= 2.14.0
35 BuildRequires: ruby-rspec-mocks < 2.15
36 BuildRequires: ruby-rspec-mocks >= 2.14.0
37 BuildRequires: ruby-rspec_junit_formatter
40 Requires: poldek >= 0.30
41 Requires: ruby >= 1:1.9.3.429-4
42 Requires: ruby-diff-lcs < 2
43 Requires: ruby-diff-lcs >= 1.2.4
44 Requires: ruby-erubis < 3
45 Requires: ruby-erubis >= 2.7.0-3
46 Requires: ruby-ffi-yajl < 2
47 Requires: ruby-ffi-yajl >= 1.0
48 Requires: ruby-highline < 2
49 Requires: ruby-highline >= 1.6.9
50 Requires: ruby-json <= 1.8.3.1
51 Requires: ruby-json >= 1.4.4
52 Requires: ruby-mime-types < 2
53 Requires: ruby-mime-types >= 1.16
54 Requires: ruby-mixlib-authentication < 2
55 Requires: ruby-mixlib-authentication >= 1.3.0-2
56 Requires: ruby-mixlib-cli < 2
57 Requires: ruby-mixlib-cli >= 1.4
58 Requires: ruby-mixlib-config < 3
59 Requires: ruby-mixlib-config >= 2.0
60 Requires: ruby-mixlib-log < 2
61 Requires: ruby-mixlib-log >= 1.6.0-2
62 Requires: ruby-mixlib-shellout >= 1.4
63 Requires: ruby-net-ssh < 3
64 Requires: ruby-net-ssh >= 2.6
65 Requires: ruby-net-ssh-multi < 2
66 Requires: ruby-net-ssh-multi >= 1.1
67 Requires: ruby-ohai < 8
68 Requires: ruby-ohai >= 6.0
69 Requires: ruby-rest-client >= 1.0.4
70 Requires: ruby-rubygems
71 Requires: ruby-yajl < 2
72 Requires: ruby-yajl >= 1.1
73 Suggests: chef-zero >= 2.1.4
74 Suggests: ruby-plist >= 3.1.0
76 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
78 # do not generate python dependency, yum support is optional
79 %define _noautoreqfiles %{ruby_vendorlibdir}/chef/provider/package/yum-dump.py
82 A systems integration framework, built to bring the benefits of
83 configuration management to your entire infrastructure.
85 %package -n bash-completion-knife
86 Summary: bash-completion for knife
87 Summary(pl.UTF-8): bashowe uzupełnianie nazw dla knifea
88 Group: Applications/Shells
89 Requires: %{name} >= 0.10
90 Requires: bash-completion >= 2.0
92 %description -n bash-completion-knife
93 This package provides bash-completion for knife.
95 %description -n bash-completion-knife -l pl.UTF-8
96 Pakiet ten dostarcza bashowe uzupełnianie nazw dla knifea.
99 Summary: knife - Chef Server API client utility
100 Group: Networking/Admin
101 Requires: %{name} = %{version}-%{release}
103 %description -n knife
104 Knife is a command-line utility used to manage data on a Chef server
105 through the HTTP(S) API. Knife is organized into groups of subcommands
106 centered around the various object types in Chef. Each category of
107 subcommand is documented in its own manual page.
118 %{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/*
120 # cleanup backups after patching
121 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
123 grep --exclude-dir=spec --exclude-dir=distro -r /var/chef . && exit 1
131 rm -rf $RPM_BUILD_ROOT
132 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_bindir},%{_mandir}/man1,%{systemdtmpfilesdir}} \
133 $RPM_BUILD_ROOT%{ruby_vendorlibdir}/chef/reporting \
134 $RPM_BUILD_ROOT/var/{run/%{name},cache/%{name},lib/%{name}/{roles,data_bags,environments,backup}}
136 cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
137 cp -a bin/* $RPM_BUILD_ROOT%{_bindir}
138 cp -a distro/common/man/* $RPM_BUILD_ROOT%{_mandir}
139 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/README.md
141 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
143 install -d $RPM_BUILD_ROOT%{bash_compdir}
144 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{bash_compdir}/knife
147 rm -rf $RPM_BUILD_ROOT
150 %defattr(644,root,root,755)
151 %doc README.md CONTRIBUTING.md
152 %dir %{_sysconfdir}/%{name}
153 %attr(755,root,root) %{_bindir}/chef-apply
154 %attr(755,root,root) %{_bindir}/chef-client
155 %attr(755,root,root) %{_bindir}/chef-service-manager
156 %attr(755,root,root) %{_bindir}/chef-shell
157 %attr(755,root,root) %{_bindir}/chef-solo
158 %attr(755,root,root) %{_bindir}/shef
159 %{_mandir}/man1/chef-shell.1*
160 %{_mandir}/man8/chef-client.8*
161 %{_mandir}/man8/chef-solo.8*
162 %{ruby_vendorlibdir}/chef.rb
163 %{ruby_vendorlibdir}/chef
164 %exclude %{ruby_vendorlibdir}/chef/knife
165 %exclude %{ruby_vendorlibdir}/chef/application/knife.rb
166 %exclude %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
167 %exclude %{ruby_vendorlibdir}/chef/knife.rb
168 %{systemdtmpfilesdir}/chef.conf
170 %dir /var/lib/%{name}
171 %dir /var/lib/%{name}/roles
172 %dir /var/lib/%{name}/data_bags
173 %dir /var/lib/%{name}/environments
174 %dir %attr(750,root,root) /var/lib/%{name}/backup
176 %dir /var/cache/%{name}
177 %dir /var/run/%{name}
180 %defattr(644,root,root,755)
181 %attr(755,root,root) %{_bindir}/knife
182 %{ruby_vendorlibdir}/chef/knife.rb
183 %{ruby_vendorlibdir}/chef/knife
184 %{ruby_vendorlibdir}/chef/application/knife.rb
185 %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
186 %{_mandir}/man1/knife-bootstrap.1*
187 %{_mandir}/man1/knife-client.1*
188 %{_mandir}/man1/knife-configure.1*
189 %{_mandir}/man1/knife-cookbook-site.1*
190 %{_mandir}/man1/knife-cookbook.1*
191 %{_mandir}/man1/knife-data-bag.1*
192 %{_mandir}/man1/knife-delete.1*
193 %{_mandir}/man1/knife-deps.1*
194 %{_mandir}/man1/knife-diff.1*
195 %{_mandir}/man1/knife-download.1*
196 %{_mandir}/man1/knife-edit.1*
197 %{_mandir}/man1/knife-environment.1*
198 %{_mandir}/man1/knife-exec.1*
199 %{_mandir}/man1/knife-index-rebuild.1*
200 %{_mandir}/man1/knife-list.1*
201 %{_mandir}/man1/knife-node.1*
202 %{_mandir}/man1/knife-raw.1*
203 %{_mandir}/man1/knife-recipe-list.1*
204 %{_mandir}/man1/knife-role.1*
205 %{_mandir}/man1/knife-search.1*
206 %{_mandir}/man1/knife-serve.1*
207 %{_mandir}/man1/knife-show.1*
208 %{_mandir}/man1/knife-ssh.1*
209 %{_mandir}/man1/knife-ssl-check.1*
210 %{_mandir}/man1/knife-ssl-fetch.1*
211 %{_mandir}/man1/knife-status.1*
212 %{_mandir}/man1/knife-tag.1*
213 %{_mandir}/man1/knife-upload.1*
214 %{_mandir}/man1/knife-user.1*
215 %{_mandir}/man1/knife-xargs.1*
216 %{_mandir}/man1/knife.1*
218 %files -n bash-completion-knife
219 %defattr(644,root,root,755)
220 %{bash_compdir}/knife