Hello community,
here is the log from the commit of package yast2-bootloader for openSUSE:Factory checked in at 2012-05-07 22:53:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-bootloader (Old)
and /work/SRC/openSUSE:Factory/.yast2-bootloader.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-bootloader", Maintainer is "snwint@suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-bootloader/yast2-bootloader.changes 2012-04-23 16:14:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-bootloader.new/yast2-bootloader.changes 2012-05-07 22:53:48.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Apr 24 15:06:19 CEST 2012 - snwint@suse.de
+
+- don't do kexec on hyper-v (bnc#732693)
+- 2.23.3
+
+-------------------------------------------------------------------
Old:
----
yast2-bootloader-2.23.2.tar.bz2
New:
----
yast2-bootloader-2.23.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-bootloader.spec ++++++
--- /var/tmp/diff_new_pack.PE9243/_old 2012-05-07 22:53:49.000000000 +0200
+++ /var/tmp/diff_new_pack.PE9243/_new 2012-05-07 22:53:49.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-bootloader
-Version: 2.23.2
+Version: 2.23.3
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-bootloader-2.23.2.tar.bz2 -> yast2-bootloader-2.23.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-2.23.2/VERSION new/yast2-bootloader-2.23.3/VERSION
--- old/yast2-bootloader-2.23.2/VERSION 2012-04-23 12:40:21.000000000 +0200
+++ new/yast2-bootloader-2.23.3/VERSION 2012-04-24 15:06:13.000000000 +0200
@@ -1 +1 @@
-2.23.2
+2.23.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-2.23.2/src/modules/Bootloader.ycp new/yast2-bootloader-2.23.3/src/modules/Bootloader.ycp
--- old/yast2-bootloader-2.23.2/src/modules/Bootloader.ycp 2012-03-05 15:09:25.000000000 +0100
+++ new/yast2-bootloader-2.23.3/src/modules/Bootloader.ycp 2012-04-30 11:10:06.000000000 +0200
@@ -12,7 +12,7 @@
* Jiri Srain
* Olaf Dabrunz
*
- * $Id: Bootloader.ycp 61621 2010-04-08 14:45:52Z juhliarik $
+ * $Id: Bootloader.ycp 68045 2012-04-30 09:10:05Z snwint $
*
*/
@@ -1372,7 +1372,6 @@
* @param map boot section
* @return map updated boot section
*/
-
map updateAppend(map section)
{
map ret = section;
@@ -1386,6 +1385,64 @@
}
return ret;
}
+
+
+/**
+ * Get entry from DMI data returned by .probe.bios.
+ *
+ * @param list<map> bios_data: result of SCR::Read(.probe.bios)
+ * @param string section: section name
+ * @param string key: key in section
+ * @return string: entry
+ */
+string DMIRead (list<map> bios_data, string section, string key) {
+ string result = "";
+
+ foreach (map x, bios_data[0, "smbios"]:[], {
+ if (x["type"]:"" == section) {
+ result = x[key]:"";
+ break;
+ }
+ });
+
+ y2milestone ("Bootloader::DMIRead(%1, %2) = %3", section, key, result);
+
+ return result;
+}
+
+
+/**
+ * Check if we run in a vbox vm.
+ *
+ * @param list<map> bios_data: result of SCR::Read(.probe.bios)
+ * @return boolean: true if yast runs in a vbox vm
+ */
+boolean IsVirtualBox (list<map> bios_data) {
+ boolean r = DMIRead(bios_data, "sysinfo", "product") == "VirtualBox";
+
+ y2milestone("Bootloader::IsVirtualBox = %1", r);
+
+ return r;
+}
+
+
+/**
+ * Check if we run in a hyperv vm.
+ *
+ * @param list<map> bios_data: result of SCR::Read(.probe.bios)
+ * @return boolean: true if yast runs in a hyperv vm
+ */
+boolean IsHyperV (list<map> bios_data) {
+ boolean r =
+ DMIRead(bios_data, "sysinfo", "manufacturer") == "Microsoft Corporation" &&
+ DMIRead(bios_data, "sysinfo", "product") == "Virtual Machine";
+
+ y2milestone("Bootloader::IsHyperV = %1", r);
+
+ return r;
+}
+
+
/**
* Copy initrd and kernel on the end of instalation
* (1st stage)
@@ -1418,20 +1475,21 @@
return true;
}
+ list<map> bios_data = (list<map>) SCR::Read(.probe.bios);
- // checking if installation run on VirtualBox
- string cmd = sformat("hwinfo --bios |grep Product");
- y2milestone("Checking if installation run on VirtualBox command: %1", cmd);
+ y2milestone("CopyKernelInird::bios_data = %1", bios_data);
- map out = (map)WFM::Execute(.local.bash_output, cmd);
+ if (IsVirtualBox(bios_data)) {
+ y2milestone ("Installation run on VirtualBox, skip kexec loading");
+ return false;
+ }
- if (search(out["stdout"]:"", "VirtualBox") != nil)
- {
- y2milestone ("Installation run on VirtualBox, skip kexec loading: %1", out);
+ if (IsHyperV(bios_data)) {
+ y2milestone ("Installation run on HyperV, skip kexec loading");
return false;
}
- // create defualt sections
+ // create default sections
map linux_default = BootCommon::CreateLinuxSection ("linux");
y2milestone("linux_default: %1", linux_default);
@@ -1455,7 +1513,7 @@
WFM::Execute(.local.mkdir, "/var/lib/YaST2");
// build command for copy kernel and initrd to /var/lib/YaST during instalation
- cmd = nil;
+ string cmd = nil;
default_section = updateAppend(default_section);
@@ -1463,7 +1521,7 @@
tostring(default_section["initrd"]:""), Directory::vardir);
y2milestone("Command for copy: %1", cmd);
- out = (map) WFM::Execute (.local.bash_output, cmd);
+ map out = (map) WFM::Execute (.local.bash_output, cmd);
if (out["exit"]:nil != 0)
{
y2error ("Copy kernel and initrd failed, output: %1", out);
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org