diff -Nru virt-manager-1.3.2/debian/changelog virt-manager-1.3.2/debian/changelog --- virt-manager-1.3.2/debian/changelog 2016-11-29 18:52:23.000000000 +0000 +++ virt-manager-1.3.2/debian/changelog 2017-08-31 07:42:32.000000000 +0000 @@ -1,3 +1,11 @@ +virt-manager (1:1.3.2-3ubuntu4.1) zesty; urgency=medium + + * Fix virtinst location on s390x and clobbering extra args (LP: #1713990) + - d/p/bug-1713990-virt-install-concatenate-all-extra-args-argument.patch + - d/p/bug-1713990-virtinst-adjust-media-paths-for-s390x.patch + + -- Christian Ehrhardt Thu, 31 Aug 2017 09:42:32 +0200 + virt-manager (1:1.3.2-3ubuntu4) zesty; urgency=medium * Fix virt-install so that it can install 16.04 and newer images. diff -Nru virt-manager-1.3.2/debian/patches/bug-1713990-virtinst-adjust-media-paths-for-s390x.patch virt-manager-1.3.2/debian/patches/bug-1713990-virtinst-adjust-media-paths-for-s390x.patch --- virt-manager-1.3.2/debian/patches/bug-1713990-virtinst-adjust-media-paths-for-s390x.patch 1970-01-01 00:00:00.000000000 +0000 +++ virt-manager-1.3.2/debian/patches/bug-1713990-virtinst-adjust-media-paths-for-s390x.patch 2017-08-31 07:42:32.000000000 +0000 @@ -0,0 +1,62 @@ +From f248088cc87062e715de5b44bdbcede5be4a7e59 Mon Sep 17 00:00:00 2001 +From: Viktor Mihajlovski +Date: Tue, 29 Aug 2017 15:51:43 +0200 +Subject: [PATCH 1/2] virtinst: adjust media paths for s390x + +The install kernel and intrd files are located in /generic +of the Debian and Ubuntu s390x install trees. Further they follow a +different naming scheme than on x86. Adjust the url fetching accordingly. + +Signed-off-by: Viktor Mihajlovski + +Forwarded: no (backport) +Author: Christian Ehrhardt +Original-Author: Viktor Mihajlovski +Origin: https://github.com/virt-manager/virt-manager/commit/f248088cc87062e715de5b44bdbcede5be4a7e59 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1713990 +Bug-Debian: https://bugs.debian.org/873714 +Last-Update: 2017-08-30 +--- + virtinst/urlfetcher.py | 17 +++++++++++++++-- + 1 file changed, 15 insertions(+), 2 deletions(-) + +--- a/virtinst/urlfetcher.py ++++ b/virtinst/urlfetcher.py +@@ -1120,6 +1120,12 @@ class DebianDistro(Distro): + kernel_basename = "linux" + if self._treeArch in ["ppc64el"]: + kernel_basename = "vmlinux" ++ ++ if self._treeArch == "s390x": ++ hvmroot = "%s/generic/" % self._url_prefix ++ kernel_basename = "kernel.%s" % self.name.lower() ++ initrd_basename = "initrd.%s" % self.name.lower() ++ + self._hvm_kernel_paths = [ + (hvmroot + kernel_basename, hvmroot + initrd_basename)] + +@@ -1138,7 +1144,11 @@ class DebianDistro(Distro): + return False + + filename = "%s/MANIFEST" % self._url_prefix +- regex = ".*%s.*" % self._installer_dirname ++ if self.arch == "s390x": ++ regex = ".*generic/kernel\.%s.*" % self.name.lower() ++ else: ++ regex = ".*%s.*" % self._installer_dirname ++ + if not self._fetchAndMatchRegex(filename, regex): + logging.debug("Regex didn't match, not a %s distro", self.name) + return False +@@ -1187,7 +1197,10 @@ class UbuntuDistro(DebianDistro): + if self.fetcher.hasFile("%s/MANIFEST" % self._url_prefix): + # For regular trees + filename = "%s/MANIFEST" % self._url_prefix +- regex = ".*%s.*" % self._installer_dirname ++ if self.arch == "s390x": ++ regex = ".*generic/kernel\.%s.*" % self.name.lower() ++ else: ++ regex = ".*%s.*" % self._installer_dirname + elif self.fetcher.hasFile("install/netboot/version.info"): + # For trees based on ISO's + self._url_prefix = "install" diff -Nru virt-manager-1.3.2/debian/patches/bug-1713990-virt-install-concatenate-all-extra-args-argument.patch virt-manager-1.3.2/debian/patches/bug-1713990-virt-install-concatenate-all-extra-args-argument.patch --- virt-manager-1.3.2/debian/patches/bug-1713990-virt-install-concatenate-all-extra-args-argument.patch 1970-01-01 00:00:00.000000000 +0000 +++ virt-manager-1.3.2/debian/patches/bug-1713990-virt-install-concatenate-all-extra-args-argument.patch 2017-08-31 07:42:32.000000000 +0000 @@ -0,0 +1,145 @@ +From 4c3e7969c68c732da77e8fd55c64088a9a25e0f9 Mon Sep 17 00:00:00 2001 +From: Pavel Hrdina +Date: Fri, 18 Mar 2016 03:28:17 +0100 +Subject: [PATCH] virt-install: concatenate all extra-args argument + +So far we used only the last --extra-args argument from virt-install +command line, but it makes more sense to use all occurrences of +--extra-args and pass them to kernel. + +Signed-off-by: Pavel Hrdina + +Forwarded: no (backport) +Author: Christian Ehrhardt +Original-Author: Pavel Hrdina +Origin: https://github.com/virt-manager/virt-manager/commit/4c3e7969c68c732da77e8fd55c64088a9a25e0f9 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1713990 +Bug-Debian: https://bugs.debian.org/873714 +Last-Update: 2017-08-30 +--- + tests/cli-test-xml/compare/virt-install-kvm-f14-url.xml | 2 +- + virt-install | 9 +++++---- + virtManager/create.py | 6 +----- + virtinst/distroinstaller.py | 3 ++- + virtinst/installer.py | 4 ++-- + virtinst/urlfetcher.py | 3 --- + 6 files changed, 11 insertions(+), 16 deletions(-) + +diff --git a/tests/cli-test-xml/compare/virt-install-kvm-f14-url.xml b/tests/cli-test-xml/compare/virt-install-kvm-f14-url.xml +index 4a43c3b..76397ff 100644 +--- a/tests/cli-test-xml/compare/virt-install-kvm-f14-url.xml ++++ b/tests/cli-test-xml/compare/virt-install-kvm-f14-url.xml +@@ -8,7 +8,7 @@ + hvm + /tmp/virtinst-vmlinuz. + /tmp/virtinst-initrd.img. +- method=tests/cli-test-xml/faketree console=ttyS0 ++ console=ttyS0 method=tests/cli-test-xml/faketree + + + +diff --git a/virt-install b/virt-install +index e465c46..5343f0c 100755 +--- a/virt-install ++++ b/virt-install +@@ -521,8 +521,9 @@ def _show_nographics_warnings(options, guest): + # warn about it. + return + +- if console_type in (options.extra_args or ""): +- return ++ for args in options.extra_args: ++ if console_type in (options.extra_args or ""): ++ return + + logging.warn(_("Did not find '%(console_string)s' in --extra-args, " + "which is likely required to see text install output from the " +@@ -589,7 +590,7 @@ def build_guest_instance(conn, options, parsermap): + convert_old_os_options(options) + + # non-xml install options +- guest.installer.extraargs = options.extra_args ++ guest.installer.extraargs = options.extra_args or [] + guest.installer.initrd_injections = options.initrd_inject + guest.autostart = options.autostart + +@@ -922,7 +923,7 @@ def parse_args(): + help=_("Build guest around an existing disk image")) + insg.add_argument("--livecd", action="store_true", + help=_("Treat the CD-ROM media as a Live CD")) +- insg.add_argument("-x", "--extra-args", ++ insg.add_argument("-x", "--extra-args", action="append", + help=_("Additional arguments to pass to the install kernel " + "booted from --location")) + insg.add_argument("--initrd-inject", action="append", +diff --git a/virtManager/create.py b/virtManager/create.py +index f979cf2..ca83674 100644 +--- a/virtManager/create.py ++++ b/virtManager/create.py +@@ -1807,12 +1807,8 @@ class vmmCreate(vmmGObjectUI): + if cdrom: + self._guest.installer.cdrom = True + +- extraargs = "" + if extra: +- extraargs += extra +- +- if extraargs: +- self._guest.installer.extraargs = extraargs ++ self._guest.installer.extraargs = [extra] + + if init: + self._guest.os.init = init +diff --git a/virtinst/distroinstaller.py b/virtinst/distroinstaller.py +index 1b792d4..bd4999c 100644 +--- a/virtinst/distroinstaller.py ++++ b/virtinst/distroinstaller.py +@@ -374,7 +374,8 @@ class DistroInstaller(Installer): + + self._install_kernel = kernel + self._install_initrd = initrd +- self.extraargs = args ++ if args: ++ self.extraargs.append(args) + + + ########################### +diff --git a/virtinst/installer.py b/virtinst/installer.py +index 0eebc45..50c72c7 100644 +--- a/virtinst/installer.py ++++ b/virtinst/installer.py +@@ -59,7 +59,7 @@ class Installer(object): + + self.cdrom = False + self.livecd = False +- self.extraargs = None ++ self.extraargs = [] + + self.initrd_injections = [] + +@@ -128,7 +128,7 @@ class Installer(object): + if self._install_initrd: + guest.os.initrd = self._install_initrd + if self.extraargs: +- guest.os.kernel_args = self.extraargs ++ guest.os.kernel_args = " ".join(self.extraargs) + + + ########################## +diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py +index 3266186..30c467e 100644 +--- a/virtinst/urlfetcher.py ++++ b/virtinst/urlfetcher.py +@@ -644,9 +644,6 @@ class Distro(object): + if not self.fetcher.location.startswith("/"): + args += "%s=%s" % (self._get_method_arg(), self.fetcher.location) + +- if guest.installer.extraargs: +- args += " " + guest.installer.extraargs +- + try: + initrd = self.fetcher.acquireFile(initrdpath) + return kernel, initrd, args +-- +2.7.4 + diff -Nru virt-manager-1.3.2/debian/patches/series virt-manager-1.3.2/debian/patches/series --- virt-manager-1.3.2/debian/patches/series 2016-11-29 18:52:23.000000000 +0000 +++ virt-manager-1.3.2/debian/patches/series 2017-08-31 07:42:32.000000000 +0000 @@ -13,3 +13,5 @@ 0001-details-Fix-screenshot-on-F24-rawhide-bz-1297988.patch use_virtio_for_pseries_disks.patch virtinst/urlfetcher_Fix_ubuntu_location.patch +bug-1713990-virt-install-concatenate-all-extra-args-argument.patch +bug-1713990-virtinst-adjust-media-paths-for-s390x.patch