%define pkgname ohai
Summary: Profiles your system and emits JSON
Name: ruby-%{pkgname}
-Version: 7.0.0
+Version: 7.4.0
Release: 0.1
License: Apache v2.0
Group: Development/Languages
-#Source0: https://github.com/opscode/ohai/archive/%{version}/%{pkgname}-%{version}.tar.gz
-Source0: https://github.com/opscode/ohai/archive/master/%{pkgname}-%{version}-bcc1557.tar.gz
-# Source0-md5: 1192ea216030e105171162b57a40ca6f
+Source0: https://github.com/opscode/ohai/archive/%{version}/%{pkgname}-%{version}.tar.gz
+# Source0-md5: 5275e5f79b618ce2af85311cd760b977
Patch0: virtualization-vserver.patch
-URL: http://docs.opscode.com/ohai.html
+URL: http://docs.getchef.com/ohai.html
BuildRequires: rpm-rubyprov
BuildRequires: rpmbuild(macros) >= 1.665
BuildRequires: ruby-rake
BuildRequires: sed >= 4.0
%if %{with tests}
+BuildRequires: ruby-ffi >= 1.9
+BuildRequires: ruby-ffi-yajl >= 1.0
BuildRequires: ruby-ipaddress
BuildRequires: ruby-mixlib-config
BuildRequires: ruby-mixlib-log
-BuildRequires: ruby-mixlib-shellout
+BuildRequires: ruby-mixlib-shellout >= 1.2
BuildRequires: ruby-rspec
-BuildRequires: ruby-systemu
-BuildRequires: ruby-yajl
+BuildRequires: ruby-systemu >= 2.6.4
%endif
Requires: lsb-release
+Requires: ruby-ffi >= 1.9
+Requires: ruby-ffi-yajl >= 1.0
Requires: ruby-ipaddress
Requires: ruby-mixlib-cli
Requires: ruby-mixlib-config
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
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
This package contains documentation for %{name}.
%prep
-%setup -qc
-mv ohai-*/* .
+%setup -q -n ohai-%{version}
%patch0 -p1
%{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/*
cp -p docs/man/man1/ohai.1 $RPM_BUILD_ROOT%{_mandir}/man1
cp -p %{pkgname}-%{version}*.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
-# testing tool (used by spec/... files)
-rm $RPM_BUILD_ROOT%{_bindir}/grab_data.rb
-
%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}/%{pkgname}.rb
-detect vserver before vbox, allowing "vbox-guest" status to overwrite "vserver-host" detection
-
+detect vserver before vbox, allowing "vbox-guest" status to overwrite
+"vserver-host" detection
https://tickets.opscode.com/browse/OHAI-479
---- ruby-ohai-7.0.0.alpha.0/lib/ohai/plugins/linux/virtualization.rb~ 2013-11-25 21:34:08.000000000 +0200
-+++ ruby-ohai-7.0.0.alpha.0/lib/ohai/plugins/linux/virtualization.rb 2013-11-25 22:36:18.108064611 +0200
-@@ -81,6 +81,20 @@
- virtualization[:role] = "guest"
+Eventually to be dropped in favour of using node[:virtualization][:systems]
+https://tickets.opscode.com/browse/OHAI-182
+
+--- ruby-ohai-7.4.0/lib/ohai/plugins/linux/virtualization.rb~ 2014-09-06 07:18:08.000000000 +0300
++++ ruby-ohai-7.4.0/lib/ohai/plugins/linux/virtualization.rb 2014-09-18 00:30:42.946587051 +0300
+@@ -101,6 +101,23 @@
+ virtualization[:systems][:openvz] = "guest"
end
+ # Detect Linux-VServer
+ virtualization[:system] = "linux-vserver"
+ if vxid[2] == "0"
+ virtualization[:role] = "host"
++ virtualization[:systems]["linux-vserver"] = "host"
+ else
+ virtualization[:role] = "guest"
++ virtualization[:systems]["linux-vserver"] = "guest"
+ end
+ end
+ end
++
+
# http://www.dmo.ca/blog/detecting-virtualization-on-linux
if File.exists?("/usr/sbin/dmidecode")
so = shell_out("dmidecode")
-@@ -109,19 +123,5 @@
- nil
+@@ -134,22 +151,6 @@
end
end
--
+
- # Detect Linux-VServer
- if File.exists?("/proc/self/status")
- proc_self_status = File.read("/proc/self/status")
- virtualization[:system] = "linux-vserver"
- if vxid[2] == "0"
- virtualization[:role] = "host"
+- virtualization[:systems]["linux-vserver"] = "host"
- else
- virtualization[:role] = "guest"
+- virtualization[:systems]["linux-vserver"] = "guest"
- end
- end
- end
- end
- end
+-
+ # Detect LXC/Docker
+ #
+ # /proc/self/cgroup will look like this inside a docker container: