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-mocks >= 3.5
78 Requires: ruby-rspec-mocks < 4
79 Requires: ruby-rubygems
80 Requires: ruby-serverspec >= 2.7
81 Requires: ruby-serverspec < 3
82 Requires: ruby-specinfra >= 2.10
83 Requires: ruby-specinfra < 3
84 Requires: ruby-syslog-logger >= 1.6
85 Requires: ruby-syslog-logger < 2
86 Requires: ruby-uuidtools >= 2.1.5
87 Requires: ruby-uuidtools < 2.2
88 Requires: ruby-yajl >= 1.1
89 Requires: ruby-yajl < 2
90 Suggests: chef-zero >= 13.0
91 Suggests: ruby-plist >= 3.2
93 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
95 # do not generate python dependency, yum support is optional
96 %define _noautoreqfiles %{ruby_vendorlibdir}/chef/provider/package/yum-dump.py
99 A systems integration framework, built to bring the benefits of
100 configuration management to your entire infrastructure.
102 %package -n bash-completion-knife
103 Summary: bash-completion for knife
104 Summary(pl.UTF-8): bashowe uzupełnianie nazw dla knifea
105 Group: Applications/Shells
106 Requires: %{name} >= 0.10
107 Requires: bash-completion >= 2.0
109 %description -n bash-completion-knife
110 This package provides bash-completion for knife.
112 %description -n bash-completion-knife -l pl.UTF-8
113 Pakiet ten dostarcza bashowe uzupełnianie nazw dla knifea.
116 Summary: knife - Chef Server API client utility
117 Group: Networking/Admin
118 Requires: %{name} = %{version}-%{release}
120 %description -n knife
121 Knife is a command-line utility used to manage data on a Chef server
122 through the HTTP(S) API. Knife is organized into groups of subcommands
123 centered around the various object types in Chef. Each category of
124 subcommand is documented in its own manual page.
134 %{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/*
136 # cleanup backups after patching
137 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
139 #grep --exclude-dir=spec --exclude-dir=distro -r /var/chef . && exit 1
147 rm -rf $RPM_BUILD_ROOT
148 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_bindir},%{_mandir}/man1,%{systemdtmpfilesdir}} \
149 $RPM_BUILD_ROOT%{ruby_vendorlibdir}/chef/reporting \
150 $RPM_BUILD_ROOT/var/{run/%{name},cache/%{name},lib/%{name}/{roles,data_bags,environments,backup}}
152 cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
153 cp -a bin/* $RPM_BUILD_ROOT%{_bindir}
155 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
157 install -d $RPM_BUILD_ROOT%{bash_compdir}
158 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{bash_compdir}/knife
161 rm -rf $RPM_BUILD_ROOT
164 %defattr(644,root,root,755)
165 %doc README.md CONTRIBUTING.md
166 %dir %{_sysconfdir}/%{name}
167 %attr(755,root,root) %{_bindir}/chef-apply
168 %attr(755,root,root) %{_bindir}/chef-client
169 %attr(755,root,root) %{_bindir}/chef-resource-inspector
170 %attr(755,root,root) %{_bindir}/chef-service-manager
171 %attr(755,root,root) %{_bindir}/chef-shell
172 %attr(755,root,root) %{_bindir}/chef-solo
173 %attr(755,root,root) %{_bindir}/chef-windows-service
174 %{ruby_vendorlibdir}/chef.rb
175 %{ruby_vendorlibdir}/chef
176 %exclude %{ruby_vendorlibdir}/chef/knife
177 %exclude %{ruby_vendorlibdir}/chef/application/knife.rb
178 %exclude %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
179 %exclude %{ruby_vendorlibdir}/chef/knife.rb
180 %{systemdtmpfilesdir}/chef.conf
182 %dir /var/lib/%{name}
183 %dir /var/lib/%{name}/roles
184 %dir /var/lib/%{name}/data_bags
185 %dir /var/lib/%{name}/environments
186 %dir %attr(750,root,root) /var/lib/%{name}/backup
188 %dir /var/cache/%{name}
189 %dir /var/run/%{name}
192 %defattr(644,root,root,755)
193 %attr(755,root,root) %{_bindir}/knife
194 %{ruby_vendorlibdir}/chef/knife.rb
195 %{ruby_vendorlibdir}/chef/knife
196 %{ruby_vendorlibdir}/chef/application/knife.rb
197 %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
199 %files -n bash-completion-knife
200 %defattr(644,root,root,755)
201 %{bash_compdir}/knife