X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=chef.spec;h=86e92fae9bdd626570d94127d3f3dd3c8e5ec0dc;hb=bfe4b1fa8d579acfc72a3c656be705d4ccdf0dd6;hp=3f863442ab204913fad154c9cf8b619e6bdc6661;hpb=bce16be1e8007cb15d38a9cb2f173e411cb85da4;p=packages%2Fchef.git diff --git a/chef.spec b/chef.spec index 3f86344..86e92fa 100644 --- a/chef.spec +++ b/chef.spec @@ -1,55 +1,203 @@ -# TODO -# - try not to use /var/chef +# NOTE: +# - check releases here: https://downloads.chef.io/chef-client/debian/ +# the versions tagged in github are somewhat newer, perhaps dev-releases + +# Conditional build: +%bcond_with tests # build without tests + Summary: A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure Name: chef -Version: 0.10.6 -Release: 0.3 +Version: 14.1.36 +Release: 0.1 License: Apache v2.0 -Group: Development/Languages -URL: http://wiki.opscode.com/display/chef -Source0: http://rubygems.org/downloads/%{name}-%{version}.gem -# Source0-md5: ea8746476a2ec37e1f8265a9febba6b9 -BuildRequires: rubygems -Requires: ruby >= 1:1.8.7 -Requires: ruby-bunny >= 0.6.0 -Requires: ruby-erubis -Requires: ruby-mixlib-authentication >= 1.1.0 -Requires: ruby-mixlib-config >= 1.1.2 -Requires: ruby-mixlib-log >= 1.3.0 -Requires: ruby-moneta -Requires: ruby-ohai >= 0.6 +Group: Networking/Admin +Source0: https://github.com/chef/chef/archive/v%{version}/%{name}-%{version}.tar.gz +# Source0-md5: 442169a1a824b3335376a88723e133a0 +Source2: %{name}.tmpfiles +Source3: https://raw.github.com/stevendanna/knife-hacks/master/shell/knife_completion.sh +# Source3-md5: a4c1e41370be8088a59ddb3b2e7ea397 +Patch0: platform-pld.patch +Patch1: FHS.patch +Patch2: poldek.patch +Patch3: https://github.com/glensc/chef/compare/pld-knife-boostrap.patch +# Patch3-md5: 8ff0fdfde6dc90018698775bf8f13062 +Patch4: optional-plist.patch +Patch5: gemdeps.patch +URL: https://wiki.opscode.com/display/chef/ +BuildRequires: rpm-rubyprov +BuildRequires: rpmbuild(macros) >= 1.673 +BuildRequires: sed >= 4.0 +%if %{with tests} +BuildRequires: ruby-rack +BuildRequires: ruby-rake +BuildRequires: ruby-rspec-core < 2.15 +BuildRequires: ruby-rspec-core >= 2.14.0 +BuildRequires: ruby-rspec-expectations < 2.15 +BuildRequires: ruby-rspec-expectations >= 2.14.0 +BuildRequires: ruby-rspec-mocks < 2.15 +BuildRequires: ruby-rspec-mocks >= 2.14.0 +BuildRequires: ruby-rspec_junit_formatter +%endif +Requires: lsb-release +Requires: poldek >= 0.30 +Requires: ruby >= 1:1.9.3.429-4 +Requires: ruby-chef-config = %{version}-%{release} +Requires: ruby-erubis >= 2.7.0-3 +Requires: ruby-json +Requires: ruby-mime-types < 2 +Requires: ruby-mime-types >= 1.16 +Requires: ruby-mixlib-authentication >= 1.3.0-2 +Requires: ruby-mixlib-config < 3 +Requires: ruby-mixlib-config >= 2.0 +Requires: ruby-mixlib-log >= 1.6.0-2 +Requires: ruby-rest-client >= 1.0.4 Requires: ruby-rubygems -Requires: ruby-uuidtools +Suggests: chef-zero >= 2.1.4 +Suggests: ruby-plist >= 3.1.0 BuildArch: noarch BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +# do not generate python dependency, yum support is optional +%define _noautoreqfiles %{ruby_vendorlibdir}/chef/provider/package/yum-dump.py + %description A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure. +%package -n ruby-chef-config +Summary: Chef's default configuration and config loading +Group: Development/Languages + +%description -n ruby-chef-config +Chef's default configuration and config loading. + +%package -n bash-completion-knife +Summary: bash-completion for knife +Summary(pl.UTF-8): bashowe uzupełnianie nazw dla knifea +Group: Applications/Shells +Requires: %{name} >= 0.10 +Requires: bash-completion >= 2.0 + +%description -n bash-completion-knife +This package provides bash-completion for knife. + +%description -n bash-completion-knife -l pl.UTF-8 +Pakiet ten dostarcza bashowe uzupełnianie nazw dla knifea. + +%package -n knife +Summary: knife - Chef Server API client utility +Group: Networking/Admin +Requires: %{name} = %{version}-%{release} + +%description -n knife +Knife is a command-line utility used to manage data on a Chef server +through the HTTP(S) API. Knife is organized into groups of subcommands +centered around the various object types in Chef. Each category of +subcommand is documented in its own manual page. + %prep -%setup -qc -%{__tar} xf %{SOURCE0} -O data.tar.gz | %{__tar} xz -find -newer README.rdoc -o -print | xargs touch --reference %{SOURCE0} +%setup -q +#%patch0 -p1 # UPDATE +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 + +%{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/* + +%ifos linux +# those do not match s.executables from .gemspec +rm bin/chef-service-manager +rm bin/chef-windows-service +%endif + +# don't package this, a maintainer's rake task +rm chef-config/lib/chef-config/package_task.rb + +# cleanup backups after patching +find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f + +grep --exclude-dir=spec --exclude-dir=distro --exclude=CHANGELOG.md -r /var/chef . && exit 1 %build +# make gemspec self-contained +%__gem_helper spec-dump %{name}.gemspec + +%if %{with tests} +rspec spec +%endif + +cd chef-config +# make gemspec self-contained +%__gem_helper spec-dump %{name}-config.gemspec %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{ruby_rubylibdir},%{_bindir}} +install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_bindir},%{systemdtmpfilesdir}} \ + $RPM_BUILD_ROOT%{ruby_vendorlibdir}/chef/reporting \ + $RPM_BUILD_ROOT%{ruby_specdir} \ + $RPM_BUILD_ROOT/var/{run/%{name},cache/%{name},lib/%{name}/{roles,data_bags,environments,reports,backup}} +# chef +cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir} cp -a bin/* $RPM_BUILD_ROOT%{_bindir} -cp -a lib/* $RPM_BUILD_ROOT%{ruby_rubylibdir} +cp -p chef-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir} + +# chef-config +cp -a chef-config/lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir} +cp -p chef-config/chef-config-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir} + +cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf + +install -d $RPM_BUILD_ROOT%{bash_compdir} +cp -p %{SOURCE3} $RPM_BUILD_ROOT%{bash_compdir}/knife %clean rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc README.rdoc +%doc README.md CONTRIBUTING.md +%dir %{_sysconfdir}/%{name} +%attr(755,root,root) %{_bindir}/chef-apply %attr(755,root,root) %{_bindir}/chef-client +%attr(755,root,root) %{_bindir}/chef-resource-inspector +%attr(755,root,root) %{_bindir}/chef-shell %attr(755,root,root) %{_bindir}/chef-solo +%{ruby_vendorlibdir}/chef.rb +%{ruby_vendorlibdir}/chef +%{ruby_specdir}/chef-%{version}.gemspec +%exclude %{ruby_vendorlibdir}/chef/knife +%exclude %{ruby_vendorlibdir}/chef/application/knife.rb +%exclude %{ruby_vendorlibdir}/chef/chef_fs/knife.rb +%exclude %{ruby_vendorlibdir}/chef/knife.rb +%{systemdtmpfilesdir}/chef.conf + +%dir /var/lib/%{name} +%dir /var/lib/%{name}/roles +%dir /var/lib/%{name}/data_bags +%dir /var/lib/%{name}/environments +%dir /var/lib/%{name}/reports +%dir %attr(750,root,root) /var/lib/%{name}/backup + +%dir /var/cache/%{name} +%dir /var/run/%{name} + +%files -n ruby-chef-config +%defattr(644,root,root,755) +%{ruby_vendorlibdir}/chef-config.rb +%{ruby_vendorlibdir}/chef-config +%{ruby_specdir}/chef-config-%{version}.gemspec + +%files -n knife +%defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/knife -%attr(755,root,root) %{_bindir}/shef -%{ruby_rubylibdir}/chef.rb -%{ruby_rubylibdir}/chef +%{ruby_vendorlibdir}/chef/knife.rb +%{ruby_vendorlibdir}/chef/knife +%{ruby_vendorlibdir}/chef/application/knife.rb +%{ruby_vendorlibdir}/chef/chef_fs/knife.rb + +%files -n bash-completion-knife +%defattr(644,root,root,755) +%{bash_compdir}/knife