Commit 18e9fead authored by Guido Günther's avatar Guido Günther

New upstream version 1.4.0

parent b6de3ae1
......@@ -24,19 +24,16 @@ setup.py generally has all the build and install commands, for more info see:
Pre-requisite software
======================
virt-manager was ported to GTK3 at the beginning of 2013. Older GTK3
or pygobject3 versions likely will not work for running virt-manager.
A detailed dependency list can be found in virt-manager.spec.in
Earliest tested versions of major components:
Minimum version requirements of major components:
python >= 2.6
gtk3 >= 3.6
libvirt-python >= 0.4.0
pygobject3 >= 3.4
python >= 2.7
gtk3 >= 3.14
libvirt-python >= 0.6.0
pygobject3 >= 3.14
libosinfo >= 0.2.10
A more detailed dependency list can be found in virt-manager.spec.in.
On Debian or Ubuntu based distributions, you need to install the
gobject-introspection bindings for some depedencies like libvirt-glib
and libosinfo. Look for package names that start with 'gir', for example
......
Virtual Machine Manager News
============================
Release 1.4.0 (June 18, 2016)
-----------------------------
- virt-manager: spice GL console support (Marc-André Lureau, Cole Robinson)
- Bump gtk and pygobject deps to 3.14
- virt-manager: add checkbox to forget keyring password (Pavel Hrdina)
- cli: add --graphics gl= (Marc-André Lureau)
- cli: add --video accel3d= (Marc-André Lureau)
- cli: add --graphics listen=none (Marc-André Lureau)
- cli: add --transient flag (Richard W.M. Jones)
- cli: --features gic= support, and set a default for it (Pavel Hrdina)
- cli: Expose --video heads, ram, vram, vgamem
- cli: add --graphics listen=socket
- cli: add device address.type/address.bus/...
- cli: add --disk seclabelX.model (and .label, .relabel)
- cli: add -cpu cellX.id (and .cpus, and .memory)
- cli: add --network rom_bar= and rom_file=
- cli: add --disk backing_format=
- Many bug fixes and improvements
Release 1.3.2 (December 24, 2015)
---------------------------------
- Fix dependency issues with vte
......
Metadata-Version: 1.0
Name: virt-manager
Version: 1.3.2
Version: 1.4.0
Summary: UNKNOWN
Home-page: http://virt-manager.org
Author: Cole Robinson
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2013 Cole Robinson -->
<application>
<id type="desktop">virt-manager.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<name>Virtual Machine Manager</name>
<summary>Graphically manage KVM, Xen, or LXC via libvirt</summary>
<description>
<p>
Virtual Machine Manager provides a graphical tool for administering virtual
machines for KVM, Xen, and LXC. Start, stop, add or remove virtual devices,
connect to a graphical or serial console, and see resource usage statistics
for existing VMs on local or remote machines. Uses libvirt as the backend
management API.
</p>
</description>
<screenshots>
<screenshot type="default">http://virt-manager.org/appdata/en_US/manager.png</screenshot>
<screenshot>http://virt-manager.org/appdata/en_US/details.png</screenshot>
<screenshot>http://virt-manager.org/appdata/en_US/console.png</screenshot>
</screenshots>
<url type="homepage">http://www.virt-manager.org/</url>
<updatecontact>virt-tools-list@redhat.com</updatecontact>
</application>
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>virt-manager.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<_name>Virtual Machine Manager</_name>
<_summary>Graphically manage KVM, Xen, or LXC via libvirt</_summary>
<description>
<_p>
Virtual Machine Manager provides a graphical tool for administering virtual
machines for KVM, Xen, and LXC. Start, stop, add or remove virtual devices,
connect to a graphical or serial console, and see resource usage statistics
for existing VMs on local or remote machines. Uses libvirt as the backend
management API.
</_p>
</description>
<screenshots>
<screenshot type="default">
<image>http://virt-manager.org/appdata/en_US/manager.png</image>
<_caption>Main manager window</_caption>
</screenshot>
<screenshot>
<image>http://virt-manager.org/appdata/en_US/details.png</image>
<_caption>Virtual machine configuration screen</_caption>
</screenshot>
<screenshot>
<image>http://virt-manager.org/appdata/en_US/console.png</image>
<_caption>Graphical console connection for a virtual vachine</_caption>
</screenshot>
</screenshots>
<url type="homepage">http://www.virt-manager.org/</url>
<url type="bugtracker">https://bugzilla.redhat.com/enter_bug.cgi?product=Virtualization%20Tools&amp;component=virt-manager</url>
<update_contact>virt-tools-list@redhat.com</update_contact>
<translation type="gettext">virt-manager</translation>
</component>
......@@ -254,6 +254,11 @@ Allow the KVM hypervisor signature to be hidden from the guest
Notify the guest that the host supports paravirtual spinlocks for example by exposing the pvticketlocks mechanism.
=item B<--features gic_version=2>
This is relevant only for ARM architectures. Possible values are "host" or
version number.
=back
Use --features=? to see a list of all available sub options. Complete details at L<http://libvirt.org/formatdomain.html#elementsFeatures>
......@@ -419,7 +424,7 @@ file:
=item B<--os-variant> OS_VARIANT
Optimize the guest configuration for a specific operating system (ex.
'fedora18', 'rhel7', 'winxp'). While not requires, specifying this
'fedora18', 'rhel7', 'winxp'). While not required, specifying this
options is HIGHLY RECOMMENDED, as it can greatly increase performance
by specifying virtio among other guest tweaks.
......@@ -617,6 +622,10 @@ and to avoid I/O errors in the guest should the host filesystem fill up.
Path to a disk to use as the backing store for the newly created image.
=item B<backing_format>
Disk image format of B<backing_store>
=item B<cache>
The cache mode to be used. The host pagecache provides cache memory.
......@@ -964,8 +973,16 @@ Specify the spice tlsport.
Address to listen on for VNC/Spice connections. Default is typically 127.0.0.1
(localhost only), but some hypervisors allow changing this globally (for
example, the qemu driver default can be changed in /etc/libvirt/qemu.conf).
Use 0.0.0.0 to allow access from other machines. This is use by 'vnc' and
'spice'
Use 0.0.0.0 to allow access from other machines.
Use 'none' to specify that the display server should not listen on any
port. The display server can be accessed only locally through
libvirt unix socket (virt-viewer with --attach for instance).
Use 'socket' to have the VM listen on a libvirt generated unix socket
path on the host filesystem.
This is used by 'vnc' and 'spice'
=item B<keymap>
......@@ -982,6 +999,11 @@ Request a VNC password, required at connection time. Beware, this info may
end up in virt-install log files, so don't use an important password. This
is used by 'vnc' and 'spice'
=item B<gl>
Whether to use OpenGl accelerated rendering. Value is 'yes' or 'no'. This is
used by 'spice'.
=back
Use --graphics=? to see a list of all available sub options. Complete details at L<http://libvirt.org/formatdomain.html#elementsGraphics>
......@@ -1045,6 +1067,10 @@ This deprecates the --accelerate option, which is now the default behavior. To i
=head1 DEVICE OPTIONS
All devices have a set of B<address.*> options for configuring the
particulars of the device's address on its parent controller or bus.
See C<http://libvirt.org/formatdomain.html#elementsAddress> for details.
=over 4
=item B<--controller> OPTIONS
......@@ -1068,7 +1094,8 @@ see C<http://libvirt.org/formatdomain.html#elementsControllers>.
=item B<address>
Controller address, current PCI of form 'bus:domain:slot.function'.
Shorthand for setting a manual PCI address from an lscpi style string.
The preferred method for setting this is using the address.* parameters.
=item B<index>
......@@ -1334,7 +1361,7 @@ Use --console=? to see a list of all available sub options. Complete details at
Specify what video device model will be attached to the guest. Valid values
for VIDEO are hypervisor specific, but some options for recent kvm are
cirrus, vga, qxl, or vmvga (vmware).
cirrus, vga, qxl, virtio, or vmvga (vmware).
Use --video=? to see a list of all available sub options. Complete details at L<http://libvirt.org/formatdomain.html#elementsVideo>
......@@ -1549,6 +1576,15 @@ Show program's version number and exit
Set the autostart flag for a domain. This causes the domain to be started
on host boot up.
=item B<--transient>
Use --import or --boot and --transient if you want a transient libvirt
VM. These VMs exist only until the domain is shut down or the host
server is restarted. Libvirt forgets the XML configuration of the VM
after either of these events. Note that the VM's disks will not be
deleted. See:
L<http://wiki.libvirt.org/page/VM_lifecycle#Transient_guest_domains_vs_Persistent_guest_domains>
=item B<--print-xml> [STEP]
Print the generated XML of the guest, instead of defining it. By default this WILL do storage creation (can be disabled with --dry-run). This option implies --quiet.
......
......@@ -86,14 +86,14 @@ unique ID matching either the domain name, ID, or UUID
Display the main window summarizing performance for all virtual machines
on the host.
=back
=item B<--spice-disable-auto-usbredir>
Auto USB redirection is supported by default. This option switches off it.
=back
=back
Standard GTK options like --g-fatal-warnings are also accepted.
=head1 BUGS
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -16,13 +16,22 @@ import distutils.command.sdist
import distutils.dist
import distutils.log
import distutils.sysconfig
sysprefix = distutils.sysconfig.get_config_var("prefix")
from virtcli import CLIConfig
sysprefix = distutils.sysconfig.get_config_var("prefix")
# pylint: disable=attribute-defined-outside-init
_desktop_files = [
("share/applications", ["data/virt-manager.desktop.in"]),
]
_appdata_files = [
("share/appdata", ["data/virt-manager.appdata.xml.in"]),
]
def _generate_potfiles_in():
def find(dirname, ext):
ret = []
......@@ -41,8 +50,12 @@ def _generate_potfiles_in():
potfiles += "\n".join(find("virtconv", "*.py")) + "\n\n"
potfiles += "\n".join(find("virtinst", "*.py")) + "\n\n"
for ignore, filelist in _desktop_files + _appdata_files:
potfiles += "\n".join(filelist) + "\n"
potfiles += "\n"
potfiles += "\n".join(["[type: gettext/glade]" + f for
f in find("ui", "*.ui")])
f in find("ui", "*.ui")]) + "\n\n"
return potfiles
......@@ -74,13 +87,8 @@ class my_build_i18n(distutils.command.build.build):
def _run(self):
# Borrowed from python-distutils-extra
desktop_files = [
("share/applications", ["data/virt-manager.desktop.in"]),
("share/appdata", ["data/virt-manager.appdata.xml"]),
]
po_dir = "po"
# Update po(t) files and print a report
# We have to change the working dir to the po dir for intltool
cmd = ["intltool-update",
......@@ -111,7 +119,8 @@ class my_build_i18n(distutils.command.build.build):
self.distribution.data_files.append((targetpath, (mo_file,)))
# merge .in with translation
for (file_set, switch) in [(desktop_files, "-d")]:
for (file_set, switch) in [(_desktop_files, "-d"),
(_appdata_files, "-x")]:
for (target, files) in file_set:
build_target = os.path.join("build", target)
if not os.path.exists(build_target):
......@@ -384,6 +393,11 @@ class TestBaseCommand(distutils.core.Command):
def finalize_options(self):
if self.debug and "DEBUG_TESTS" not in os.environ:
os.environ["DEBUG_TESTS"] = "1"
if self.only:
# Can do --only many-devices to match on the cli testcase
# for "virt-install-many-devices", despite the actual test
# function name not containing any '-'
self.only = self.only.replace("-", "_")
def _find_tests_in_dir(self, dirname, excludes):
testfiles = []
......@@ -545,28 +559,8 @@ class TestURLFetch(TestBaseCommand):
class TestInitrdInject(TestBaseCommand):
description = "Test initrd inject with real kernels, fetched from URLs"
user_options = TestBaseCommand.user_options + [
("distro=", None, "Comma separated list of distros to test, from "
"the tests internal URL dictionary.")
]
def initialize_options(self):
TestBaseCommand.initialize_options(self)
self.distro = ""
def finalize_options(self):
TestBaseCommand.finalize_options(self)
orig = str(self.distro)
if not orig:
self.distro = []
else:
self.distro = orig.split(",")
def run(self):
self._testfiles = ["tests.test_inject"]
if self.distro:
import tests
tests.INITRD_TEST_DISTROS += self.distro
TestBaseCommand.run(self)
......
......@@ -20,16 +20,19 @@ import imp
import logging
import os
# Need to do this before any tests or virtinst import
os.environ["VIRTINST_TEST_SUITE"] = "1"
os.environ["VIRTINST_TEST_URL_DIR"] = os.path.abspath(
"tests/cli-test-xml/fakefedoratree/")
# pylint: disable=wrong-import-position
from virtcli import cliconfig
# This sets all the cli bits back to their defaults
reload(cliconfig)
from tests import utils
# Setup logging
rootLogger = logging.getLogger()
for handler in rootLogger.handlers:
......@@ -65,6 +68,3 @@ virtxml = _import("virtxml", "virt-xml")
# Variable used to store a local iso or dir path to check for a distro
# Specified via 'python setup.py test_urls --path"
URLTEST_LOCAL_MEDIA = []
# Used to implement test_initrd_inject --distro
INITRD_TEST_DISTROS = []
<domainCapabilities>
<path>/usr/libexec/qemu-kvm</path>
<domain>qemu</domain>
<machine>virt</machine>
<arch>aarch64</arch>
<vcpu max='255'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<enum name='type'>
<value>rom</value>
<value>pflash</value>
</enum>
<enum name='readonly'>
<value>yes</value>
<value>no</value>
</enum>
</loader>
</os>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<value>disk</value>
<value>cdrom</value>
<value>floppy</value>
<value>lun</value>
</enum>
<enum name='bus'>
<value>ide</value>
<value>fdc</value>
<value>scsi</value>
<value>virtio</value>
</enum>
</disk>
<graphics supported='yes'>
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
</enum>
</graphics>
<video supported='yes'>
<enum name='modelType'>
<value>qxl</value>
<value>virtio</value>
</enum>
</video>
<hostdev supported='yes'>
<enum name='mode'>
<value>subsystem</value>
</enum>
<enum name='startupPolicy'>
<value>default</value>
<value>mandatory</value>
<value>requisite</value>
<value>optional</value>
</enum>
<enum name='subsysType'>
<value>usb</value>
<value>pci</value>
<value>scsi</value>
</enum>
<enum name='capsType'/>
<enum name='pciBackend'/>
</hostdev>
</devices>
<features>
<gic supported='yes'>
<enum name='version'>
<value>2</value>
</enum>
</gic>
</features>
</domainCapabilities>
<domain type="kvm">
<name>foobar</name>
<uuid>00000000-1111-2222-3333-444444444444</uuid>
<memory>65536</memory>
<currentMemory>65536</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch="aarch64" machine="virt">hvm</type>
<loader readonly="yes" type="pflash">/usr/share/AAVMF/AAVMF_CODE.fd</loader>
<boot dev="hd"/>
</os>
<features>
<gic version="host"/>
</features>
<cpu mode="host-passthrough"/>
<clock offset="utc"/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-aarch64</emulator>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/var/lib/libvirt/images/foobar.qcow2"/>
<target dev="sda" bus="scsi"/>
</disk>
<controller type="scsi" index="0" model="virtio-scsi">
<address type="pci"/>
</controller>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>
<model type="virtio"/>
<address type="pci"/>
</interface>
<console type="pty"/>
<channel type="unix">
<source mode="bind"/>
<target type="virtio" name="org.qemu.guest_agent.0"/>
</channel>
</devices>
</domain>
......@@ -8,7 +8,7 @@
<type arch="armv7l" machine="virt">hvm</type>
<kernel>/f19-arm.kernel</kernel>
<initrd>/f19-arm.initrd</initrd>
<cmdline>console=ttyAMA0,1234 rw root=/dev/vda3</cmdline>
<cmdline>foo</cmdline>
</os>
<clock offset="utc"/>
<on_poweroff>destroy</on_poweroff>
......
......@@ -8,7 +8,7 @@
<type arch="x86_64">hvm</type>
<kernel>/tmp/virtinst-vmlinuz.</kernel>
<initrd>/tmp/virtinst-initrd.img.</initrd>
<cmdline>method=tests/cli-test-xml/faketree console=ttyS0</cmdline>
<cmdline>console=ttyS0 method=tests/cli-test-xml/faketree</cmdline>
</os>
<features>
<acpi/>
......
......@@ -69,76 +69,6 @@
<redirdev bus="usb" type="spicevmc"/>
</devices>
</domain>
<domain type="kvm">
<name>foobar</name>
<uuid>00000000-1111-2222-3333-444444444444</uuid>
<memory>65536</memory>
<currentMemory>65536</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch="x86_64">hvm</type>
<boot dev="hd"/>
</os>
<features>
<acpi/>
<apic/>
<vmport state="off"/>
<hyperv>
<relaxed state="on"/>
<vapic state="on"/>
<spinlocks state="on" retries="8191"/>
</hyperv>
</features>
<cpu mode="custom" match="exact">
<model>Opteron_G4</model>
</cpu>
<clock offset="localtime">
<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
<timer name="hypervclock" present="yes"/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>destroy</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled="no"/>
<suspend-to-disk enabled="no"/>
</pm>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/dev/default-pool/testvol1.img"/>
<target dev="hda" bus="ide"/>
</disk>
<disk type="file" device="cdrom">
<driver name="qemu" type="qcow2"/>
<source file="/dev/default-pool/testvol2.img"/>
<target dev="hdb" bus="ide"/>
<readonly/>
</disk>
<controller type="usb" index="0"/>
<interface type="bridge">
<source bridge="eth0"/>
<mac address="00:11:22:33:44:55"/>
</interface>
<input type="tablet" bus="usb"/>
<graphics type="spice" port="-1" tlsPort="-1" autoport="yes">
<image compression="off"/>
</graphics>
<console type="pty"/>
<channel type="spicevmc">
<target type="virtio" name="com.redhat.spice.0"/>
</channel>
<sound model="ich6"/>
<video>
<model type="qxl"/>
</video>
<redirdev bus="usb" type="spicevmc"/>
<redirdev bus="usb" type="spicevmc"/>
</devices>
</domain>
<domain type="kvm">
<name>foobar</name>
<uuid>00000000-1111-2222-3333-444444444444</uuid>
......
......@@ -67,7 +67,12 @@
</disk>
<disk type="file" device="disk">
<driver name="qemu" type="raw"/>
<source file="/dev/default-pool/iso-vol"/>
<source file="/dev/default-pool/iso-vol">