Commit d19122bc authored by Guido Günther's avatar Guido Günther

New upstream version 2.0.0

parent d08e61c2
......@@ -2,19 +2,23 @@
The following commands will be useful for anyone writing patches:
```sh
python setup.py test # Run local unit test suite
python setup.py pylint # Run a pylint script against the codebase
./setup.py test # Run local unit test suite
./setup.py pylint # Run a pylint script against the codebase
./setup.py codespell # Run a codespell script against the codebase
```
Any patches shouldn't change the output of 'test' or 'pylint'. The
'pylint' requires `pylint` and `pycodestyle` to be installed.
Any patches shouldn't change the output of 'test', 'pylint' or 'codespell'. The
'pylint' requires [`pylint`](https://github.com/PyCQA/pylint) and
[`pycodestyle`](https://github.com/pycqa/pycodestyle) to be installed. The
'codespell' requires
[`codespell`](https://github.com/codespell-project/codespell) to be installed.
Our pylint script uses a blacklist rather than a whitelist approach,
so it could throw some false positives or useless messages. If you think
your patch exposes one of these, bring it up on the mailing list.
'test*' have a `--debug` option if you are hitting problems.
For more options, use `python setup.py test --help`.
For more options, use `./setup.py test --help`.
One useful way to manually test virt-manager's UI is using libvirt's
unit test driver. From the source directory, Launch virt-manager like:
......@@ -28,8 +32,8 @@ having to alter your host virt config.
Also, there's a few standalone specialty tests:
```sh
python setup.py test_urls # Test fetching media from distro URLs
python setup.py test_initrd_inject # Test --initrd-inject
./setup.py test_urls # Test fetching media from distro URLs
./setup.py test_initrd_inject # Test --initrd-inject
```
We use [glade-3](https://glade.gnome.org/) for building virt-manager's UI.
......@@ -43,7 +47,7 @@ Patches should be developed against a git checkout and **not** a source
release(see [git repository](https://github.com/virt-manager/virt-manager)).
Patches should be sent to the
[mailing list](http://www.redhat.com/mailman/listinfo/virt-tools-list).
[mailing list](https://www.redhat.com/mailman/listinfo/virt-tools-list).
Using git format-patch/send-email is preferred, but an attachment with
format-patch output is fine too.
......@@ -55,7 +59,7 @@ non-trivial should be sent to the mailing list.
Translations are handled at `fedora.zanata.org`. Please register for a Fedora
account and request access to a translation team, as described at
[Translate on Zanata](http://fedoraproject.org/wiki/L10N/Translate_on_Zanata).
[Translate on Zanata](https://fedoraproject.org/wiki/L10N/Translate_on_Zanata).
And contribute to
[virt-manager at Zanata](https://fedora.zanata.org/project/view/virt-manager/).
......@@ -8,19 +8,19 @@ changes, it can be done from the source directory:
To install the software into `/usr/local` (usually), you can do:
```sh
python setup.py install
./setup.py install
```
To build an RPM, you can run:
```sh
python setup.py rpm
./setup.py rpm
```
`setup.py` generally has all the build and install commands, for more info see:
- `python setup.py --help-commands`
- `python setup.py install --help`
- [Python Standard Build and Install](https://docs.python.org/2/install/#standard-build-and-install)
- `./setup.py --help-commands`
- `./setup.py install --help`
- [Python Standard Build and Install](https://docs.python.org/3/install/#standard-build-and-install)
## Pre-requisite software
......@@ -30,7 +30,7 @@ A detailed dependency list can be found in
Minimum version requirements of major components:
- python >= 2.7
- python >= 3.3
- gtk3 >= 3.14
- libvirt-python >= 0.6.0
- pygobject3 >= 3.14
......
......@@ -8,7 +8,6 @@ exclude data/gschemas.compiled
recursive-include man *
recursive-include po *
recursive-include tests *
exclude tests/test_urls_manual.ini
recursive-include ui *
recursive-include virtManager *
recursive-include virtcli *
......
# Virtual Machine Manager News
## Release 1.5.1 (February 28, 2018)
- Bug fix release
- Fix potential crash with libxml2 error callbacks
- Fix disk/net/mem VM graphs
## Release 2.0.0 (October 15, 2018)
- Finish port to Python 3 (Radostin Stoyanov, Cole Robinson)
- Improved VM defaults for supported OS: q35 PCIe, usb3, CPU host-model
- Search based OS selection UI for new VMs (Daniel P. Berrangé, Cole
Robinson)
- Track OS name for lifetime of domain in <metadata> XML
- Host interface management UI has been completely removed
- Show domain IP on interface details page (Lin Ma, Cole Robinson)
- More efficient stats polling with AllDomainStats (Simon Kobyda, Cole
Robinson)
- TPM device model and backend UI (Marc-André Lureau, Stefan Berger)
- Show <channel> connection state in UI (Lin Ma)
- Show attached devices in <controller> UI (Lin Ma)
- UI option to plug/unplug VM nic link (Simon Kobyda)
- UI support for disk discard and detect_zeroes (Povilas Kanapickas, Lin Ma)
- Improved SUSE --location URL/ISO detection (Charles Arnold)
- cli and UI support for SCSI persistent reservations (Lin Ma)
- cli: Add --network mtu.size= option (Anya Harter)
- cli: Add --disk driver.copy_on_read (Anya Harter)
- cli: Add --disk geometry support (Anya Harter)
- cli: Add --sound codec support (Anya Harter)
- cli: Add --hostdev net/char/block for LXC (Lubomir Rintel)
- cli: Add --memorybacking access_mode and source_type (Marc-André Lureau)
- cli: Add --boot rebootTimout (Yossi Ovadia)
- cli: Add --boot bootloader=
- cli: Add --destroy-on-exit
## Release 1.5.0 (February 06, 2018)
- python3 prep work (Radostin Stoyanov, Cole Robinson, Cédric Bosdonnat)
......@@ -461,7 +483,7 @@ virtual console and even greater coverage for translations.
The release focus has been on major bug fixing. This is also the
first release in which (partial) translations are available for
the UI in approximately 20 languages - thanks to the Fedora i18n
team for excellant progress on this. It is now possible to control
team for excellent progress on this. It is now possible to control
the virt-manager UI with command line arguments as well as the DBus
API & it DBus activation is no longer used by default which fixes
interaction with GNOME keyring & AT-SPI accesibility. Numerous
......
Metadata-Version: 1.0
Name: virt-manager
Version: 1.5.1
Version: 2.0.0
Summary: UNKNOWN
Home-page: http://virt-manager.org
Author: Cole Robinson
......
......@@ -22,12 +22,12 @@ For dependency info and installation instructions, see the
## Contact
- All comments / suggestions / patches should be directed to the
[virt-tools-list](http://www.redhat.com/mailman/listinfo/virt-tools-list)
[virt-tools-list](https://www.redhat.com/mailman/listinfo/virt-tools-list)
mailing list.
- For IRC we use #virt on OFTC.
- For bug reporting info, see
[BugReporting](http://virt-manager.org/page/BugReporting).
[BugReporting](https://virt-manager.org/page/BugReporting).
- There are further project details on the
[virt-manager](http://virt-manager.org/) website.
[virt-manager](https://virt-manager.org/) website.
- See the [HACKING.md](HACKING.md) file for info about submitting patches or
contributing translations.
[org.virt-manager.virt-manager]
system-tray = /apps/virt-manager/system-tray
[org.virt-manager.virt-manager.connections]
autostart = /apps/virt-manager/connections/autostart
uris = /apps/virt-manager/connections/uris
[org.virt-manager.virt-manager.details]
show-toolbar = /apps/virt-manager/details/show-toolbar
[org.virt-manager.virt-manager.paths]
image-default = /apps/virt-manager/paths/default-image-path
media-default = /apps/virt-manager/paths/default-media-path
[org.virt-manager.virt-manager.stats]
enable-net-poll = /apps/virt-manager/stats/enable-net-poll
enable-disk-poll = /apps/virt-manager/stats/enable-disk-poll
enable-memory-poll = /apps/virt-manager/stats/enable-mem-poll
enable-cpu-poll = /apps/virt-manager/stats/enable-cpu-poll
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage = /apps/virt-manager/vmlist-fields/cpu_usage
disk-usage = /apps/virt-manager/vmlist-fields/disk_usage
host-cpu-usage = /apps/virt-manager/vmlist-fields/host_cpu_usage
memory-usage = /apps/virt-manager/vmlist-fields/memory_usage
network-traffic = /apps/virt-manager/vmlist-fields/network_traffic
......@@ -47,6 +47,12 @@
<description>Show system tray icon while app is running</description>
</key>
<key name="enable-libguestfs-vm-inspection" type="b">
<default>true</default>
<summary>Enable libguestfs VM inspection</summary>
<description>Enable libguestfs VM inspection for things like OS icons, installed applications, etc. This only works if python libguestfs bindings are installed.</description>
</key>
<key name="manager-window-height" type="i">
<default>0</default>
<summary>Default manager window height</summary>
......
......@@ -16,19 +16,19 @@
</description>
<screenshots>
<screenshot type="default">
<image>http://virt-manager.org/appdata/en_US/manager.png</image>
<image>https://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>
<image>https://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>
<image>https://virt-manager.org/appdata/en_US/console.png</image>
<_caption>Graphical console connection for a virtual machine</_caption>
</screenshot>
</screenshots>
<url type="homepage">http://www.virt-manager.org/</url>
<url type="homepage">https://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>
......
......@@ -203,19 +203,19 @@ new guest can do a filesystem resize when it boots.
=head1 BUGS
Please see http://virt-manager.org/page/BugReporting
Please see https://virt-manager.org/page/BugReporting
=head1 COPYRIGHT
Copyright (C) Fujitsu Limited, Copyright (C) Red Hat, Inc,
and various contributors.
This is free software. You may redistribute copies of it under the terms
of the GNU General Public License C<http://www.gnu.org/licenses/gpl.html>.
of the GNU General Public License C<https://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
=head1 SEE ALSO
C<virt-sysprep(1)>, C<virsh(1)>, C<virt-install(1)>, C<virt-manager(1)>, the project website C<http://virt-manager.org>
C<virt-sysprep(1)>, C<virsh(1)>, C<virt-install(1)>, C<virt-manager(1)>, the project website C<https://virt-manager.org>
=cut
......@@ -127,18 +127,18 @@ Convert the specified .vmx file. Any references disk images must be in the same
=head1 BUGS
Please see http://virt-manager.org/page/BugReporting
Please see https://virt-manager.org/page/BugReporting
=head1 COPYRIGHT
Copyright (C) Red Hat, Inc, and various contributors.
This is free software. You may redistribute copies of it under the terms
of the GNU General Public License C<http://www.gnu.org/licenses/gpl.html>.
of the GNU General Public License C<https://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
=head1 SEE ALSO
L<virt-install(1)>, the project website C<http://virt-manager.org>
L<virt-install(1)>, the project website C<https://virt-manager.org>
=cut
This diff is collapsed.
......@@ -48,14 +48,10 @@ List debugging output to the console (normally this is only logged in
Don't fork C<virt-manager> off into the background: run it blocking the
current terminal. Useful for seeing possible errors dumped to stdout/stderr.
=item B<--no-conn-autostart>
Don't autostart any libvirt connections when launching C<virt-manager>.
=item B<--show-DIALOG-WINDOW>
Display the corresponding C<DIALOG-WINDOW> when launching C<virt-manager>. This
function implies --no-conn-autostart and the manager window will not be shown
Display the corresponding C<DIALOG-WINDOW> when launching C<virt-manager>.
Connection autostart is skipped, and the manager window will not be shown
at startup in this case.
The following C<DIALOG-WINDOW> options are currently available:
......@@ -88,28 +84,24 @@ on the host.
=back
=item B<--spice-disable-auto-usbredir>
Auto USB redirection is supported by default. This option switches off it.
=back
Standard GTK options like --g-fatal-warnings are also accepted.
=head1 BUGS
Please see L<http://virt-manager.org/bugs/>
Please see L<https://virt-manager.org/bugs/>
=head1 COPYRIGHT
Copyright (C) Red Hat, Inc, and various contributors.
This is free software. You may redistribute copies of it under the terms of the GNU General
Public License C<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent
Public License C<https://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent
permitted by law.
=head1 SEE ALSO
C<virsh(1)>, C<virt-viewer(1)>, the project website C<http://virt-manager.org>
C<virsh(1)>, C<virt-viewer(1)>, the project website C<https://virt-manager.org>
=cut
......@@ -137,6 +137,8 @@ If the specified domain is running, attempt to alter the running VM configuratio
Keep in mind, most XML properties and devices do not support live update operations, so don't expect it to succeed in all cases.
Note that --update implies --define: it can't be used in isolation.
=item B<--define>
Define the requested XML change. This is typically the default if no output option is specified, but if a --print option is specified, --define is required to force the change.
......@@ -228,7 +230,7 @@ Before defining or updating the domain, show the generated XML diff and interact
These options alter the XML for a single class of XML elements. More complete documentation is found in L<virt-install(1)>.
Generally these options map pretty straightforwardly to the libvirt XML, documented at L<http://libvirt.org/formatdomain.html>
Generally these options map pretty straightforwardly to the libvirt XML, documented at L<https://libvirt.org/formatdomain.html>
Option strings are in the format of: --option opt=val,opt2=val2,... example: --disk path=/tmp/foo,shareable=on. Properties can be used with '--option opt=,', so to clear a disks cache setting you could use '--disk cache=,'
......@@ -352,17 +354,17 @@ Virtualization hosts supported by libvirt may not permit all changes that might
=head1 BUGS
Please see http://virt-manager.org/page/BugReporting
Please see https://virt-manager.org/page/BugReporting
=head1 COPYRIGHT
Copyright (C) Red Hat, Inc, and various contributors.
This is free software. You may redistribute copies of it under the terms
of the GNU General Public License C<http://www.gnu.org/licenses/gpl.html>.
of the GNU General Public License C<https://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
=head1 SEE ALSO
L<virt-install(1)>, the project website C<http://virt-manager.org>
L<virt-install(1)>, the project website C<https://virt-manager.org>
=cut
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#!/usr/bin/env python2
# Copyright (C) 2013, 2014 Red Hat, Inc.
#!/usr/bin/env python3
#
# This work is licensed under the GNU GPLv2 or later.
# See the COPYING file in the top-level directory.
import glob
import fnmatch
......@@ -17,6 +20,10 @@ import distutils.dist
import distutils.log
import distutils.sysconfig
if sys.version_info.major < 3:
print("virt-manager is python3 only. Run this as ./setup.py")
sys.exit(1)
from virtcli import CLIConfig
sysprefix = distutils.sysconfig.get_config_var("prefix")
......@@ -306,20 +313,6 @@ class my_rpm(distutils.core.Command):
class configure(distutils.core.Command):
user_options = [
("prefix=", None, "installation prefix"),
("qemu-user=", None,
"user libvirt uses to launch qemu processes (default=root)"),
("libvirt-package-names=", None,
"list of libvirt distro packages virt-manager will check for on "
"first run. comma separated string (default=none)"),
("kvm-package-names=", None,
"recommended kvm packages virt-manager will check for on first run "
"(default=none)"),
("askpass-package-names=", None,
"name of your distro's askpass package(s) (default=none)"),
("preferred-distros=", None,
"Distros to list first in the New VM wizard (default=none)"),
("stable-defaults", None,
"Hide config bits that are not considered stable (default=no)"),
("default-graphics=", None,
"Default graphics type (spice or vnc) (default=spice)"),
("default-hvs=", None,
......@@ -334,12 +327,6 @@ class configure(distutils.core.Command):
def initialize_options(self):
self.prefix = sysprefix
self.qemu_user = None
self.libvirt_package_names = None
self.kvm_package_names = None
self.askpass_package_names = None
self.preferred_distros = None
self.stable_defaults = None
self.default_graphics = None
self.default_hvs = None
......@@ -348,19 +335,6 @@ class configure(distutils.core.Command):
template = ""
template += "[config]\n"
template += "prefix = %s\n" % self.prefix
if self.qemu_user is not None:
template += "default_qemu_user = %s\n" % self.qemu_user
if self.libvirt_package_names is not None:
template += "libvirt_packages = %s\n" % self.libvirt_package_names
if self.kvm_package_names is not None:
template += "hv_packages = %s\n" % self.kvm_package_names
if self.askpass_package_names is not None:
template += "askpass_packages = %s\n" % self.askpass_package_names
if self.preferred_distros is not None:
template += "preferred_distros = %s\n" % self.preferred_distros
if self.stable_defaults is not None:
template += ("stable_defaults = %s\n" %
self.stable_defaults)
if self.default_graphics is not None:
template += "default_graphics = %s\n" % self.default_graphics
if self.default_hvs is not None:
......@@ -373,6 +347,7 @@ class configure(distutils.core.Command):
class TestBaseCommand(distutils.core.Command):
user_options = [
('debug', 'd', 'Show debug output'),
('testverbose', None, 'Show verbose output'),
('coverage', 'c', 'Show coverage report'),
('regenerate-output', None, 'Regenerate test output'),
("only=", None,
......@@ -383,6 +358,7 @@ class TestBaseCommand(distutils.core.Command):
def initialize_options(self):
self.debug = 0
self.testverbose = 0
self.regenerate_output = 0
self.coverage = 0
self.only = None
......@@ -393,8 +369,6 @@ class TestBaseCommand(distutils.core.Command):
self._external_coverage = False
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
......@@ -434,6 +408,9 @@ class TestBaseCommand(distutils.core.Command):
testsmodule.utils.clistate.regenerate_output = bool(
self.regenerate_output)
testsmodule.utils.clistate.use_coverage = bool(cov)
testsmodule.utils.clistate.debug = bool(self.debug)
testsmodule.setup_logging()
testsmodule.setup_cli_imports()
# This makes the test runner report results before exiting from ctrl-c
unittest.installHandler()
......@@ -457,7 +434,7 @@ class TestBaseCommand(distutils.core.Command):
print("")
verbosity = 1
if self.debug or self._force_verbose:
if self.debug or self.testverbose or self._force_verbose:
verbosity = 2
t = unittest.TextTestRunner(verbosity=verbosity)
......@@ -494,7 +471,7 @@ class TestCommand(TestBaseCommand):
'''
Finds all the tests modules in tests/, and runs them.
'''
excludes = ["test_urls.py", "test_inject.py"]
excludes = ["dist.py", "test_urls.py", "test_inject.py"]
testfiles = self._find_tests_in_dir("tests", excludes)
# Put clitest at the end, since it takes the longest
......@@ -552,6 +529,40 @@ class TestInitrdInject(TestBaseCommand):
TestBaseCommand.run(self)
class TestDist(TestBaseCommand):
description = "Tests to run before cutting a release"