- bsc#1054986 - Missing /media.1/products file on the ISO media
causes virt-install to fail detecting distro type and version virtinst-add-sle15-detection-support.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=359
This commit is contained in:
parent
67142b1ff7
commit
7927813b30
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 24 15:56:38 MDT 2017 - carnold@suse.com
|
||||||
|
|
||||||
|
- bsc#1054986 - Missing /media.1/products file on the ISO media
|
||||||
|
causes virt-install to fail detecting distro type and version
|
||||||
|
virtinst-add-sle15-detection-support.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Aug 22 08:05:07 MDT 2017 - carnold@suse.com
|
Tue Aug 22 08:05:07 MDT 2017 - carnold@suse.com
|
||||||
|
|
||||||
|
@ -79,6 +79,7 @@ Patch164: virtinst-use-qemu-for-cdrom-device.patch
|
|||||||
Patch165: virtinst-fix-sle-distro-parsing.patch
|
Patch165: virtinst-fix-sle-distro-parsing.patch
|
||||||
Patch166: virtinst-check-date-format.patch
|
Patch166: virtinst-check-date-format.patch
|
||||||
Patch167: virtinst-no-usb-tablet-for-xenpv.patch
|
Patch167: virtinst-no-usb-tablet-for-xenpv.patch
|
||||||
|
Patch168: virtinst-add-sle15-detection-support.patch
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
@ -202,6 +203,7 @@ machine).
|
|||||||
%patch165 -p1
|
%patch165 -p1
|
||||||
%patch166 -p1
|
%patch166 -p1
|
||||||
%patch167 -p1
|
%patch167 -p1
|
||||||
|
%patch168 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{qemu_user}
|
%if %{qemu_user}
|
||||||
|
72
virtinst-add-sle15-detection-support.patch
Normal file
72
virtinst-add-sle15-detection-support.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
References: bsc#1054986
|
||||||
|
With SLE15 and openSUSE 15 the content file has been removed from the media.
|
||||||
|
This file was used for SUSE distro version and arch detection. Now detection
|
||||||
|
must be done by parsing the media.1/products file for distro version and the
|
||||||
|
media.1/build file for the arch. The media.1/products and media.1/build files
|
||||||
|
have always been around so the entire _distroFromSUSEContent could be rewritten
|
||||||
|
(and simplified) to only check them. The products file format did change
|
||||||
|
between 11-SP4 and 12. SLE10 has no build file.
|
||||||
|
|
||||||
|
Index: virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||||
|
===================================================================
|
||||||
|
--- virt-manager-1.4.2.orig/virtinst/urlfetcher.py
|
||||||
|
+++ virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||||
|
@@ -392,7 +392,20 @@ def _distroFromSUSEContent(fetcher, arch
|
||||||
|
try:
|
||||||
|
cbuf = fetcher.acquireFileContent("content")
|
||||||
|
except ValueError:
|
||||||
|
- return None
|
||||||
|
+ try:
|
||||||
|
+ # If no content file, try media.1/products and media.1/build and create
|
||||||
|
+ # a cbuf with enough info for the content file parsing code below to work
|
||||||
|
+ pbuf = fetcher.acquireFileContent("media.1/products").rsplit('/', 1)[1].strip()
|
||||||
|
+ # Older style products format: SUSE-Linux-Enterprise-Server-11-SP4 11.4.4-1.109
|
||||||
|
+ # Newer style products format: SLES12-SP3 12.3-0
|
||||||
|
+ if pbuf.startswith('SLE'):
|
||||||
|
+ pbuf = pbuf.split(' ')[0]
|
||||||
|
+ pbuf = " ".join(re.split('(\d+)', pbuf, 1))
|
||||||
|
+ cbuf = "\nDISTRO ," + pbuf.replace('-', ' ')
|
||||||
|
+ bbuf = fetcher.acquireFileContent("media.1/build").split('-')
|
||||||
|
+ cbuf = cbuf + "\n" + " ".join(bbuf)
|
||||||
|
+ except ValueError:
|
||||||
|
+ return None
|
||||||
|
|
||||||
|
distribution = None
|
||||||
|
distro_version = None
|
||||||
|
@@ -465,7 +478,7 @@ def _distroFromSUSEContent(fetcher, arch
|
||||||
|
dclass = GenericDistro
|
||||||
|
if distribution:
|
||||||
|
if re.match(".*SUSE Linux Enterprise Server*", distribution[1]) or \
|
||||||
|
- re.match(".*SUSE SLES*", distribution[1]):
|
||||||
|
+ re.match(".*SUSE SLES*", distribution[1]) or re.match("SLES*", distribution[1]):
|
||||||
|
dclass = SLESDistro
|
||||||
|
if distro_version is None:
|
||||||
|
distro_version = _parse_sle_distribution(distribution)
|
||||||
|
@@ -481,7 +494,7 @@ def _distroFromSUSEContent(fetcher, arch
|
||||||
|
dclass = CAASPDistro
|
||||||
|
if distro_version is None:
|
||||||
|
distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[6]]
|
||||||
|
- elif re.match(".*openSUSE.*", distribution[1]):
|
||||||
|
+ elif re.match(".*openSUSE.*", distribution[1]) or re.match("openSUSE *", distribution[1]):
|
||||||
|
dclass = OpensuseDistro
|
||||||
|
if distro_version is None:
|
||||||
|
distro_version = ['VERSION', distribution[0].strip().rsplit(':')[4]]
|
||||||
|
@@ -1034,6 +1047,9 @@ class SuseDistro(Distro):
|
||||||
|
# Tested with SLES 12 for ppc64le
|
||||||
|
self._hvm_kernel_paths.append(("boot/%s/linux" % self.arch,
|
||||||
|
"boot/%s/initrd" % self.arch))
|
||||||
|
+ # Tested with SLES 15
|
||||||
|
+ self._hvm_kernel_paths.append(("boot/%s/loader/linux" % self.arch,
|
||||||
|
+ "boot/%s/loader/initrd" % self.arch))
|
||||||
|
|
||||||
|
# Matches Opensuse > 10.2 and sles 10
|
||||||
|
if self.arch == "i386":
|
||||||
|
@@ -1042,6 +1058,8 @@ class SuseDistro(Distro):
|
||||||
|
else:
|
||||||
|
self._xen_kernel_paths = [("boot/%s/vmlinuz-xen" % self.arch,
|
||||||
|
"boot/%s/initrd-xen" % self.arch)]
|
||||||
|
+ self._xen_kernel_paths.append(("boot/%s/loader/linux" % self.arch,
|
||||||
|
+ "boot/%s/loader/initrd" % self.arch))
|
||||||
|
|
||||||
|
def _variantFromVersion(self):
|
||||||
|
distro_version = self.version_from_content[1].strip()
|
Loading…
Reference in New Issue
Block a user