Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.352. virt-viewer

Updated virt-viewer packages that fix multiple bugs and add various enhancements are now available for Red Hat Enterprise Linux 6.
Virtual Machine Viewer (virt-viewer) is a lightweight interface for interacting with the graphical display of a virtualized guest. Virtual Machine Viewer uses libvirt and is intended as a replacement for traditional VNC and SPICE clients.


The virt-viewer packages have been upgraded to upstream version 0.5.2, which provides a number of enhancements over the previous version. Among these, this update adds support for a new client, known as remote-viewer, which obsoletes the need for the separately maintained spicec application. The remote-viewer utility provides a way for the Simple Protocol for Independent Computing Environments (SPICE) XPI plugin to connect to remote SPICE servers, which ensures a consistent user experience of the virt-viewer utility. (BZ#784920)

Bug Fixes

The SPICE client cannot determine in advance whether a SPICE server requires a password for authentication. Thus, the SPICE client attempts to establish the connection and if it receives an authentication error, the client closes the connection, prompts the user for a password, and then reconnects to the SPICE server. Previously, the SPICE client was unable to perform the reconnection step when the connection to the server was using SSH tunneling. With this update, the SPICE client is allowed to request a new SSH tunnel connection to the SPICE server after obtaining the password from the user. Now, users are able to connect to password-protected SPICE servers when using an SSH tunnel.
The virt-viewer utility has been modified to enable support for USB redirection introduced in the latest version of the spice-gtk packages. Users are now able to attach local USB devices to remote virtual machines using the SPICE protocol.
Previously, the virt-viewer manual page did not describe the --attach, or -a, option. With this update, the virt-viewer manual page explains that libvirt can be used to directly attach virt-viewer to a local display instead of making a TCP/UNIX socket connection when using one of the aforementioned options.
When running a guest while the user password is set, the virt-viewer application asks for authentication. However, due to incorrect signal handling, if the user canceled the dialog box, the following error message was returned:
Unable to authenticate with remote desktop server at localhost:5900:
Unable to collect credentials.Retry connection again?
The underlying source code has been modified to ensure correct signal handling. Now, if virt-viewer receives a signal about a session being canceled, virt-viewer is disconnected and exits without error messages, as expected.
Previously, the URI parsing code did not expect URIs containing square brackets, [ and ], around the host component. It was thus not possible to connect to a remote libvirt server whose URI address contained raw IPv6 addresses (for example qemu+ssh://root@[2001::xxxx:1]/system). With this update, the URI parsing has been fixed to take account of the IPv6 address syntax, so it is now possible to connect to remote libvirt servers using raw IPv6 addresses.
On 32-bit Intel architectures, an arithmetic error caused inaccurate calculation of the desired window size. The error manifested itself as a one-pixel black bar appended to the bottom of the window in full-screen mode, thus causing the guest display to be unnecessarily scaled. The scaling code has been changed to round to the nearest integer instead of truncating, which avoids a reliance on precision of floating point calculations. On 32-bit Intel architectures, windows are resized such that scaling is not required if the guest display is small enough to fit on the host desktop.
Due to a race condition, the following message could be displayed at the command line when closing the virt-viewer application:
Segmentation fault (core dumped)
The underlying source code has been modified to prevent the race condition from occurring, and virt-viewer now exits gracefully, without error messages.
When reconnecting a guest with multiple monitors (for example after a restart), virt-viewer created new windows for the additional monitors, while the old windows still existed. This was because the GtkWindow object was not freed. This update modifies virt-viewer ensure that windows are closed when a display closes.
With this update, the OK button label of the USB device selection dialog box has been changed to Close.
All users of virt-viewer are advised to upgrade to these updated packages, which fix these bugs and add these enhancements.