|
0 |
2015-12-17 Daniel P. Berrange <berrange@redhat.com>
|
|
1 |
|
|
2 |
Update for release 3.1
|
|
3 |
|
|
4 |
Refresh translations from zanata
|
|
5 |
|
|
6 |
2015-12-07 Daniel P. Berrange <berrange@redhat.com>
|
|
7 |
|
|
8 |
Refresh translations from zanata
|
|
9 |
|
|
10 |
2015-12-03 Daniel P. Berrange <berrange@redhat.com>
|
|
11 |
|
|
12 |
Update NEWS for release 3.0
|
|
13 |
|
|
14 |
Bump spice-gtk dep to 0.30.0 to avoid dep on git snapshot release
|
|
15 |
|
|
16 |
s/mingw62/mingw64/ in RPM spec file
|
|
17 |
|
|
18 |
Avoid macro in RPM comment
|
|
19 |
|
|
20 |
2015-12-01 Fabiano Fidêncio <fidencio@redhat.com>
|
|
21 |
|
|
22 |
autobuild: gtk2 has been dropped for windows
|
|
23 |
0a7fa73f is the commit that dropped support for gtk2 for the nsis
|
|
24 |
installer.
|
|
25 |
03c014cb is the commit that dropped support for gtk2 for the msi
|
|
26 |
installer.
|
|
27 |
|
|
28 |
specs: add remote-viewer-connect.xml
|
|
29 |
The file was introduced in commit 0571843d but never added to the spec
|
|
30 |
files.
|
|
31 |
|
|
32 |
nsis: add libbz2-1.dll
|
|
33 |
mingw-bzip2 seems to be a mingw-freetype dependency.
|
|
34 |
|
|
35 |
nsis: update nettle to 3.1.1
|
|
36 |
Use version 3.1.1, matching what currently is in f23.
|
|
37 |
|
|
38 |
nsis: update libgnutls to 3.4.7
|
|
39 |
Use version 3.4.7, matching what currently is in f23.
|
|
40 |
|
|
41 |
nsis: update pango to 1.38.1
|
|
42 |
Use version 1.38.1, matching what is in f23.
|
|
43 |
An important note is that the removed files were removed in
|
|
44 |
mingw-pango-1.37.1.
|
|
45 |
|
|
46 |
docs: fix "make syntaxcheck"
|
|
47 |
|
|
48 |
2015-12-01 Jonathon Jongsma <jjongsma@redhat.com>
|
|
49 |
|
|
50 |
Add some multimonitor documentation
|
|
51 |
These two files describe some of the behavior and requirements for
|
|
52 |
virt-viewer in fullscreen multimonitor mode
|
|
53 |
|
|
54 |
2015-11-05 Daniel P. Berrange <berrange@redhat.com>
|
|
55 |
|
|
56 |
autogen: Ensure m4 directory exists
|
|
57 |
We're telling autoconf to look in the m4/ directory for
|
|
58 |
files, but this directory doesn't exist in a clean checkout
|
|
59 |
until libtoolize has run. Older versions of autoconf consider
|
|
60 |
this to be a fatal error.
|
|
61 |
|
|
62 |
git.mk: fix copyright line and remove use of -o / -a
|
|
63 |
Any copyright line must use 'Copyright (C) <year> Red Hat'
|
|
64 |
per the syntax-check rule.
|
|
65 |
|
|
66 |
Use of -a / -o args to "test" is non-portable and should
|
|
67 |
instead be done with 'test ... || test ...'
|
|
68 |
|
|
69 |
2015-11-04 Eduardo Lima (Etrunko) <etrunko@redhat.com>
|
|
70 |
|
|
71 |
Remove useless {get,set}_property functions
|
|
72 |
|
|
73 |
Move declaration to the beginning of the file
|
|
74 |
|
|
75 |
Update MAINTAINERCLEANFILES variables
|
|
76 |
Makefile.am: Use helper variables from git.mk
|
|
77 |
man/Makefile.am: This should be $(dist_man_MANS) instead of $(man_MANS)
|
|
78 |
|
|
79 |
Update git.mk from latest upstream version
|
|
80 |
|
|
81 |
Call intltoolize after autoreconf
|
|
82 |
After removing m4/.gitignore file in previous patch, I started getting
|
|
83 |
the following error when running autogen.sh.
|
|
84 |
|
|
85 |
ln: failed to create symbolic link ‘m4/intltool.m4’: No such file or directory
|
|
86 |
cp: cannot create regular file ‘m4/intltool.m4’: No such file or directory
|
|
87 |
intltoolize: cannot copy '/usr/share/aclocal/intltool.m4' to 'm4/intltool.m4'
|
|
88 |
|
|
89 |
The problem is that intltoolize requires te m4/ directory to be present,
|
|
90 |
and this directory is actually created by running autoreconf, so it
|
|
91 |
should be called before intltoolize.
|
|
92 |
|
|
93 |
Remove m4/.gitignore file
|
|
94 |
All .gitignore files are handled by git.mk and should not be part of the
|
|
95 |
repository.
|
|
96 |
|
|
97 |
2015-11-04 Pavel Grunt <pgrunt@redhat.com>
|
|
98 |
|
|
99 |
session-spice: Disable extra displays in fullscreen mode
|
|
100 |
When running in fullscreen it is possible to end up in a situation
|
|
101 |
where we have more displays enabled than monitors. This can happen
|
|
102 |
if displays that were enabled in the previous connection to the guest
|
|
103 |
doesn't match displays requested when entering the fullscreen mode.
|
|
104 |
|
|
105 |
This commit solves the problem by disabling displays that should not be
|
|
106 |
enabled in the fullscreen mode.
|
|
107 |
|
|
108 |
Resolves: rhbz#1212802
|
|
109 |
|
|
110 |
app: Do not map display to non-existent monitor
|
|
111 |
|
|
112 |
app: Add helper for number of client monitors
|
|
113 |
|
|
114 |
2015-10-21 Fabiano Fidêncio <fidencio@redhat.com>
|
|
115 |
|
|
116 |
util: Fix the size of sorted_displays allocation
|
|
117 |
As sorted_displays is a vector containing all displays' order, its
|
|
118 |
allocation size must be the maximum display id + 1 instead of the
|
|
119 |
maximum display id. Also, fix the size used for sorting and iterating
|
|
120 |
the sorted_displays vector.
|
|
121 |
|
|
122 |
Valgrind log:
|
|
123 |
==15946== Invalid write of size 4
|
|
124 |
==15946== at 0x4169C0: virt_viewer_align_monitors_linear (virt-viewer-util.c:581)
|
|
125 |
==15946== by 0x42248B: virt_viewer_session_on_monitor_geometry_changed (virt-viewer-session.c:438)
|
|
126 |
==15946== by 0xBB41F03: _g_closure_invoke_va (gclosure.c:831)
|
|
127 |
==15946== by 0xBB5BC7C: g_signal_emit_valist (gsignal.c:3214)
|
|
128 |
==15946== by 0xBB5C764: g_signal_emit_by_name (gsignal.c:3401)
|
|
129 |
==15946== by 0x4328F3: virt_viewer_display_spice_monitor_geometry_changed (virt-viewer-display-spice.c:93)
|
|
130 |
==15946== by 0x432D60: virt_viewer_display_spice_size_allocate (virt-viewer-display-spice.c:224)
|
|
131 |
==15946== by 0xBB41CD4: g_closure_invoke (gclosure.c:768)
|
|
132 |
==15946== by 0xBB53538: signal_emit_unlocked_R (gsignal.c:3549)
|
|
133 |
==15946== by 0xBB5BEEF: g_signal_emit_valist (gsignal.c:3305)
|
|
134 |
==15946== by 0xBB5C29E: g_signal_emit (gsignal.c:3361)
|
|
135 |
==15946== by 0x637D6F6: gtk_widget_size_allocate_with_baseline (gtkwidget.c:6093)
|
|
136 |
==15946== Address 0x18c79d4c is 0 bytes after a block of size 12 alloc'd
|
|
137 |
==15946== at 0x4C2A9C7: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
|
|
138 |
==15946== by 0xBDD36D1: g_malloc0 (gmem.c:127)
|
|
139 |
==15946== by 0x41698D: virt_viewer_align_monitors_linear (virt-viewer-util.c:577)
|
|
140 |
==15946== by 0x42248B: virt_viewer_session_on_monitor_geometry_changed (virt-viewer-session.c:438)
|
|
141 |
==15946== by 0xBB41F03: _g_closure_invoke_va (gclosure.c:831)
|
|
142 |
==15946== by 0xBB5BC7C: g_signal_emit_valist (gsignal.c:3214)
|
|
143 |
==15946== by 0xBB5C764: g_signal_emit_by_name (gsignal.c:3401)
|
|
144 |
==15946== by 0x4328F3: virt_viewer_display_spice_monitor_geometry_changed (virt-viewer-display-spice.c:93)
|
|
145 |
==15946== by 0x432D60: virt_viewer_display_spice_size_allocate (virt-viewer-display-spice.c:224)
|
|
146 |
==15946== by 0xBB41CD4: g_closure_invoke (gclosure.c:768)
|
|
147 |
==15946== by 0xBB53538: signal_emit_unlocked_R (gsignal.c:3549)
|
|
148 |
==15946== by 0xBB5BEEF: g_signal_emit_valist (gsignal.c:3305)
|
|
149 |
|
|
150 |
Resolves: rhbz#1272650
|
|
151 |
Related: rhbz#1267184
|
|
152 |
|
|
153 |
session: Only create a hashtable if apply_monitor_geometry vfunc exists
|
|
154 |
Creating the monitors hashtable only after checking for the existence of
|
|
155 |
apply_monitor_geometry vfunc avoids leaking the hashtable in the case
|
|
156 |
where the vfunc doesn't exist.
|
|
157 |
|
|
158 |
Related: rhbz#1267184
|
|
159 |
|
|
160 |
2015-10-21 Pavel Grunt <pgrunt@redhat.com>
|
|
161 |
|
|
162 |
app: Use display id instead of 'this' in debug
|
|
163 |
|
|
164 |
2015-10-20 Christophe Fergeau <cfergeau@redhat.com>
|
|
165 |
|
|
166 |
Stop polling after reconnecting to libvirtd
|
|
167 |
When the connection to libvirtd is lost, virt-viewer starts polling for
|
|
168 |
libvirtd to come back. The polling mechanism is also used when
|
|
169 |
connecting to very old libvirtd which don't support
|
|
170 |
virConnectDomainEventDeregisterAny().
|
|
171 |
|
|
172 |
Currently, once we could reconnect to libvirtd, virt-viewer will keep
|
|
173 |
polling, thus behaving as if the libvirtd connection does not support
|
|
174 |
virConnectDomainEventDeregisterAny(). This commit makes sure we stop
|
|
175 |
polling once the new libvirtd connection is established.
|
|
176 |
|
|
177 |
This has the side-effect of preventing
|
|
178 |
https://bugzilla.redhat.com/show_bug.cgi?id=1271519 from occurring with
|
|
179 |
recent libvirt as it's caused by some race occurring when using the
|
|
180 |
polling code.
|
|
181 |
|
|
182 |
2015-10-09 Jonathon Jongsma <jjongsma@redhat.com>
|
|
183 |
|
|
184 |
Use the display ID to configure fullscreen monitors
|
|
185 |
When starting virt-viewer in fullscreen mode, we generally try to
|
|
186 |
arrange guest displays exactly the same as client monitors. So if a
|
|
187 |
client machine has two monitors, we'll try to enable display 0 and 1 on
|
|
188 |
the guest (in that order). However, when using the configuration file to
|
|
189 |
map fullscreen displays to different monitors, the guest displays may
|
|
190 |
not be sequential, or there may be displays missing. For example,
|
|
191 |
consider the following configuration:
|
|
192 |
|
|
193 |
monitor-mapping=1:2;2:1
|
|
194 |
|
|
195 |
In virt_viewer_session_spice_fullscreen_auto_conf(), we were building an
|
|
196 |
array of GdkRectangles for the initial monitors that we want to enable
|
|
197 |
on the guest. We then configured the guest displays using the index of
|
|
198 |
the array for the as the id of the guest display. But when displays
|
|
199 |
are sparse or are out-of-sequence, the array index will not match the
|
|
200 |
>ntended display ID. This created problems where displays were arranged
|
|
201 |
incorrectly. By changing the simple array into a GHashTable, we can keep
|
|
202 |
the display ID together with the GdkRectangle until we need to use it,
|
|
203 |
and things will be configured correctly.
|
|
204 |
|
|
205 |
This regression was introduced by c586dc8c.
|
|
206 |
|
|
207 |
Fixes: rhbz#1267184
|
|
208 |
|
|
209 |
SessionSpice: make main-window a property
|
|
210 |
Make "main-window" a construct-only property of VirtViewerSessionSpice.
|
|
211 |
This allows us to set it in the constructor and encapsulate all of the
|
|
212 |
setup within the gobject constructor rather than doing extra work in the
|
|
213 |
_new() function.
|
|
214 |
|
|
215 |
2015-10-08 Fabiano Fidêncio <fidencio@redhat.com>
|
|
216 |
|
|
217 |
msi: use the correct id for remote-viewer.exe
|
|
218 |
As, in theory, file ids are stables, seems that we have been using the
|
|
219 |
wrong id for remote-viewer.exe (not sure if since forever or if the path
|
|
220 |
changed).
|
|
221 |
That's what msidump shows:
|
|
222 |
|
|
223 |
ffidenci@cat ~/src/upstream/virt-viewer/dump $ grep "fil808B4A5BAB4ACD727D3823632E798743" File.idt
|
|
224 |
ffidenci@cat ~/src/upstream/virt-viewer/dump $ grep "fil808B4A5BAB4ACD727D3823632E798743" Registry.idt
|
|
225 |
reg29E29C5608128A0192FB9DC3C18562A6 0
|
|
226 |
VirtViewer.vvfile\shell\open\command
|
|
227 |
"[#fil808B4A5BAB4ACD727D3823632E798743]" "%1" CProgIds
|
|
228 |
ffidenci@cat ~/src/upstream/virt-viewer/dump $ grep "remote-viewer.exe" File.idt
|
|
229 |
fil610DF9E49759B1DEC646290195F96F8A cmp7677A8696936707272DCA43B1BF26760
|
|
230 |
remote-viewer.exe 855735 512 837
|
|
231 |
|
|
232 |
So, let's use the correct id (fil610DF9E49759B1DEC646290195F96F8A) from
|
|
233 |
now on.
|
|
234 |
|
|
235 |
Related: rhbz#1146016
|
|
236 |
|
|
237 |
2015-10-06 Fabiano Fidêncio <fidencio@redhat.com>
|
|
238 |
|
|
239 |
msi: {virt,remote}-viewer depends on libxml2
|
|
240 |
Currently libxml2 is pulled as an indirect dependency when virt-viewer
|
|
241 |
is built with support to ovirt or libvirt (pulled by rest or libvirt,
|
|
242 |
respectively). However, {virt,remote}-viewer itself depends on libxml2
|
|
243 |
and not having it as an explicit dependency will cause errors on opening
|
|
244 |
remote-viewer when it is built without support to ovirt/libvirt.
|
|
245 |
|
|
246 |
2015-09-10 Jonathon Jongsma <jjongsma@redhat.com>
|
|
247 |
|
|
248 |
Add new functions to enable/disable a display
|
|
249 |
Previously, there was a single function for controlling the enabled
|
|
250 |
state of a display: virt_viewer_display_set_enabled(). Unfortunately,
|
|
251 |
this function is used for two slightly different things:
|
|
252 |
|
|
253 |
A. It informs the local display widget that the display has become
|
|
254 |
disabled or enabled on the server. In other words, it tries to
|
|
255 |
synchronize the 'enabled' state of the local widget with the actual
|
|
256 |
state of the remote display.
|
|
257 |
|
|
258 |
OR
|
|
259 |
|
|
260 |
B. It tries to actively enable a currently-disabled display (or vice
|
|
261 |
versa) due to some action by the user in the client application.
|
|
262 |
This causes the client to send a new configuration down to the
|
|
263 |
server. In other words, it tries to change the state of the remote
|
|
264 |
display.
|
|
265 |
|
|
266 |
There is some conflict between these two scenarios. If the change is due
|
|
267 |
to a notification from the server, there is no need to send a new
|
|
268 |
configuration back down to the server, so this results in unnecessary
|
|
269 |
monitor configuration messages and can in fact cause issues that are a
|
|
270 |
little bit hard to track down. Because of this, I decided that it was
|
|
271 |
really necessary to have two separate functions for these two different
|
|
272 |
scenarios. so the existing _set_enabled() function will be used for
|
|
273 |
scenario A mentioned above. I added two new
|
|
274 |
functions (_enable() and _disable()) that are used to send new
|
|
275 |
configurations down to the server.
|
|
276 |
|
|
277 |
2015-09-08 Jonathon Jongsma <jjongsma@redhat.com>
|
|
278 |
|
|
279 |
Set enabled status of all displays when we get a monitor update
|
|
280 |
Previously, when we received a new monitors update from the server, we
|
|
281 |
only called virt_viewer_display_set_enabled() for the displays that were
|
|
282 |
enabled. We simply assumed that those that were not enabled were already
|
|
283 |
set to disabled. This assumption is currently valid, but I have some
|
|
284 |
changes in the pipeline where this is not true. This change ensures that
|
|
285 |
we update the enabled state of all monitors when we get an updated
|
|
286 |
monitors conifguration.
|
|
287 |
|
|
288 |
Don't emit 'monitor-geometry-changed' for disabled displays
|
|
289 |
When a display widget receives a new size allocation, we generally emit
|
|
290 |
a monitor-geometry-changed signal so that we can reconfigure the
|
|
291 |
displays. But if the widget for a *disabled* display is allocated,
|
|
292 |
there's no reason to send down a new configuration. We don't need to
|
|
293 |
emit this signal. This doesn't currently cause any problems, but I ran
|
|
294 |
into issues while testing some other uncommitted changes.
|
|
295 |
|
|
296 |
2015-08-17 Fabiano Fidêncio <fidencio@redhat.com>
|
|
297 |
|
|
298 |
coverity: result is not floating-point
|
|
299 |
Coverity says:
|
|
300 |
Result is not floating-point (UNINTENDED_INTEGER_DIVISION)
|
|
301 |
interger_division: Dividing integer expressions "preferred->width * 100"
|
|
302 |
and "zoom", and then converting the integer quotient to type double. Any
|
|
303 |
remainder, or fractional part of the quotient, is ignored.
|
|
304 |
|
|
305 |
2015-08-13 Fabiano Fidêncio <fidencio@redhat.com>
|
|
306 |
|
|
307 |
coverity: Copy into fixed sized buffer
|
|
308 |
Coverity says:
|
|
309 |
You might overrun the 108 byte fixed-size string "addr.sun_path" by
|
|
310 |
copying "unixsock" without checking the lenght.
|
|
311 |
Note: This detect has an elevated risk because the source argument is a
|
|
312 |
paramenter of the current function.
|
|
313 |
|
|
314 |
2015-07-29 Pavel Grunt <pgrunt@redhat.com>
|
|
315 |
|
|
316 |
session-spice: Use display id instead of monitor id in debug log
|
|
317 |
Windows guests have monitor id = 0, so the debug log is always the same:
|
|
318 |
"creating spice display (#:0)" for all the displays.
|
|
319 |
|
|
320 |
configure: Use default error message when package is missing
|
|
321 |
To make clear why configure failed - e.g.:
|
|
322 |
Package requirements (spice-client-gtk-2.0 >= 0.28) were not met
|
|
323 |
Requested 'spice-client-gtk-2.0 >= 0.28' but version of spice-client-gtk-2.0 is 0.25
|
|
324 |
instead of
|
|
325 |
spice-gtk requested but not found
|
|
326 |
|
|
327 |
Related:
|
|
328 |
https://bugzilla.redhat.com/show_bug.cgi?id=1214577
|
|
329 |
|
|
330 |
configure: Enable spice-gtk when have all necessary spice packages
|
|
331 |
When neither --with-spice-gtk=yes nor --with-spice-gtk=no is used,
|
|
332 |
spice-gtk is supposed to be automatically enabled/disabled depending
|
|
333 |
on its availability. However, this is not perfectly working as once
|
|
334 |
spice-gtk has been detected as available, configure will fail if
|
|
335 |
spice-protocol or spice-controller are too old. In this case, spice-gtk
|
|
336 |
support should just be disabled rather than configure failing
|
|
337 |
|
|
338 |
virt-viewer-window: Change zoom with respect to real zoom
|
|
339 |
The zoom can be changed by resizing the window (VNC / Spice without
|
|
340 |
the agent). It is necessary to recalculate the zoom level before
|
|
341 |
changing it, otherwise zoom operations will not work correctly.
|
|
342 |
|
|
343 |
Resolves:
|
|
344 |
https://bugs.freedesktop.org/show_bug.cgi?id=90582
|
|
345 |
|
|
346 |
Show window after its default and preferred sizes are set
|
|
347 |
Under some circumstances (Xfce desktop environment, gtk3 client, RHEL6
|
|
348 |
guest having two monitors running locally) it is possible to create
|
|
349 |
a loop of resizing windows. It is caused by size request like 1x1 sent
|
|
350 |
to the guest. These request are created because _window_queue_resize()
|
|
351 |
is called when the window is being shown.
|
|
352 |
To avoid the problem, call gtk_widget_show() after its preferred and
|
|
353 |
default sizes are set.
|
|
354 |
|
|
355 |
Resolves:
|
|
356 |
https://bugs.freedesktop.org/show_bug.cgi?id=91405
|
|
357 |
|
|
358 |
2015-07-22 Fabiano Fidêncio <fidencio@redhat.com>
|
|
359 |
|
|
360 |
events: don't leak GIOChannel when destroying IO handle
|
|
361 |
virt_viewer_events_add_handle() creates a GIOChannel in order to watch the
|
|
362 |
fd it was given for changes.
|
|
363 |
virt_viewer_events_remove_handle() is freeing all the resources allocated by
|
|
364 |
virt_viewer_events_add_handle() except for this GIOChannel. This commit adds
|
|
365 |
the needed g_io_channel_unref() call to virt_viewer_events_remove_handle()
|
|
366 |
|
|
367 |
Based on commit 8e95b8d25a3eee6316aff2f83b0c449aaf10984a from
|
|
368 |
libvirt-glib.
|
|
369 |
Original author: Christophe Fergeau <cfergeau@redhat.com>
|
|
370 |
|
|
371 |
Related to: rhbz#1243228
|
|
372 |
|
|
373 |
events: allow to remove disabled timers and handles
|
|
374 |
Trying to remove a disabled timer or handle will cause
|
|
375 |
virt_viewer_events_remove_{handle,timeout}() to return an error
|
|
376 |
rather than removing it.
|
|
377 |
|
|
378 |
Based on commit 79699d73e6e1b7218e3bd8349d176752f86128b9 from
|
|
379 |
libvirt-glib.
|
|
380 |
Original author: Christophe Fergeau <cfergeau@redhat.com>
|
|
381 |
|
|
382 |
Related to: rhbz#1243228
|
|
383 |
|
|
384 |
events: don't create glib IO watch for disabled handles
|
|
385 |
It's possible to create a handle to watch for file events which do not
|
|
386 |
watch for any file event. Such a handle can be enabled later with
|
|
387 |
virt_viewer_events_update_handle() by setting some conditions to watch for.
|
|
388 |
|
|
389 |
When a handle is disabled after it has been created,
|
|
390 |
virt_viewer_events_update_handle() makes sure it removes the corresponding
|
|
391 |
virt_viewer_events_handle::source IO watch if any was set.
|
|
392 |
virt_viewer_events_add_handle() will always create a
|
|
393 |
virt_viewer_events_handle::source IO watch even if the handle is not
|
|
394 |
watching for any events.
|
|
395 |
|
|
396 |
This commit makes consistent by only creating a watch with g_io_add_watch()
|
|
397 |
when the caller asked to watch for some events.
|
|
398 |
|
|
399 |
Based on commit d71c143936a35cd6c3f23ae0cbf7f3215d944051 from
|
|
400 |
libvirt-glib.
|
|
401 |
Original author: Christophe Fergeau <cfergeau@redhat.com>
|
|
402 |
|
|
403 |
Related to: rhbz#1243228
|
|
404 |
|
|
405 |
events: don't hold events lock when dispatching free callbacks
|
|
406 |
The _event_timeout_remove and _event_handle_remove methods
|
|
407 |
were holding onto the global lock when invoking the free
|
|
408 |
callback. This is a violation of the libvirt events API
|
|
409 |
contract which requires free callbacks to be invoked in
|
|
410 |
a re-entrant safe context.
|
|
411 |
|
|
412 |
Based on commit dd17c3cc587c73a8c915238f9d9a3e200e89c93f from
|
|
413 |
libvirt-glib.
|
|
414 |
Original author: Daniel P. Berrange <berrange@redhat.com>
|
|
415 |
|
|
416 |
Related to: rhbz#1243228
|
|
417 |
|
|
418 |
events: don't reschedule deleted timeouts/watches
|
|
419 |
The deletion of libvirt timeouts/watches is done in 2 steps:
|
|
420 |
- the first step is synchronous and unregisters the timeout/watch
|
|
421 |
from glib mainloop
|
|
422 |
- the second step is asynchronous and triggered from the first step.
|
|
423 |
It releases the memory used for bookkeeping for the timeout/watch
|
|
424 |
being deleted
|
|
425 |
|
|
426 |
This is done this way to avoid some possible deadlocks when
|
|
427 |
reentering the sync callback while freeing the memory associated
|
|
428 |
with the timeout/watch.
|
|
429 |
|
|
430 |
However, it's possible to call gvir_event_update_handle after
|
|
431 |
gvir_event_remove_handle but before _event_handle_remove does
|
|
432 |
the final cleanup. When this happen, _update_handle will reregister
|
|
433 |
the handle with glib mainloop, and bad things will happen when
|
|
434 |
a glib callback is triggered for this event after _event_handle_remove
|
|
435 |
has freed the memory associated with this handle watch.
|
|
436 |
|
|
437 |
This commit marks the timeouts and watches as removed in the
|
|
438 |
synchronous _remove callback and makes sure removed timeouts/watches
|
|
439 |
are ignored in _update callbacks.
|
|
440 |
|
|
441 |
Based on commit 3e73e0cee977fb20dd29db3ccfe85b00cc386c43 from
|
|
442 |
libvirt-glib.
|
|
443 |
Original author: Christophe Fergeau <cfergeau@redhat.com>
|
|
444 |
|
|
445 |
Related to: rhbz#1243228
|
|
446 |
|
|
447 |
events: protect 'handles' and 'timeouts' against concurrent accesses
|
|
448 |
Timeout and watch deletion is done from an idle callback. However,
|
|
449 |
we cannot assume that all libvirt event calls (the callbacks passed
|
|
450 |
to virEventRegisterImpl) will be done from the mainloop thread. It's
|
|
451 |
thus possible that a libvirt event call will run a thread while
|
|
452 |
one of the idle deletion callbacks runs.
|
|
453 |
Given that the 'handles' and 'timeouts' arrays are shared among all
|
|
454 |
threads, we need to make sure we hold the 'eventlock' mutex before
|
|
455 |
modifying them.
|
|
456 |
|
|
457 |
Based on commit 924178f6b35735458b37d30303fe7bc753dde0b1 from
|
|
458 |
libvirt-glib.
|
|
459 |
Original author: Christophe Fergeau <cfergeau@redhat.com>
|
|
460 |
|
|
461 |
Related to: rhbz#1243228
|
|
462 |
|
|
463 |
events: remove unused virt_viewer_events_find_{handle,timeout} arg
|
|
464 |
Based on commit 1fb34633ef3b318ea678b775d5e47debc98d2184 from
|
|
465 |
libvirt-glib.
|
|
466 |
Original author: Christophe Fergeau <cfergeau@redhat.com>
|
|
467 |
|
|
468 |
Related to: rhbz#1243228
|
|
469 |
|
|
470 |
events: allow zero timeouts for timer
|
|
471 |
In libvirt, it's perfectly possible and widely used to have disabled
|
|
472 |
timers (timeout=-1) and fire them up 'randomly' with timeout=0.
|
|
473 |
However, with current mapping into glib mainloop it's not possible
|
|
474 |
and causing troubles.
|
|
475 |
|
|
476 |
Based on commit a40a1732e0d53fcc44b8d348cec97152dafd2b88 from
|
|
477 |
libvirt-glib.
|
|
478 |
Original author: Michal Privoznik <mprivozn@redhat.com>
|
|
479 |
|
|
480 |
Related to: rhbz#1243228
|
|
481 |
|
|
482 |
glib-compat: Use g_new0(GMutex, 1) if GLib >= 2.31
|
|
483 |
Since 2.31, g_mutex_new() is deprecated.
|
|
484 |
|
|
485 |
Based on commit 2dc7476d32a9e158e688486e8f184c719c53bb4c from
|
|
486 |
libvirt-glib.
|
|
487 |
Original author: Daniel P. Berrange <berrange@redhat.com>
|
|
488 |
|
|
489 |
Related to: rhbz#1243228
|
|
490 |
|
|
491 |
glib-compat: group definitions and functions
|
|
492 |
There is no need to have more than one glib version checking for the
|
|
493 |
same version, in the same file. Let's just group them all.
|
|
494 |
|
|
495 |
events: remove timeout and handle from arrays
|
|
496 |
Otherwise, it will crash next time it goes find()
|
|
497 |
|
|
498 |
Backtrace:
|
|
499 |
(gdb) where
|
|
500 |
#0 0x00007efcae715095 in g_io_create_watch () from
|
|
501 |
/lib64/libglib-2.0.so.0
|
|
502 |
#1 0x00007efcae7150ef in g_io_add_watch_full () from
|
|
503 |
/lib64/libglib-2.0.so.0
|
|
504 |
#2 0x00000000004275ba in virt_viewer_events_update_handle
|
|
505 |
(watch=<optimized out>, events=1) at
|
|
506 |
virt-viewer-events.c:158
|
|
507 |
#3 0x00007efcb1a62dce in virNetSocketUpdateIOCallback (sock=0x1e75c00,
|
|
508 |
events=1) at rpc/virnetsocket.c:1981
|
|
509 |
#4 0x00007efcb1a50113 in virNetClientIOUpdateCallback
|
|
510 |
(client=<optimized out>, enableCallback=<optimized out>) at
|
|
511 |
rpc/virnetclient.c:1639
|
|
512 |
#5 0x00007efcb1a50f82 in virNetClientIO (thiscall=0x20e0170,
|
|
513 |
client=0x1f2e060) at rpc/virnetclient.c:1793
|
|
514 |
#6 virNetClientSendInternal (client=client@entry=0x1f2e060,
|
|
515 |
msg=msg@entry=0x20e0100,
|
|
516 |
expectReply=expectReply@entry=false, nonBlock=nonBlock@entry=true) at
|
|
517 |
rpc/virnetclient.c:1962
|
|
518 |
#7 0x00007efcb1a52413 in virNetClientSendNonBlock (client=0x1f2e060,
|
|
519 |
msg=msg@entry=0x20e0100) at
|
|
520 |
rpc/virnetclient.c:2036
|
|
521 |
#8 0x00007efcb1a5243d in virNetClientKeepAliveSendCB (opaque=<optimized
|
|
522 |
out>, msg=0x20e0100) at
|
|
523 |
rpc/virnetclient.c:293
|
|
524 |
#9 0x00007efcb1a5ba02 in virKeepAliveTimer (timer=<optimized out>,
|
|
525 |
opaque=0x20d3d00) at rpc/virkeepalive.c:176
|
|
526 |
#10 0x00000000004272e9 in virt_viewer_events_dispatch_timeout
|
|
527 |
(opaque=0x1e6cd30) at virt-viewer-events.c:233
|
|
528 |
#11 0x00007efcae7231b3 in g_timeout_dispatch () from
|
|
529 |
/lib64/libglib-2.0.so.0
|
|
530 |
#12 0x00007efcae72279a in g_main_context_dispatch () from
|
|
531 |
/lib64/libglib-2.0.so.0
|
|
532 |
#13 0x00007efcae722ae8 in g_main_context_iterate.isra.24 () from
|
|
533 |
/lib64/libglib-2.0.so.0
|
|
534 |
#14 0x00007efcae722dba in g_main_loop_run () from
|
|
535 |
/lib64/libglib-2.0.so.0
|
|
536 |
#15 0x00007efcb054a045 in gtk_main () from /lib64/libgtk-3.so.0
|
|
537 |
#16 0x0000000000410a9c in main (argc=1, argv=0x7ffde58a7978) at
|
|
538 |
virt-viewer-main.c:124
|
|
539 |
|
|
540 |
Based on commit cff5f1c46f4b9661e112b85159fb58ae473a9a89 from
|
|
541 |
libvirt-glib.
|
|
542 |
Original author: Marc-André Lureau <marcandre.lureau@redhat.com>
|
|
543 |
|
|
544 |
Related to: rhbz#1243228
|
|
545 |
|
|
546 |
events: register event using GOnce to avoid multiple initializations
|
|
547 |
Based on commit 8f8d9ce5238dbcbce40aa04ba55b8c55f97c79c0 from
|
|
548 |
libvirt-glib.
|
|
549 |
Original author: Marc-André Lureau <marcandre.lureau@redhat.com>
|
|
550 |
|
|
551 |
Related to: rhbz#1243228
|
|
552 |
|
|
553 |
events: ensure event callbacks are threadsafe
|
|
554 |
Take a global lock whenever changing any event callbacks to ensure
|
|
555 |
thread safety.
|
|
556 |
|
|
557 |
Based on commit f1fe67da2dac6a249f796535b8dbd155d5741ad7 from
|
|
558 |
libvirt-glib.
|
|
559 |
Original author: Daniel P. Berrange <berrange@redhat.com>
|
|
560 |
|
|
561 |
Related to: rhbz#1243228
|
|
562 |
|
|
563 |
2015-07-22 Pavel Grunt <pgrunt@redhat.com>
|
|
564 |
|
|
565 |
virt-viewer-window: Allow to resize window to any size
|
|
566 |
The function virt_viewer_window_resize restricts window to be bigger
|
|
567 |
than a client's screen. It avoids extending the window to more client's
|
|
568 |
screens, it causes changes of the zoom level if the guest does not fit
|
|
569 |
into a screen.
|
|
570 |
|
|
571 |
Lets remove virt_viewer_window_resize (its behaviour was introduced
|
|
572 |
by the commit 6acb3856b6d8007752388f22f97aa8aaffdb7a5e). It will let
|
|
573 |
the window managers to handle resizing of the window.
|
|
574 |
|
|
575 |
Resolves:
|
|
576 |
https://bugzilla.redhat.com/show_bug.cgi?id=1221501
|
|
577 |
https://bugzilla.redhat.com/show_bug.cgi?id=1205804
|
|
578 |
|
|
579 |
Remove unnecessary parameter from virt_viewer_window_resize()
|
|
580 |
Since c3cbdef888cc823e92140027d38378f40ccd4174 virt_viewer_window_resize
|
|
581 |
is always called with keep_win_size = FALSE.
|
|
582 |
|
|
583 |
2015-07-09 Pavel Hrdina <phrdina@redhat.com>
|
|
584 |
|
|
585 |
virt-viewer: set keepAlive on libvirt connection
|
|
586 |
Setting the keepAlive on libvirt connection is needed in order to
|
|
587 |
receive the CloseCallback event.
|
|
588 |
|
|
589 |
Resolves: rhbz#1164052
|
|
590 |
|
|
591 |
2015-06-30 Jonathon Jongsma <jjongsma@redhat.com>
|
|
592 |
|
|
593 |
Build an intermediate convenience library
|
|
594 |
Instead of building every single source file twice (once for
|
|
595 |
virt-viewer, and once for remote-viewer), just build them into a
|
|
596 |
temporary library and link the final executables against that.
|
|
597 |
|
|
598 |
The one possible drawback to this approach is that we now use the same
|
|
599 |
log domain for both executables: 'virt-viewer'. Previously, the
|
|
600 |
remote-viewer executable used 'remote-viewer' for its log domain.
|
|
601 |
|
|
602 |
Build: put one file on a line
|
|
603 |
For easier maintenance, put a single source file per-line in the
|
|
604 |
makefile
|
|
605 |
|
|
606 |
Remove spice-controller flags from virt-viewer build
|
|
607 |
Virt-viewer does not use spice-controller, only remote-viewer does. So
|
|
608 |
there's no need to ad SPICE_CONTROLLER_CFLAGS to the virt-viewer build.
|
|
609 |
|
|
610 |
2015-06-24 Fabiano Fidêncio <fidencio@redhat.com>
|
|
611 |
|
|
612 |
mingw,spec: Fix mingw-gstreamer1-plugins-bad-free name
|
|
613 |
The package was created with a wrong name (mingw-gstreamer1-plugins-bad)
|
|
614 |
and then fixed (mingw-gstreamer1-plugins-bad-free) for f22 and newer.
|
|
615 |
|
|
616 |
2015-06-23 Fabiano Fidêncio <fidencio@redhat.com>
|
|
617 |
|
|
618 |
msi: drop gtk2 support
|
|
619 |
As virt-viewer builds for Windows are using GTK3 nowadays, we can easily
|
|
620 |
drop GTK2 support and avoid maintenance effort in something that is not
|
|
621 |
used/tested anymore.
|
|
622 |
|
|
623 |
nsis: drop gtk2 support
|
|
624 |
As virt-viewer builds for Windows are using GTK3 nowadays, we can easily
|
|
625 |
drop GTK2 support and avoid maintenance effort in something that is not
|
|
626 |
used/tested anymore.
|
|
627 |
|
|
628 |
mingw-spec: Update msitools dependency
|
|
629 |
The new msitools release includes the necessaries changes for fixing
|
|
630 |
mingw-virt-viewer build (on fedora22).
|
|
631 |
|
|
632 |
These fixes are:
|
|
633 |
- an updated libvirt.wxi, removing storageencryption.rng file
|
|
634 |
- a new included libeproxy.wxi, a new dep for gtk3 since its 3.15.3
|
|
635 |
version.
|
|
636 |
|
|
637 |
nsis: add libepoxy-0.dll (a new gtk3 dependency)
|
|
638 |
The new dependecy was introduced in gtk+ 3.15.3.
|
|
639 |
|
|
640 |
2015-06-19 Jonathon Jongsma <jjongsma@redhat.com>
|
|
641 |
|
|
642 |
Don't wait for reconnect when user cancels auth
|
|
643 |
When starting virt-viewer with the --reconnect switch to a guest that
|
|
644 |
has a password, if the user cancels the authentication dialog (e.g.
|
|
645 |
pressing 'Esc'), the window will display "Waiting for guest domain to
|
|
646 |
restart". Obviously, the domain will never restart because it's already
|
|
647 |
running.
|
|
648 |
|
|
649 |
After this fix, the application will simply exit when the user cancels
|
|
650 |
authentication, even if the --reconnect switch is used.
|
|
651 |
|
|
652 |
Automatically retry auth failures for VNC
|
|
653 |
There's no reason that we need to ask if the user wants to retry auth
|
|
654 |
failures for VNC sessions but not ask for spice sessions. If the user
|
|
655 |
doesn't want to retry, she can simply click 'cancel' when the auth
|
|
656 |
dialog pops up, just as they do with spice.
|
|
657 |
|
|
658 |
VNC session: emit session-cancelled signal
|
|
659 |
When the user cancells an authentication dialog (e.g. by pressing 'Esc',
|
|
660 |
emit the session-cancelled signal to be consistent with the spice
|
|
661 |
session implementation.
|
|
662 |
|
|
663 |
Rename session-auth-failed to session-auth-unsupported
|
|
664 |
Now that VNC and Spice both return the same signal on normal
|
|
665 |
authentication failures ('session-auth-refused'), the
|
|
666 |
'session-auth-failed' signal is too confusingly similar. Rename it to
|
|
667 |
-unsupported to make it obvious that it's a different type of
|
|
668 |
(unrecoverable) error.
|
|
669 |
|
|
670 |
Fix inconsistencies in session auth failures
|
|
671 |
The spice session implementation can retry authentication on its own,
|
|
672 |
whereas the vnc session needs to tear down the session and re-connect in
|
|
673 |
order to retry a failed authentication. This results in the following
|
|
674 |
inconsistent behavior:
|
|
675 |
|
|
676 |
VNC session:
|
|
677 |
- emits a 'session-auth-failed' signal when the client does not support
|
|
678 |
a particular authentication type (i.e.: a non-recoverable error)
|
|
679 |
Spice session:
|
|
680 |
- emits a 'session-auth-failed' signal when user enters an incorrect
|
|
681 |
password, and immediately retries auth internally
|
|
682 |
|
|
683 |
VNC session:
|
|
684 |
- emits a 'session-auth-refused' error when user enters an invalid
|
|
685 |
password (i.e.: a recoverable error)
|
|
686 |
Spice Session:
|
|
687 |
- never emits a 'session-auth-refused' signal
|
|
688 |
|
|
689 |
Because of these differences, the VirtViewerApp code to handle authentication
|
|
690 |
failures is a bit confusing and difficult to maintain. To fix this issue, make
|
|
691 |
both the spice and VNC sessions emit the same signal when similar errors occur.
|
|
692 |
We use the new session API added in the last commit to determine whether the
|
|
693 |
session supports automatic retries so we know how to handle the signal.
|
|
694 |
|
|
695 |
Session: add vfunc to check auth retry capability
|
|
696 |
The spice session implementation can retry authentication on its own,
|
|
697 |
whereas the vnc session needs to tear down the session and re-connect in
|
|
698 |
order to retry a failed authentication. Add API to determine this so
|
|
699 |
that we can clean up some code related to authentication failures.
|
|
700 |
|
|
701 |
Move SpiceSession setup to create_spice_session()
|
|
702 |
Most of the setup (connecting to signals, etc) for the SpiceSession was
|
|
703 |
done in create_spice_session(), but some was done afterwards in
|
|
704 |
virt_viewer_session_spice_new(). Consolidate all session configuration
|
|
705 |
in one place.
|
|
706 |
|
|
707 |
In addition to making it easier to maintain, create_spice_session() is
|
|
708 |
also called in virt_viewer_session_spice_close(). which results in a
|
|
709 |
spice session that is configured slightly differently than the first
|
|
710 |
session created in _new(). Consolidating everything in
|
|
711 |
create_spice_session() avoids that inconsistency.
|
|
712 |
|
|
713 |
2015-06-19 Daniel P. Berrange <berrange@redhat.com>
|
|
714 |
|
|
715 |
Add config.h include to remote-viewer-connect.c file
|
|
716 |
|
|
717 |
2015-06-16 Lukas Venhoda <lvenhoda@redhat.com>
|
|
718 |
|
|
719 |
remote-viewer-connect: Address entry is now required
|
|
720 |
Connect button is now non-sensitive when address entry is empty.
|
|
721 |
Pressing enter will now also NOT connect, when address entry is empty.
|
|
722 |
|
|
723 |
remote-viewer-connect: Fixed reselecting in recent chooser
|
|
724 |
Recent chooser didn't unselect on loosing focus.
|
|
725 |
Selecting recent connection, then modifying address in entry and
|
|
726 |
doubleclicking on the same recent connection caused remote-viewer to
|
|
727 |
connect to address in the entry,
|
|
728 |
|
|
729 |
Recent chooser now unselects on loosing focus, forcing to re-select when
|
|
730 |
doubleclicking the recent connection, which will now properly set the
|
|
731 |
address to connect to.
|
|
732 |
|
|
733 |
remote-viewer-connect: Changed hardcoded UI into XML
|
|
734 |
Hardcoded UI removed in favor of XML.
|
|
735 |
Added the new XML file for translation.
|
|
736 |
|
|
737 |
remote-viewer-connect: Changed dialog into a window
|
|
738 |
Changed connect dialog from GtkDialog to a GtkWindow.
|
|
739 |
Added the necessary signals and buttons, to keep the
|
|
740 |
behaviour of a dialog. (ESC to close, ENTER to submit)
|
|
741 |
|
|
742 |
remote-viewer-connect: Check if uri is NULL
|
|
743 |
URI should be NULL before passing it to remote_viewer_connect_dialog.
|
|
744 |
|
|
745 |
remote-viewer-connect: Changed response to gboolean
|
|
746 |
remote_viewer_connect_dialog now returns TRUE and FALSE, instead of 0 and -1.
|
|
747 |
|
|
748 |
Added a doxygen style comment to document this in code also.
|
|
749 |
|
|
750 |
remote-viewer: Connect dialog moved to its own file
|
|
751 |
Connect dialog from remote-viewer is now in its own file.
|
|
752 |
Most other dialog also have their own files.
|
|
753 |
This will make changing the dialog into a window easier.
|
|
754 |
|
|
755 |
Renamed connect_dialog to remote_viewer_connect_dialog.
|
|
756 |
|
|
757 |
2015-06-16 Pavel Grunt <pgrunt@redhat.com>
|
|
758 |
|
|
759 |
configure: Require spice-protocol 0.12.7
|
|
760 |
We are already using SPICE_CHANNEL_WEBDAV from spice/enums.h
|
|
761 |
|
|
762 |
2015-06-15 Christophe Fergeau <cfergeau@redhat.com>
|
|
763 |
|
|
764 |
Enable hotkeys after setting them in virt_viewer_app_set_hotkeys
|
|
765 |
Enabling hotkeys will trigger a rebuild of the 'send keys' menu
|
|
766 |
containing the new hotkeys. virt_viewer_app_set_hotkeys() was clearing
|
|
767 |
and then enabling the hotkeys before parsing the string containing the
|
|
768 |
new hotkeys. This was causing these hotkeys to be missing from the 'Send
|
|
769 |
keys' menu when they are set through the spice controller because the
|
|
770 |
'send keys' menu was rebuilt before the new hotkeys are set.
|
|
771 |
|
|
772 |
Resolves: rhbz#1055600
|
|
773 |
|
|
774 |
2015-06-11 Fabiano Fidêncio <fidencio@redhat.com>
|
|
775 |
|
|
776 |
nsis: Ship libwinpthread even without libvirt support
|
|
777 |
Without libwinpthread, remote-viewer complains about missing this dll,
|
|
778 |
when built using --without-libvirt
|
|
779 |
|
|
780 |
2015-06-10 Sandy Stutsman <sstutsma@redhat.com>
|
|
781 |
|
|
782 |
Add InstallScope="perMachine" to virt-viewer.wxs.in
|
|
783 |
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1146016
|
|
784 |
Without this parameter the installer will place the start menu icon in the
|
|
785 |
Admin users path rather than the 'AllUsers'. Unprivileged users are unable
|
|
786 |
to use the menu to start the remote-viewer.
|
|
787 |
|
|
788 |
N.B. Because previous installations mixed Users and PerMachine (AllUsers)
|
|
789 |
paths, this installation will *NOT* properly upgrade them. They must be
|
|
790 |
manually uninstalled first.
|
|
791 |
|
|
792 |
2015-06-10 Daniel P. Berrange <berrange@redhat.com>
|
|
793 |
|
|
794 |
Add missing config.h header file
|
|
795 |
|
|
796 |
2015-06-09 Christophe Fergeau <cfergeau@redhat.com>
|
|
797 |
|
|
798 |
vv-file: Show 'newer-version-url' when version check fails
|
|
799 |
We currently display a generic error message when the current binary is
|
|
800 |
older than the minimum version specified in the vv file. The previous
|
|
801 |
commit added a 'newer-version-url' field to these .vv file. This commit
|
|
802 |
adds that URL to the error message if it's set.
|
|
803 |
|
|
804 |
vv-file: Add 'newer-version-url' key to .vv files
|
|
805 |
If set, this URL will be displayed when one of the version checks
|
|
806 |
('version' of 'versions' key fail). This URL should contain explanations
|
|
807 |
about how to get an updated remote-viewer version.
|
|
808 |
|
|
809 |
test: Add test case for virt_viewer_compare_buildid
|
|
810 |
|
|
811 |
util: Replace virt_viewer_compare_version with _compare_buildid
|
|
812 |
This allows us to do a more accurate version check if the .vv file
|
|
813 |
producer wants to allow builds newer than x.y-z because they contain an
|
|
814 |
important bug fix.
|
|
815 |
|
|
816 |
vv-file: Use "versions" in min version check
|
|
817 |
This tries to use the list of versions added to .vv files by the
|
|
818 |
previous commit. If remote-viewer was built with an os-id specified, and
|
|
819 |
if it's found in the 'versions' .vv file key, then the version
|
|
820 |
associated with it is used for version checks, otherwise the 'version'
|
|
821 |
field is used if present.
|
|
822 |
|
|
823 |
Show osid in remote-viewer --version
|
|
824 |
|
|
825 |
build-sys: Add --with-osid
|
|
826 |
This new configure flag allows to specify a string ID (eg fedora22,
|
|
827 |
ubuntu10.04, ..) identifying the OS this remote-viewer build will be
|
|
828 |
for. This will be used in combination with the new 'versions' field in
|
|
829 |
.vv files in order to make it possible for the creator of the .vv file
|
|
830 |
to specify which version it expects for the various OSes which may
|
|
831 |
connect.
|
|
832 |
|
|
833 |
vv-file: Add VirtViewerFile::versions
|
|
834 |
Specifying a single minimal version in the .vv file is not enough as
|
|
835 |
the client version will be highly dependent on the OS it's running in.
|
|
836 |
Windows versioning is not the same as linux versioning, Fedora 21 and
|
|
837 |
Fedora 22 may have different release numbers for the same version,
|
|
838 |
and we may want to force a specific minimal release in case of a
|
|
839 |
critical bug fix.
|
|
840 |
|
|
841 |
This commit adds supports for a 'versions' field in .vv files where a
|
|
842 |
list of os-id:version couples can be stored.
|
|
843 |
|
|
844 |
vv-file: Refactor virt_viewer_file_check_min_version
|
|
845 |
Reorganize the code a bit so that it's easier to extend it.
|
|
846 |
|
|
847 |
vv-file: Move version checking code in its own function
|
|
848 |
This moves the version checking code in a
|
|
849 |
virt_viewer_file_check_min_version helper so that it can be
|
|
850 |
reused/extended more easily.
|
|
851 |
|
|
852 |
build-sys: Always prepend '-' to BUILDID
|
|
853 |
This was removed by commit 28a6bd6 as WINDOWS_PRODUCTVERSION
|
|
854 |
needs a buildid without a dash. Apart from this variable,
|
|
855 |
all other uses of buildid/BUILDID in virt-viewer source tree
|
|
856 |
need a dash between the version number and the buildid to avoid getting
|
|
857 |
output like "3.01" instead of "3.0-1"
|
|
858 |
|
|
859 |
Rather than patching every location where BUILDID is used, this commit
|
|
860 |
appends the "-" before substituting/defining BUILDID in configure.ac.
|
|
861 |
This does not modifies the buildid configure.ac variable, this way
|
|
862 |
WINDOWS_PRODUCTVERSION won't get an unwanted '-'.
|
|
863 |
|
|
864 |
build-sys: Don't substitute buildid when it was not set
|
|
865 |
Since it defaults to being 0, we'll get a spurious 0 on remote-viewer
|
|
866 |
--version if we AC_DEFINE/AC_SUBST it when the user did not specify it.
|
|
867 |
|
|
868 |
2015-06-04 Pavel Grunt <pgrunt@redhat.com>
|
|
869 |
|
|
870 |
monitor-mapping: Do not allow to skip a display
|
|
871 |
Skipping a display does not have an effect because displays will be
|
|
872 |
reconfigured and shifted on the guest side anyway.
|
|
873 |
|
|
874 |
these monitor mappings are not valid:
|
|
875 |
'monitor-mapping=1:2;3:1' - display #2 is not specified
|
|
876 |
'monitor-mapping=4:2;2:1' - displays #1, #3 are not specified
|
|
877 |
'monitor-mapping=3:3' - displays #1, #2 are not specified
|
|
878 |
|
|
879 |
2015-06-02 Fabiano Fidêncio <fidencio@redhat.com>
|
|
880 |
|
|
881 |
session-spice: Only update displays geometry if the agent is connected
|
|
882 |
|
|
883 |
2015-05-21 Lukas Venhoda <lvenhoda@redhat.com>
|
|
884 |
|
|
885 |
virt-viewer: Fix choose VM dialog alt-tab in gnome2
|
|
886 |
Choose VM dialog was not visible in taskbar and alt-tab when running on
|
|
887 |
system with gnome2.
|
|
888 |
|
|
889 |
rhbz#1223285
|
|
890 |
|
|
891 |
2015-05-21 Fabiano Fidêncio <fidencio@redhat.com>
|
|
892 |
|
|
893 |
Revert "display-vnc: fix zoom-level set by command line"
|
|
894 |
This reverts commit 68148e1bd1a47ff370c78e2569a57ae0f3d8a400.
|
|
895 |
|
|
896 |
The commit in question was causing a regression about a tiny window
|
|
897 |
being displayed when opening a vnc guest.
|
|
898 |
The issue only happens with the gtk2 version of virt-viewer.
|
|
899 |
|
|
900 |
rhbz#1170071 that was solved by the reverted commit is avoided by
|
|
901 |
the commit c45a30e909656434aa842d48d828ef038ec7364a.
|
|
902 |
|
|
903 |
Resolves: rhbz#1201679
|
|
904 |
|
|
905 |
2015-05-21 Pavel Grunt <pgrunt@redhat.com>
|
|
906 |
|
|
907 |
session-vnc: Set window for display to avoid gtk-vnc v0.3.8 crash
|
|
908 |
The VNC display widget of gtk-vnc v0.3.8 needs a window at the moment
|
|
909 |
it is initialized otherwise it would crash.
|
|
910 |
|
|
911 |
Resolves: rhbz#1196517
|
|
912 |
|
|
913 |
2015-05-21 Lukas Venhoda <lvenhoda@redhat.com>
|
|
914 |
|
|
915 |
virt-viewer-display-vnc: Set uuid when using VNC
|
|
916 |
Notify user, that VNC does not provide uuid.
|
|
917 |
|
|
918 |
Set uuid to string "VNC does not provide guid".
|
|
919 |
This is more informative then just plain "Unknown".
|
|
920 |
User will now know WHY the GUID is unknown, when using remote-viewer.
|
|
921 |
|
|
922 |
virt-viewer-display-vnc: Set guest name when using VNC
|
|
923 |
If it's not already set, set guest name field in virt-viewer-app when using VNC.
|
|
924 |
|
|
925 |
Wait for VNC to be initialized (virt_viewer_display_vnc_initialized()).
|
|
926 |
In this callback get field guest name from app and check whether it
|
|
927 |
was already set before (FE from libvirt).
|
|
928 |
If not, set the guest name to name provided by VNC from
|
|
929 |
vnc_display_get_name().
|
|
930 |
|
|
931 |
This fill fix issue in remote-viewer: Guest name is Unknown when using VNC.
|
|
932 |
|
|
933 |
2015-04-29 Michal Privoznik <mprivozn@redhat.com>
|
|
934 |
|
|
935 |
Fix syntax-check
|
|
936 |
Commit c45a30e9 broke syntax-check:
|
|
937 |
|
|
938 |
trailing_blank
|
|
939 |
src/virt-viewer-window.c:1478:
|
|
940 |
maint.mk: found trailing blank(s)
|
|
941 |
maint.mk:700: recipe for target 'sc_trailing_blank' failed
|
|
942 |
make: *** [sc_trailing_blank] Error 1
|
|
943 |
|
|
944 |
2015-04-22 Pavel Grunt <pgrunt@redhat.com>
|
|
945 |
|
|
946 |
virt-viewer-window: Set initial zoom only once
|
|
947 |
It is not needed to do it more times as it may cause unnecessary resize
|
|
948 |
events especially when leaving the fullscreen mode
|
|
949 |
|
|
950 |
related: rhbz#1206460
|
|
951 |
|
|
952 |
virt-viewer-window: Make sure that minimum zoom level is lower than NORMAL_ZOOM_LEVEL
|
|
953 |
The minimum size of the desktop is 100x100 if the minimum window size
|
|
954 |
is greater than this, the zoom level is greater than NORMAL_ZOOM_LEVEL
|
|
955 |
|
|
956 |
related: rhbz#1206460
|
|
957 |
|
|
958 |
2015-04-22 Lukas Venhoda <lvenhoda@redhat.com>
|
|
959 |
|
|
960 |
virt-viewer: Set toolbar buttons not sensitive when needed
|
|
961 |
File->Screenshot, File->Preferences, View->Zoom and Send keys are now
|
|
962 |
sensitive only while quest is connected.
|
|
963 |
|
|
964 |
Changed behaviour of zoom:
|
|
965 |
|
|
966 |
Previously, zoom could be set while quest wasn't connected. The zoom
|
|
967 |
would then be set on connection. There was no indication of current zoom
|
|
968 |
level while not connected to guest.
|
|
969 |
|
|
970 |
Now, the menu is not sensitive while not connected to guest. Zoom can
|
|
971 |
now be only modified while connected to guest, or from the command line.
|
|
972 |
|
|
973 |
app/window: Set display menu not sensitive when needed
|
|
974 |
Displays menu must be sensitive only when at least one display is
|
|
975 |
enabled.
|
|
976 |
|
|
977 |
2015-04-22 Fabiano Fidêncio <fidencio@redhat.com>
|
|
978 |
|
|
979 |
cosmetic: move the "break" to inside the {} block
|
|
980 |
|
|
981 |
spice-session: use the error message, when available, on _channel_destroy()
|
|
982 |
|
|
983 |
session-spice: Destroy the channel instead of emit a "session-disconnect" signal
|
|
984 |
Whenever we reach these branches, we will abort or have to create a new
|
|
985 |
spice session (from the dialog showed to the user). So, destroying the
|
|
986 |
channel on these situations seems sane enough.
|
|
987 |
It also avoids an error dialog to be popped out twice with (basically)
|
|
988 |
the same information.
|
|
989 |
|
|
990 |
session-spice: Do not use _UNUSED for used attributes
|
|
991 |
channel attribute is actually used for error treatment
|
|
992 |
|
|
993 |
display: remove useless identation level
|
|
994 |
|
|
995 |
2015-04-15 Jonathon Jongsma <jjongsma@redhat.com>
|
|
996 |
|
|
997 |
SessionSpice: Protect against unreffing window twice
|
|
998 |
In theory, the dispose method can be called multiple times, so any
|
|
999 |
member variables that are unreffed should be set to NULL so that we
|
|
1000 |
don't accidentally unref them multiple times.
|
|
1001 |
|
|
1002 |
2015-04-15 Christophe Fergeau <cfergeau@redhat.com>
|
|
1003 |
|
|
1004 |
build-sys: Ship mingw-virt-viewer.spec in tarballs
|
|
1005 |
virt-viewer.spec is already shipped in tarballs, it's convenient to have
|
|
1006 |
a pregenerated mingw-virt-viewer.spec in there as well.
|
|
1007 |
|
|
1008 |
2015-04-14 Pavel Grunt <pgrunt@redhat.com>
|
|
1009 |
|
|
1010 |
virt-viewer-main: '--wait' should not be used without domain name
|
|
1011 |
Commit a830275344c88aef12166661b68ea2b4429c7212 required the domain
|
|
1012 |
name to be placed just after the '--wait' option. It broke the
|
|
1013 |
command line api, because running 'virt-viewer $vm --wait' was considered
|
|
1014 |
as the error.
|
|
1015 |
|
|
1016 |
This patch rather checks whether the domain name was specified.
|
|
1017 |
|
|
1018 |
Related: rhbz#1209398, rhbz#1211573
|
|
1019 |
|
|
1020 |
Revert "virt-viewer-main: Require domain name as argument for '--wait'"
|
|
1021 |
This reverts commit a830275344c88aef12166661b68ea2b4429c7212.
|
|
1022 |
|
|
1023 |
Commit a830275344c88aef12166661b68ea2b4429c7212 required the domain
|
|
1024 |
name to be placed just after the '--wait' option. It broke the
|
|
1025 |
command line api, because running 'virt-viewer $vm --wait' was considered
|
|
1026 |
as the error.
|
|
1027 |
|
|
1028 |
Related: rhbz#1209398, rhbz#1211573
|
|
1029 |
|
|
1030 |
Revert "man: document that '--wait' requires domain as parameter"
|
|
1031 |
This reverts commit 9ba2d28a0f35b69befd26d7c122bbe4cd626422f.
|
|
1032 |
|
|
1033 |
Commit a830275344c88aef12166661b68ea2b4429c7212 required the domain
|
|
1034 |
name to be placed just after the '--wait' option. It broke the
|
|
1035 |
command line api, because running 'virt-viewer $vm --wait' was considered
|
|
1036 |
as the error.
|
|
1037 |
|
|
1038 |
Related: rhbz#1209398, rhbz#1211573
|
|
1039 |
|
|
1040 |
Revert "virt-viewer-main: exit when domain names doesn't match"
|
|
1041 |
This reverts commit 10264d0d1ecbd67d3e59e3a1a3032936b0635eda.
|
|
1042 |
|
|
1043 |
Commit a830275344c88aef12166661b68ea2b4429c7212 required the domain
|
|
1044 |
name to be placed just after the '--wait' option. It broke the
|
|
1045 |
command line api, because running 'virt-viewer $vm --wait' was considered
|
|
1046 |
as the error.
|
|
1047 |
|
|
1048 |
Related: rhbz#1209398, rhbz#1211573
|
|
1049 |
|
|
1050 |
virt-viewer-main: exit when domain names doesn't match
|
|
1051 |
Since the domain name is required as a parameter for the '--wait'
|
|
1052 |
option (commit a830275344c88aef12166661b68ea2b4429c7212 ), it is
|
|
1053 |
neccessary to check whether all domains names are the same. Otherwise
|
|
1054 |
it wouldn't be clear which name should be used.
|
|
1055 |
|
|
1056 |
related: rhbz#1211573
|
|
1057 |
|
|
1058 |
man: document that '--wait' requires domain as parameter
|
|
1059 |
related: rhbz#1211573
|
|
1060 |
|
|
1061 |
man: document usage of domain name as optional
|
|
1062 |
related: rhbz#1211573
|
|
1063 |
|
|
1064 |
ovirt: Allow to cancel authentication without showing error dialog
|
|
1065 |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1201604
|
|
1066 |
|
|
1067 |
2015-04-09 Christophe Fergeau <cfergeau@redhat.com>
|
|
1068 |
|
|
1069 |
ovirt: Add support for an 'admin' key in vv file
|
|
1070 |
When using a user with administrator rights, the VMs this user can
|
|
1071 |
access from the user portal and the admin portal are different, and
|
|
1072 |
REST API users must indicate which set of VMs they want through a
|
|
1073 |
specific header. libgovirt already has support for that in its API, but
|
|
1074 |
virt-viewer was not making use of that API.
|
|
1075 |
This commit adds support for an 'admin' field in the [ovirt] section of
|
|
1076 |
.vv files so oVirt can indicate remote-viewer whether this header should
|
|
1077 |
be set or not.
|
|
1078 |
|
|
1079 |
2015-04-09 Pavel Grunt <pgrunt@redhat.com>
|
|
1080 |
|
|
1081 |
virt-viewer-app: Do not show error dialog twice for unknown graphic
|
|
1082 |
Related: rhbz#1085216
|
|
1083 |
|
|
1084 |
2015-04-09 Jonathon Jongsma <jjongsma@redhat.com>
|
|
1085 |
|
|
1086 |
Cleanup: only add display when it's created
|
|
1087 |
This wasn't causing any problems because the _add_display() function has
|
|
1088 |
an early return for the case that the display has already been added to
|
|
1089 |
the session, but it's quite confusing when reading the code to see this
|
|
1090 |
_add_display() function being called for every display every time we get
|
|
1091 |
a monitor configuration update.
|
|
1092 |
|
|
1093 |
Emit one show-hint notification when enabling a display
|
|
1094 |
Freeze notifications before setting the show hints to prevent multiple
|
|
1095 |
notification signals from being emitted.
|
|
1096 |
|
|
1097 |
2015-04-09 Pavel Grunt <pgrunt@redhat.com>
|
|
1098 |
|
|
1099 |
display-spice: Do not ignore change of position
|
|
1100 |
Positions of displays can be changed by guest, it is important to
|
|
1101 |
react to this change by rearranging client's windows otherwise
|
|
1102 |
mouse actions can be assigned to a wrong window.
|
|
1103 |
|
|
1104 |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1206216
|
|
1105 |
|
|
1106 |
virt-viewer-window: Return early when zoom of window and zoom of display are same
|
|
1107 |
The zoom level should be changed when zoom levels of the window and
|
|
1108 |
the display are different. It is wrong to check the previous value of
|
|
1109 |
the window because it could be set just for the window and not for
|
|
1110 |
the display (e.g. when setting zoom level using the command line).
|
|
1111 |
|
|
1112 |
Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1206460
|
|
1113 |
|
|
1114 |
virt-viewer-window: Set zoom when display is enabled and ready.
|
|
1115 |
The display has default dimensions (100x100) when it is disabled.
|
|
1116 |
Calculating the minimal zoom for the display will give wrong value
|
|
1117 |
for the newly opened display.
|
|
1118 |
|
|
1119 |
It is better to wait for setting the zoom level to the moment when
|
|
1120 |
the display is enabled and ready.
|
|
1121 |
|
|
1122 |
Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1206460
|
|
1123 |
|
|
1124 |
2015-04-07 Pavel Grunt <pgrunt@redhat.com>
|
|
1125 |
|
|
1126 |
virt-viewer-main: Require domain name as argument for '--wait'
|
|
1127 |
As since 88f634179e56742a21fb4c7efc270e4203322d74 virt-viewer can be
|
|
1128 |
used without a domain-name, let's require it when using --wait.
|
|
1129 |
|
|
1130 |
Resolves: rhbz#1209398
|
|
1131 |
|
|
1132 |
2015-04-07 Christophe Fergeau <cfergeau@redhat.com>
|
|
1133 |
|
|
1134 |
Fix leak in virt_viewer_session_spice_clear_displays()
|
|
1135 |
The GList returned by spice_session_get_channels() must be freed after
|
|
1136 |
use.
|
|
1137 |
|
|
1138 |
2015-04-03 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1139 |
|
|
1140 |
Fix crash when disabling last enabled display
|
|
1141 |
Using virt_viewer_signal_connect_object() instead of g_signal_connect()
|
|
1142 |
ensures that menu_display_visible_toggled_cb() won't be executed after
|
|
1143 |
the display object be disposed.
|
|
1144 |
|
|
1145 |
Backtrace for the crash:
|
|
1146 |
|
|
1147 |
#0 0x00007ffff070592b in g_type_check_instance_is_a (type_instance=0x8851f0, iface_type=<optimized out>) at gtype.c:4016
|
|
1148 |
#1 0x000000000041ee06 in virt_viewer_display_get_session (self=0x8851f0) at ../../src/virt-viewer-display.c:702
|
|
1149 |
#2 0x0000000000417be7 in menu_display_visible_toggled_cb (checkmenuitem=0x93f790 [GtkCheckMenuItem], display=0x8851f0) at ../../src/virt-viewer-app.c:2187
|
|
1150 |
#6 0x00007ffff06fe29f in <emit signal ??? on instance 0x93f790 [GtkCheckMenuItem]> (instance=instance@entry=0x93f790, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3361
|
|
1151 |
#3 0x00007ffff06e3b9f in g_closure_invoke (closure=0x93faa0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffc230, invocation_hint=invocation_hint@entry=0x7fffffffc1b0) at gclosure.c:768
|
|
1152 |
#4 0x00007ffff06f54c9 in signal_emit_unlocked_R (node=node@entry=0x6d73e0, detail=detail@entry=0, instance=instance@entry=0x93f790, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc230) at gsignal.c:3549
|
|
1153 |
#5 0x00007ffff06fded0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc3f0) at gsignal.c:3305
|
|
1154 |
#7 0x00007ffff5eb6158 in gtk_check_menu_item_activate (check_menu_item=0x93f790 [GtkCheckMenuItem]) at gtkcheckmenuitem.c:299
|
|
1155 |
#8 0x00007ffff5eb6158 in gtk_check_menu_item_activate (menu_item=0x93f790 [GtkCheckMenuItem]) at gtkcheckmenuitem.c:419
|
|
1156 |
#12 0x00007ffff06fe29f in <emit signal ??? on instance 0x93f790 [GtkCheckMenuItem]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3361
|
|
1157 |
#9 0x00007ffff06e3b9f in g_closure_invoke (closure=closure@entry=0x6d5aa0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffc6b0, invocation_hint=invocation_hint@entry=0x7fffffffc630) at gclosure.c:768
|
|
1158 |
#10 0x00007ffff06f51bd in signal_emit_unlocked_R (node=node@entry=0x6d5ba0, detail=detail@entry=0, instance=instance@entry=0x93f790, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc6b0) at gsignal.c:3479
|
|
1159 |
#11 0x00007ffff06fded0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc870) at gsignal.c:3305
|
|
1160 |
#13 0x0000000000417c5e in menu_display_visible_toggled_cb (checkmenuitem=0x93f790 [GtkCheckMenuItem], display=0x8851f0) at ../../src/virt-viewer-app.c:2200
|
|
1161 |
#17 0x00007ffff06fe29f in <emit signal ??? on instance 0x93f790 [GtkCheckMenuItem]> (instance=instance@entry=0x93f790, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3361
|
|
1162 |
#14 0x00007ffff06e3c45 in g_closure_invoke (closure=0x93faa0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffcb50, invocation_hint=invocation_hint@entry=0x7fffffffcad0) at gclosure.c:768
|
|
1163 |
#15 0x00007ffff06f54c9 in signal_emit_unlocked_R (node=node@entry=0x6d73e0, detail=detail@entry=0, instance=instance@entry=0x93f790, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcb50) at gsignal.c:3549
|
|
1164 |
#16 0x00007ffff06fded0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffcd10) at gsignal.c:3305
|
|
1165 |
#18 0x00007ffff5eb6158 in gtk_check_menu_item_activate (check_menu_item=0x93f790 [GtkCheckMenuItem]) at gtkcheckmenuitem.c:299
|
|
1166 |
#19 0x00007ffff5eb6158 in gtk_check_menu_item_activate (menu_item=0x93f790 [GtkCheckMenuItem]) at gtkcheckmenuitem.c:419
|
|
1167 |
#23 0x00007ffff06fe29f in <emit signal ??? on instance 0x93f790 [GtkCheckMenuItem]> (instance=instance@entry=0x93f790, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3361
|
|
1168 |
#20 0x00007ffff06e3c45 in g_closure_invoke (closure=closure@entry=0x6d5aa0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffcfd0, invocation_hint=invocation_hint@entry=0x7fffffffcf50) at gclosure.c:768
|
|
1169 |
#21 0x00007ffff06f51bd in signal_emit_unlocked_R (node=node@entry=0x6d5ba0, detail=detail@entry=0, instance=instance@entry=0x93f790, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcfd0) at gsignal.c:3479
|
|
1170 |
#22 0x00007ffff06fded0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd190) at gsignal.c:3305
|
|
1171 |
#24 0x00007ffff608648e in IA__gtk_widget_activate (widget=widget@entry=0x93f790 [GtkCheckMenuItem]) at gtkwidget.c:5048
|
|
1172 |
#25 0x00007ffff5f6cacd in IA__gtk_menu_shell_activate_item (menu_shell=0x70ece0 [GtkMenu], menu_item=0x93f790 [GtkCheckMenuItem], force_deactivate=<optimized out>) at gtkmenushell.c:1303
|
|
1173 |
#26 0x00007ffff5f6ce96 in gtk_menu_shell_button_release (widget=0x70ece0 [GtkMenu], event=<optimized out>) at gtkmenushell.c:730
|
|
1174 |
#31 0x00007ffff06fe29f in <emit signal ??? on instance 0x70ece0 [GtkMenu]> (instance=instance@entry=0x70ece0, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3361
|
|
1175 |
#27 0x00007ffff5f578ad in _gtk_marshal_BOOLEAN__BOXED (closure=0x6c7180, return_value=0x7fffffffd4e0, n_param_values=<optimized out>, param_values=0x7fffffffd540, invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtkmarshalers.c:86
|
|
1176 |
#28 0x00007ffff06e3c45 in g_closure_invoke (closure=closure@entry=0x6c7180, return_value=return_value@entry=0x7fffffffd4e0, n_param_values=2, param_values=param_values@entry=0x7fffffffd540, invocation_hint=invocation_hint@entry=0x7fffffffd4c0) at gclosure.c:768
|
|
1177 |
#29 0x00007ffff06f5cef in signal_emit_unlocked_R (node=node@entry=0x6c73f0, detail=detail@entry=0, instance=instance@entry=0x70ece0, emission_return=emission_return@entry=0x7fffffffd660, instance_and_params=instance_and_params@entry=0x7fffffffd540) at gsignal.c:3587
|
|
1178 |
#30 0x00007ffff06fdac2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd710) at gsignal.c:3315
|
|
1179 |
#32 0x00007ffff608790c in gtk_widget_event_internal (widget=widget@entry=0x70ece0 [GtkMenu], event=event@entry=0x944f90) at gtkwidget.c:5017
|
|
1180 |
#33 0x00007ffff6087be7 in IA__gtk_widget_event (widget=widget@entry=0x70ece0 [GtkMenu], event=event@entry=0x944f90) at gtkwidget.c:4814
|
|
1181 |
#34 0x00007ffff5f55b94 in IA__gtk_propagate_event (widget=0x70ece0 [GtkMenu], event=0x944f90) at gtkmain.c:2501
|
|
1182 |
#35 0x00007ffff5f55f5b in IA__gtk_main_do_event (event=0x944f90) at gtkmain.c:1696
|
|
1183 |
#36 0x00007ffff5bae7dc in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at gdkevents-x11.c:2425
|
|
1184 |
#37 0x00007ffff03e40ba in g_main_context_dispatch (context=0x693d50) at gmain.c:3122
|
|
1185 |
#38 0x00007ffff03e40ba in g_main_context_dispatch (context=context@entry=0x693d50) at gmain.c:3737
|
|
1186 |
#39 0x00007ffff03e4450 in g_main_context_iterate (context=0x693d50, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3808
|
|
1187 |
#40 0x00007ffff03e4772 in g_main_loop_run (loop=0x748980) at gmain.c:4002
|
|
1188 |
|
|
1189 |
2015-04-02 Pavel Grunt <pgrunt@redhat.com>
|
|
1190 |
|
|
1191 |
session-spice: Remove spice-gtk version checks
|
|
1192 |
Since 77ac0d8892837a117f9ca10020c1ac7f1944fca7 virt-viewer requires
|
|
1193 |
spice-gtk v0.28
|
|
1194 |
|
|
1195 |
virt-viewer-app: Set hotkeys when app is constructed
|
|
1196 |
virt_viewer_app_set_hotkeys() calls virt_viewer_app_set_enable_accel()
|
|
1197 |
which notify the display about "enable-accel". However the display
|
|
1198 |
begins to exist after the virt_viewer_app initialization.
|
|
1199 |
|
|
1200 |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1206106
|
|
1201 |
|
|
1202 |
virt-viewer-window: Change zoom of the display only when it is possible
|
|
1203 |
Do not allow to zoom out if it is not possible due to the width of
|
|
1204 |
the top menu. It avoids emitting size allocation events that will
|
|
1205 |
change the display resolution of the spice guest.
|
|
1206 |
|
|
1207 |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1206460
|
|
1208 |
|
|
1209 |
virt-viewer-window: Return NULL instead of FALSE for display
|
|
1210 |
|
|
1211 |
virt-viewer-display: Use MIN_DISPLAY_WIDTH/HEIGHT instead of numbers
|
|
1212 |
|
|
1213 |
Use ZOOM constants instead of numbers
|
|
1214 |
|
|
1215 |
2015-04-01 Christophe Fergeau <cfergeau@redhat.com>
|
|
1216 |
|
|
1217 |
Fix virt-viewer --reconnect crash with SPICE VMs
|
|
1218 |
When using virt-viewer --reconnect, virt-viewer currently crashes when
|
|
1219 |
a SPICE VM is destroyed with "virsh destroy"
|
|
1220 |
|
|
1221 |
What happens is that when the guest is destroyed, virt-viewer receives a
|
|
1222 |
SPICE_CHANNEL_ERROR_IO notification in
|
|
1223 |
virt_viewer_session_spice_main_channel_event(). This triggers the
|
|
1224 |
emission of the "session-disconnected" signal, which will end up calling
|
|
1225 |
spice_session_disconnect() (indirectly through
|
|
1226 |
virt_viewer_app_disconnected/virt_viewer_app_deactivate).
|
|
1227 |
|
|
1228 |
Since spice-gtk commit ff25f3e, the actual session disconnection is
|
|
1229 |
done from an idle. When the "session-disconnected" emission stops, the
|
|
1230 |
VirtViewerSession instance is destroyed. However, the associated
|
|
1231 |
VirtViewerDisplaySpice are still alive as the various SpiceChannels
|
|
1232 |
instances hold a reference through the "virt-viewer-displays" GObject
|
|
1233 |
data.
|
|
1234 |
These channels are destroyed when the idle queued by spice_session_disconnect()
|
|
1235 |
run. The associated VirtViewerDisplay are in turn destroyed too, but
|
|
1236 |
this causes attempts to use the VirtViewerSession associated with the
|
|
1237 |
displays, which has already been destroyed. This causes a crash.
|
|
1238 |
|
|
1239 |
This commit adds a virt_viewer_session_spice_clear_displays() which is
|
|
1240 |
similar to virt_viewer_session_clear_displays(), but makes sure the
|
|
1241 |
"virt-viewer-displays" references are dropped too. This ensures the
|
|
1242 |
VirtViewerDisplay instances don't outlive the VirtViewerSession
|
|
1243 |
they are associated with.
|
|
1244 |
|
|
1245 |
Backtrace for the crash:
|
|
1246 |
|
|
1247 |
#0 0x0000000000413f0f in display_show_hint (display=0x85ab50 [VirtViewerDisplaySpice], pspec=0x939bd0 [GParamFlags], user_data=0x0) at virt-viewer-app.c:949
|
|
1248 |
#4 0x00000031ff22a29f in <emit signal notify:show-hint on instance 0x85ab50 [VirtViewerDisplaySpice]> (instance=instance@entry=0x85ab50, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3361
|
|
1249 |
#1 0x00000031ff20fc45 in g_closure_invoke (closure=0xa98f50, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffc700, invocation_hint=invocation_hint@entry=0x7fffffffc680) at gclosure.c:768
|
|
1250 |
#2 0x00000031ff2214c9 in signal_emit_unlocked_R (node=node@entry=0x674f80, detail=detail@entry=1678, instance=instance@entry=0x85ab50, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc700) at gsignal.c:3549
|
|
1251 |
#3 0x00000031ff229ed0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc8d0) at gsignal.c:3305
|
|
1252 |
#5 0x00000031ff214175 in g_object_dispatch_properties_changed (object=0x85ab50 [VirtViewerDisplaySpice], n_pspecs=<optimized out>, pspecs=<optimized out>) at gobject.c:1056
|
|
1253 |
#6 0x00000031ff216661 in g_object_notify (pspec=0x939bd0 [GParamFlags], object=0x85ab50 [VirtViewerDisplaySpice]) at gobject.c:1149
|
|
1254 |
#7 0x00000031ff216661 in g_object_notify (object=0x85ab50 [VirtViewerDisplaySpice], property_name=<optimized out>) at gobject.c:1197
|
|
1255 |
#8 0x000000000041e5ab in virt_viewer_display_set_show_hint (self=0x85ab50 [VirtViewerDisplaySpice], mask=1, enable=0) at virt-viewer-display.c:691
|
|
1256 |
#9 0x000000000042b62d in update_display_ready (self=0x85ab50 [VirtViewerDisplaySpice])
|
|
1257 |
at virt-viewer-display-spice.c:145
|
|
1258 |
#13 0x00000031ff22a29f in <emit signal notify:ready on instance 0x898590 [SpiceDisplay]> (instance=instance@entry=0x898590, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3361
|
|
1259 |
#10 0x00000031ff20fc45 in g_closure_invoke (closure=0x99b280, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffcc50, invocation_hint=invocation_hint@entry=0x7fffffffcbd0) at gclosure.c:768
|
|
1260 |
#11 0x00000031ff2214c9 in signal_emit_unlocked_R (node=node@entry=0x674f80, detail=detail@entry=1696, instance=instance@entry=0x898590, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcc50) at gsignal.c:3549
|
|
1261 |
#12 0x00000031ff229ed0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffce20) at gsignal.c:3305
|
|
1262 |
#14 0x00000031ff214175 in g_object_dispatch_properties_changed (object=0x898590 [SpiceDisplay], n_pspecs=<optimized out>, pspecs=<optimized out>) at gobject.c:1056
|
|
1263 |
#15 0x00000031ff216661 in g_object_notify (pspec=0xa83370 [GParamBoolean], object=0x898590 [SpiceDisplay]) at gobject.c:1149
|
|
1264 |
#16 0x00000031ff216661 in g_object_notify (object=0x898590 [SpiceDisplay], property_name=<optimized out>) at gobject.c:1197
|
|
1265 |
#17 0x00007ffff7522525 in update_ready (display=0x898590 [SpiceDisplay]) at spice-widget.c:236
|
|
1266 |
#18 0x00007ffff752257e in set_monitor_ready (self=0x898590 [SpiceDisplay], ready=0)
|
|
1267 |
at spice-widget.c:244
|
|
1268 |
#19 0x00007ffff75274e6 in primary_destroy (channel=0x89f5c0 [SpiceDisplayChannel], data=0x898590)
|
|
1269 |
at spice-widget.c:2169
|
|
1270 |
#20 0x00007ffff7528918 in channel_destroy (s=0x909fa0 [SpiceSession], channel=0x89f5c0 [SpiceDisplayChannel], data=0x898590) at spice-widget.c:2484
|
|
1271 |
#24 0x00000031ff22a29f in <emit signal ??? on instance 0x909fa0 [SpiceSession]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3361
|
|
1272 |
#21 0x00000031ff20fc45 in g_closure_invoke (closure=0xa9bda0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffd280, invocation_hint=invocation_hint@entry=0x7fffffffd200) at gclosure.c:768
|
|
1273 |
#22 0x00000031ff2214c9 in signal_emit_unlocked_R (node=node@entry=0x9c17d0, detail=detail@entry=0, instance=instance@entry=0x909fa0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd280) at gsignal.c:3549
|
|
1274 |
#23 0x00000031ff229ed0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd450) at gsignal.c:3305
|
|
1275 |
#25 0x00007ffff71c3248 in spice_session_channel_destroy (session=0x909fa0 [SpiceSession], channel=0x89f5c0 [SpiceDisplayChannel]) at spice-session.c:2217
|
|
1276 |
#26 0x00007ffff71bd8b2 in session_disconnect (self=0x909fa0 [SpiceSession], keep_main=0)
|
|
1277 |
at spice-session.c:281
|
|
1278 |
#27 0x00007ffff71c1b27 in session_disconnect_idle (self=0x909fa0 [SpiceSession]) at spice-session.c:1853
|
|
1279 |
#28 0x00000031fee4a0ba in g_main_context_dispatch (context=0x6a4400) at gmain.c:3122
|
|
1280 |
#29 0x00000031fee4a0ba in g_main_context_dispatch (context=context@entry=0x6a4400) at gmain.c:3737
|
|
1281 |
#30 0x00000031fee4a450 in g_main_context_iterate (context=0x6a4400, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3808
|
|
1282 |
#31 0x00000031fee4a772 in g_main_loop_run (loop=0x9890f0) at gmain.c:4002
|
|
1283 |
#32 0x0000003babc05f75 in gtk_main () at gtkmain.c:1219
|
|
1284 |
#33 0x000000000043143b in main (argc=1, argv=0x7fffffffda48) at virt-viewer-main.c:12
|
|
1285 |
|
|
1286 |
2015-03-27 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1287 |
|
|
1288 |
virt-viewer: Make update_display() more readable
|
|
1289 |
|
|
1290 |
virt-viewer: Do not wait for a guest that will never show up
|
|
1291 |
All the situations where virt_viewer_update_display() can fail are
|
|
1292 |
those when we won't be able to connect regardless of what changes on the
|
|
1293 |
remote host. So, propagate the error instead of waiting for the guest to
|
|
1294 |
start.
|
|
1295 |
|
|
1296 |
Related: rhbz#1085216
|
|
1297 |
|
|
1298 |
remote-viewer: Avoid simple_message_dialog() when errors can be propagated
|
|
1299 |
Remove the dialog used to report errors when create_session() fails,
|
|
1300 |
propagating the error is enough and it is already done.
|
|
1301 |
|
|
1302 |
Related: rhbz#1085216
|
|
1303 |
|
|
1304 |
virt-viewer: Avoid simple_message_dialog() when errors can be propagated
|
|
1305 |
Remove all the dialogs used to report errors on extract_connect_info()
|
|
1306 |
and just propagate the errors we got from it.
|
|
1307 |
The only exception is virt_viewer_domain_event(), that is a callback
|
|
1308 |
that doesn't have GError as argument. In this specific case, we show the
|
|
1309 |
error dialog instead of propagating it.
|
|
1310 |
|
|
1311 |
Related: rhbz#1085216
|
|
1312 |
|
|
1313 |
virt-viewer-app: create_session() should return a boolean
|
|
1314 |
By convention functions that take GError parameters should return FALSE
|
|
1315 |
(or NULL) or error.
|
|
1316 |
|
|
1317 |
Related: rhbz#1085216
|
|
1318 |
|
|
1319 |
virt-viewer-app: Add a GError arg to create_session()
|
|
1320 |
This is part of a small re-factoring that will have all connection
|
|
1321 |
errors, when we won't be able to connect regardless of what changes on
|
|
1322 |
the remote host, being treated by virt_viewer_app_initial_connect(),
|
|
1323 |
avoiding weird behaviors as we have nowadays (like more than one error
|
|
1324 |
dialog being shown or having the virt-viewer waiting forever for a guest
|
|
1325 |
that will never show up).
|
|
1326 |
|
|
1327 |
Related: rhbz#1085216
|
|
1328 |
|
|
1329 |
virt-viewer: Add a GError arg to update_display()
|
|
1330 |
This is part of a small re-factoring that will have all connection
|
|
1331 |
errors, when we won't be able to connect regardless of what changes on
|
|
1332 |
the remote host, being treated by virt_viewer_app_initial_connect(),
|
|
1333 |
avoiding weird behaviors as we have nowadays (like more than one error
|
|
1334 |
dialog being shown or having the virt-viewer waiting forever for a guest
|
|
1335 |
that will never show up).
|
|
1336 |
|
|
1337 |
Related: rhbz#1085216
|
|
1338 |
|
|
1339 |
virt-viewer: Add a GError arg to extract_connect_info()
|
|
1340 |
This is part of a small re-factoring that will have all connection
|
|
1341 |
errors, when we won't be able to connect regardless of what changes on
|
|
1342 |
the remote host, being treated by virt_viewer_app_initial_connect(),
|
|
1343 |
avoiding weird behaviors as we have nowadays (like more than one error
|
|
1344 |
dialog being shown or having the virt-viewer waiting forever for a guest
|
|
1345 |
that will never show up).
|
|
1346 |
|
|
1347 |
Related: rhbz#1085216
|
|
1348 |
|
|
1349 |
2015-03-26 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1350 |
|
|
1351 |
Do not use comments that are not in English
|
|
1352 |
|
|
1353 |
2015-03-24 Pavel Grunt <pgrunt@redhat.com>
|
|
1354 |
|
|
1355 |
virt-viewer: Clean up if no vm was chosen
|
|
1356 |
It is safe to clean up when running virt-viewer without specifying
|
|
1357 |
vm name if no vm was chosen. It brings back behavior before 88f6341.
|
|
1358 |
|
|
1359 |
The 'if (dom == NULL && err != NULL)' part was affected by commits
|
|
1360 |
824c4b9, 1eaaf8c, 15c7d17 so the check for 'err' is not needed anymore.
|
|
1361 |
|
|
1362 |
2015-03-23 Pavel Grunt <pgrunt@redhat.com>
|
|
1363 |
|
|
1364 |
Report errors in one place
|
|
1365 |
Since the error is propagated to the main, report the error there.
|
|
1366 |
To make it work GError VIRT_VIEWER_ERROR_FAILED is set for all
|
|
1367 |
failing states and it is reported using virt_viewer_app_simple_message_dialog().
|
|
1368 |
|
|
1369 |
Clear GError in cleanup section
|
|
1370 |
|
|
1371 |
Exit normally when canceling dialog
|
|
1372 |
This applies for:
|
|
1373 |
libvirt authentication dialog (e.g. virt-viewer --attach guest)
|
|
1374 |
'recent connection' dialog (e.g. remote-viewer)
|
|
1375 |
'vm choose' dialog when connecting without specifying the vm name
|
|
1376 |
|
|
1377 |
This is done by using a new GError VIRT_VIEWER_ERROR_CANCELLED.
|
|
1378 |
|
|
1379 |
virt-viewer: Bring back debug log about nonexistent guest
|
|
1380 |
Although commit 88f6341 allowed to use virt-viewer with a wrong guest name,
|
|
1381 |
the user is informed about the nonexistent guest only by a dialog showing
|
|
1382 |
the list of running machines or informing about the connection error.
|
|
1383 |
|
|
1384 |
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1201177
|
|
1385 |
|
|
1386 |
2015-03-23 Jonathon Jongsma <jjongsma@redhat.com>
|
|
1387 |
|
|
1388 |
Monitor config at sometimes leaves additional monitors enabled
|
|
1389 |
When using the configuration file to specify which remote monitors should be
|
|
1390 |
enabled when using the --full-screen option, it sometimes left additional
|
|
1391 |
displays enabled, or didn't place the displays on the right monitor, or didn't
|
|
1392 |
fullscreen them.
|
|
1393 |
|
|
1394 |
This was especially true when not enabling the first display on the remote
|
|
1395 |
host. For example:
|
|
1396 |
|
|
1397 |
monitor-mapping=2:2;3:3
|
|
1398 |
|
|
1399 |
(note that configuration file uses 1-based indexes, rather than 0-based
|
|
1400 |
indexes, so the numbers used below will be 1 less than those above)
|
|
1401 |
|
|
1402 |
Previously, when performing fullscreen auto-conf, we were configuring displays
|
|
1403 |
starting at #0 and ending at ndisplays. So for the previous configuration, we
|
|
1404 |
looped from i = 0 to i < 2 (i.e. display #0 and #1) even though we should have
|
|
1405 |
configured display #1 and #2. After this fix, we configure the exact displays
|
|
1406 |
that were specified in the monitor-mapping configuration.
|
|
1407 |
|
|
1408 |
Resolves: rhbz#1200750
|
|
1409 |
|
|
1410 |
Use 'constructed' vfunc instead of 'constructor'
|
|
1411 |
We don't need the added complexity of 'constructor', since we only want
|
|
1412 |
to do some final initializing after all of the properties have been set,
|
|
1413 |
etc. So just use the simpler 'constructed'.
|
|
1414 |
|
|
1415 |
VirtViewerApp: create main window after constructor
|
|
1416 |
When using the configuration file to specify which remote monitors
|
|
1417 |
should be enabled when using the --full-screen option, it sometimes left
|
|
1418 |
additional displays enabled, or didn't place the displays on the right
|
|
1419 |
monitor, or didn't fullscreen them.
|
|
1420 |
|
|
1421 |
Part of the problem was that we were creating the first display window before
|
|
1422 |
loading the monitor mapping configuration from the settings file. So even if
|
|
1423 |
the first display was disabled in the configuration, the first window will
|
|
1424 |
still be created with an id of 0, and therefore didn't get set to fullscreen.
|
|
1425 |
Moving the main window creation to the 'constructor' vfunc instead of the
|
|
1426 |
object init func ensures that the configuration is all loaded before we attempt
|
|
1427 |
to do any fullscreen autoconf.
|
|
1428 |
|
|
1429 |
Related: rhbz#1200750
|
|
1430 |
|
|
1431 |
2015-03-16 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1432 |
|
|
1433 |
Update geometry when enabling/disabling displays
|
|
1434 |
_update_displays_geometry() must be called every time a display is
|
|
1435 |
enabled/disabled, avoiding gaps (when a display is disabled) or overlaps
|
|
1436 |
(when a display is enabled) between the monitors.
|
|
1437 |
|
|
1438 |
This is what happens when we have 3 displays enabled (each one
|
|
1439 |
represented by: width x height + x position + y position) ...
|
|
1440 |
|
|
1441 |
Display #0 Display #1 Display #2
|
|
1442 |
+---------+ +----------+ +---------+
|
|
1443 |
| | | | | |
|
|
1444 |
| | | | | |
|
|
1445 |
| | | | | |
|
|
1446 |
| | | | | |
|
|
1447 |
| | | | | |
|
|
1448 |
| | | | | |
|
|
1449 |
+---------+ +----------+ +---------+
|
|
1450 |
(680x804+0+0) (504x804+680+0) (408x804+1184+0)
|
|
1451 |
|
|
1452 |
Whether the Display #1 is disable, a message will be sent down to the
|
|
1453 |
vdagent, representing the new arrangement of the monitors:
|
|
1454 |
|
|
1455 |
Display #0 Display #2
|
|
1456 |
+---------+ +---------+
|
|
1457 |
| | | |
|
|
1458 |
| | | |
|
|
1459 |
| | | |
|
|
1460 |
| | | |
|
|
1461 |
| | | |
|
|
1462 |
| | | |
|
|
1463 |
+---------+ +---------+
|
|
1464 |
(680x804+0+0) (408x804+1184+0)
|
|
1465 |
|
|
1466 |
However, taking a look on the x position, a gap can be identified as
|
|
1467 |
Display #0 starts at position (0,0) and has 680 pixels of width. But
|
|
1468 |
Display #1 only starts at position (1184, 0), leaving 504 pixels as a
|
|
1469 |
gap. The proper message, however, should represent the following
|
|
1470 |
arrangement ...
|
|
1471 |
|
|
1472 |
Display #0 Display #2
|
|
1473 |
+---------+ +---------+
|
|
1474 |
| | | |
|
|
1475 |
| | | |
|
|
1476 |
| | | |
|
|
1477 |
| | | |
|
|
1478 |
| | | |
|
|
1479 |
| | | |
|
|
1480 |
+---------+ +---------+
|
|
1481 |
(680x804+0+0) (408x804+680+0)
|
|
1482 |
|
|
1483 |
... avoiding then gaps and overlaps.
|
|
1484 |
|
|
1485 |
Resolves: rhbz#1111425
|
|
1486 |
https://bugzilla.redhat.com/show_bug.cgi?id=1111425
|
|
1487 |
|
|
1488 |
2015-03-13 Christophe Fergeau <cfergeau@redhat.com>
|
|
1489 |
|
|
1490 |
Deal with NULL gport in virt_viewer_app_set_connect_info()
|
|
1491 |
virt_viewer_app_set_connect_info() has a debug statement printing
|
|
1492 |
gport/gtlsport. It checks that gtlsport is not NULL before printing it,
|
|
1493 |
but makes no similar check for gport. Since it's possible to get a NULL
|
|
1494 |
gport when using ovirt:// after the previous commit, it's better to check
|
|
1495 |
it too.
|
|
1496 |
|
|
1497 |
ovirt: Don't try to use invalid port numbers
|
|
1498 |
If a remote oVirt VM don't specify a port/secure port number, we'd still
|
|
1499 |
try to pass it down to spice-gtk, which would then complain that 0 (the
|
|
1500 |
default value) isn't a valid port number.
|
|
1501 |
This commit make sure we filter out the default port/secure-port value
|
|
1502 |
and pass NULL to spice-gtk instead when we get these values.
|
|
1503 |
|
|
1504 |
foreign-menu: Don't show empty foreign menu on secondary displays
|
|
1505 |
When using ovirt://, the foreign menu will only be shown in the primary
|
|
1506 |
window after getting notified about OvirtForeignMenu::files (ie when
|
|
1507 |
it managed to fetch some ISO files to show in the foreign menu).
|
|
1508 |
|
|
1509 |
However, for secondary windows, the foreign menu will be added to the
|
|
1510 |
window even if there are no files to show. This commit makes sure we
|
|
1511 |
destroy the window foreign menu whenever it would be empty.
|
|
1512 |
|
|
1513 |
2015-03-12 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1514 |
|
|
1515 |
POTFILES: Add virt-viewer-preferences.xml
|
|
1516 |
The file was introduced in commit
|
|
1517 |
73b80ba99fb80140cadd07bbbf09a412bb9a0098
|
|
1518 |
|
|
1519 |
spec: Add virt-viewer-preferences.xml
|
|
1520 |
The file was introduced in commit
|
|
1521 |
73b80ba99fb80140cadd07bbbf09a412bb9a0098
|
|
1522 |
|
|
1523 |
2015-03-12 Christophe Fergeau <cfergeau@redhat.com>
|
|
1524 |
|
|
1525 |
ovirt: Fail gracefully when hostname is missing
|
|
1526 |
When parsing info returned by oVirt REST API, the hostname should be
|
|
1527 |
present. However, I recently run remote-viewer against a buggy oVirt
|
|
1528 |
instance where the hostname was missing. This commit handles better this
|
|
1529 |
situation by displaying an error message and exiting.
|
|
1530 |
|
|
1531 |
ovirt: Take into account SPICE proxy
|
|
1532 |
VMs managed by oVirt can be hidden behind a proxy. This commit allows
|
|
1533 |
remote-viewer to make use of this information when it's available
|
|
1534 |
A recent oVirt instance is needed so that it's available through the
|
|
1535 |
REST API, as well as libgovirt 0.3.3 or newer.
|
|
1536 |
With older oVirt/libgovirt versions, the worst that can happen is a
|
|
1537 |
runtime warning in the console, and an impossibility to connect to VMs
|
|
1538 |
behind a proxy, so this commit is not raising the minimum libgovirt
|
|
1539 |
requirement.
|
|
1540 |
|
|
1541 |
2015-03-12 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1542 |
|
|
1543 |
Take --direct into consideration when checking if a guest is reachable
|
|
1544 |
When connecting to a remote host (using qemu+ssh://...) that has a
|
|
1545 |
virtual machine listening to "127.0.0.1", virt_viewer_is_reachable() must
|
|
1546 |
take --direct into account, otherwise it can end up connecting to a local
|
|
1547 |
virtual machine listening to "0.0.0.0" instead of returning that the
|
|
1548 |
guest is not reachable.
|
|
1549 |
|
|
1550 |
Resolves: rhbz#1085216
|
|
1551 |
|
|
1552 |
2015-03-11 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1553 |
|
|
1554 |
Add G_SOURCE_REMOVE to vir-glib-compat
|
|
1555 |
G_SOURCE_REMOVE was introduced in GLib 2.32 and has its value defined as
|
|
1556 |
FALSE.
|
|
1557 |
|
|
1558 |
Avoid 'Dereference of a null pointer'
|
|
1559 |
Caught by Covscan.
|
|
1560 |
|
|
1561 |
2015-03-05 Marc-André Lureau <marcandre.lureau@gmail.com>
|
|
1562 |
|
|
1563 |
Enable share folder widgets if supported by session
|
|
1564 |
|
|
1565 |
Add virt_viewer_session_can_share_folder()
|
|
1566 |
Functions name says it all, it is only implement for Spice, checking
|
|
1567 |
for webdav channel presence.
|
|
1568 |
|
|
1569 |
Sync preferences widgets with session properties
|
|
1570 |
|
|
1571 |
Show preferences dialog
|
|
1572 |
Add a menu item Preferences under File and show the preferences dialog
|
|
1573 |
|
|
1574 |
Add preferences dialog UI file
|
|
1575 |
|
|
1576 |
spice: enable/disable share folder
|
|
1577 |
Connect/disconnect webdav channel to enable or disable sharing folder
|
|
1578 |
|
|
1579 |
2015-03-04 Marc-André Lureau <marcandre.lureau@gmail.com>
|
|
1580 |
|
|
1581 |
spice: sync share folder preferences with session
|
|
1582 |
|
|
1583 |
Bump spice-gtk to 0.28
|
|
1584 |
The following patches will only work with spice-gtk >= 0.28.
|
|
1585 |
|
|
1586 |
Add a few session properties for share folder
|
|
1587 |
See properties comments for details.
|
|
1588 |
|
|
1589 |
misc: add a missing "static" for function
|
|
1590 |
|
|
1591 |
2015-02-23 Daniel P. Berrange <berrange@redhat.com>
|
|
1592 |
|
|
1593 |
Switch over to use zanata for managing translations
|
|
1594 |
Push new pot with
|
|
1595 |
|
|
1596 |
cd po
|
|
1597 |
make virt-viewer.pot
|
|
1598 |
zanata push
|
|
1599 |
|
|
1600 |
Pull new translations with
|
|
1601 |
|
|
1602 |
cd po
|
|
1603 |
zanata pull
|
|
1604 |
|
|
1605 |
2015-02-18 Pavel Grunt <pgrunt@redhat.com>
|
|
1606 |
|
|
1607 |
Do not add "https://" and "/api" to oVirt URI
|
|
1608 |
It is deprecated since govirt 0.3.1 (and virt-viewer already depends on
|
|
1609 |
govirt 0.3.2).
|
|
1610 |
|
|
1611 |
Silences:
|
|
1612 |
(remote-viewer:19420): libgovirt-WARNING **: Passing a full http:// or https:// URI to ovirt_proxy_new() is deprecated
|
|
1613 |
(remote-viewer:19420): libgovirt-WARNING **: Passing an URI ending in /api to ovirt_proxy_new() is deprecated
|
|
1614 |
|
|
1615 |
2015-01-12 Daniel P. Berrange <berrange@redhat.com>
|
|
1616 |
|
|
1617 |
Bump release to 3.0 for next dev cycle
|
|
1618 |
|
|
1619 |
Update NEWS for 2.0 release
|
|
1620 |
|
|
1621 |
2015-01-12 Marc-André Lureau <marcandre.lureau@gmail.com>
|
|
1622 |
|
|
1623 |
wixl: use a versionized installation directory
|
|
1624 |
It turned out that not only the current MSI broke the "component rule",
|
|
1625 |
but also that our files are not versionized correctly. Windows Installer
|
|
1626 |
applies some file versioning rules before replacing a file
|
|
1627 |
http://msdn.microsoft.com/en-us/library/aa368599%28v=vs.85%29.aspx
|
|
1628 |
|
|
1629 |
Since msitools doesn't extract version from files and populate the Version
|
|
1630 |
field of the File table, it "usually" keep the current file installed.
|
|
1631 |
|
|
1632 |
It's practically impossible to rely on version information from
|
|
1633 |
files (from a quick look, only 5% of the files are versionized and even
|
|
1634 |
less correctly, libgcrypt seems to do non-monotonic buildid for example)
|
|
1635 |
|
|
1636 |
So the rule that applies when files are not versionized is to check the
|
|
1637 |
file hash, and the modified date. File hash was added recently in
|
|
1638 |
msitools, but doesn't apply when the installed file itself has a
|
|
1639 |
version.
|
|
1640 |
|
|
1641 |
In order to solve the above problems, it's simpler to just have a
|
|
1642 |
different installation prefix. Windows Installer will see files with
|
|
1643 |
different component guid, and won't be checking any file update rule. I
|
|
1644 |
have verified the upgrade is working, not leaving any file behind and
|
|
1645 |
updating registry correctly with this solution. Until the files are
|
|
1646 |
correctly versionized, it looks like the only sensible thing to
|
|
1647 |
do. Furthermore, this make it simpler to have several versions installed
|
|
1648 |
in parallel later on (when we change productid)
|
|
1649 |
|
|
1650 |
2015-01-12 Daniel P. Berrange <berrange@redhat.com>
|
|
1651 |
|
|
1652 |
Update LINGUAS file from translation refresh
|
|
1653 |
|
|
1654 |
Tweak autobuild.sh to facilitate release builds
|
|
1655 |
|
|
1656 |
Refresh translations from transifex
|
|
1657 |
|
|
1658 |
2015-01-09 Daniel P. Berrange <berrange@redhat.com>
|
|
1659 |
|
|
1660 |
Add deps on mingw glib-networking RPMs needed by libsoup
|
|
1661 |
|
|
1662 |
Update mingw RPM deps to refer to gstreamer1
|
|
1663 |
|
|
1664 |
2015-01-08 Daniel P. Berrange <berrange@redhat.com>
|
|
1665 |
|
|
1666 |
Fix typo s/SPICE_GTK3_REQUIRED/SPICE_GTK_REQUIRED/
|
|
1667 |
There is no separate version constant for SPICE GTK2 vs GTK3
|
|
1668 |
|
|
1669 |
2015-01-08 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1670 |
|
|
1671 |
virt-viewer: set transient parent for connection's error dialog
|
|
1672 |
Commit c3d24f8b sets transient parent for the most part of the
|
|
1673 |
GtkDialogs, but seems like this one was forgotten.
|
|
1674 |
|
|
1675 |
2015-01-06 Christophe Fergeau <cfergeau@redhat.com>
|
|
1676 |
|
|
1677 |
virt-viewer: Don't connect to localhost displays with qemu+tcp://
|
|
1678 |
When connecting to a remote libvirt instance, a VM may only be listening
|
|
1679 |
on localhost for SPICE/VNC connections. In such a situation, virt-viewer
|
|
1680 |
then tries to connect to localhost, which is not correct as this
|
|
1681 |
'localhost' referred to the remote libvirt host it connected to.
|
|
1682 |
This commit adds a couple of tests on the libvirt URI used and the
|
|
1683 |
<graphics> listen address to error out in this situation.
|
|
1684 |
|
|
1685 |
Resolves: rhbz#1108523
|
|
1686 |
|
|
1687 |
2015-01-06 Jonathon Jongsma <jjongsma@redhat.com>
|
|
1688 |
|
|
1689 |
Remove 'map' handler for VirtViewerDisplay
|
|
1690 |
In order to solve several problems with sizing and resizing displays, a
|
|
1691 |
'map' handler was added to VirtViewerDisplay. The first time the map
|
|
1692 |
handler runs, its queues a resize to attempt to ensure that the window
|
|
1693 |
gets created at its desired size. Subsequent map events generate a call
|
|
1694 |
to _make_resizable(), which was an attempt to ensure that the window was
|
|
1695 |
always 'shrinkable' on the Microsoft Windows platform. Recent testing
|
|
1696 |
suggests that this _make_resizable() is not actually necessary on
|
|
1697 |
Windows anymore, since it is possible to shrink the display even when
|
|
1698 |
this call is removed.
|
|
1699 |
|
|
1700 |
In addition, the call to _queue_resize() is a bit of an indirect
|
|
1701 |
solution to the problem of ensuring the proper size at startup. What we
|
|
1702 |
really want is to guarantee that the very first size request negotiation
|
|
1703 |
returns the desired size rather than the minimum size. In order to do
|
|
1704 |
this, we've added a flag to determine whether we've ever received a size
|
|
1705 |
request, and if not, we return our desired size, even if 'dirty' is not
|
|
1706 |
set.
|
|
1707 |
|
|
1708 |
2015-01-05 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1709 |
|
|
1710 |
spec: Update mingw in order to use gstreamer1
|
|
1711 |
|
|
1712 |
2015-01-05 Victor Toso <victortoso@redhat.com>
|
|
1713 |
|
|
1714 |
nsis: use gstreamer-1.0 instead of gstreamer-0.10
|
|
1715 |
Spice-gtk now is able to use gstreamer-1.0 for playback and record
|
|
1716 |
audio. This patch updates the installer to use the latest version.
|
|
1717 |
|
|
1718 |
2015-01-02 Christophe Fergeau <cfergeau@redhat.com>
|
|
1719 |
|
|
1720 |
win: Use correct format string for intptr_t
|
|
1721 |
Using %d as a format-specifier for intptr_t causes a warning with
|
|
1722 |
mingw64:
|
|
1723 |
virt-viewer-events.c: In function 'virt_viewer_events_add_handle':
|
|
1724 |
virt-viewer-events.c:103:5: warning: format '%d' expects argument of
|
|
1725 |
type 'int', but argument 5 has type 'intptr_t' [-Wformat=]
|
|
1726 |
g_debug("Converted fd %d to handle %d", fd, _get_osfhandle(fd));
|
|
1727 |
|
|
1728 |
2014-12-22 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1729 |
|
|
1730 |
spec: Update mingw in order to use ovirt
|
|
1731 |
|
|
1732 |
spec: Update mingw in order to use gtk3
|
|
1733 |
|
|
1734 |
nsis: use gtk-vnc conditionally
|
|
1735 |
Only include gtk-vnc as dep when it's explicitly done in the configure.
|
|
1736 |
|
|
1737 |
nsis: use spice-gtk conditionally
|
|
1738 |
Only include spice-gtk as dep when it's explicitly done in the configure.
|
|
1739 |
|
|
1740 |
nsis: use libgovirt conditionally
|
|
1741 |
Only include libgovirt as dep when it's explicitly done in the configure.
|
|
1742 |
|
|
1743 |
nsis: add missing file needed to use virsh.exe
|
|
1744 |
|
|
1745 |
nsis: use libvirt conditionally
|
|
1746 |
Only include libvirt as dep when it's explicitly done in the configure.
|
|
1747 |
|
|
1748 |
2014-12-21 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1749 |
|
|
1750 |
msi: use gtk-vnc conditionally
|
|
1751 |
Only include gtk-vnc as dep when it's explicitly done in the configure.
|
|
1752 |
|
|
1753 |
msi: use spice-gtk conditionally
|
|
1754 |
Only include spice-gtk as dep when it's explicitly done in the configure.
|
|
1755 |
|
|
1756 |
msi: use libgovirt conditionally
|
|
1757 |
Only include libgovirt as dep when it's explicitly done in the configure.
|
|
1758 |
|
|
1759 |
msi: use libvirt conditionally
|
|
1760 |
Only include libvirt as dep when it's explicitly done in the configure.
|
|
1761 |
|
|
1762 |
cosmetic: use $(VAR) instead of ${VAR}
|
|
1763 |
|
|
1764 |
2014-12-19 Pavel Grunt <pgrunt@redhat.com>
|
|
1765 |
|
|
1766 |
Set a transient parent for GtkDialogs
|
|
1767 |
Silence the Gtk 3.14 message:
|
|
1768 |
"GtkDialog mapped without a transient parent. This is discouraged."
|
|
1769 |
|
|
1770 |
2014-12-15 Marc-André Lureau <marcandre.lureau@gmail.com>
|
|
1771 |
|
|
1772 |
msi/nsis: fix keyboard-shortcuts icon location
|
|
1773 |
The /usr/share/icons/gnome icon theme location has been replaced with
|
|
1774 |
Adwaita in f21, fix the path.
|
|
1775 |
|
|
1776 |
2014-12-15 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1777 |
|
|
1778 |
msi: add gtk3 support
|
|
1779 |
Add support to build the virt-viewer's msi using GTK3.
|
|
1780 |
For the GTK3 build, in order to provide all used icons for Windows
|
|
1781 |
systems we have to include manually all the icons we want to or add
|
|
1782 |
adwaita-icon-theme as dependency. I've decided to go with the first
|
|
1783 |
approach, what can be improved when we have "foreach" support in
|
|
1784 |
msitools (https://bugzilla.gnome.org/show_bug.cgi?id=741296).
|
|
1785 |
|
|
1786 |
msi: add libgovirt as dependency
|
|
1787 |
libgovirt is used to provide support to foreign menu using ovirt.
|
|
1788 |
|
|
1789 |
nsis: add missing 24x24 icons
|
|
1790 |
|
|
1791 |
nsis: add gtk3 support
|
|
1792 |
Add support to build the virt-viewer's nsis using GTK3.
|
|
1793 |
|
|
1794 |
nsis: remove $INSTDIR\etc
|
|
1795 |
|
|
1796 |
nsis: remove $INSTDIR\etc\libvirt
|
|
1797 |
|
|
1798 |
nsis: remove dup entries
|
|
1799 |
|
|
1800 |
nsis: add libgovirt (and its dependencies)
|
|
1801 |
libgovirt is used to provide support to foreign menu using ovirt.
|
|
1802 |
|
|
1803 |
nsis: add libwinpthread-1.dll
|
|
1804 |
libwinpthread-1.dll is a dependency of libvirt
|
|
1805 |
|
|
1806 |
nsis: add libopus-0.dll
|
|
1807 |
libopus-0.dll is a dependency of spice-glib
|
|
1808 |
|
|
1809 |
nsis: add libnettle-4-7.dll (and its dependencies)
|
|
1810 |
libgcc_s_sjlj-1 is needed by libgmp (on x86)
|
|
1811 |
libgcc_s_seh-1 is needed by libgmp (on x86_64s)
|
|
1812 |
libgmp-10.dll is needed by libnettle
|
|
1813 |
libhogweed-2-5.dll is provided by libnettle
|
|
1814 |
libnettle-4-7.dll is needed by gnutls
|
|
1815 |
gnutls is needed by gvnc and libvirt
|
|
1816 |
|
|
1817 |
An interesting point here that worth to mention is the usage of /nonfatal
|
|
1818 |
when including libgcc_s_{sjlj,seh}-1.dll. As we only have the _seh in x64
|
|
1819 |
the build breaks trying to add "not found" files. A check for arch was
|
|
1820 |
one option to solve the problem, but _sjlj may exist in x64 as well, when
|
|
1821 |
using an old gcc. An explicit check if the file exists (in compile time)
|
|
1822 |
was another idea, but for some reason the "-" part of the filename was
|
|
1823 |
interpreted as a math operand, breaking the build.
|
|
1824 |
With all that in mind, adding /nonfatal was the most convenient solution.
|
|
1825 |
|
|
1826 |
nsis: update libgnutls version
|
|
1827 |
Use version -28 instead of -26, matching what currently is in f21.
|
|
1828 |
|
|
1829 |
nsis: update libtasn1 version
|
|
1830 |
Use version -6 instead of -3, matching what currently is in f21.
|
|
1831 |
|
|
1832 |
nsis: update libpng version
|
|
1833 |
Use libpng15-15 instead of libpng16-16, matching what currently is in
|
|
1834 |
f21.
|
|
1835 |
|
|
1836 |
nsis: update libgcrypt version
|
|
1837 |
Use version -20 instead of -11, matching what currently is in f21.
|
|
1838 |
|
|
1839 |
2014-12-10 Pavel Grunt <pgrunt@redhat.com>
|
|
1840 |
|
|
1841 |
display-vnc: fix zoom-level set by command line
|
|
1842 |
Setting the zoom-level using the command line option '--zoom' is not
|
|
1843 |
working for vnc guests. This problem can be solved by emitting
|
|
1844 |
the "display-desktop-resize" signal when vnc is initialized.
|
|
1845 |
|
|
1846 |
https://bugzilla.redhat.com/show_bug.cgi?id=1170071
|
|
1847 |
|
|
1848 |
2014-12-01 Marc-André Lureau <marcandre.lureau@gmail.com>
|
|
1849 |
|
|
1850 |
Do not show twice error dialog when no VM are found
|
|
1851 |
When running virt-viewer without argument, and no VM are found, you get
|
|
1852 |
two error dialogs. Only one is enough.
|
|
1853 |
|
|
1854 |
spice: calling VirtViewerSession:close() can destroy self
|
|
1855 |
SpiceSession in spice-gtk v0.27 will remove channels from session during
|
|
1856 |
disconnect (and not when they are actually disposed). When no channels
|
|
1857 |
are left, session-disconnected is emitted, and the VirtViewerSession
|
|
1858 |
will be unref from the application. Use a weak reference to self to
|
|
1859 |
avoid crashing after calling spice_session_disconnect()
|
|
1860 |
|
|
1861 |
As a workaround for existing clients, spice-gtk v0.27 will defer the
|
|
1862 |
disconnection to idle time. But the fix still makes sense and would
|
|
1863 |
prevent potentially future issues if spice-gtk changes back to sync
|
|
1864 |
disconnection.
|
|
1865 |
|
|
1866 |
(the alternative of calling ref/unref would needlessly recreate a
|
|
1867 |
SpiceSession with a call to create_spice_session(), which is something
|
|
1868 |
we can avoid when leaving the application)
|
|
1869 |
|
|
1870 |
2014-11-25 Marc-André Lureau <marcandre.lureau@gmail.com>
|
|
1871 |
|
|
1872 |
virt-viewer: allow connection to unix socket only server
|
|
1873 |
Even when the server doesn't provide a display connection address,
|
|
1874 |
virt-viewer is able to connect to guest with libvirt attach.
|
|
1875 |
|
|
1876 |
Report error on attach-only display
|
|
1877 |
Provide error details if the display can only be access through libvirt
|
|
1878 |
--attach method.
|
|
1879 |
|
|
1880 |
Report error in dialog
|
|
1881 |
Use a UI dialog to inform of connection error.
|
|
1882 |
|
|
1883 |
Simplify virt_viewer_initial_connect()
|
|
1884 |
- do not overwrite err if ->initial_connect() sets it
|
|
1885 |
- remove need for waitvm if the display server isn't yet started (note:
|
|
1886 |
this function might be untested, I am not sure relying on libvirt events
|
|
1887 |
is enough)
|
|
1888 |
|
|
1889 |
Simplify virt_viewer_initial_connect()
|
|
1890 |
- remove need for waitvm if the display server isn't yet started (note:
|
|
1891 |
this function might be untested, I am not sure relying on libvirt events
|
|
1892 |
is enough)
|
|
1893 |
|
|
1894 |
Simplify virt_viewer_initial_connect()
|
|
1895 |
Some refactoring to make the code easier to read, mostly code
|
|
1896 |
movement/reindenting and introduction of a "wait" label which has the
|
|
1897 |
same purpose as "done".
|
|
1898 |
This also adds a "goto wait" within an if block, but this does not
|
|
1899 |
change the initial code flow, just makes it more explicit.
|
|
1900 |
|
|
1901 |
Remove VIRT_VIEWER_VM_CHOOSE_DIALOG_CANCELLED
|
|
1902 |
This error type isn't really an error, it is used to skip error report
|
|
1903 |
code. The functions can simply return FALSE on failure, without GError
|
|
1904 |
set, to indicate that program should quit normally.
|
|
1905 |
|
|
1906 |
Limit HAVE_SOCKETPAIR to directly concerned code
|
|
1907 |
|
|
1908 |
Move libvirt reconnect polling to VirtViewer
|
|
1909 |
This is libvirt specific, no need to share it in the VirtViewerApp base
|
|
1910 |
class.
|
|
1911 |
|
|
1912 |
spice: use virt_viewer_signal_connect_object
|
|
1913 |
This isn't required, but makes it easier to track reference issues, as
|
|
1914 |
you have guarantee that callbacks won't be executed if the objects are
|
|
1915 |
disposed.
|
|
1916 |
|
|
1917 |
2014-11-24 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1918 |
|
|
1919 |
Add virt-viewer-usb.png
|
|
1920 |
Windows XP (at least) doesn't recognize .svg files
|
|
1921 |
|
|
1922 |
2014-11-20 Fabiano Fidêncio <fidencio@redhat.com>
|
|
1923 |
|
|
1924 |
Replace priv->withEvents usage for priv->domain_event
|
|
1925 |
Once we have priv->domain_event, we don't need priv->withEvents anymore
|
|
1926 |
|
|
1927 |
Prefer to use virConnectDomainEventRegisterAny()
|
|
1928 |
The usage of virConnectDomainEventRegister() is no longer recommended
|
|
1929 |
according to the libvirt's documentation.
|
|
1930 |
|
|
1931 |
Set freed priv->dom to NULL in _dispose()
|
|
1932 |
Avoid a possible use/free after the object has been freed.
|
|
1933 |
|
|
1934 |
Make sure conn exists before use it
|
|
1935 |
Although all the used functions have a explicit check for a valid
|
|
1936 |
virConnPtr, let's be safe and only use priv->conn when its value is
|
|
1937 |
non-NULL.
|
|
1938 |
|
|
1939 |
2014-11-18 Christophe Fergeau <cfergeau@redhat.com>
|
|
1940 |
|
|
1941 |
VirtViewerApp: Never remove main window
|
|
1942 |
It's currently possible to destroy any virt-viewer window, including the
|
|
1943 |
main window. However, some part of the code expects that the main window
|
|
1944 |
is always present, for example to present status messages.
|
|
1945 |
|
|
1946 |
In particular, stopping the guest (or running virsh destroy) will close
|
|
1947 |
all windows: virt_viewer_session_clear_displays will get called, which
|
|
1948 |
will call into virt_viewer_app_remove_display_removed, and finally into
|
|
1949 |
virt_viewer_app_remove_nth_window, which will destroy the window being
|
|
1950 |
removed if it holds the last reference to it.
|
|
1951 |
|
|
1952 |
So going through virt_viewer_session_clear_displays, all
|
|
1953 |
VirtViewerWindow instances and their corresponding GtkWindow have been
|
|
1954 |
destroyed. This is already an issue as VirtViewerApp::main_window will
|
|
1955 |
be pointing to freed memory.
|
|
1956 |
|
|
1957 |
When using virt-viewer --reconnect, this will cause a crash when
|
|
1958 |
restarting the guest in virt_viewer_app_create_session as it tries to
|
|
1959 |
get a valid GtkWindow through:
|
|
1960 |
GtkWindow *window = virt_viewer_window_get_window(priv->main_window);
|
|
1961 |
|
|
1962 |
This commit avoids this issue by special casing the main window in
|
|
1963 |
virt_viewer_app_remove_nth_window to ensure it never gets removed.
|
|
1964 |
This is similar to what is done in virt_viewer_app_hide_all_windows.
|
|
1965 |
|
|
1966 |
2014-11-14 Christophe Fergeau <cfergeau@redhat.com>
|
|
1967 |
|
|
1968 |
Fix check of virt_viewer_app_initial_connect return value
|
|
1969 |
Commit 13f493200 changed virt_viewer_app_initial_connect to return a
|
|
1970 |
gboolean rather than an int, but one call site was not updated to the
|
|
1971 |
new convention, and was still checking for a negative value rather than
|
|
1972 |
for FALSE in order to detect failures.
|
|
1973 |
|
|
1974 |
2014-11-03 Daniel P. Berrange <berrange@redhat.com>
|
|
1975 |
|
|
1976 |
Check for spice-gtk 0.26 instead of a git snapshot of 0.25
|
|
1977 |
As spice-gtk macro for checking the version numbers was broken, let's
|
|
1978 |
check for 0.26 and avoid to have virt-viewer broken on a few distros
|
|
1979 |
for a good long time.
|
|
1980 |
|
|
1981 |
2014-10-31 Christophe Fergeau <cfergeau@redhat.com>
|
|
1982 |
|
|
1983 |
Don't use virGetLastErrorMessage()
|
|
1984 |
This was introduced in libvirt 1.0.6 but we only require libvirt 0.10.0
|
|
1985 |
|
|
1986 |
Don't call local variable 'select'
|
|
1987 |
This causes warnings with older compilers
|
|
1988 |
virt-viewer-vm-connection.c:52: warning: declaration of 'select' shadows
|
|
1989 |
a global declaration
|
|
1990 |
/usr/include/sys/select.h:109: warning: shadowed declaration is here
|
|
1991 |
|
|
1992 |
2014-10-27 Daniel P. Berrange <berrange@redhat.com>
|
|
1993 |
|
|
1994 |
Avoid log message warning messages due to incorrect int format
|
|
1995 |
The G_N_ELEMENTS() type is size_t but this was being passed to
|
|
1996 |
a format string with '%lu' which is of a different size on many
|
|
1997 |
platforms. Just delete this part of the warning message since
|
|
1998 |
it was not hugely useful.
|
|
1999 |
|
|
2000 |
Add new ui files to the RPMs
|
|
2001 |
|
|
2002 |
Avoid use of non-literal string with g_debug
|
|
2003 |
|
|
2004 |
Fix typo s/to to/to/
|
|
2005 |
|
|
2006 |
Remove useless 'if (...)' before free()
|
|
2007 |
The 'free()' function accepts NULL, so you should not
|
|
2008 |
check for NULL before calling it.
|
|
2009 |
|
|
2010 |
2014-10-27 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2011 |
|
|
2012 |
Don't try to re-configure displays when there are none
|
|
2013 |
virt_viewer_session_on_monitor_geometry_changed() gets called
|
|
2014 |
immediately upon agent connection, but sometimes this is before any
|
|
2015 |
displays have been received. Simply return early when this is the case.
|
|
2016 |
|
|
2017 |
Shift top-left display to origin
|
|
2018 |
When using a custom fullscreen display configuration, it's possible to
|
|
2019 |
specify that e.g. a single screen should be fullscreen on client
|
|
2020 |
monitor #4. Since we send down absolute positions and disable alignment
|
|
2021 |
when all windows are in fullscreen, we can send configurations with a
|
|
2022 |
very large offset to the top-left corner. This could result in the guest
|
|
2023 |
trying to create a screen that was much larger than necessary. For
|
|
2024 |
example when sending a configuration of 1280x1024+4240+0, the guest
|
|
2025 |
would need to allocate a screen of size 5520x1024, which might fail if
|
|
2026 |
video memory was too low. To avoid this issue, we shift all displays
|
|
2027 |
so that the minimum X coordinate for all screens is at x=0, and the
|
|
2028 |
minimum y coordinate is at y=0.
|
|
2029 |
|
|
2030 |
2014-10-24 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2031 |
|
|
2032 |
Move monitor alignment function to util header
|
|
2033 |
|
|
2034 |
2014-10-23 Christophe Fergeau <cfergeau@redhat.com>
|
|
2035 |
|
|
2036 |
man: Improve documentation for 'version' field in vv files
|
|
2037 |
|
|
2038 |
2014-10-23 Rex Dieter <rdieter@math.unl.edu>
|
|
2039 |
|
|
2040 |
spec: Update/optimize mime scriptlets
|
|
2041 |
|
|
2042 |
2014-10-16 Fabiano Fidêncio <fidencio@redhat.com>
|
|
2043 |
|
|
2044 |
Check for the right spice version in session-spice.c
|
|
2045 |
We have to check for the spice version where the
|
|
2046 |
SPICE_CLIENT_ERROR_AUTH_NEEDS_PASSWORD_AND_USERNAME was introduced and
|
|
2047 |
not for the one where spice_channel_get_error() was introduced.
|
|
2048 |
|
|
2049 |
2014-10-16 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2050 |
|
|
2051 |
Don't disable "send key" menu when display isn't ready
|
|
2052 |
The ability to send a keystroke should not depend on whether a display
|
|
2053 |
is ready or not, it only depends on whether the display exists or not.
|
|
2054 |
|
|
2055 |
See https://bugzilla.redhat.com/show_bug.cgi?id=1152574
|
|
2056 |
|
|
2057 |
2014-10-15 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2058 |
|
|
2059 |
Fix bug with initial placement of fullscreen windows
|
|
2060 |
The function app_window_try_fullscreen() will lookup the initial monitor
|
|
2061 |
for the nth monitor internally, so we should pass in the display ID to the function
|
|
2062 |
rather than the mapped monitor ID. This was causing 2 monitors on the
|
|
2063 |
same monitor with a configuration like this:
|
|
2064 |
|
|
2065 |
monitor-mapping=1:2;2:1
|
|
2066 |
|
|
2067 |
2014-10-15 Fabiano Fidêncio <fidencio@redhat.com>
|
|
2068 |
|
|
2069 |
Force display_show_hint() when the display is set
|
|
2070 |
Since a window is not created at startup for each display, the first
|
|
2071 |
display(s) set when the application is opened will never receive and
|
|
2072 |
treat the "notify::show-hint" signal on VirtViewerWindow, once the
|
|
2073 |
callback is only set when the display is set to the specific window.
|
|
2074 |
It causes problems like the "Send Key" menu not activated till an extra
|
|
2075 |
display is added. To avoid this problem, let's force a call to
|
|
2076 |
display_show_hint() everytime a display is set.
|
|
2077 |
|
|
2078 |
Resolves: rhbz#1152468
|
|
2079 |
https://bugzilla.redhat.com/show_bug.cgi?id=1152468
|
|
2080 |
|
|
2081 |
2014-10-10 Marc-André Lureau <marcandre.lureau@gmail.com>
|
|
2082 |
|
|
2083 |
Use socat instead of nc if possible
|
|
2084 |
It turns out that nc does not leave on server disconnect, and there
|
|
2085 |
doesn't seem to be any option to do that, leaving client open, and
|
|
2086 |
a bunch of idle processes.
|
|
2087 |
|
|
2088 |
Replacing nc with socat solves that, client is disconnected when
|
|
2089 |
the VM is shut down, when the sever connection is closed.
|
|
2090 |
|
|
2091 |
https://bugzilla.redhat.com/show_bug.cgi?id=1030487
|
|
2092 |
|
|
2093 |
2014-10-10 Fabiano Fidêncio <fidencio@redhat.com>
|
|
2094 |
|
|
2095 |
Prefill the username in the authentication dialog
|
|
2096 |
Lets prefill the username entry using the user name of the
|
|
2097 |
current user.
|
|
2098 |
|
|
2099 |
Use 'username' property from .vv file for spice-session
|
|
2100 |
|
|
2101 |
Ask for username when connecting with SASL
|
|
2102 |
When connecting with SASL for authentication, some authentication
|
|
2103 |
mechanisms need a username (the plain text and md5 ones, for example).
|
|
2104 |
|
|
2105 |
2014-10-10 Pavel Grunt <pgrunt@redhat.com>
|
|
2106 |
|
|
2107 |
Show VM chooser dialog when starting virt-viewer with no arg
|
|
2108 |
When user starts virt-viewer without specifying VM domain name
|
|
2109 |
or with a wrong name a list of running machines is shown
|
|
2110 |
and user may choose one of them.
|
|
2111 |
|
|
2112 |
Show VM chooser dialog when oVirt VM name is missing
|
|
2113 |
When a user tries to connect to ovirt without specifying
|
|
2114 |
VM name (remote-viewer ovirt://ovirt.example.com) or with
|
|
2115 |
wrong VM name a list of available virtual machines is shown,
|
|
2116 |
and the user may pick a machine he wants to connect to.
|
|
2117 |
|
|
2118 |
2014-10-09 Christophe Fergeau <cfergeau@redhat.com>
|
|
2119 |
|
|
2120 |
man: Document [ovirt] section in .vv files
|
|
2121 |
Add documentation for these options even though they are mainly meant to
|
|
2122 |
be set by the oVirt portal when it generates the .vv file.
|
|
2123 |
|
|
2124 |
man: Improve doc for 'ca' in .vv files
|
|
2125 |
Make it clearer that this CA will be used to validate the certificate
|
|
2126 |
presented by the remote SPICE host when using TLS.
|
|
2127 |
|
|
2128 |
Fix 'seperate' typo in man page/comments
|
|
2129 |
|
|
2130 |
ovirt: Allow to remove CD images
|
|
2131 |
It turns out this is supposed to be done through update requests with a
|
|
2132 |
CD image with an empty name, which is what the current code tries to do.
|
|
2133 |
The only reason it's not working is because of server-side bugs with
|
|
2134 |
oVirt < 3.5
|
|
2135 |
The requirement on libgovirt is raised to 0.3.2 as
|
|
2136 |
a small change is needed as well in libgovirt to allow empty filenames:
|
|
2137 |
https://git.gnome.org/browse/libgovirt/commit/?id=bdb788fcc
|
|
2138 |
|
|
2139 |
Without this change, nothing too bad will happen, but the CD won't be
|
|
2140 |
removed and warnings will be logged in the console.
|
|
2141 |
|
|
2142 |
2014-10-01 Ján Tomko <jtomko@redhat.com>
|
|
2143 |
|
|
2144 |
Prefer virDomainOpenGraphicsFD for --attach
|
|
2145 |
The virDomainOpenGraphics API cannot label the socket
|
|
2146 |
we pass to it. Prefer virDomainOpenGraphicsFD (if building
|
|
2147 |
with libvirt 1.2.8 or later) which creates the socket for us
|
|
2148 |
and works with SELinux too.
|
|
2149 |
|
|
2150 |
Fall back to the old API if the new one is unsupported
|
|
2151 |
(i.e. the libvirtd on the host is older than the libvirt version
|
|
2152 |
virt-viewer was compiled against).
|
|
2153 |
|
|
2154 |
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1141228
|
|
2155 |
|
|
2156 |
2014-09-26 Fabiano Fidêncio <fidencio@redhat.com>
|
|
2157 |
|
|
2158 |
Let the user cancel the SPICE auth dialog
|
|
2159 |
virt_viewer_auth_collect_credentials() was recently changed to return
|
|
2160 |
a boolean instead of an integer (2561c171). This change introduced a
|
|
2161 |
regression in the authentication dialog behavior, making it impossible
|
|
2162 |
for the user to cancel.
|
|
2163 |
|
|
2164 |
Improve authentication error messages
|
|
2165 |
Adding a better error message to our default error message, based on the
|
|
2166 |
libvirt error. Also, the libvirt error is shown as debug.
|
|
2167 |
|
|
2168 |
https://bugzilla.redhat.com/show_bug.cgi?id=1142742
|
|
2169 |
|
|
2170 |
Simplify virt_viewer_auth_libvirt_credentials() return value logic
|
|
2171 |
As the function should return < 0 in error cases, let's explicitly
|
|
2172 |
return/set the return value to -1 in error cases. Otherwise, the
|
|
2173 |
function will return 0.
|
|
2174 |
|
|
2175 |
This patch also fixes a regression introduced by (a5ce2ed3).
|
|
2176 |
|
|
2177 |
https://bugzilla.redhat.com/show_bug.cgi?id=1142742
|
|
2178 |
|
|
2179 |
2014-09-26 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2180 |
|
|
2181 |
Add example of an oVirt URI to the manpage
|
|
2182 |
https://bugzilla.redhat.com/show_bug.cgi?id=1142769
|
|
2183 |
|
|
2184 |
Add documentation for fullscreen monitor mapping
|
|
2185 |
see https://bugzilla.redhat.com/show_bug.cgi?id=1142769
|
|
2186 |
|
|
2187 |
Initialize fullscreen display map to fallback
|
|
2188 |
If uuid was never set, we never checked the 'fallback' monitor map.
|
|
2189 |
Initializing the monitor map to the fallback value at startup solves
|
|
2190 |
this issue. This allows fallback mode to work with older servers that
|
|
2191 |
don't send the UUID.
|
|
2192 |
|
|
2193 |
Unset app 'fullscreen' when leaving fullscreen
|
|
2194 |
Previously, the fullscreen floating toolbar and the "toggle-fullscreen"
|
|
2195 |
hotkey (which maps to the menu item action) had slightly different
|
|
2196 |
methods of exiting fullscreen. The floating toolbar method unset the
|
|
2197 |
'fullscreen' property on the application (which causes all windows to
|
|
2198 |
simultaneously exit fullscreen), whereas the hotkey did not. This had a
|
|
2199 |
side-effect of preventing the display from auto re-sizing if it was
|
|
2200 |
fullscreened again. After this change, both the hotkey and the toolbar
|
|
2201 |
button will unset the application-level 'fullscreen' property when
|
|
2202 |
exiting fullscreen mode.
|
|
2203 |
|
|
2204 |
Resolves: rhbz#1022608
|
|
2205 |
|
|
2206 |
2014-09-24 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2207 |
|
|
2208 |
VirtViewerDisplayVnc: set 'session' property
|
|
2209 |
Set the display's session property in the constructor. If the session is
|
|
2210 |
not set, then virt_viewer_display_get_session() doesn't return anything
|
|
2211 |
useful.
|
|
2212 |
|
|
2213 |
Make default window size a bit more useful
|
|
2214 |
Currently, windows have a default size of 400x400 pixels. This is a
|
|
2215 |
strange aspect ratio for a display, and it is also too small to be
|
|
2216 |
useful for much. Since the default window size determines the initial
|
|
2217 |
size of newly-enabled displays, it would be nice if we used a slightly
|
|
2218 |
better size.
|
|
2219 |
|
|
2220 |
Set initial window size to display desktop size
|
|
2221 |
When setting the 'display' for a VirtViewerWindow, the initial size for
|
|
2222 |
that window should be the size of the remote display. So we synthesize a
|
|
2223 |
desktop resize event when setting a new display for a window. This is
|
|
2224 |
only done for enabled displays. Disabled displays generally have a size
|
|
2225 |
of 0x0, which would result in the window being at it's minimum size, so
|
|
2226 |
just allow the window to use its default size.
|
|
2227 |
|
|
2228 |
Create windows on demand, not at startup
|
|
2229 |
Previously, a window was created at startup for each display, even if
|
|
2230 |
the display was not enabled. This resulted in a fixed 1:1 association
|
|
2231 |
between windows and remote displays. Since there was always one window
|
|
2232 |
created at startup to display status messages (the "main window"), this
|
|
2233 |
was always associated with remote display #1. But if the first remote
|
|
2234 |
display was not enabled, we ended up with a extra black window with a
|
|
2235 |
message saying ("Waiting for display 1...").
|
|
2236 |
|
|
2237 |
By creating windows on demand, we can re-use the "main window" for any
|
|
2238 |
arbitrary display, even if it's not display #1.
|
|
2239 |
|
|
2240 |
Resolves: rhbz#1032939
|
|
2241 |
|
|
2242 |
VirtViewerApp: store windows in a list
|
|
2243 |
Use a list to store the application's windows. This is another step
|
|
2244 |
towards separating the window from the guest display ID.
|
|
2245 |
|
|
2246 |
VirtViewerDisplay: add convenience API for getting nth
|
|
2247 |
g_object_get(...) can be cumbersome, so add convenience API for getting
|
|
2248 |
the display ID ("nth-display") property:
|
|
2249 |
|
|
2250 |
virt_viewer_display_get_nth()
|
|
2251 |
|
|
2252 |
App: keep hash table of displays
|
|
2253 |
This is part of a re-factoring that will de-couple the client window
|
|
2254 |
from the remote display id.
|
|
2255 |
|
|
2256 |
Don't show extra screens in fullscreen mode
|
|
2257 |
When using the fullscreen display mapping configuration file, extra
|
|
2258 |
monitors could end up enabled by mistake. This was because
|
|
2259 |
virt_viewer_app_get_initial_monitor_for_display would end up returning
|
|
2260 |
Nmonitor = Ndisplay when the display map hash lookup failed. In
|
|
2261 |
reality, when a display map is specified, but the hash lookup fails,
|
|
2262 |
the display should not be enabled. This function now returns -1 to
|
|
2263 |
distinguish this case, and the display is not enabled when this value is
|
|
2264 |
returned.
|
|
2265 |
|
|
2266 |
Resolves issue described at
|
|
2267 |
https://bugzilla.redhat.com/show_bug.cgi?id=1129477#c9
|
|
2268 |
|
|
2269 |
Move monitor mapping into app_window_try_fullscreen()
|
|
2270 |
Rather than requiring all callers to calculate the initial monitor
|
|
2271 |
mapping before calling app_window_try_fullscreen, move the
|
|
2272 |
responsibility for calculating the correct monitor into this function.
|
|
2273 |
This makes it less likely that somebody will forget and a display will
|
|
2274 |
get placed on the wrong monitor.
|
|
2275 |
|
|
2276 |
2014-09-23 Christophe Fergeau <cfergeau@redhat.com>
|
|
2277 |
|
|
2278 |
Don't unref 'display' in VirtViewerDisplaySpice::finalize
|
|
2279 |
Right after being created, the SpiceDisplay 'display' private member is
|
|
2280 |
added to the VirtViewerDisplaySpice GTK+ container with
|
|
2281 |
gtk_container_add. This call will take ownership of the floating
|
|
2282 |
reference that SpiceDisplay got upon creation.
|
|
2283 |
This means VirtViewerDisplaySpice::display is a pointer to SpiceDisplay,
|
|
2284 |
but it must not be unref'ed when the object is destroyed as we don't own
|
|
2285 |
that reference.
|
|
2286 |
As the container which owns the reference is the
|
|
2287 |
VirtViewerDisplaySpice instance itself, we don't need to take an
|
|
2288 |
additional reference here.
|
|
2289 |
|
|
2290 |
This fixes a crash when exiting remote-viewer after connecting to a
|
|
2291 |
SPICE VM:
|
|
2292 |
#0 0x00007ffff3f33a81 in g_type_check_instance_is_fundamentally_a (type_instance=0x874500, fundamental_type=80) at gtype.c:3981
|
|
2293 |
#1 0x00007ffff3f19f96 in g_object_unref (_object=0x874500) at gobject.c:3067
|
|
2294 |
#2 0x000000000042a1ea in virt_viewer_display_spice_finalize (obj=0x6ebc30) at virt-viewer-display-spice.c:65
|
|
2295 |
#3 0x00007ffff3f1a257 in g_object_unref (_object=0x6ebc30) at gobject.c:3170
|
|
2296 |
#4 0x0000000000428de7 in destroy_display (data=0x6ebc30) at virt-viewer-session-spice.c:649
|
|
2297 |
#5 0x00007ffff3bbb51b in g_ptr_array_foreach (array=0x7e12a0, func=0x428d71 <destroy_display>, user_data=0x0) at garray.c:1502
|
|
2298 |
#6 0x00007ffff3bbaadf in ptr_array_free (array=0x7e12a0, flags=FREE_SEGMENT) at garray.c:1088
|
|
2299 |
#7 0x00007ffff3bbaa10 in g_ptr_array_unref (array=0x7e12a0) at garray.c:1036
|
|
2300 |
#8 0x00007ffff3bcf9bd in g_data_set_internal (datalist=0xa0adb0, key_id=1622, new_data=0x0, new_destroy_func=0x0, dataset=0x0) at gdataset.c:407
|
|
2301 |
#9 0x00007ffff3bcfe74 in g_datalist_id_set_data_full (datalist=0xa0adb0, key_id=1622, data=0x0, destroy_func=0x0) at gdataset.c:670
|
|
2302 |
#10 0x00007ffff3f1a771 in g_object_set_data (object=0xa0ada0, key=0x437252 "virt-viewer-displays", data=0x0) at gobject.c:3461
|
|
2303 |
#11 0x0000000000429b56 in virt_viewer_session_spice_channel_destroy (s=0x6eb910, channel=0xa0ada0, session=0x8cb3a0) at virt-viewer-session-spice.c:854
|
|
2304 |
#12 0x00007ffff3f12d81 in g_cclosure_marshal_VOID__OBJECT (closure=0x8e8fd0, return_value=0x0, n_param_values=2, param_values=0x7fffffffcd80, invocation_hint=0x7fffffffccc0, marshal_data=0x0) at gmarshal.c:1272
|
|
2305 |
#13 0x00007ffff3f0e143 in g_closure_invoke (closure=0x8e8fd0, return_value=0x0, n_param_values=2, param_values=0x7fffffffcd80, invocation_hint=0x7fffffffccc0) at gclosure.c:768
|
|
2306 |
#14 0x00007ffff3f2aef0 in signal_emit_unlocked_R (node=0x7c1f20, detail=0, instance=0x6eb910, emission_return=0x0, instance_and_params=0x7fffffffcd80) at gsignal.c:3553
|
|
2307 |
#15 0x00007ffff3f2a1f3 in g_signal_emit_valist (instance=0x6eb910, signal_id=219, detail=0, var_args=0x7fffffffd058) at gsignal.c:3309
|
|
2308 |
#16 0x00007ffff3f2a746 in g_signal_emit (instance=0x6eb910, signal_id=219, detail=0) at gsignal.c:3365
|
|
2309 |
#17 0x00007ffff529d784 in spice_session_channel_destroy (session=0x6eb910, channel=0xa0ada0) at spice-session.c:1990
|
|
2310 |
#18 0x00007ffff529ed25 in spice_channel_dispose (gobject=0xa0ada0) at spice-channel.c:153
|
|
2311 |
#19 0x00007ffff52acd26 in spice_display_channel_dispose (object=0xa0ada0) at channel-display.c:136
|
|
2312 |
#20 0x00007ffff3f1a132 in g_object_unref (_object=0xa0ada0) at gobject.c:3133
|
|
2313 |
#21 0x00007ffff52a4afb in spice_channel_delayed_unref (data=0xa0ada0) at spice-channel.c:2156
|
|
2314 |
#22 0x00007ffff3bf21d1 in g_idle_dispatch (source=0xa35a00, callback=0x7ffff52a49f3 <spice_channel_delayed_unref>, user_data=0xa0ada0) at gmain.c:5320
|
|
2315 |
#23 0x00007ffff3bef8eb in g_main_dispatch (context=0x68a920) at gmain.c:3064
|
|
2316 |
#24 0x00007ffff3bf0661 in g_main_context_dispatch (context=0x68a920) at gmain.c:3663
|
|
2317 |
#25 0x00007ffff3bf0853 in g_main_context_iterate (context=0x68a920, block=1, dispatch=1, self=0x6c8c60) at gmain.c:3734
|
|
2318 |
#26 0x00007ffff3bf0c7c in g_main_loop_run (loop=0x889b20) at gmain.c:3928
|
|
2319 |
#27 0x00007ffff69be44f in gtk_main () at gtkmain.c:1207
|
|
2320 |
#28 0x0000000000431896 in main (argc=1, argv=0x7fffffffd648) at remote-viewer-main.c:183
|
|
2321 |
|
|
2322 |
2014-09-23 Fabiano Fidêncio <fidencio@redhat.com>
|
|
2323 |
|
|
2324 |
Do not fail when the auth dialog is cancelled
|
|
2325 |
https://bugzilla.redhat.com/show_bug.cgi?id=1145460
|
|
2326 |
|
|
2327 |
Revert changes related to numpad accelerators
|
|
2328 |
Due to a GTK+ limitation and bad testing from my side, I've pushed
|
|
2329 |
two patches trying to add support to use Ctrl + {+, -, 0} from numpad
|
|
2330 |
to control zoom-in, zoom-out and zoom-reset.
|
|
2331 |
Unfortunately, with the first patch (3a168815) I've duplicated the menu
|
|
2332 |
items related to the zoom functions. With the second one (55cdb986),
|
|
2333 |
provided to not show the duplicated menu items, we came back to the
|
|
2334 |
initial state, where the numpad accelerators don't work.
|
|
2335 |
|
|
2336 |
So, in resume, multiple accelerators in a GTK+ widget are only supported
|
|
2337 |
on applications using GApplication, what is not our case and won't be
|
|
2338 |
till we drop the GTK+2 support.
|
|
2339 |
|
|
2340 |
Revert "Do not show duplicated menu items" and
|
|
2341 |
Revert "Add support to use numpad accelarators for zoom-{in.out,reset}"
|
|
2342 |
|
|
2343 |
This reverts commits 55cdb9867df05f1c4f6c8e569a6f0c1e0bc28d99 and
|
|
2344 |
3a168815b738076526ba0f3e9a82e6fb1db482e9.
|
|
2345 |
|
|
2346 |
2014-09-22 Christophe Fergeau <cfergeau@redhat.com>
|
|
2347 |
|
|
2348 |
Remove inaccurate G_GNUC_UNUSED
|
|
2349 |
The 'user_data' variable is used in the callback.
|
|
2350 |
|
|
2351 |
2014-09-17 Fabiano Fidêncio <fidencio@redhat.com>
|
|
2352 |
|
|
2353 |
Add support to view the password entry content
|
|
2354 |
Allow users to check if the entered password is right and/org modify
|
|
2355 |
the password easily in case it's wrong.
|
|
2356 |
|
|
2357 |
2014-09-15 Fabiano Fidêncio <fidencio@redhat.com>
|
|
2358 |
|
|
2359 |
Mark all strings for translation in the auth dialog
|
|
2360 |
A few strings weren't marked for translation in the authentication
|
|
2361 |
dialog.
|
|
2362 |
|
|
2363 |
Do not show duplicated menu items
|
|
2364 |
When the support to use numpad accelerators for zoom-{in,out,reset}
|
|
2365 |
was added (3a168815), by mistake, we have added duplicated buttons
|
|
2366 |
in View -> Zoom.
|
|
2367 |
|
|
2368 |
2014-09-12 Christophe Fergeau <cfergeau@redhat.com>
|
|
2369 |
|
|
2370 |
Fix --without-spice-gtk --with-ovirt build
|
|
2371 |
The oVirt foreign menu support reused some existing bits from the older
|
|
2372 |
SPICE controller foreign menu code. However, this controller code is
|
|
2373 |
only built when spice-gtk support is built, while the oVirt foreign menu
|
|
2374 |
code could be used with VNC as well. Trying to build the ovirt foreign
|
|
2375 |
menu code without spice-gtk causes build issues due to missing
|
|
2376 |
functions, or missing declarations, ...
|
|
2377 |
|
|
2378 |
The libgovirt/spice-gtk code which is entangled is the code to update
|
|
2379 |
the foreign menu when its content changes, or when a new window is
|
|
2380 |
opened. Making the oVirt-specific code independant from the
|
|
2381 |
spice-gtk-specific code is not too complicated, but this comes at the
|
|
2382 |
expense of a bit of code duplication, but this is only simple code
|
|
2383 |
iterating over the GHashTable storing the opened windows.
|
|
2384 |
|
|
2385 |
Resolves: rhbz#1127156
|
|
2386 |
|
|
2387 |
Add translatable file to POTFILES.in
|
|
2388 |
|
|
2389 |
2014-09-11 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2390 |
|
|
2391 |
Remove extra ref on SpiceDisplay
|
|
2392 |
There's no need to ref the SpiceDisplay widget when adding it to a
|
|
2393 |
container. The container will take its own ref.
|
|
2394 |
|
|
2395 |
VirtViewer: Fix memory leaks
|
|
2396 |
Don't leak priv->uri or priv->domkey from VirtViewer class
|
|
2397 |
|
|
2398 |
2014-09-05 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2399 |
|
|
2400 |
Don't print warning for missing comment in config file
|
|
2401 |
Change g_warning to g_debug as suggested by Marc-Andre
|
|
2402 |
|
|
2403 |
2014-08-26 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2404 |
|
|
2405 |
Change collect_credentials() to return a boolean
|
|
2406 |
Instead of returning 0 for success and -1 for failure, change to a
|
|
2407 |
boolean success value to be more consistent with the rest of the
|
|
2408 |
virt-viewer code.
|
|
2409 |
|
|
2410 |
Auth: fix leak of username
|
|
2411 |
When collect_credentials() returns a failure status, 'username' was
|
|
2412 |
potentially leaked.
|
|
2413 |
|
|
2414 |
2014-08-19 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2415 |
|
|
2416 |
remote-viewer: oVirt username review fixes
|
|
2417 |
Minor fixes from patch review
|
|
2418 |
|
|
2419 |
rhbz#1061826
|
|
2420 |
|
|
2421 |
2014-08-19 Fabiano Fidêncio <fidencio@redhat.com>
|
|
2422 |
|
|
2423 |
Force displays to update geometry when agent connects
|
|
2424 |
We have to force displays to update geometry when the agent connects to
|
|
2425 |
ensure the client will have the guest with the right resolution when the
|
|
2426 |
guest has rebooted or the agent has crashed.
|
|
2427 |
|
|
2428 |
https://bugzilla.redhat.com/sho_bug.cgi?id=1021841
|
|
2429 |
|
|
2430 |
Fix gcc warning (unused-parameter)
|
|
2431 |
|
|
2432 |
Fix gcc warning (missing-prototypes)
|
|
2433 |
|
|
2434 |
Add support to use numpad accelarators for zoom-{in.out,reset}
|
|
2435 |
As virt-viewer uses GtkAccelMap for shortcuts and that GTK only can have
|
|
2436 |
one key binding per accelerator (in accel_map_add_entry), let's also add
|
|
2437 |
support specificly for the numpad keys in the virt-viewer code
|
|
2438 |
|
|
2439 |
https://bugzilla.redhat.com/show_bug.cgi?id=883433
|
|
2440 |
|
|
2441 |
Don't check for NULL when it never can happen
|
|
2442 |
|
|
2443 |
2014-08-18 Christophe Fergeau <cfergeau@redhat.com>
|
|
2444 |
|
|
2445 |
Create foreign menu from .vv file information
|
|
2446 |
When the .vv file has an [ovirt] section, we should try to create a foreign
|
|
2447 |
menu out of it. This will allow remote-viewer to offer a menu to change the
|
|
2448 |
currenty inserted cdrom.
|
|
2449 |
|
|
2450 |
Contrary to the ovirt:// case when we already have fetched an OvirtAPI
|
|
2451 |
and OvirtVm instance in order to get the SPICE/VNC connection details,
|
|
2452 |
when working from a .vv file, we'll need to get them from the REST API.
|
|
2453 |
Authentication should happen through the JSESSIONID cookie, if that
|
|
2454 |
fails we want to give up on using the foreign menu, so we don't need to
|
|
2455 |
set up authentication callbacks.
|
|
2456 |
|
|
2457 |
Add ovirt-specific properties to VirtViewerFile
|
|
2458 |
They will be useful to implement foreign menu support through
|
|
2459 |
oVirt REST API
|
|
2460 |
|
|
2461 |
Add 'group' argument to VirtViewerFile helpers
|
|
2462 |
For foreign menu support, we'll need a way to pass oVirt-specific
|
|
2463 |
information in the .vv file. This will be done through an additional
|
|
2464 |
[ovirt] section, this commit is in preparation for that.
|
|
2465 |
|
|
2466 |
ovirt: Use OvirtForeignMenu class
|
|
2467 |
After the previous commit which introduced the OvirtForeignMenu
|
|
2468 |
class, we can now make use of it in the remote-viewer UI code.
|
|
2469 |
|
|
2470 |
ovirt: Add OvirtForeignMenu class
|
|
2471 |
This class is used to implement the so-called oVirt 'foreign menu'
|
|
2472 |
which is a menu populated with ISO images available on the
|
|
2473 |
oVirt instance that the user can dynamically insert into the
|
|
2474 |
virtual machine he is currently viewing.
|
|
2475 |
|
|
2476 |
ovirt: Remove extra '/' from oVirt URI
|
|
2477 |
The 'path' part of the URI will always start with a '/' when present as
|
|
2478 |
this is what separates it from the hostname. When rebuilding the final
|
|
2479 |
URI, the current code inserts a '/' by itself between the hostname and
|
|
2480 |
the path, which results in URIs with an extra '/':
|
|
2481 |
https://ovirt.example.com//some/path/api
|
|
2482 |
|
|
2483 |
This is not only cosmetic as this can cause issues with cookie handling
|
|
2484 |
if libgovirt accesses //some/path/api while the cookie is set for
|
|
2485 |
/some/path/api.
|
|
2486 |
|
|
2487 |
2014-08-18 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2488 |
|
|
2489 |
remote-viewer: allow username in ovirt URIs
|
|
2490 |
When the user launches remote-viewer with an ovirt URI of the form
|
|
2491 |
|
|
2492 |
ovirt://user@host/vmname
|
|
2493 |
|
|
2494 |
Pre-populate the authentication dialog with the specified username. We
|
|
2495 |
don't support specifying the password on the commandline, since that is
|
|
2496 |
a potential security risk.
|
|
2497 |
|
|
2498 |
rhbz#1061826
|
|
2499 |
|
|
2500 |
2014-08-15 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2501 |
|
|
2502 |
Don't use fallback ca-file when launching vv-file
|
|
2503 |
When launching from a vv-file, we want to use the ca specified in the vv
|
|
2504 |
file and not load additional certs from the fallback ca-file. This
|
|
2505 |
ensures that the ca-file property of the spice session is unset when
|
|
2506 |
loading a ca from a vv-file.
|
|
2507 |
|
|
2508 |
Resolves: rhbz#1127762
|
|
2509 |
|
|
2510 |
2014-08-07 Jonathon Jongsma <jjongsma@redhat.com>
|
|
2511 |
|
|
2512 |
Write vm name to config file as comment
|
|
2513 |
|
|
2514 |
Change per-guest fullscreen config format
|
|
2515 |
use <display>:<monitor>;<display>:<monitor> instead of simply implying the
|
|
2516 |
display from the array index (e.g. <monitor>;<monitor>). This allows you to set
|
|
2517 |
up sparse guest displays (e.g. display 1 + 3).
|
|
2518 |
|
|
2519 |
For example, to configure display 1 to be fullscreen on monitor 2 and display 2
|
|
2520 |
to be fullscreen on monitor 3:
|
|
2521 |
|
|
2522 |
monitor-mapping=1:2;2:3
|
|
2523 |
|
|
2524 |
Add a dialog showing details of the current guest
|
|
2525 |
This allows the user to obtain the GUID and vm name of the currently-connected
|
|
2526 |
guest. Obviously, this only works with spice. In the future, it will allow them
|
|
2527 |
to set guest-specific configuration options (using a GUID as a key)
|
|
2528 |
|
|
2529 |
2014-08-04 Christophe Fergeau <cfergeau@redhat.com>
|
|
2530 |
|
|
2531 |
Fix warning when going in/out of fullscreen
|
|
2532 |
Going to fullscreen, and then exiting causes these messages to show up
|
|
2533 |
on the console:
|
|
2534 |
(remote-viewer:14481): GLib-CRITICAL **: Source ID 784 was not found
|
|
2535 |
when attempting to remove it
|
|
2536 |
|
|
2537 |
Remove unused RemoteViewerPrivate members
|
|
2538 |
|
|
2539 |
Remove incorrect G_GNUC_UNUSED from remote_viewer_window_added
|
|
2540 |
The 'app' parameter is used in the function.
|
|
2541 |
|
|
2542 |
Remove unused VirtViewerNotebook::dispose
|
|
2543 |
The vfunc implementation is only chaining to its parent, removing it
|
|
2544 |
will achieve the same result.
|
|
2545 |
|
|
2546 |
Chain up to parent's dispose at the end of VirtViewerWindow::dispose
|
|
2547 |
glib documentation says this should be the last thing done in the
|
|
2548 |
dispose() call, which makes sense as this could invalidate still-needed
|
|
2549 |
data in the parent object.
|
|
2550 |
|
|
2551 |
2014-07-22 Marc-André Lureau <marcandre.lureau@gmail.com>
|
|
2552 |
|
|
2553 |
virt-viewer.xml: remove zoom-{in,out} accelerators
|
|
2554 |
The XML menu accelerators conflict with accelerator set in the code and
|
|
2555 |
prevent using them. This is a regression from d29fc63d.
|
|
2556 |
|
|
2557 |
2014-07-21 Marc-André Lureau <marcandre.lureau@gmail.com>
|
|
2558 |
|
|
2559 |
Only filter virt-viewer debug messages
|
|
2560 |
Filter only our own debug messages.
|
|
2561 |
|
|
2562 |
https://bugzilla.redhat.com/show_bug.cgi?id=1118365
|
|
2563 |
|
|
2564 |
Always set ask-quit setting
|
|
2565 |
Avoid creating empty settings files, always set the ask-quit key.
|
|
2566 |
|
|
2567 |
https://bugzilla.redhat.com/show_bug.cgi?id=1006737
|
|
2568 |
|
|
2569 |
spice: avoid crash if connection failed without error
|
|
2570 |
spice_channel_get_error() is not guarantee to return a GError.
|
|
2571 |
|
0 | 2572 |
2014-07-21 Daniel P. Berrange <berrange@redhat.com>
|
|
2573 |
|
|
2574 |
Bump version to 2.0 for next dev cycle
|
1 | 2575 |
|
2 | 2576 |
Update NEWS for 1.0 release
|
3 | 2577 |
|