From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 9F1DB139085 for ; Sat, 7 Jan 2017 00:37:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id C4641224199; Sat, 7 Jan 2017 00:37:46 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 901FB224199 for ; Sat, 7 Jan 2017 00:37:46 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id EC12634155D for ; Sat, 7 Jan 2017 00:37:44 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 5083E261C for ; Sat, 7 Jan 2017 00:37:43 +0000 (UTC) From: "Robin H. Johnson" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Robin H. Johnson" Message-ID: <1483749458.5c38f0da839a3acec372559f3fdc9c2708c2232c.robbat2@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/ganeti/files/, app-emulation/ganeti/ X-VCS-Repository: repo/gentoo X-VCS-Files: app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.17.patch app-emulation/ganeti/ganeti-2.15.2-r6.ebuild app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild app-emulation/ganeti/metadata.xml X-VCS-Directories: app-emulation/ganeti/files/ app-emulation/ganeti/ X-VCS-Committer: robbat2 X-VCS-Committer-Name: Robin H. Johnson X-VCS-Revision: 5c38f0da839a3acec372559f3fdc9c2708c2232c X-VCS-Branch: master Date: Sat, 7 Jan 2017 00:37:43 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 22eadabc-5c1b-437b-ad0e-34b15fc9d70f X-Archives-Hash: 50201f9547b93343012b658bede181cf commit: 5c38f0da839a3acec372559f3fdc9c2708c2232c Author: Robin H. Johnson gentoo org> AuthorDate: Sat Jan 7 00:37:02 2017 +0000 Commit: Robin H. Johnson gentoo org> CommitDate: Sat Jan 7 00:37:38 2017 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c38f0da app-emulation/ganeti: now with QEMU Guest Agent support (merged upstream for 2.16, not yet released). Package-Manager: portage-2.3.2 ...st_agent-QEMU-Guest-Agent-sup.stable-2.15.patch | 122 +++++++++++++++++++++ ...st_agent-QEMU-Guest-Agent-sup.stable-2.16.patch | 122 +++++++++++++++++++++ ...st_agent-QEMU-Guest-Agent-sup.stable-2.17.patch | 122 +++++++++++++++++++++ ...i-2.16.0_rc1.ebuild => ganeti-2.15.2-r6.ebuild} | 26 +++-- app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild | 10 +- app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild | 10 +- app-emulation/ganeti/metadata.xml | 1 + 7 files changed, 401 insertions(+), 12 deletions(-) diff --git a/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch b/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch new file mode 100644 index 00000000..460636f --- /dev/null +++ b/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch @@ -0,0 +1,122 @@ +From c3697936405ed8c95b674a7d412886e364306f5f Mon Sep 17 00:00:00 2001 +Message-Id: +From: "Robin H. Johnson" +Date: Thu, 29 Sep 2016 08:57:28 -0700 +Subject: [PATCH-2.15] kvm: use_guest_agent: QEMU Guest Agent support + +Implement the QEMU Guest Agent sockets, so that code/scripts on the +hypervisors can communicate with guest operating systems easily. + +Signed-off-by: Robin H. Johnson +--- + lib/hypervisor/hv_kvm/__init__.py | 23 +++++++++++++++++++++++ + man/gnt-instance.rst | 7 +++++++ + src/Ganeti/Constants.hs | 5 +++++ + 3 files changed, 35 insertions(+) + +diff --git a/lib/hypervisor/hv_kvm/__init__.py b/lib/hypervisor/hv_kvm/__init__.py +index cd29baa38..89bc18b85 100644 +--- a/lib/hypervisor/hv_kvm/__init__.py ++++ b/lib/hypervisor/hv_kvm/__init__.py +@@ -351,6 +351,7 @@ class KVMHypervisor(hv_base.BaseHypervisor): + constants.HV_MIGRATION_BANDWIDTH: hv_base.REQ_NONNEGATIVE_INT_CHECK, + constants.HV_MIGRATION_DOWNTIME: hv_base.REQ_NONNEGATIVE_INT_CHECK, + constants.HV_MIGRATION_MODE: hv_base.MIGRATION_MODE_CHECK, ++ constants.HV_USE_GUEST_AGENT: hv_base.NO_CHECK, + constants.HV_USE_LOCALTIME: hv_base.NO_CHECK, + constants.HV_DISK_CACHE: + hv_base.ParamInSet(True, constants.HT_VALID_CACHE_TYPES), +@@ -581,6 +582,13 @@ class KVMHypervisor(hv_base.BaseHypervisor): + """ + return utils.PathJoin(cls._CTRL_DIR, "%s.qmp" % instance_name) + ++ @classmethod ++ def _InstanceQemuGuestAgentMonitor(cls, instance_name): ++ """Returns the instance serial QEMU Guest Agent socket name ++ ++ """ ++ return utils.PathJoin(cls._CTRL_DIR, "%s.qga" % instance_name) ++ + @classmethod + def _InstanceKvmdMonitor(cls, instance_name): + """Returns the instance kvm daemon socket name +@@ -667,6 +675,7 @@ class KVMHypervisor(hv_base.BaseHypervisor): + utils.RemoveFile(cls._InstanceMonitor(instance_name)) + utils.RemoveFile(cls._InstanceSerial(instance_name)) + utils.RemoveFile(cls._InstanceQmpMonitor(instance_name)) ++ utils.RemoveFile(cls._InstanceQemuGuestAgentMonitor(instance_name)) + utils.RemoveFile(cls._InstanceKVMRuntime(instance_name)) + utils.RemoveFile(cls._InstanceKeymapFile(instance_name)) + uid_file = cls._InstanceUidFile(instance_name) +@@ -1376,6 +1385,20 @@ class KVMHypervisor(hv_base.BaseHypervisor): + if self._UUID_RE.search(kvmhelp): + kvm_cmd.extend(["-uuid", instance.uuid]) + ++ # Add guest agent socket ++ if hvp[constants.HV_USE_GUEST_AGENT]: ++ qga_addr = utils.GetFreeSlot(pci_reservations, reserve=True) ++ qga_pci_info = "bus=%s,addr=%s" % ('pci.0', hex(qga_addr)) ++ qga_path = self._InstanceQemuGuestAgentMonitor(instance.name) ++ logging.info("KVM: Guest Agent available at %s", qga_path) ++ # The 'qga0' identified can change, but the 'org.qemu.guest_agent.0' string is ++ # the default expected by the Guest Agent. ++ kvm_cmd.extend([ ++ "-chardev", "socket,path=%s,server,nowait,id=qga0" % qga_path, ++ "-device", "virtio-serial,id=qga0,%s" % qga_pci_info, ++ "-device", "virtserialport,chardev=qga0,name=org.qemu.guest_agent.0", ++ ]) ++ + if hvp[constants.HV_KVM_EXTRA]: + kvm_cmd.extend(hvp[constants.HV_KVM_EXTRA].split(" ")) + +diff --git a/man/gnt-instance.rst b/man/gnt-instance.rst +index a29fd7972..433b1f3b1 100644 +--- a/man/gnt-instance.rst ++++ b/man/gnt-instance.rst +@@ -526,6 +526,13 @@ viridian + viridian (Hyper-V) for this instance. The default is false, + disabling viridian support. + ++use\_guest\_agent ++ Valid for the KVM hypervisor. ++ ++ A boolean option that specifies if the hypervisor should enable ++ the QEMU Guest Agent protocol for this instance. By default, the ++ Guest Agent is disabled. ++ + use\_localtime + Valid for the Xen HVM and KVM hypervisors. + +diff --git a/src/Ganeti/Constants.hs b/src/Ganeti/Constants.hs +index 09783d4bf..cf5421946 100644 +--- a/src/Ganeti/Constants.hs ++++ b/src/Ganeti/Constants.hs +@@ -1806,6 +1806,9 @@ hvUsbMouse = "usb_mouse" + hvUseBootloader :: String + hvUseBootloader = "use_bootloader" + ++hvUseGuestAgent :: String ++hvUseGuestAgent = "use_guest_agent" ++ + hvUseLocaltime :: String + hvUseLocaltime = "use_localtime" + +@@ -1938,6 +1941,7 @@ hvsParameterTypes = Map.fromList + , (hvUsbDevices, VTypeString) + , (hvUsbMouse, VTypeString) + , (hvUseBootloader, VTypeBool) ++ , (hvUseGuestAgent, VTypeBool) + , (hvUseLocaltime, VTypeBool) + , (hvVga, VTypeString) + , (hvVhostNet, VTypeBool) +@@ -3996,6 +4000,7 @@ hvcDefaults = + , (hvMigrationBandwidth, PyValueEx (32 :: Int)) + , (hvMigrationDowntime, PyValueEx (30 :: Int)) + , (hvMigrationMode, PyValueEx htMigrationLive) ++ , (hvUseGuestAgent, PyValueEx False) + , (hvUseLocaltime, PyValueEx False) + , (hvDiskCache, PyValueEx htCacheDefault) + , (hvSecurityModel, PyValueEx htSmNone) +-- +2.11.0.rc2 + diff --git a/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch b/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch new file mode 100644 index 00000000..6bca593 --- /dev/null +++ b/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch @@ -0,0 +1,122 @@ +From 16a08ecb268062a2634dbfc081b4729cb749b7b4 Mon Sep 17 00:00:00 2001 +Message-Id: <16a08ecb268062a2634dbfc081b4729cb749b7b4.1483650125.git.robbat2@gentoo.org> +From: "Robin H. Johnson" +Date: Thu, 29 Sep 2016 08:57:28 -0700 +Subject: [PATCH-2.16] kvm: use_guest_agent: QEMU Guest Agent support + +Implement the QEMU Guest Agent sockets, so that code/scripts on the +hypervisors can communicate with guest operating systems easily. + +Signed-off-by: Robin H. Johnson +--- + lib/hypervisor/hv_kvm/__init__.py | 23 +++++++++++++++++++++++ + man/gnt-instance.rst | 7 +++++++ + src/Ganeti/Constants.hs | 5 +++++ + 3 files changed, 35 insertions(+) + +diff --git a/lib/hypervisor/hv_kvm/__init__.py b/lib/hypervisor/hv_kvm/__init__.py +index ac02ff56c..b865d6f3a 100644 +--- a/lib/hypervisor/hv_kvm/__init__.py ++++ b/lib/hypervisor/hv_kvm/__init__.py +@@ -497,6 +497,7 @@ class KVMHypervisor(hv_base.BaseHypervisor): + constants.HV_MIGRATION_BANDWIDTH: hv_base.REQ_NONNEGATIVE_INT_CHECK, + constants.HV_MIGRATION_DOWNTIME: hv_base.REQ_NONNEGATIVE_INT_CHECK, + constants.HV_MIGRATION_MODE: hv_base.MIGRATION_MODE_CHECK, ++ constants.HV_USE_GUEST_AGENT: hv_base.NO_CHECK, + constants.HV_USE_LOCALTIME: hv_base.NO_CHECK, + constants.HV_DISK_CACHE: + hv_base.ParamInSet(True, constants.HT_VALID_CACHE_TYPES), +@@ -750,6 +751,13 @@ class KVMHypervisor(hv_base.BaseHypervisor): + """ + return utils.PathJoin(cls._CTRL_DIR, "%s.qmp" % instance_name) + ++ @classmethod ++ def _InstanceQemuGuestAgentMonitor(cls, instance_name): ++ """Returns the instance serial QEMU Guest Agent socket name ++ ++ """ ++ return utils.PathJoin(cls._CTRL_DIR, "%s.qga" % instance_name) ++ + @classmethod + def _InstanceKvmdMonitor(cls, instance_name): + """Returns the instance kvm daemon socket name +@@ -836,6 +844,7 @@ class KVMHypervisor(hv_base.BaseHypervisor): + utils.RemoveFile(cls._InstanceMonitor(instance_name)) + utils.RemoveFile(cls._InstanceSerial(instance_name)) + utils.RemoveFile(cls._InstanceQmpMonitor(instance_name)) ++ utils.RemoveFile(cls._InstanceQemuGuestAgentMonitor(instance_name)) + utils.RemoveFile(cls._InstanceKVMRuntime(instance_name)) + utils.RemoveFile(cls._InstanceKeymapFile(instance_name)) + uid_file = cls._InstanceUidFile(instance_name) +@@ -1544,6 +1553,20 @@ class KVMHypervisor(hv_base.BaseHypervisor): + if self._UUID_RE.search(kvmhelp): + kvm_cmd.extend(["-uuid", instance.uuid]) + ++ # Add guest agent socket ++ if hvp[constants.HV_USE_GUEST_AGENT]: ++ qga_addr = utils.GetFreeSlot(bus_slots[_PCI_BUS], reserve=True) ++ qga_pci_info = "bus=%s,addr=%s" % (_PCI_BUS, hex(qga_addr)) ++ qga_path = self._InstanceQemuGuestAgentMonitor(instance.name) ++ logging.info("KVM: Guest Agent available at %s", qga_path) ++ # The 'qga0' identified can change, but the 'org.qemu.guest_agent.0' string is ++ # the default expected by the Guest Agent. ++ kvm_cmd.extend([ ++ "-chardev", "socket,path=%s,server,nowait,id=qga0" % qga_path, ++ "-device", "virtio-serial,id=qga0,%s" % qga_pci_info, ++ "-device", "virtserialport,chardev=qga0,name=org.qemu.guest_agent.0", ++ ]) ++ + if hvp[constants.HV_KVM_EXTRA]: + kvm_cmd.extend(hvp[constants.HV_KVM_EXTRA].split(" ")) + +diff --git a/man/gnt-instance.rst b/man/gnt-instance.rst +index 283392cc8..493ae929d 100644 +--- a/man/gnt-instance.rst ++++ b/man/gnt-instance.rst +@@ -545,6 +545,13 @@ viridian + viridian (Hyper-V) for this instance. The default is false, + disabling viridian support. + ++use\_guest\_agent ++ Valid for the KVM hypervisor. ++ ++ A boolean option that specifies if the hypervisor should enable ++ the QEMU Guest Agent protocol for this instance. By default, the ++ Guest Agent is disabled. ++ + use\_localtime + Valid for the Xen HVM and KVM hypervisors. + +diff --git a/src/Ganeti/Constants.hs b/src/Ganeti/Constants.hs +index 420ccb6cd..4aa5edf63 100644 +--- a/src/Ganeti/Constants.hs ++++ b/src/Ganeti/Constants.hs +@@ -1814,6 +1814,9 @@ hvUsbMouse = "usb_mouse" + hvUseBootloader :: String + hvUseBootloader = "use_bootloader" + ++hvUseGuestAgent :: String ++hvUseGuestAgent = "use_guest_agent" ++ + hvUseLocaltime :: String + hvUseLocaltime = "use_localtime" + +@@ -1948,6 +1951,7 @@ hvsParameterTypes = Map.fromList + , (hvUsbDevices, VTypeString) + , (hvUsbMouse, VTypeString) + , (hvUseBootloader, VTypeBool) ++ , (hvUseGuestAgent, VTypeBool) + , (hvUseLocaltime, VTypeBool) + , (hvVga, VTypeString) + , (hvVhostNet, VTypeBool) +@@ -4099,6 +4103,7 @@ hvcDefaults = + , (hvMigrationBandwidth, PyValueEx (32 :: Int)) + , (hvMigrationDowntime, PyValueEx (30 :: Int)) + , (hvMigrationMode, PyValueEx htMigrationLive) ++ , (hvUseGuestAgent, PyValueEx False) + , (hvUseLocaltime, PyValueEx False) + , (hvDiskCache, PyValueEx htCacheDefault) + , (hvSecurityModel, PyValueEx htSmNone) +-- +2.11.0.rc2 + diff --git a/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.17.patch b/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.17.patch new file mode 100644 index 00000000..f7a664f --- /dev/null +++ b/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.17.patch @@ -0,0 +1,122 @@ +From e91ae73f593115dba1f77af6a3af30cf2219f880 Mon Sep 17 00:00:00 2001 +Message-Id: +From: "Robin H. Johnson" +Date: Thu, 29 Sep 2016 08:57:28 -0700 +Subject: [PATCH-2.17] kvm: use_guest_agent: QEMU Guest Agent support + +Implement the QEMU Guest Agent sockets, so that code/scripts on the +hypervisors can communicate with guest operating systems easily. + +Signed-off-by: Robin H. Johnson +--- + lib/hypervisor/hv_kvm/__init__.py | 23 +++++++++++++++++++++++ + man/gnt-instance.rst | 7 +++++++ + src/Ganeti/Constants.hs | 5 +++++ + 3 files changed, 35 insertions(+) + +diff --git a/lib/hypervisor/hv_kvm/__init__.py b/lib/hypervisor/hv_kvm/__init__.py +index ac02ff56c..b865d6f3a 100644 +--- a/lib/hypervisor/hv_kvm/__init__.py ++++ b/lib/hypervisor/hv_kvm/__init__.py +@@ -497,6 +497,7 @@ class KVMHypervisor(hv_base.BaseHypervisor): + constants.HV_MIGRATION_BANDWIDTH: hv_base.REQ_NONNEGATIVE_INT_CHECK, + constants.HV_MIGRATION_DOWNTIME: hv_base.REQ_NONNEGATIVE_INT_CHECK, + constants.HV_MIGRATION_MODE: hv_base.MIGRATION_MODE_CHECK, ++ constants.HV_USE_GUEST_AGENT: hv_base.NO_CHECK, + constants.HV_USE_LOCALTIME: hv_base.NO_CHECK, + constants.HV_DISK_CACHE: + hv_base.ParamInSet(True, constants.HT_VALID_CACHE_TYPES), +@@ -750,6 +751,13 @@ class KVMHypervisor(hv_base.BaseHypervisor): + """ + return utils.PathJoin(cls._CTRL_DIR, "%s.qmp" % instance_name) + ++ @classmethod ++ def _InstanceQemuGuestAgentMonitor(cls, instance_name): ++ """Returns the instance serial QEMU Guest Agent socket name ++ ++ """ ++ return utils.PathJoin(cls._CTRL_DIR, "%s.qga" % instance_name) ++ + @classmethod + def _InstanceKvmdMonitor(cls, instance_name): + """Returns the instance kvm daemon socket name +@@ -836,6 +844,7 @@ class KVMHypervisor(hv_base.BaseHypervisor): + utils.RemoveFile(cls._InstanceMonitor(instance_name)) + utils.RemoveFile(cls._InstanceSerial(instance_name)) + utils.RemoveFile(cls._InstanceQmpMonitor(instance_name)) ++ utils.RemoveFile(cls._InstanceQemuGuestAgentMonitor(instance_name)) + utils.RemoveFile(cls._InstanceKVMRuntime(instance_name)) + utils.RemoveFile(cls._InstanceKeymapFile(instance_name)) + uid_file = cls._InstanceUidFile(instance_name) +@@ -1544,6 +1553,20 @@ class KVMHypervisor(hv_base.BaseHypervisor): + if self._UUID_RE.search(kvmhelp): + kvm_cmd.extend(["-uuid", instance.uuid]) + ++ # Add guest agent socket ++ if hvp[constants.HV_USE_GUEST_AGENT]: ++ qga_addr = utils.GetFreeSlot(bus_slots[_PCI_BUS], reserve=True) ++ qga_pci_info = "bus=%s,addr=%s" % (_PCI_BUS, hex(qga_addr)) ++ qga_path = self._InstanceQemuGuestAgentMonitor(instance.name) ++ logging.info("KVM: Guest Agent available at %s", qga_path) ++ # The 'qga0' identified can change, but the 'org.qemu.guest_agent.0' string is ++ # the default expected by the Guest Agent. ++ kvm_cmd.extend([ ++ "-chardev", "socket,path=%s,server,nowait,id=qga0" % qga_path, ++ "-device", "virtio-serial,id=qga0,%s" % qga_pci_info, ++ "-device", "virtserialport,chardev=qga0,name=org.qemu.guest_agent.0", ++ ]) ++ + if hvp[constants.HV_KVM_EXTRA]: + kvm_cmd.extend(hvp[constants.HV_KVM_EXTRA].split(" ")) + +diff --git a/man/gnt-instance.rst b/man/gnt-instance.rst +index 283392cc8..493ae929d 100644 +--- a/man/gnt-instance.rst ++++ b/man/gnt-instance.rst +@@ -545,6 +545,13 @@ viridian + viridian (Hyper-V) for this instance. The default is false, + disabling viridian support. + ++use\_guest\_agent ++ Valid for the KVM hypervisor. ++ ++ A boolean option that specifies if the hypervisor should enable ++ the QEMU Guest Agent protocol for this instance. By default, the ++ Guest Agent is disabled. ++ + use\_localtime + Valid for the Xen HVM and KVM hypervisors. + +diff --git a/src/Ganeti/Constants.hs b/src/Ganeti/Constants.hs +index 13bff2e71..7f43f89f9 100644 +--- a/src/Ganeti/Constants.hs ++++ b/src/Ganeti/Constants.hs +@@ -1821,6 +1821,9 @@ hvUsbMouse = "usb_mouse" + hvUseBootloader :: String + hvUseBootloader = "use_bootloader" + ++hvUseGuestAgent :: String ++hvUseGuestAgent = "use_guest_agent" ++ + hvUseLocaltime :: String + hvUseLocaltime = "use_localtime" + +@@ -1955,6 +1958,7 @@ hvsParameterTypes = Map.fromList + , (hvUsbDevices, VTypeString) + , (hvUsbMouse, VTypeString) + , (hvUseBootloader, VTypeBool) ++ , (hvUseGuestAgent, VTypeBool) + , (hvUseLocaltime, VTypeBool) + , (hvVga, VTypeString) + , (hvVhostNet, VTypeBool) +@@ -4111,6 +4115,7 @@ hvcDefaults = + , (hvMigrationBandwidth, PyValueEx (32 :: Int)) + , (hvMigrationDowntime, PyValueEx (30 :: Int)) + , (hvMigrationMode, PyValueEx htMigrationLive) ++ , (hvUseGuestAgent, PyValueEx False) + , (hvUseLocaltime, PyValueEx False) + , (hvDiskCache, PyValueEx htCacheDefault) + , (hvSecurityModel, PyValueEx htSmNone) +-- +2.11.0.rc2 + diff --git a/app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild b/app-emulation/ganeti/ganeti-2.15.2-r6.ebuild similarity index 91% copy from app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild copy to app-emulation/ganeti/ganeti-2.15.2-r6.ebuild index a939819..f87f125 100644 --- a/app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild +++ b/app-emulation/ganeti/ganeti-2.15.2-r6.ebuild @@ -19,11 +19,10 @@ if [[ ${PV} =~ [9]{4,} ]] ; then KEYWORDS="" PATCHES=() else - DEBIAN_PV=${MY_PV} - DEBIAN_PATCH=1 - SRC_URI="http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz" - [[ -n "${DEBIAN_PATCH}" ]] && SRC_URI="${SRC_URI} - mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${DEBIAN_PV}-${DEBIAN_PATCH}.debian.tar.xz + DEBIAN_PATCH=4 + SRC_URI=" + http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz + mirror://ubuntu/pool/universe/${PN:0:1}/${PN}/${PN}_${PV}-${DEBIAN_PATCH}.debian.tar.xz " KEYWORDS="~amd64 ~x86" PATCHES=( @@ -32,7 +31,7 @@ else "${WORKDIR}"/debian/patches/relax-deps "${WORKDIR}"/debian/patches/zlib-0.6-compatibility "${WORKDIR}"/debian/patches/fix_FTBFS_with_sphinx-1.3.5 - #"${WORKDIR}"/debian/patches/fix_ftbfs_with_sphinx_1.4 # ported manually + "${WORKDIR}"/debian/patches/fix_ftbfs_with_sphinx_1.4 ) fi @@ -41,7 +40,7 @@ HOMEPAGE="http://www.ganeti.org/" LICENSE="GPL-2" SLOT="0" -IUSE="drbd haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands" +IUSE="drbd experimental haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands" REQUIRED_USE="|| ( kvm xen lxc ) test? ( ipv6 ) @@ -180,10 +179,9 @@ PATCHES+=( "${FILESDIR}/${PN}-2.13-process_unittest.patch" "${FILESDIR}/${PN}-2.15-python-mock.patch" "${FILESDIR}/${PN}-2.15.2-remove-sandbox-failing-tests.patch" - "${FILESDIR}/${PN}-2.16-noded-must-run-as-root.patch" - "${FILESDIR}/${PN}-2.16-kvmd-run-as-daemon-user.patch" + "${FILESDIR}/${PN}-2.15-noded-must-run-as-root.patch" + "${FILESDIR}/${PN}-2.15-kvmd-run-as-daemon-user.patch" "${FILESDIR}/${PN}-2.15-dont-invert-return-values-for-man-warnings.patch" - "${FILESDIR}/fix_ftbfs_with_sphinx_1.4" ) S="${WORKDIR}/${MY_P}" @@ -213,6 +211,14 @@ src_prepare() { "${WORKDIR}"/debian/patches/ghc-7.10-compatibility.patch ) fi + if use experimental; then + ewarn "Experimental patches have been applied! RPC between daemons with different patches applied may cause breakage!" + PATCHES+=( + # QEMU Agent accepted upstream for 2.16, not yet in a tagged release + # backport available for 2.15, but refused upstream due to RPC breakage. + "${FILESDIR}"/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch + ) + fi eapply "${PATCHES[@]}" # Upstream commits: # 4c3c2ca2a97a69c0287a3d23e064bc17978105eb diff --git a/app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild b/app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild index a939819..ebe1bac 100644 --- a/app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild +++ b/app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild @@ -41,7 +41,7 @@ HOMEPAGE="http://www.ganeti.org/" LICENSE="GPL-2" SLOT="0" -IUSE="drbd haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands" +IUSE="drbd experimental haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands" REQUIRED_USE="|| ( kvm xen lxc ) test? ( ipv6 ) @@ -213,6 +213,14 @@ src_prepare() { "${WORKDIR}"/debian/patches/ghc-7.10-compatibility.patch ) fi + if use experimental; then + ewarn "Experimental patches have been applied! RPC between daemons with different patches applied may cause breakage!" + PATCHES+=( + # QEMU Agent accepted upstream for 2.16, not yet in a tagged release + # backport available for 2.15, but refused upstream due to RPC breakage. + "${FILESDIR}"/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch + ) + fi eapply "${PATCHES[@]}" # Upstream commits: # 4c3c2ca2a97a69c0287a3d23e064bc17978105eb diff --git a/app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild b/app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild index 85001c9..829a788 100644 --- a/app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild +++ b/app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild @@ -41,7 +41,7 @@ HOMEPAGE="http://www.ganeti.org/" LICENSE="GPL-2" SLOT="0" -IUSE="drbd haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands" +IUSE="drbd experimental haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands" REQUIRED_USE="|| ( kvm xen lxc ) test? ( ipv6 ) @@ -214,6 +214,14 @@ src_prepare() { "${WORKDIR}"/debian/patches/ghc-7.10-compatibility.patch ) fi + if use experimental; then + ewarn "Experimental patches have been applied! RPC between daemons with different patches applied may cause breakage!" + PATCHES+=( + # QEMU Agent accepted upstream for 2.16, not yet in a tagged release + # backport available for 2.15, but refused upstream due to RPC breakage. + "${FILESDIR}"/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch + ) + fi eapply "${PATCHES[@]}" # Upstream commits: # 4c3c2ca2a97a69c0287a3d23e064bc17978105eb diff --git a/app-emulation/ganeti/metadata.xml b/app-emulation/ganeti/metadata.xml index 2693e91..d591fbc 100644 --- a/app-emulation/ganeti/metadata.xml +++ b/app-emulation/ganeti/metadata.xml @@ -34,5 +34,6 @@ Enable restricted commands in the node daemon Enable rados block device support via sys-cluster/ceph Enable Xen support + Enable experimental patches. Warning! This will break RPC within major versions if the patches applied differ!