2 # - check releases here: https://downloads.chef.io/chef-client/debian/
3 # the versions tagged in github are somewhat newer, perhaps dev-releases
6 %bcond_with tests # build without tests
8 Summary: A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure
13 Group: Networking/Admin
14 Source0: https://github.com/chef/chef/archive/v%{version}/%{name}-%{version}.tar.gz
15 # Source0-md5: 2390cdbde7445ccc288992401ed62f08
16 Source2: %{name}.tmpfiles
17 Source3: https://raw.github.com/stevendanna/knife-hacks/master/shell/knife_completion.sh
18 # Source3-md5: a4c1e41370be8088a59ddb3b2e7ea397
19 Patch0: platform-pld.patch
22 Patch3: https://github.com/glensc/chef/compare/pld-knife-boostrap.patch
23 # Patch3-md5: 8ff0fdfde6dc90018698775bf8f13062
24 Patch4: optional-plist.patch
26 URL: https://wiki.opscode.com/display/chef/
27 BuildRequires: rpm-rubyprov
28 BuildRequires: rpmbuild(macros) >= 1.673
29 BuildRequires: sed >= 4.0
31 BuildRequires: ruby-rack
32 BuildRequires: ruby-rake
33 BuildRequires: ruby-rspec-core < 2.15
34 BuildRequires: ruby-rspec-core >= 2.14.0
35 BuildRequires: ruby-rspec-expectations < 2.15
36 BuildRequires: ruby-rspec-expectations >= 2.14.0
37 BuildRequires: ruby-rspec-mocks < 2.15
38 BuildRequires: ruby-rspec-mocks >= 2.14.0
39 BuildRequires: ruby-rspec_junit_formatter
42 Requires: poldek >= 0.30
43 Requires: ruby >= 1:1.9.3.429-4
44 Requires: ruby-chef-config = %{version}-%{release}
45 Requires: ruby-erubis >= 2.7.0-3
46 Requires: ruby-json <= 1.8.1
47 Requires: ruby-json >= 1.4.4
48 Requires: ruby-mime-types < 2
49 Requires: ruby-mime-types >= 1.16
50 Requires: ruby-mixlib-authentication >= 1.3.0-2
51 Requires: ruby-mixlib-config < 3
52 Requires: ruby-mixlib-config >= 2.0
53 Requires: ruby-mixlib-log >= 1.6.0-2
54 Requires: ruby-ohai < 9
55 Requires: ruby-rest-client >= 1.0.4
56 Requires: ruby-rubygems
57 Suggests: chef-zero >= 2.1.4
58 Suggests: ruby-plist >= 3.1.0
60 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
62 # do not generate python dependency, yum support is optional
63 %define _noautoreqfiles %{ruby_vendorlibdir}/chef/provider/package/yum-dump.py
66 A systems integration framework, built to bring the benefits of
67 configuration management to your entire infrastructure.
69 %package -n ruby-chef-config
70 Summary: Chef's default configuration and config loading
71 Group: Development/Languages
73 %description -n ruby-chef-config
74 Chef's default configuration and config loading.
76 %package -n bash-completion-knife
77 Summary: bash-completion for knife
78 Summary(pl.UTF-8): bashowe uzupełnianie nazw dla knifea
79 Group: Applications/Shells
80 Requires: %{name} >= 0.10
81 Requires: bash-completion >= 2.0
83 %description -n bash-completion-knife
84 This package provides bash-completion for knife.
86 %description -n bash-completion-knife -l pl.UTF-8
87 Pakiet ten dostarcza bashowe uzupełnianie nazw dla knifea.
90 Summary: knife - Chef Server API client utility
91 Group: Networking/Admin
92 Requires: %{name} = %{version}-%{release}
95 Knife is a command-line utility used to manage data on a Chef server
96 through the HTTP(S) API. Knife is organized into groups of subcommands
97 centered around the various object types in Chef. Each category of
98 subcommand is documented in its own manual page.
102 #%patch0 -p1 # UPDATE
109 %{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/*
112 # those do not match s.executables from .gemspec
113 rm bin/chef-service-manager
114 rm bin/chef-windows-service
117 # cleanup backups after patching
118 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
120 grep --exclude-dir=spec --exclude-dir=distro --exclude=CHANGELOG.md -r /var/chef . && exit 1
123 # make gemspec self-contained
124 %__gem_helper spec-dump %{name}.gemspec
131 # make gemspec self-contained
132 %__gem_helper spec-dump %{name}-config.gemspec
135 rm -rf $RPM_BUILD_ROOT
136 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_bindir},%{_mandir}/man1,%{systemdtmpfilesdir}} \
137 $RPM_BUILD_ROOT%{ruby_vendorlibdir}/chef/reporting \
138 $RPM_BUILD_ROOT%{ruby_specdir} \
139 $RPM_BUILD_ROOT/var/{run/%{name},cache/%{name},lib/%{name}/{roles,data_bags,environments,reports,backup}}
142 cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
143 cp -a bin/* $RPM_BUILD_ROOT%{_bindir}
144 cp -a distro/common/man/* $RPM_BUILD_ROOT%{_mandir}
145 cp -p chef-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
146 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/README.md
149 cp -a chef-config/lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
150 cp -p chef-config/chef-config-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
152 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
154 install -d $RPM_BUILD_ROOT%{bash_compdir}
155 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{bash_compdir}/knife
158 rm -rf $RPM_BUILD_ROOT
161 %defattr(644,root,root,755)
162 %doc README.md CONTRIBUTING.md
163 %dir %{_sysconfdir}/%{name}
164 %attr(755,root,root) %{_bindir}/chef-apply
165 %attr(755,root,root) %{_bindir}/chef-client
166 %attr(755,root,root) %{_bindir}/chef-shell
167 %attr(755,root,root) %{_bindir}/chef-solo
168 %{_mandir}/man1/chef-shell.1*
169 %{_mandir}/man8/chef-apply.8*
170 %{_mandir}/man8/chef-client.8*
171 %{_mandir}/man8/chef-solo.8*
172 %{ruby_vendorlibdir}/chef.rb
173 %{ruby_vendorlibdir}/chef
174 %{ruby_specdir}/chef-%{version}.gemspec
175 %exclude %{ruby_vendorlibdir}/chef/knife
176 %exclude %{ruby_vendorlibdir}/chef/application/knife.rb
177 %exclude %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
178 %exclude %{ruby_vendorlibdir}/chef/knife.rb
179 %{systemdtmpfilesdir}/chef.conf
181 %dir /var/lib/%{name}
182 %dir /var/lib/%{name}/roles
183 %dir /var/lib/%{name}/data_bags
184 %dir /var/lib/%{name}/environments
185 %dir /var/lib/%{name}/reports
186 %dir %attr(750,root,root) /var/lib/%{name}/backup
188 %dir /var/cache/%{name}
189 %dir /var/run/%{name}
191 %files -n ruby-chef-config
192 %defattr(644,root,root,755)
193 %{ruby_vendorlibdir}/chef-config.rb
194 %{ruby_vendorlibdir}/chef-config
195 %{ruby_specdir}/chef-config-%{version}.gemspec
198 %defattr(644,root,root,755)
199 %attr(755,root,root) %{_bindir}/knife
200 %{ruby_vendorlibdir}/chef/knife.rb
201 %{ruby_vendorlibdir}/chef/knife
202 %{ruby_vendorlibdir}/chef/application/knife.rb
203 %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
204 %{_mandir}/man1/knife-bootstrap.1*
205 %{_mandir}/man1/knife-client.1*
206 %{_mandir}/man1/knife-configure.1*
207 %{_mandir}/man1/knife-cookbook-site.1*
208 %{_mandir}/man1/knife-cookbook.1*
209 %{_mandir}/man1/knife-data-bag.1*
210 %{_mandir}/man1/knife-delete.1*
211 %{_mandir}/man1/knife-deps.1*
212 %{_mandir}/man1/knife-diff.1*
213 %{_mandir}/man1/knife-download.1*
214 %{_mandir}/man1/knife-edit.1*
215 %{_mandir}/man1/knife-environment.1*
216 %{_mandir}/man1/knife-exec.1*
217 %{_mandir}/man1/knife-index-rebuild.1*
218 %{_mandir}/man1/knife-list.1*
219 %{_mandir}/man1/knife-node.1*
220 %{_mandir}/man1/knife-raw.1*
221 %{_mandir}/man1/knife-recipe-list.1*
222 %{_mandir}/man1/knife-role.1*
223 %{_mandir}/man1/knife-search.1*
224 %{_mandir}/man1/knife-serve.1*
225 %{_mandir}/man1/knife-show.1*
226 %{_mandir}/man1/knife-ssh.1*
227 %{_mandir}/man1/knife-ssl-check.1*
228 %{_mandir}/man1/knife-ssl-fetch.1*
229 %{_mandir}/man1/knife-status.1*
230 %{_mandir}/man1/knife-tag.1*
231 %{_mandir}/man1/knife-upload.1*
232 %{_mandir}/man1/knife-user.1*
233 %{_mandir}/man1/knife-xargs.1*
234 %{_mandir}/man1/knife.1*
236 %files -n bash-completion-knife
237 %defattr(644,root,root,755)
238 %{bash_compdir}/knife