Package list virt-viewer / 6cb2e48
New upstream version 3.1 Guido Günther 5 years ago
221 changed file(s) with 54811 addition(s) and 42748 deletion(s). Raw diff Collapse all Expand all
1414 Daniel P. Berrange <berrange@redhat.com>
1515 Dave Allan <dallan@redhat.com>
1616 Doug Goldstein <cardoe@cardoe.com>
17 Eduardo Lima (Etrunko) <etrunko@redhat.com>
18 Fabiano Fidêncio <fidencio@redhat.com>
1719 Guannan Ren <gren@redhat.com>
1820 Guido Günther <agx@sigxcpu.org>
1921 Hans de Goede <hdegoede@redhat.com>
2022 Jiri Denemark <Jiri.Denemark@gmail.com>
2123 Jonathon Jongsma <jjongsma@redhat.com>
2224 Ján Tomko <jtomko@redhat.com>
25 Lukas Venhoda <lvenhoda@redhat.com>
2326 Marc-André Lureau <marcandre.lureau@redhat.com>
2427 Martin Kletzander <mkletzan@redhat.com>
2528 Michal Privoznik <mprivozn@redhat.com>
29 Pavel Grunt <pgrunt@redhat.com>
30 Pavel Hrdina <phrdina@redhat.com>
2631 Pavel Raiskup <praiskup@redhat.com>
32 Rex Dieter <rdieter@math.unl.edu>
2733 Richard W.M. Jones <rjones@redhat.com>
2834 Ronnie Sahlberg <ronniesahlberg@gmail.com>
35 Sandy Stutsman <sstutsma@redhat.com>
36 Victor Toso <victortoso@redhat.com>
2937 Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
3038 Yonit Halperin <yhalperi@redhat.com>
3139 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
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
02572 2014-07-21 Daniel P. Berrange <berrange@redhat.com>
2573
2574 Bump version to 2.0 for next dev cycle
12575
22576 Update NEWS for 1.0 release
32577
1111 Basic Installation
1212 ==================
1313
14 Briefly, the shell commands `./configure; make; make install' should
15 configure, build, and install this package. The following
14 Briefly, the shell command `./configure && make && make install'
15 should configure, build, and install this package. The following
1616 more-detailed instructions are generic; see the `README' file for
1717 instructions specific to this package. Some packages provide this
1818 `INSTALL' file but do not implement all of the features documented
66 AM_DISTCHECK_CONFIGURE_FLAGS = --disable-update-mimedb
77 EXTRA_DIST = \
88 $(PACKAGE).spec \
9 mingw-$(PACKAGE).spec \
910 intltool-extract.in \
1011 intltool-merge.in \
1112 intltool-update.in \
2021
2122 DISTCLEAN_FILES = \
2223 $(PACKAGE).spec \
24 mingw-$(PACKAGE).spec \
2325 intltool-extract \
2426 intltool-merge \
2527 intltool-update \
2628 $(NULL)
2729
2830 MAINTAINERCLEANFILES = \
31 $(srcdir)/AUTHORS \
2932 $(srcdir)/INSTALL \
30 $(srcdir)/aclocal.m4 \
31 $(srcdir)/autoscan.log \
32 $(srcdir)/config.h.in \
33 $(srcdir)/build-aux/compile \
34 $(srcdir)/build-aux/config.guess \
35 $(srcdir)/build-aux/config.sub \
36 $(srcdir)/build-aux/depcomp \
37 $(srcdir)/build-aux/install-sh \
38 $(srcdir)/build-aux/ltmain.sh \
39 $(srcdir)/build-aux/missing \
33 $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
34 $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \
4035 $(srcdir)/m4/intltool.m4 \
41 $(srcdir)/m4/libtool.m4 \
42 $(srcdir)/m4/ltoptions.m4 \
43 $(srcdir)/m4/ltsugar.m4 \
44 $(srcdir)/m4/ltversion.m4 \
45 $(srcdir)/m4/lt~obsolete.m4 \
4636 $(NULL)
4737
4838 dist-hook: gen-ChangeLog gen-AUTHORS
0 # Makefile.in generated by automake 1.13.4 from Makefile.am.
0 # Makefile.in generated by automake 1.15 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
1313
1414 @SET_MAKE@
1515 VPATH = @srcdir@
16 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
16 am__is_gnu_make = { \
17 if test -z '$(MAKELEVEL)'; then \
18 false; \
19 elif test -n '$(MAKE_HOST)'; then \
20 true; \
21 elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
22 true; \
23 else \
24 false; \
25 fi; \
26 }
1727 am__make_running_with_option = \
1828 case $${target_option-} in \
1929 ?) ;; \
7787 build_triplet = @build@
7888 host_triplet = @host@
7989 subdir = .
80 DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
81 $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
82 $(top_srcdir)/configure $(am__configure_deps) \
83 $(srcdir)/config.h.in $(srcdir)/mingw-virt-viewer.spec.in \
84 $(srcdir)/virt-viewer.spec.in COPYING build-aux/compile \
85 build-aux/config.guess build-aux/config.sub \
86 build-aux/install-sh build-aux/missing build-aux/ltmain.sh \
87 $(top_srcdir)/build-aux/compile \
88 $(top_srcdir)/build-aux/config.guess \
89 $(top_srcdir)/build-aux/config.sub \
90 $(top_srcdir)/build-aux/install-sh \
91 $(top_srcdir)/build-aux/ltmain.sh \
92 $(top_srcdir)/build-aux/missing
9390 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
9491 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
9592 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
9895 $(top_srcdir)/configure.ac
9996 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
10097 $(ACLOCAL_M4)
98 DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
99 $(am__configure_deps) $(am__DIST_COMMON)
101100 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
102101 configure.lineno config.status.lineno
103102 mkinstalldirs = $(install_sh) -d
161160 CTAGS = ctags
162161 CSCOPE = cscope
163162 DIST_SUBDIRS = $(SUBDIRS)
163 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
164 $(srcdir)/mingw-virt-viewer.spec.in \
165 $(srcdir)/virt-viewer.spec.in $(top_srcdir)/build-aux/compile \
166 $(top_srcdir)/build-aux/config.guess \
167 $(top_srcdir)/build-aux/config.sub \
168 $(top_srcdir)/build-aux/install-sh \
169 $(top_srcdir)/build-aux/ltmain.sh \
170 $(top_srcdir)/build-aux/missing AUTHORS COPYING ChangeLog \
171 INSTALL NEWS README build-aux/compile build-aux/config.guess \
172 build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \
173 build-aux/missing
164174 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
165175 distdir = $(PACKAGE)-$(VERSION)
166176 top_distdir = $(distdir)
283293 LIPO = @LIPO@
284294 LN_S = @LN_S@
285295 LTLIBOBJS = @LTLIBOBJS@
296 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
286297 MAKEINFO = @MAKEINFO@
287298 MANIFEST_TOOL = @MANIFEST_TOOL@
288299 MKDIR_P = @MKDIR_P@
394405 AM_DISTCHECK_CONFIGURE_FLAGS = --disable-update-mimedb
395406 EXTRA_DIST = \
396407 $(PACKAGE).spec \
408 mingw-$(PACKAGE).spec \
397409 intltool-extract.in \
398410 intltool-merge.in \
399411 intltool-update.in \
408420
409421 DISTCLEAN_FILES = \
410422 $(PACKAGE).spec \
423 mingw-$(PACKAGE).spec \
411424 intltool-extract \
412425 intltool-merge \
413426 intltool-update \
414427 $(NULL)
415428
416429 MAINTAINERCLEANFILES = \
430 $(srcdir)/AUTHORS \
417431 $(srcdir)/INSTALL \
418 $(srcdir)/aclocal.m4 \
419 $(srcdir)/autoscan.log \
420 $(srcdir)/config.h.in \
421 $(srcdir)/build-aux/compile \
422 $(srcdir)/build-aux/config.guess \
423 $(srcdir)/build-aux/config.sub \
424 $(srcdir)/build-aux/depcomp \
425 $(srcdir)/build-aux/install-sh \
426 $(srcdir)/build-aux/ltmain.sh \
427 $(srcdir)/build-aux/missing \
432 $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
433 $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \
428434 $(srcdir)/m4/intltool.m4 \
429 $(srcdir)/m4/libtool.m4 \
430 $(srcdir)/m4/ltoptions.m4 \
431 $(srcdir)/m4/ltsugar.m4 \
432 $(srcdir)/m4/ltversion.m4 \
433 $(srcdir)/m4/lt~obsolete.m4 \
434435 $(NULL)
435436
436437 all: config.h
452453 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
453454 $(am__cd) $(top_srcdir) && \
454455 $(AUTOMAKE) --gnu Makefile
455 .PRECIOUS: Makefile
456456 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
457457 @case '$?' in \
458458 *config.status*) \
473473 $(am__aclocal_m4_deps):
474474
475475 config.h: stamp-h1
476 @if test ! -f $@; then rm -f stamp-h1; else :; fi
477 @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
476 @test -f $@ || rm -f stamp-h1
477 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
478478
479479 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
480480 @rm -f stamp-h1
690690 $(am__post_remove_distdir)
691691
692692 dist-tarZ: distdir
693 @echo WARNING: "Support for distribution archives compressed with" \
694 "legacy program 'compress' is deprecated." >&2
695 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
693696 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
694697 $(am__post_remove_distdir)
695698
696699 dist-shar: distdir
700 @echo WARNING: "Support for shar distribution archives is" \
701 "deprecated." >&2
702 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
697703 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
698704 $(am__post_remove_distdir)
699705
728734 esac
729735 chmod -R a-w $(distdir)
730736 chmod u+w $(distdir)
731 mkdir $(distdir)/_build $(distdir)/_inst
737 mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
732738 chmod a-w $(distdir)
733739 test -d $(distdir)/_build || exit 0; \
734740 dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
735741 && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
736742 && am__cwd=`pwd` \
737 && $(am__cd) $(distdir)/_build \
738 && ../configure --srcdir=.. --prefix="$$dc_install_base" \
743 && $(am__cd) $(distdir)/_build/sub \
744 && ../../configure \
739745 $(AM_DISTCHECK_CONFIGURE_FLAGS) \
740746 $(DISTCHECK_CONFIGURE_FLAGS) \
747 --srcdir=../.. --prefix="$$dc_install_base" \
741748 && $(MAKE) $(AM_MAKEFLAGS) \
742749 && $(MAKE) $(AM_MAKEFLAGS) dvi \
743750 && $(MAKE) $(AM_MAKEFLAGS) check \
915922 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
916923 tags tags-am uninstall uninstall-am
917924
925 .PRECIOUS: Makefile
926
918927
919928 dist-hook: gen-ChangeLog gen-AUTHORS
920929
00 Virt Viewer News
11 ================
2
3 3.1: Dec 17, 2015
4 -----------------
5
6 - Refresh translations
7
8 3.0: Dec 3, 2015
9 ----------------
10
11 - Last release to support GTK2 for Linux. The next
12 4.0 release will be GTK3 only.
13 - Don't add URI scheme / path info to oVirt URIs
14 - Require spice-gtk >= 0.30
15 - Enable webdav folder sharing with spice
16 - Add preferences UI dialog
17 - Take --direct into account when checking if guest is
18 reachable
19 - Take SPICE proxy into account when connecting to oVirt
20 instances
21 - Fail gracefully when hostname is not returned by
22 oVirt
23 - Don't show empty foreign menu on secondary displays
24 - Avoid accidentally trying to connect to port 0 when
25 oVirt doesn't specify a port number
26 - Correctly update geometry when enabling/disabling
27 display heads
28 - Avoid accidentally creating extra monitors when using
29 configuration file monitor mapping
30 - Exit normally when cancelling connect dialog
31 - Don't wait for a guest that we know will never show up
32 - Fix crash when using --reconnect with SPICE
33 - Avoid zooming out if it would decrease window size
34 below minimum required for top menu display
35 - Fix crash when disabling last enabled display
36 - Honour changes in display position from guest
37 - Don't show error dialog twice for unknown graphics type
38 - Allow to cancel oVirt auth without error
39 - Set sensitivity of display menu based on whether it is
40 usable or not
41 - Set sensitivity of tool bar buttons based on whether they
42 are usable or not
43 - Set guest name reported by VNC
44 - Fix crash when using gtk-vnc 0.3.8
45 - Fix alt-tab behaviour in choose VM dialog
46 - Don't allow missing display in monitor mapping config
47 - Add --with-osid flag to configure to allow specifying
48 the operating system build target. The values should
49 be based on libosinfo OS short IDs.
50 - Ensure windows installer places menu icon for all users
51 not just admin. Requires manual uninstall of previous
52 windows version
53 - Require address in remote viewer connect dialog
54 - Automatically retry VNC connection after auth failure
55 - Drop GTK2 support for Windows builds
56 - Enable keepalives on libvirt conncetion
57 - Allow resize of window to arbitrary size
58 - Fix thread safety handling event callbacks
59 - Avoid deprecation warnings with newer glib
60 - Pulled in multiple fixes for event loop from libvirt-glib
61 - Fix misc bugs reported by coverity
62 - Fix binary ID in MSI installer
63 - Stop polling libvirt after reconnceting to libvirt
64
65 2.0: Jan 12, 2015
66 -----------------
67
68 - Fix handling of zoom in/out accelerators
69 - Fix warning going in/out of fullscreen
70 - Add dialog showing info about the current guest
71 - Change format of fullscreen config setting to
72 allow for sparse guest displays
73 - Write VM name to config file as a comment
74 - Never use fallback CA certs when loading vv-file
75 - Remove extraneous '/' from oVirt URIs
76 - Support oVirt foreign menus
77 - Allow using numapad for zoom in/out accelerators
78 - Force geometry update when agent connects
79 - Fix misc crash bugs
80 - Fix misc memory leaks
81 - Allow viewing of password entry characters
82 - Don't fail when auth dialog is cancelled
83 - Only create extra windows on demand
84 - Use more sensible default window size
85 - Improve docs for URIs and config files
86 - Allow cancellation of SPICE auth dialog
87 - Use new libvirt API for --attach to avoid SELinux AVC
88 - Allow removable of CD images with oVirt connections
89 - Show VM choose dialog when oVirt VM name is missing
90 - Support usernames request with SASL auth
91 - Use socat instead of nc if available
92 - Use PNG instead of SVG for icons
93 - Support connection to UNIX sockets instead of TCP
94 - Honour zoom level from CLI args with VNC
95 - Switch to GTK3 instead of GKT2 for Windows builds
96 - Ensure dialogs have transient parent set
97 - Switch to gstreamer 1.0 instead of 0.10 for Windows builds
98 - Avoid accidentally connecting to localhost with VNC/SPICE
99 - Use a versioned install directory for Windows builds
2100
3101 1.0: Jul 21, 2014
4102 -----------------
1818
1919 http://gtk-vnc.sourceforge.net/
2020
21 Virt Viewer uses the SPICE-GTK (>= 0.22) widget to provide a
21 Virt Viewer uses the SPICE-GTK (>= 0.30) widget to provide a
2222 display of the SPICE protocol, which is available from:
2323
2424 http://spice-space.org/page/Spice-Gtk
0 # generated automatically by aclocal 1.13.4 -*- Autoconf -*-
1
2 # Copyright (C) 1996-2013 Free Software Foundation, Inc.
0 # generated automatically by aclocal 1.15 -*- Autoconf -*-
1
2 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
33
44 # This file is free software; the Free Software Foundation
55 # gives unlimited permission to copy and/or distribute it,
456456
457457
458458 # nls.m4 serial 5 (gettext-0.18)
459 dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation,
459 dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation,
460460 dnl Inc.
461461 dnl This file is free software; the Free Software Foundation
462462 dnl gives unlimited permission to copy and/or distribute it,
703703 AS_VAR_IF([$1], [""], [$5], [$4])dnl
704704 ])# PKG_CHECK_VAR
705705
706 # Copyright (C) 2002-2013 Free Software Foundation, Inc.
706 # Copyright (C) 2002-2014 Free Software Foundation, Inc.
707707 #
708708 # This file is free software; the Free Software Foundation
709709 # gives unlimited permission to copy and/or distribute it,
715715 # generated from the m4 files accompanying Automake X.Y.
716716 # (This private macro should not be called outside this file.)
717717 AC_DEFUN([AM_AUTOMAKE_VERSION],
718 [am__api_version='1.13'
718 [am__api_version='1.15'
719719 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
720720 dnl require some minimum version. Point them to the right macro.
721 m4_if([$1], [1.13.4], [],
721 m4_if([$1], [1.15], [],
722722 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
723723 ])
724724
734734 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
735735 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
736736 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
737 [AM_AUTOMAKE_VERSION([1.13.4])dnl
737 [AM_AUTOMAKE_VERSION([1.15])dnl
738738 m4_ifndef([AC_AUTOCONF_VERSION],
739739 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
740740 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
741741
742742 # AM_AUX_DIR_EXPAND -*- Autoconf -*-
743743
744 # Copyright (C) 2001-2013 Free Software Foundation, Inc.
744 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
745745 #
746746 # This file is free software; the Free Software Foundation
747747 # gives unlimited permission to copy and/or distribute it,
786786 # configured tree to be moved without reconfiguration.
787787
788788 AC_DEFUN([AM_AUX_DIR_EXPAND],
789 [dnl Rely on autoconf to set up CDPATH properly.
790 AC_PREREQ([2.50])dnl
791 # expand $ac_aux_dir to an absolute path
792 am_aux_dir=`cd $ac_aux_dir && pwd`
789 [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
790 # Expand $ac_aux_dir to an absolute path.
791 am_aux_dir=`cd "$ac_aux_dir" && pwd`
793792 ])
794793
795794 # AM_CONDITIONAL -*- Autoconf -*-
796795
797 # Copyright (C) 1997-2013 Free Software Foundation, Inc.
796 # Copyright (C) 1997-2014 Free Software Foundation, Inc.
798797 #
799798 # This file is free software; the Free Software Foundation
800799 # gives unlimited permission to copy and/or distribute it,
825824 Usually this means the macro was only invoked conditionally.]])
826825 fi])])
827826
828 # Copyright (C) 1999-2013 Free Software Foundation, Inc.
827 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
829828 #
830829 # This file is free software; the Free Software Foundation
831830 # gives unlimited permission to copy and/or distribute it,
10161015
10171016 # Generate code to set up dependency tracking.