]> git.pld-linux.org Git - packages/chef.git/blob - chef.spec
4f7a2ae8e4c7c8121fad097fbda5a6ce7f99bb72
[packages/chef.git] / chef.spec
1 # NOTE:
2 # - check releases here: https://downloads.chef.io/chef-client/debian/
3 #   the versions tagged in github are somewhat newer, perhaps dev-releases
4
5 # Conditional build:
6 %bcond_with     tests           # build without tests
7
8 Summary:        A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure
9 Name:           chef
10 Version:        14.1.21
11 Release:        0.3
12 License:        Apache v2.0
13 Group:          Networking/Admin
14 Source0:        https://github.com/chef/chef/archive/v%{version}/%{name}-%{version}.tar.gz
15 # Source0-md5:  b67966a9b9e6c0a5947a604239267415
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
20 Patch1:         FHS.patch
21 Patch2:         poldek.patch
22 Patch3:         https://github.com/glensc/chef/compare/pld-knife-boostrap.patch
23 # Patch3-md5:   8ff0fdfde6dc90018698775bf8f13062
24 Patch4:         optional-plist.patch
25 Patch5:         gemdeps.patch
26 URL:            https://wiki.opscode.com/display/chef/
27 BuildRequires:  rpm-rubyprov
28 BuildRequires:  rpmbuild(macros) >= 1.673
29 BuildRequires:  sed >= 4.0
30 %if %{with tests}
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
40 %endif
41 Requires:       lsb-release
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
47 Requires:       ruby-mime-types < 2
48 Requires:       ruby-mime-types >= 1.16
49 Requires:       ruby-mixlib-authentication >= 1.3.0-2
50 Requires:       ruby-mixlib-config < 3
51 Requires:       ruby-mixlib-config >= 2.0
52 Requires:       ruby-mixlib-log >= 1.6.0-2
53 Requires:       ruby-ohai < 9
54 Requires:       ruby-rest-client >= 1.0.4
55 Requires:       ruby-rubygems
56 Suggests:       chef-zero >= 2.1.4
57 Suggests:       ruby-plist >= 3.1.0
58 BuildArch:      noarch
59 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60
61 # do not generate python dependency, yum support is optional
62 %define         _noautoreqfiles %{ruby_vendorlibdir}/chef/provider/package/yum-dump.py
63
64 %description
65 A systems integration framework, built to bring the benefits of
66 configuration management to your entire infrastructure.
67
68 %package -n ruby-chef-config
69 Summary:        Chef's default configuration and config loading
70 Group:          Development/Languages
71
72 %description -n ruby-chef-config
73 Chef's default configuration and config loading.
74
75 %package -n bash-completion-knife
76 Summary:        bash-completion for knife
77 Summary(pl.UTF-8):      bashowe uzupełnianie nazw dla knifea
78 Group:          Applications/Shells
79 Requires:       %{name} >= 0.10
80 Requires:       bash-completion >= 2.0
81
82 %description -n bash-completion-knife
83 This package provides bash-completion for knife.
84
85 %description -n bash-completion-knife -l pl.UTF-8
86 Pakiet ten dostarcza bashowe uzupełnianie nazw dla knifea.
87
88 %package -n knife
89 Summary:        knife - Chef Server API client utility
90 Group:          Networking/Admin
91 Requires:       %{name} = %{version}-%{release}
92
93 %description -n knife
94 Knife is a command-line utility used to manage data on a Chef server
95 through the HTTP(S) API. Knife is organized into groups of subcommands
96 centered around the various object types in Chef. Each category of
97 subcommand is documented in its own manual page.
98
99 %prep
100 %setup -q
101 #%patch0 -p1 # UPDATE
102 %patch1 -p1
103 %patch2 -p1
104 %patch3 -p1
105 %patch4 -p1
106 %patch5 -p1
107
108 %{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/*
109
110 %ifos linux
111 # those do not match s.executables from .gemspec
112 rm bin/chef-service-manager
113 rm bin/chef-windows-service
114 %endif
115
116 # don't package this, a maintainer's rake task
117 rm chef-config/lib/chef-config/package_task.rb
118
119 # cleanup backups after patching
120 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
121
122 grep --exclude-dir=spec --exclude-dir=distro --exclude=CHANGELOG.md -r /var/chef . && exit 1
123
124 %build
125 # make gemspec self-contained
126 %__gem_helper spec-dump %{name}.gemspec
127
128 %if %{with tests}
129 rspec spec
130 %endif
131
132 cd chef-config
133 # make gemspec self-contained
134 %__gem_helper spec-dump %{name}-config.gemspec
135
136 %install
137 rm -rf $RPM_BUILD_ROOT
138 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_bindir},%{systemdtmpfilesdir}} \
139         $RPM_BUILD_ROOT%{ruby_vendorlibdir}/chef/reporting \
140         $RPM_BUILD_ROOT%{ruby_specdir} \
141         $RPM_BUILD_ROOT/var/{run/%{name},cache/%{name},lib/%{name}/{roles,data_bags,environments,reports,backup}}
142
143 # chef
144 cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
145 cp -a bin/* $RPM_BUILD_ROOT%{_bindir}
146 cp -p chef-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
147
148 # chef-config
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}
151
152 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
153
154 install -d $RPM_BUILD_ROOT%{bash_compdir}
155 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{bash_compdir}/knife
156
157 %clean
158 rm -rf $RPM_BUILD_ROOT
159
160 %files
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-resource-inspector
167 %attr(755,root,root) %{_bindir}/chef-shell
168 %attr(755,root,root) %{_bindir}/chef-solo
169 %{ruby_vendorlibdir}/chef.rb
170 %{ruby_vendorlibdir}/chef
171 %{ruby_specdir}/chef-%{version}.gemspec
172 %exclude %{ruby_vendorlibdir}/chef/knife
173 %exclude %{ruby_vendorlibdir}/chef/application/knife.rb
174 %exclude %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
175 %exclude %{ruby_vendorlibdir}/chef/knife.rb
176 %{systemdtmpfilesdir}/chef.conf
177
178 %dir /var/lib/%{name}
179 %dir /var/lib/%{name}/roles
180 %dir /var/lib/%{name}/data_bags
181 %dir /var/lib/%{name}/environments
182 %dir /var/lib/%{name}/reports
183 %dir %attr(750,root,root) /var/lib/%{name}/backup
184
185 %dir /var/cache/%{name}
186 %dir /var/run/%{name}
187
188 %files -n ruby-chef-config
189 %defattr(644,root,root,755)
190 %{ruby_vendorlibdir}/chef-config.rb
191 %{ruby_vendorlibdir}/chef-config
192 %{ruby_specdir}/chef-config-%{version}.gemspec
193
194 %files -n knife
195 %defattr(644,root,root,755)
196 %attr(755,root,root) %{_bindir}/knife
197 %{ruby_vendorlibdir}/chef/knife.rb
198 %{ruby_vendorlibdir}/chef/knife
199 %{ruby_vendorlibdir}/chef/application/knife.rb
200 %{ruby_vendorlibdir}/chef/chef_fs/knife.rb
201
202 %files -n bash-completion-knife
203 %defattr(644,root,root,755)
204 %{bash_compdir}/knife
This page took 0.081969 seconds and 3 git commands to generate.