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: https://github.com/chef/chef/archive/v%{version}/%{name}-%{version}.tar.gz
14 # Source0-md5: b67966a9b9e6c0a5947a604239267415
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: 9bc4b39952e6bc326b16207cd6a59141
23 Patch4: optional-plist.patch
24 URL: https://www.chef.io/
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:2.4.0
42 Requires: ruby-addressable >= 0
43 Requires: ruby-diff-lcs >= 1.3
44 Requires: ruby-erubis >= 2.7.0-3
45 Requires: ruby-erubis < 3
46 Requires: ruby-ffi < 1.9.23
47 Requires: ruby-ffi-yajl >= 2.2
48 Requires: ruby-highline >= 1.6.9
49 Requires: ruby-highline < 2
50 Requires: ruby-iniparse >= 1.4
51 Requires: ruby-iniparse < 2
52 Requires: ruby-iso8601 >= 0.9.1
53 Requires: ruby-iso8601 < 0.10
54 Requires: ruby-json >= 2.1.0
55 Requires: ruby-mixlib-archive >= 0.4
56 Requires: ruby-mixlib-archive < 1
57 Requires: ruby-mixlib-authentication >= 2.0
58 Requires: ruby-mixlib-cli >= 1.7
59 Requires: ruby-mixlib-config >= 2.0
60 Requires: ruby-mixlib-config < 3
61 Requires: ruby-mixlib-log >= 2.0.3
62 Requires: ruby-mixlib-shellout >= 2.0
63 Requires: ruby-net-sftp >= 2.1.2
64 Requires: ruby-net-sftp < 3
65 Requires: ruby-net-ssh >= 4.2
66 Requires: ruby-net-ssh-multi >= 1.2.1
67 Requires: ruby-net-ssh-multi < 2
68 Requires: ruby-ohai >= 13.0
69 Requires: ruby-proxifier >= 1.0
70 Requires: ruby-proxifier < 2
71 Requires: ruby-rest-client >= 1.0.4
72 Requires: ruby-rspec-core >= 3.5
73 Requires: ruby-rspec-core < 4
74 Requires: ruby-rspec-expectations >= 3.5
75 Requires: ruby-rspec-expectations < 4
76 Requires: ruby-rspec_junit_formatter >= 0.2.0
77 Requires: ruby-rspec_junit_formatter < 0.3
78 Requires: ruby-rspec-mocks >= 3.5
79 Requires: ruby-rspec-mocks < 4
80 Requires: ruby-rubygems
81 Requires: ruby-serverspec >= 2.7
82 Requires: ruby-serverspec < 3
83 Requires: ruby-specinfra >= 2.10
84 Requires: ruby-specinfra < 3
85 Requires: ruby-syslog-logger >= 1.6
86 Requires: ruby-syslog-logger < 2
87 Requires: ruby-uuidtools >= 2.1.5
88 Requires: ruby-uuidtools < 2.2
89 Requires: ruby-yajl >= 1.1
90 Requires: ruby-yajl < 2
91 Suggests: chef-zero >= 13.0
92 Suggests: ruby-plist >= 3.2
94 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96 # do not generate python dependency, yum support is optional
97 %define _noautoreqfiles %{ruby_vendorlibdir}/chef/provider/package/yum-dump.py
100 A systems integration framework, built to bring the benefits of
101 configuration management to your entire infrastructure.
103 %package -n bash-completion-knife
104 Summary: bash-completion for knife
105 Summary(pl.UTF-8): bashowe uzupełnianie nazw dla knifea
106 Group: Applications/Shells
107 Requires: %{name} >= 0.10
108 Requires: bash-completion >= 2.0
110 %description -n bash-completion-knife
111 This package provides bash-completion for knife.
113 %description -n bash-completion-knife -l pl.UTF-8
114 Pakiet ten dostarcza bashowe uzupełnianie nazw dla knifea.
117 Summary: knife - Chef Server API client utility
118 Group: Networking/Admin
119 Requires: %{name} = %{version}-%{release}
121 %description -n knife
122 Knife is a command-line utility used to manage data on a Chef server
123 through the HTTP(S) API. Knife is organized into groups of subcommands
124 centered around the various object types in Chef. Each category of
125 subcommand is documented in its own manual page.
135 %{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/*
137 # cleanup backups after patching
138 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
140 #grep --exclude-dir=spec --exclude-dir=distro -r /var/chef . && exit 1
148 rm -rf $RPM_BUILD_ROOT
149 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_bindir},%{_mandir}/man1,%{systemdtmpfilesdir}} \
150 $RPM_BUILD_ROOT%{ruby_vendorlibdir}/chef/reporting \
151 $RPM_BUILD_ROOT/var/{run/%{name},cache/%{name},lib/%{name}/{roles,data_bags,environments,backup}}
153 cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
154 cp -a bin/* $RPM_BUILD_ROOT%{_bindir}
156 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
158 install -d $RPM_BUILD_ROOT%{bash_compdir}
159 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{bash_compdir}/knife
162 rm -rf $RPM_BUILD_ROOT
165 %defattr(644,root,root,755)
166 %doc README.md CONTRIBUTING.md
167 %dir %{_sysconfdir}/%{name}
168 %attr(755,root,root) %{_bindir}/chef-apply
169 %attr(755,root,root) %{_bindir}/chef-client
170 %attr(755,root,root) %{_bindir}/chef-resource-inspector
171 %attr(755,root,root) %{_bindir}/chef-service-manager
172 %attr(755,root,root) %{_bindir}/chef-shell
173 %attr(755,root,root) %{_bindir}/chef-solo
174 %attr(755,root,root) %{_bindir}/chef-windows-service
175 %{ruby_vendorlibdir}/chef.rb
176 %{ruby_vendorlibdir}/chef
177 %exclude %{ruby_vendorlibdir}/chef/knife
178 %exclude %{ruby_vendorlibdir}/chef/application/knife.rb
179 %exclude %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
180 %exclude %{ruby_vendorlibdir}/chef/knife.rb
181 %{systemdtmpfilesdir}/chef.conf
183 %dir /var/lib/%{name}
184 %dir /var/lib/%{name}/roles
185 %dir /var/lib/%{name}/data_bags
186 %dir /var/lib/%{name}/environments
187 %dir %attr(750,root,root) /var/lib/%{name}/backup
189 %dir /var/cache/%{name}
190 %dir /var/run/%{name}
193 %defattr(644,root,root,755)
194 %attr(755,root,root) %{_bindir}/knife
195 %{ruby_vendorlibdir}/chef/knife.rb
196 %{ruby_vendorlibdir}/chef/knife
197 %{ruby_vendorlibdir}/chef/application/knife.rb
198 %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
200 %files -n bash-completion-knife
201 %defattr(644,root,root,755)
202 %{bash_compdir}/knife