#
+# Release Notes: https://github.com/opscode/ohai/blob/master/CHANGELOG.md
+#
# Conditional build:
-%bcond_without tests # build without tests
+%bcond_with tests # build without tests
-%define gemname ohai
+%define pkgname ohai
Summary: Profiles your system and emits JSON
-Name: ruby-%{gemname}
-Version: 6.16.0
-Release: 1
+Name: ruby-%{pkgname}
+Version: 8.16.0
+Release: 0.1
License: Apache v2.0
Group: Development/Languages
-Source0: https://github.com/opscode/ohai/archive/%{version}.tar.gz
-# Source0-md5: 5c00b0ba4c313bedfec62cd5e1525551
-URL: http://docs.opscode.com/ohai.html
+Source0: https://github.com/opscode/ohai/archive/%{version}/%{pkgname}-%{version}.tar.gz
+# Source0-md5: 7a2182e562bab7dcc48e0b68e07daf92
+Patch1: platform-pld.patch
+URL: http://docs.getchef.com/ohai.html
BuildRequires: rpm-rubyprov
-BuildRequires: rpmbuild(macros) >= 1.656
+BuildRequires: rpmbuild(macros) >= 1.665
+BuildRequires: ruby-rake
BuildRequires: sed >= 4.0
+# rake gem uses installed ohai version not version we intend to build!
+BuildConflicts: ruby-ohai
%if %{with tests}
-BuildRequires: ruby-rake
+BuildRequires: ruby-ffi >= 1.9
+BuildRequires: ruby-ffi-yajl >= 1.1
+BuildRequires: ruby-ipaddress
+BuildRequires: ruby-mixlib-config
+BuildRequires: ruby-mixlib-log
+BuildRequires: ruby-mixlib-shellout >= 1.2
BuildRequires: ruby-rspec
+BuildRequires: ruby-systemu >= 2.6.4
%endif
+Requires: iproute2
+Requires: lsb-release
+Requires: mount
+Requires: ruby(abi) >= 2.0
+Requires: ruby-ffi >= 1.9
+Requires: ruby-ffi-yajl >= 1.1
Requires: ruby-ipaddress
+Requires: ruby-mime-types >= 1.16
Requires: ruby-mixlib-cli
-Requires: ruby-mixlib-config
+Requires: ruby-mixlib-config >= 2.0
Requires: ruby-mixlib-log
-Requires: ruby-mixlib-shellout
-Requires: ruby-systemu
-Requires: ruby-yajl
+Requires: ruby-mixlib-shellout >= 1.2
+Requires: ruby-systemu >= 2.6.4
+Suggests: ruby-net-dhcp
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%prep
%setup -q -n ohai-%{version}
+%patch1 -p1
%{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/*
+# don't need shellout 2.0 yet, but 2.0 is ok
+%{__sed} -i -e '/mixlib-shellout/ s/">= 2.0.0.rc.0", "< 3.0"/">= 1.2", "< 3.0"/' %{pkgname}.gemspec
+# optional
+%{__sed} -i -e '/net-dhcp/d' %{pkgname}.gemspec
+# platform specific and optional
+%{__sed} -i -e '/wmi-lite/d' %{pkgname}.gemspec
+%{__sed} -i -e '/plist/d' %{pkgname}.gemspec
+# dev dep
+%{__sed} -i -e '/rake/d' %{pkgname}.gemspec
+
# no plist and not darwin so don't care
rm spec/unit/plugins/darwin/system_profiler_spec.rb
-# can't figure how ti fix -r rubygems does not help
-# ohai-6.16.0/spec/unit/plugins/ruby_spec.rb:52:in `block in <top (required)>': uninitialized cons tant Gem (NameError)
+# can't figure how to fix -r rubygems does not help
+# ohai-6.16.0/spec/unit/plugins/ruby_spec.rb:52:in `block in <top (required)>': uninitialized constant Gem (NameError)
rm spec/unit/plugins/ruby_spec.rb
%build
+# make gemspec self-contained
+ruby -r rubygems -e 'spec = eval(File.read("%{pkgname}.gemspec"))
+ File.open("%{pkgname}-%{version}.gemspec", "w") do |file|
+ file.puts spec.to_ruby_for_cache
+end'
+
%if %{with tests}
# Occasionally fails with "undefined method `rfc2822' for nil:NilClass" during
# mock. Unsure why - disable for now.
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{_bindir},%{_mandir}/man1}
+install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_specdir},%{_bindir},%{_mandir}/man1}
cp -a bin/* $RPM_BUILD_ROOT%{_bindir}
cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
cp -p docs/man/man1/ohai.1 $RPM_BUILD_ROOT%{_mandir}/man1
+cp -p %{pkgname}-%{version}*.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc README.rdoc CHANGELOG NOTICE
+%doc README.md CHANGELOG.md RELEASE_NOTES.md OHAI_MVPS.md NOTICE
%attr(755,root,root) %{_bindir}/ohai
%{_mandir}/man1/ohai.1*
-%{ruby_vendorlibdir}/ohai.rb
-%{ruby_vendorlibdir}/ohai
+%{ruby_vendorlibdir}/%{pkgname}.rb
+%{ruby_vendorlibdir}/%{pkgname}
+%{ruby_specdir}/%{pkgname}-%{version}*.gemspec