Codebase list virt-viewer / 008eacb
Update upstream source from tag 'upstream/6.0' Update to upstream version '6.0' with Debian dir 3456fa8384ae0abaa7abd5c404c3a01462b9e45b Guido Günther 6 years ago
56 changed file(s) with 10346 addition(s) and 8063 deletion(s). Raw diff Collapse all Expand all
1212
1313 Charles Arnold <carnold@suse.com>
1414 Christophe Fergeau <cfergeau@redhat.com>
15 Christophe de Dinechin <cdupontd@redhat.com>
1516 Daniel P. Berrange <berrange@redhat.com>
1617 Dave Allan <dallan@redhat.com>
1718 Doug Goldstein <cardoe@cardoe.com>
3637 Richard W.M. Jones <rjones@redhat.com>
3738 Ronnie Sahlberg <ronniesahlberg@gmail.com>
3839 Sandy Stutsman <sstutsma@redhat.com>
40 Snir Sheriber <ssheribe@redhat.com>
3941 Uri Lublin <uril@redhat.com>
42 Victor Toso <me@victortoso.com>
4043 Victor Toso <victortoso@redhat.com>
4144 Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
4245 Yonit Halperin <yhalperi@redhat.com>
0 2017-08-15 Daniel P. Berrange <berrange@redhat.com>
1
2 Add NEWS for 6.0 release
3
4 2017-08-14 Daniel P. Berrange <berrange@redhat.com>
5
6 Set LC_CTYPE=en_US.UTF-8 when running glib-mkenums
7
8 Revert "Don't set LC_ALL=C during build as that breaks python apps"
9 This reverts commit 921e988db0f09e4a1bac04f56b59a981cb944a78.
10
11 2017-07-25 Daniel P. Berrange <berrange@redhat.com>
12
13 Don't set LC_ALL=C during build as that breaks python apps
14 Setting LC_ALL=C breaks python apps doing I/O on UTF-8 source
15 files. In particular this broke glib-mkenums
16
17 Traceback (most recent call last):
18 File "/usr/bin/glib-mkenums", line 669, in <module>
19 process_file(fname)
20 File "/usr/bin/glib-mkenums", line 406, in process_file
21 line = curfile.readline()
22 File "/usr/lib64/python3.6/encodings/ascii.py", line 26, in decode
23 return codecs.ascii_decode(input, self.errors)[0]
24 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 849: ordinal not in range(128)
25
26 2017-07-20 Jonathon Jongsma <jjongsma@redhat.com>
27
28 Screenshot: reject unknown image type filenames
29 If the image format cannot be determined for a screenshot filename,
30 simply return an error informing the user that this is not a valid image
31 format.
32
33 In the past, if we couldn't determine the file type, we simply saved it
34 as a PNG, and appended a ".png" file extension to the filename. This has
35 several problems. First, it can result in some oddly-named files (e.g. a
36 screenshot named 'Screenshot.pdf.png').
37
38 Second, modifying the filename that is returned from the GtkFileChooser
39 undermines the overwrite-confirmation functionality that is built into
40 the gtk file chooser. When the user specifies a filename in the file
41 chooser dialog, the chooser will automatically check whether a file of
42 that name exists, and if it does, it will display a dialog asking
43 whether the user wants to overwrite it. But if we then append a ".png"
44 extension to the filename and save it, we may be overwriting an existing
45 file without warning. By returning an error for unrecognized file types,
46 we avoid this problem.
47
48 Resolves: rhbz#1455832
49
50 2017-07-19 Jonathon Jongsma <jjongsma@redhat.com>
51
52 Report errors when saving screenshot
53 Currently, the user gets no feedback if the screenshot fails (e.g. if
54 they don't have permission to write in the chosen directory, etc). This
55 patch adds a simple dialog showing the error message when a screenshot
56 fails.
57
58 Change default screenshot name to "Screenshot.png"
59 Since the code attempts to append ".png" to filenames without an
60 extension, it doesn't make much sense to have the default filename be
61 extensionless. Including the extension on the default filename makes
62 things more straightforward.
63
64 Related: rhbz#1455832
65
66 2017-06-12 Victor Toso <me@victortoso.com>
67
68 remote-viewer-connect: Keep the 'dialog' window on top
69 Otherwise, in kiosk mode, it'll be hidden from user.
70
71 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1459800
72
73 Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
74
75 2017-06-08 Eduardo Lima (Etrunko) <etrunko@redhat.com>
76
77 remote-viewer: Show authentication dialog again if in kiosk mode and connecting to ovirt
78 Similar to previous commit 5d9e6d2338cbb680fe761b86e6ca433b1234e6e0, now
79 dealing with the case of connecting directly to ovirt:// URIs, which was
80 left behind.
81
82 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1459808
83
84 2017-06-07 Victor Toso <me@victortoso.com>
85
86 vnc: do not show error on cancel/close of auth dialog
87 Mainly a kiosk mode issue, similar to the spice fix in 6480e52f62b.
88
89 This patch saves the cancel/close state of auth dialog from
90 virt_viewer_auth_collect_credentials() in order to avoid an error
91 dialog to pop up to user in kiosk mode.
92
93 This happens due the fact that we call virt_viewer_app_disconnected()
94 twice:
95 - One with "session-cancelled" which is correct and well handled;
96 - The other with "session-disconnected" which is misleading as there
97 was no connection at this time. This will trigger the error dialog
98 with "Unable to connect to the graphic server %s".
99
100 Related: https://bugzilla.redhat.com/show_bug.cgi?id=1446161
101
102 Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
103
104 2017-06-05 Victor Toso <me@victortoso.com>
105
106 spice: do not show error on cancel/close of auth dialog
107 Mainly an issue for kiosk mode due the fact that it'll not quit the
108 application on cancel. That means that authentication dialog can't
109 really be canceled and showing an input error such as "wrong password"
110 is misleading (no password should be taken in consideration on Cancel).
111
112 Related: https://bugzilla.redhat.com/show_bug.cgi?id=1446161
113
114 Acked-by: Pavel Grunt <pgrunt@redhat.com>
115 Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
116
117 2017-05-31 Eduardo Lima (Etrunko) <etrunko@redhat.com>
118
119 kiosk: Show authentication dialog again if cancelled
120 Related: https://bugzilla.redhat.com/show_bug.cgi?id=1446161
121
122 window: Do not show fullscreen toolbar if in kiosk mode
123 Regression since commit cc455b7f916110d7cfae6b7af753349e070c9494.
124
125 Related: https://bugzilla.redhat.com/show_bug.cgi?id=1446161
126
127 2017-05-18 Victor Toso <me@victortoso.com>
128
129 Make the progress bar smooth during file-transfer
130 When the transfer of a file finishes we stop considering that file's
131 size in the progress bar which makes it move back due the new
132 'transfer size' and 'transferred bytes' - for all the other files.
133
134 This patch aims to keep the progress smooth when a file is finished
135 using the notify::total-bytes from SpiceFileTransferTask to be aware
136 of all file's sizes.
137
138 Note that as we have only one progress bar for all files being
139 transferred, it is expected that it will go back when a new
140 file-transfer operation starts (e.g we drag-and-drop new files while
141 we are already transferring other files).
142
143 As requested, this patch also updates the string message to include the
144 amount of files that will be transferred in case we have more than one
145 file.
146
147 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1449572
148 Acked-by: Pavel Grunt <pgrunt@redhat.com>
149
150 2017-05-18 Pavel Grunt <pgrunt@redhat.com>
151
152 virt-viewer: Ensure to not close during migration
153 Take a look at the shutdown event detail before killing
154 the connection. Otherwise it breaks the SPICE seamless migration
155 feature.
156
157 Regression since commit a62827d28c6b69e90102e4c1c8043cbddad8929a
158
159 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1442929
160 Acked-by: Daniel P. Berrange <berrange@redhat.com>
161
162 2017-05-10 Pavel Grunt <pgrunt@redhat.com>
163
164 window: Allow to control zoom using keypad
165 Support for more than one key combo for accelerator is available
166 since GTK 3.12 through GAction. It is currently not possible to
167 use mnemonics also for numpad keys, for more info see:
168 https://bugzilla.gnome.org/show_bug.cgi?id=699823
169
170 Resolves: rhbz#1337575
171
172 Reviewed-by: Victor Toso <victortoso@redhat.com>
173
174 2017-04-25 Pavel Grunt <pgrunt@redhat.com>
175
176 util: Fix -Wsign-compare
177 Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
178
179 2017-04-19 Victor Toso <me@victortoso.com>
180
181 Fix implicit fallthrough warning on new gcc
182 The option -Wimplicit-fallthrough was added to -Wall recently which
183 generates a few warnings. Based on the comment above the switch, the
184 fallthrough is on purpose so let's add a comment to avoid the following
185 warnings.
186
187 ovirt-foreign-menu.c: In function 'ovirt_foreign_menu_next_async_step':
188 ovirt-foreign-menu.c:293:12: warning: this statement may fall through
189 if (menu->priv->api == NULL) {
190 ^
191 ovirt-foreign-menu.c:297:5: note: here
192 case STATE_VM:
193 ^~~~
194 ovirt-foreign-menu.c:298:12: warning: this statement may fall through
195 if (menu->priv->vm == NULL) {
196 ^
197 ovirt-foreign-menu.c:302:5: note: here
198 case STATE_STORAGE_DOMAIN:
199 ^~~~
200 ovirt-foreign-menu.c:303:12: warning: this statement may fall through
201 if (menu->priv->files == NULL) {
202 ^
203 ovirt-foreign-menu.c:307:5: note: here
204 case STATE_VM_CDROM:
205 ^~~~
206
207 ovirt-foreign-menu.c:308:12: warning: this statement may fall through
208 if (menu->priv->cdrom == NULL) {
209 ^
210 ovirt-foreign-menu.c:312:5: note: here
211 case STATE_CDROM_FILE:
212 ^~~~
213
214 Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
215
216 2017-04-19 Pavel Grunt <pgrunt@redhat.com>
217
218 app: Allow to connect to channel using unix socket
219 Only method for connecting to channel opened later was ssh, however
220 this method failes when unix socket is used:
221
222 <graphics type='spice'>
223 <listen type='socket' socket='/tmp/spice.sock'/>
224 </graphics>
225
226 Related: rhbz#1335832, rhbz#1411765
227
228 Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
229
230 virt-viewer: Support newer libvirt xml format
231 Since libvirt 0.9.4 there is a new listen element which can be used
232 to specify address instead of using the attributes of graphics element.
233
234 Also add support for listen type socket - available for Qemu since
235 libvirt 2.0.0
236
237 Resolves: rhbz#1411765
238
239 Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
240
241 2017-04-11 Jonathon Jongsma <jjongsma@redhat.com>
242
243 tests: improvements to monitor-mapping test
244 Add some tests that specify different numbers of client monitors to
245 ensure that the parsing handles those situations correctly.
246
247 Acked-by: Pavel Grunt <pgrunt@redhat.com>
248
249 Avoid warning when loading initial monitor mapping
250 When started in fullscreen mode with a monitor-mapping configuration
251 option, we are getting the following warnings on the terminal:
252
253 (process:27428): Gdk-CRITICAL **: gdk_screen_get_n_monitors: assertion 'GDK_IS_SCREEN (screen)' failed
254
255 ** (process:27428): WARNING **: Invalid monitor-mapping configuration: monitor #1 for display #1 does not exist
256
257 This is apparently because we were processing the fallback monitor
258 mapping before the graphic server display was opened, so
259 gdk_screen_get_default() returned NULL. This resulted in
260 gdk_screen_get_n_monitors() reporting that we had 0 monitors.
261
262 This patch moves the fallback monitor mapping parsing from
263 virt_viewer_app_init() to virt_viewer_app_on_application_startup(),
264 after chaining up to the base class startup() vfunc. The graphic server
265 display is opened in the base class vfunc, so by the time that returns,
266 we should be able to query the number of monitors.
267
268 The patch also adds a check in virt_viewer_parse_monitor_mappings() to
269 ensure that we pass a sane value for nmonitors.
270
271 Acked-by: Pavel Grunt <pgrunt@redhat.com>
272
273 2017-04-04 Pavel Grunt <pgrunt@redhat.com>
274
275 vnc: Set display as enabled on init
276 Since 9c77a78af2ef85f3fcdce21b42d89566a9f7ee17 the vnc display has
277 stopped setting the show hint and started to ignore the initial zoom
278 setting. Let's handle it in a similar way as the spice display and set
279 the hint when the display is initialized and unset it on disconnect.
280
281 Resolves: rhbz#1436991
282
283 Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
284
285 Remove unused virt_viewer_app_set_zoom_level
286 Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
287
288 Remove G_VALUE_INIT definition
289 Available in GLib since the version 2.30 and virt-viewer requires
290 glib 2.38
291
292 Acked-by: Christophe Fergeau <cfergeau@redhat.com>
293
294 2017-03-16 Pavel Grunt <pgrunt@redhat.com>
295
296 virt-viewer: Fix comparison in domain selection
297 Related: rhbz#1399077
298
299 Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
300
301 2017-03-09 Pavel Grunt <pgrunt@redhat.com>
302
303 virt-viewer: Adjust name-id-uuid comment
304 virt-viewer by default chooses the VM by its id, then uuid
305 and then by name. Adjust the comment to match the implementation.
306
307 Related: rhbz#1399077
308
309 virt-viewer: Allow more precise VM selection
310 Theoretically a VM name can be a valid VM id or uuid. In that case
311 connecting to the VMs may be problematic since virt-viewer selects
312 the VM by its id then by uuid if not found then by its name.
313
314 Introduce new command line options to cover this situation:
315 "--id" to connect to the VM by its id
316 "--uuid" to connect to the VM by its uuid
317 "--domain-name" to connect to the VM by its name
318 The options are mutually exclusive
319
320 Resolves: rhbz#1399077
321
322 2017-03-07 Victor Toso <me@victortoso.com>
323
324 Don't define function without oVirt integration
325 Function is not used without oVirt.
326
327 > virt-viewer-window.c:1063:1: warning: 'iso_dialog_response' defined
328 > but not used [-Wunused-function]
329
330 Avoid harmless warnings due lack of oVirt on build
331 > remote-viewer.c: In function 'remote_viewer_get_property':
332 > remote-viewer.c:227:26: warning: unused variable 'priv' [-Wunused-variable]
333 > RemoteViewerPrivate *priv = self->priv;
334 > ^~~~
335 > remote-viewer.c:224:36: warning: unused parameter 'value' [-Wunused-parameter]
336 > GValue *value, GParamSpec *pspec)
337 > ^~~~~
338 > virt-viewer-window.c: In function 'virt_viewer_window_menu_change_cd_activate':
339 > virt-viewer-window.c:1077:62: warning: unused parameter 'self' [-Wunused-parameter]
340 > VirtViewerWindow *self)
341 > ^~~~
342
343 Fix build when building without oVirt
344 As remote_viewer_iso_list_dialog_new() is defined on
345 remote-viewer-iso-list-dialog.h which is only build with oVirt
346 integration.
347
348 > undefined reference to `remote_viewer_iso_list_dialog_new'
349
350 Note that the callback virt_viewer_window_menu_change_cd_activate() is
351 only visible if oVirt is built in.
352
353 2017-03-03 Pavel Grunt <pgrunt@redhat.com>
354
355 file-transfer: Fix label of the dialog
356 Display correct text and make it translatable
357
358 Resolves:
359 https://bugs.freedesktop.org/show_bug.cgi?id=99980
360
361 Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
362
363 2017-02-17 Christophe Fergeau <cfergeau@redhat.com>
364
365 spice: Remove unneeded braces
366 Two statements in virt_viewer_session_spice_main_channel_event() are
367 wrapped in a { } block, but this is unneeded.
368
369 man: Fix qemu+ssh URL in example
370 The 'system' path was missing: qemu+ssh://example.org/system
371
372 Resolves: rhbz#1377283
373
374 2017-02-14 Christophe de Dinechin <cdupontd@redhat.com>
375
376 Show errors generated by connection dialog
377 When running 'remote-viewer' without arguments,
378 and selecting a non-supported protocol, e.g. ssh://foo,
379 the generated error was silently swallowed by the retry loop.
380 This was introduced in 06b2c382468876a19600374bd59475e66d488af8.
381
382 2017-02-09 Eduardo Lima (Etrunko) <etrunko@redhat.com>
383
384 session-spice: Pass hostname to authentication dialog
385 With this patch the dialog now shows the host we are connecting to.
386
387 iso-dialog: Avoid crash when closing dialog early
388 We must take into account that users can close the dialog at anytime,
389 even during an operation of fetch or set ISO has not been finished. This
390 will cause the callbacks for those operations to be invoked with an
391 invalid object, crashing the application.
392
393 To fix this issue we need to pass a GCancellable to the asynchronous
394 operations, so they can be cancelled if the dialog happens to get closed
395 before they complete.
396
397 NOTE: This patch triggers a deadlock in libgovirt when the dialog is
398 closed before the operation completes. Bug reported in
399 https://bugzilla.gnome.org/show_bug.cgi?id=777808. We will need to bump
400 libgovirt dependency whenever it has a new release.
401
402 2017-02-07 Pavel Grunt <pgrunt@redhat.com>
403
404 Do not print password in the debug log
405 Do not show a length since it is sensitive info as well.
406
407 Resolves: rhbz#1410030
408
409 Acked-by: Christophe Fergeau <cfergeau@redhat.com>
410
411 iso-dialog: Do not use string directly
412 Fixes -Werror=format-security used when creating the rpm
413
414 Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
415
416 Update for README.md
417 It is needed to use the 'foreign' init option otherwise autotools
418 requires README
419
420 Fix make distcheck and spec file generation
421
422 Acked-by: Christophe Fergeau <cfergeau@redhat.com>
423
424 2017-01-27 Pavel Grunt <pgrunt@redhat.com>
425
426 README: switch to Markdown syntax
427 To render nicely on the project git page:
428 https://pagure.io/virt-viewer
429
430 Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
431
432 README: Update links
433 Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
434
435 2017-01-24 Eduardo Lima (Etrunko) <etrunko@redhat.com>
436
437 Run ISO dialog when 'Change CD' menu is activated
438 Also moves 'Change CD' menu item from the toplevel menu to a subitem
439 under 'File' toplevel menu.
440
441 In order to avoid object interdependency, it is necessary to make the
442 ovirt foreign-menu pointer from RemoteViewer, accessible via property,
443 so it can be passed to the dialog as an opaque GObject.
444
445 Finally, with this commit, we clean up ovirt foreign menu code, which
446 only deals with data, leaving the UI bits to be handled properly in the
447 new ISO list dialog.
448
449 Introduce ISO List dialog
450 The motivation for this dialog started with rhbz #1310624, where it was
451 reported that foreign menu was causing too many debug messages to be
452 printed to the console, because remote viewer had a timeout of 5 seconds
453 to refresh the ISO list automatically.
454
455 As a workaround, the timeout was adjusted for 5 minutes, but it could
456 cause more problems, such as inconsistencies between what was shown by
457 remote viewer and what the server had configured.
458
459 Another issue caused by displaying the ISO files as a menu item was that
460 if the list was too long, it would take all the available space on the
461 screen. In the end, a menu item was not the correct choice of UI
462 component for this use case.
463
464 In order to solve both problems, we now present the ISO list as a
465 dedicated dialog, where the refresh of ISO list is triggered manually by
466 the user and the list is contained within the dialog, by displaying de
467 files in a treeview.
468
469 2017-01-19 Eduardo Lima (Etrunko) <etrunko@redhat.com>
470
471 ovirt-foreign-menu: Add accessors for current iso and iso list
472 Also, to keep consistency around the codebase, changed the return value
473 of ovirt_foreign_menu_get_current_iso_name() from char * to gchar *.
474
475 2017-01-18 Eduardo Lima (Etrunko) <etrunko@redhat.com>
476
477 ovirt-foreign-menu: Fetch ISO names using GTask API
478 Similar to the previous commit, the ISO dialog will fetch the result
479 asynchronously, rather than relying on the "notify::files" signal from
480 OvirtForeignMenu object. It also enables error to be shown if anything
481 goes wrong.
482
483 ovirt-foreign-menu: Set new ISO name using GTask API
484 This is done with the new ovirt_foreign_menu_set_current_iso_name_async
485 function.
486
487 2017-01-13 Eduardo Lima (Etrunko) <etrunko@redhat.com>
488
489 remote-viewer: Extend #ifdef HAVE_OVIRT block
490 The #endif is closing a #ifdef HAVE_OVIRT block, while another one is
491 opened right next, so there is no need to have those lines. Also, due to
492 the large amount of source code in between, add a small comment on the
493 last #endif to identify what it refers to.
494
495 2017-01-10 Snir Sheriber <ssheribe@redhat.com>
496
497 app: Update warning msg in virt-viewer's window
498 Information about connection issues during display
499 activation will appear in virt-viewer's window
500
501 Related: rhbz#1386630
502
503 2017-01-05 Pavel Grunt <pgrunt@redhat.com>
504
505 Set guest name at the same time as uuid
506 Avoid showing the "Unknown" name in the guest detail dialog when
507 waiting for the domain to be started.
508
509 Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
510
511 2017-01-02 Snir Sheriber <ssheribe@redhat.com>
512
513 spice: Replace g_warning with g_debug
514 Instead of having a warning message telling the user that they can't
515 have more displays enabled in fullscreen than the number of physical
516 displays, let's just have it as a debug message.
517
518 Related: rhbz#1368390
519
520 Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
521
522 2016-12-30 Snir Sheriber <ssheribe@redhat.com>
523
524 spice: Fix display id in the warning log
525 The display id in the warning log is now consistent with the display
526 id in the "view->displays->display x" menu item
527
528 Related: rhbz#1368390
529
530 Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>
531
532 2016-12-05 Christophe Fergeau <cfergeau@redhat.com>
533
534 man: Mention that ssh-agent can be useful
535 When using a tunneled SPICE connection, the user will get a dozen
536 authentication prompts if they are not using ssh-agent.
537
538 https://bugzilla.redhat.com/show_bug.cgi?id=1377283
539
0540 2016-11-24 Daniel P. Berrange <berrange@redhat.com>
541
542 Post release version bump to 6.0
1543
2544 Add NEWS for 5.0 release
3545
+0
-370
INSTALL less more
0 Installation Instructions
1 *************************
2
3 Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
4 Inc.
5
6 Copying and distribution of this file, with or without modification,
7 are permitted in any medium without royalty provided the copyright
8 notice and this notice are preserved. This file is offered as-is,
9 without warranty of any kind.
10
11 Basic Installation
12 ==================
13
14 Briefly, the shell command `./configure && make && make install'
15 should configure, build, and install this package. The following
16 more-detailed instructions are generic; see the `README' file for
17 instructions specific to this package. Some packages provide this
18 `INSTALL' file but do not implement all of the features documented
19 below. The lack of an optional feature in a given package is not
20 necessarily a bug. More recommendations for GNU packages can be found
21 in *note Makefile Conventions: (standards)Makefile Conventions.
22
23 The `configure' shell script attempts to guess correct values for
24 various system-dependent variables used during compilation. It uses
25 those values to create a `Makefile' in each directory of the package.
26 It may also create one or more `.h' files containing system-dependent
27 definitions. Finally, it creates a shell script `config.status' that
28 you can run in the future to recreate the current configuration, and a
29 file `config.log' containing compiler output (useful mainly for
30 debugging `configure').
31
32 It can also use an optional file (typically called `config.cache'
33 and enabled with `--cache-file=config.cache' or simply `-C') that saves
34 the results of its tests to speed up reconfiguring. Caching is
35 disabled by default to prevent problems with accidental use of stale
36 cache files.
37
38 If you need to do unusual things to compile the package, please try
39 to figure out how `configure' could check whether to do them, and mail
40 diffs or instructions to the address given in the `README' so they can
41 be considered for the next release. If you are using the cache, and at
42 some point `config.cache' contains results you don't want to keep, you
43 may remove or edit it.
44
45 The file `configure.ac' (or `configure.in') is used to create
46 `configure' by a program called `autoconf'. You need `configure.ac' if
47 you want to change it or regenerate `configure' using a newer version
48 of `autoconf'.
49
50 The simplest way to compile this package is:
51
52 1. `cd' to the directory containing the package's source code and type
53 `./configure' to configure the package for your system.
54
55 Running `configure' might take a while. While running, it prints
56 some messages telling which features it is checking for.
57
58 2. Type `make' to compile the package.
59
60 3. Optionally, type `make check' to run any self-tests that come with
61 the package, generally using the just-built uninstalled binaries.
62
63 4. Type `make install' to install the programs and any data files and
64 documentation. When installing into a prefix owned by root, it is
65 recommended that the package be configured and built as a regular
66 user, and only the `make install' phase executed with root
67 privileges.
68
69 5. Optionally, type `make installcheck' to repeat any self-tests, but
70 this time using the binaries in their final installed location.
71 This target does not install anything. Running this target as a
72 regular user, particularly if the prior `make install' required
73 root privileges, verifies that the installation completed
74 correctly.
75
76 6. You can remove the program binaries and object files from the
77 source code directory by typing `make clean'. To also remove the
78 files that `configure' created (so you can compile the package for
79 a different kind of computer), type `make distclean'. There is
80 also a `make maintainer-clean' target, but that is intended mainly
81 for the package's developers. If you use it, you may have to get
82 all sorts of other programs in order to regenerate files that came
83 with the distribution.
84
85 7. Often, you can also type `make uninstall' to remove the installed
86 files again. In practice, not all packages have tested that
87 uninstallation works correctly, even though it is required by the
88 GNU Coding Standards.
89
90 8. Some packages, particularly those that use Automake, provide `make
91 distcheck', which can by used by developers to test that all other
92 targets like `make install' and `make uninstall' work correctly.
93 This target is generally not run by end users.
94
95 Compilers and Options
96 =====================
97
98 Some systems require unusual options for compilation or linking that
99 the `configure' script does not know about. Run `./configure --help'
100 for details on some of the pertinent environment variables.
101
102 You can give `configure' initial values for configuration parameters
103 by setting variables in the command line or in the environment. Here
104 is an example:
105
106 ./configure CC=c99 CFLAGS=-g LIBS=-lposix
107
108 *Note Defining Variables::, for more details.
109
110 Compiling For Multiple Architectures
111 ====================================
112
113 You can compile the package for more than one kind of computer at the
114 same time, by placing the object files for each architecture in their
115 own directory. To do this, you can use GNU `make'. `cd' to the
116 directory where you want the object files and executables to go and run
117 the `configure' script. `configure' automatically checks for the
118 source code in the directory that `configure' is in and in `..'. This
119 is known as a "VPATH" build.
120
121 With a non-GNU `make', it is safer to compile the package for one
122 architecture at a time in the source code directory. After you have
123 installed the package for one architecture, use `make distclean' before
124 reconfiguring for another architecture.
125
126 On MacOS X 10.5 and later systems, you can create libraries and
127 executables that work on multiple system types--known as "fat" or
128 "universal" binaries--by specifying multiple `-arch' options to the
129 compiler but only a single `-arch' option to the preprocessor. Like
130 this:
131
132 ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
133 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
134 CPP="gcc -E" CXXCPP="g++ -E"
135
136 This is not guaranteed to produce working output in all cases, you
137 may have to build one architecture at a time and combine the results
138 using the `lipo' tool if you have problems.
139
140 Installation Names
141 ==================
142
143 By default, `make install' installs the package's commands under
144 `/usr/local/bin', include files under `/usr/local/include', etc. You
145 can specify an installation prefix other than `/usr/local' by giving
146 `configure' the option `--prefix=PREFIX', where PREFIX must be an
147 absolute file name.
148
149 You can specify separate installation prefixes for
150 architecture-specific files and architecture-independent files. If you
151 pass the option `--exec-prefix=PREFIX' to `configure', the package uses
152 PREFIX as the prefix for installing programs and libraries.
153 Documentation and other data files still use the regular prefix.
154
155 In addition, if you use an unusual directory layout you can give
156 options like `--bindir=DIR' to specify different values for particular
157 kinds of files. Run `configure --help' for a list of the directories
158 you can set and what kinds of files go in them. In general, the
159 default for these options is expressed in terms of `${prefix}', so that
160 specifying just `--prefix' will affect all of the other directory
161 specifications that were not explicitly provided.
162
163 The most portable way to affect installation locations is to pass the
164 correct locations to `configure'; however, many packages provide one or
165 both of the following shortcuts of passing variable assignments to the
166 `make install' command line to change installation locations without
167 having to reconfigure or recompile.
168
169 The first method involves providing an override variable for each
170 affected directory. For example, `make install
171 prefix=/alternate/directory' will choose an alternate location for all
172 directory configuration variables that were expressed in terms of
173 `${prefix}'. Any directories that were specified during `configure',
174 but not in terms of `${prefix}', must each be overridden at install
175 time for the entire installation to be relocated. The approach of
176 makefile variable overrides for each directory variable is required by
177 the GNU Coding Standards, and ideally causes no recompilation.
178 However, some platforms have known limitations with the semantics of
179 shared libraries that end up requiring recompilation when using this
180 method, particularly noticeable in packages that use GNU Libtool.
181
182 The second method involves providing the `DESTDIR' variable. For
183 example, `make install DESTDIR=/alternate/directory' will prepend
184 `/alternate/directory' before all installation names. The approach of
185 `DESTDIR' overrides is not required by the GNU Coding Standards, and
186 does not work on platforms that have drive letters. On the other hand,
187 it does better at avoiding recompilation issues, and works well even
188 when some directory options were not specified in terms of `${prefix}'
189 at `configure' time.
190
191 Optional Features
192 =================
193
194 If the package supports it, you can cause programs to be installed
195 with an extra prefix or suffix on their names by giving `configure' the
196 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
197
198 Some packages pay attention to `--enable-FEATURE' options to
199 `configure', where FEATURE indicates an optional part of the package.
200 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
201 is something like `gnu-as' or `x' (for the X Window System). The
202 `README' should mention any `--enable-' and `--with-' options that the
203 package recognizes.
204
205 For packages that use the X Window System, `configure' can usually
206 find the X include and library files automatically, but if it doesn't,
207 you can use the `configure' options `--x-includes=DIR' and
208 `--x-libraries=DIR' to specify their locations.
209
210 Some packages offer the ability to configure how verbose the
211 execution of `make' will be. For these packages, running `./configure
212 --enable-silent-rules' sets the default to minimal output, which can be
213 overridden with `make V=1'; while running `./configure
214 --disable-silent-rules' sets the default to verbose, which can be
215 overridden with `make V=0'.
216
217 Particular systems
218 ==================
219
220 On HP-UX, the default C compiler is not ANSI C compatible. If GNU
221 CC is not installed, it is recommended to use the following options in
222 order to use an ANSI C compiler:
223
224 ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
225
226 and if that doesn't work, install pre-built binaries of GCC for HP-UX.
227
228 HP-UX `make' updates targets which have the same time stamps as
229 their prerequisites, which makes it generally unusable when shipped
230 generated files such as `configure' are involved. Use GNU `make'
231 instead.
232
233 On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
234 parse its `<wchar.h>' header file. The option `-nodtk' can be used as
235 a workaround. If GNU CC is not installed, it is therefore recommended
236 to try
237
238 ./configure CC="cc"
239
240 and if that doesn't work, try
241
242 ./configure CC="cc -nodtk"
243
244 On Solaris, don't put `/usr/ucb' early in your `PATH'. This
245 directory contains several dysfunctional programs; working variants of
246 these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
247 in your `PATH', put it _after_ `/usr/bin'.
248
249 On Haiku, software installed for all users goes in `/boot/common',
250 not `/usr/local'. It is recommended to use the following options:
251
252 ./configure --prefix=/boot/common
253
254 Specifying the System Type
255 ==========================
256
257 There may be some features `configure' cannot figure out
258 automatically, but needs to determine by the type of machine the package
259 will run on. Usually, assuming the package is built to be run on the
260 _same_ architectures, `configure' can figure that out, but if it prints
261 a message saying it cannot guess the machine type, give it the
262 `--build=TYPE' option. TYPE can either be a short name for the system
263 type, such as `sun4', or a canonical name which has the form:
264
265 CPU-COMPANY-SYSTEM
266
267 where SYSTEM can have one of these forms:
268
269 OS
270 KERNEL-OS
271
272 See the file `config.sub' for the possible values of each field. If
273 `config.sub' isn't included in this package, then this package doesn't
274 need to know the machine type.
275
276 If you are _building_ compiler tools for cross-compiling, you should
277 use the option `--target=TYPE' to select the type of system they will
278 produce code for.
279
280 If you want to _use_ a cross compiler, that generates code for a
281 platform different from the build platform, you should specify the
282 "host" platform (i.e., that on which the generated programs will
283 eventually be run) with `--host=TYPE'.
284
285 Sharing Defaults
286 ================
287
288 If you want to set default values for `configure' scripts to share,
289 you can create a site shell script called `config.site' that gives
290 default values for variables like `CC', `cache_file', and `prefix'.
291 `configure' looks for `PREFIX/share/config.site' if it exists, then
292 `PREFIX/etc/config.site' if it exists. Or, you can set the
293 `CONFIG_SITE' environment variable to the location of the site script.
294 A warning: not all `configure' scripts look for a site script.
295
296 Defining Variables
297 ==================
298
299 Variables not defined in a site shell script can be set in the
300 environment passed to `configure'. However, some packages may run
301 configure again during the build, and the customized values of these
302 variables may be lost. In order to avoid this problem, you should set
303 them in the `configure' command line, using `VAR=value'. For example:
304
305 ./configure CC=/usr/local2/bin/gcc
306
307 causes the specified `gcc' to be used as the C compiler (unless it is
308 overridden in the site shell script).
309
310 Unfortunately, this technique does not work for `CONFIG_SHELL' due to
311 an Autoconf limitation. Until the limitation is lifted, you can use
312 this workaround:
313
314 CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
315
316 `configure' Invocation
317 ======================
318
319 `configure' recognizes the following options to control how it
320 operates.
321
322 `--help'
323 `-h'
324 Print a summary of all of the options to `configure', and exit.
325
326 `--help=short'
327 `--help=recursive'
328 Print a summary of the options unique to this package's
329 `configure', and exit. The `short' variant lists options used
330 only in the top level, while the `recursive' variant lists options
331 also present in any nested packages.
332
333 `--version'
334 `-V'
335 Print the version of Autoconf used to generate the `configure'
336 script, and exit.
337
338 `--cache-file=FILE'
339 Enable the cache: use and save the results of the tests in FILE,
340 traditionally `config.cache'. FILE defaults to `/dev/null' to
341 disable caching.
342
343 `--config-cache'
344 `-C'
345 Alias for `--cache-file=config.cache'.
346
347 `--quiet'
348 `--silent'
349 `-q'
350 Do not print messages saying which checks are being made. To
351 suppress all normal output, redirect it to `/dev/null' (any error
352 messages will still be shown).
353
354 `--srcdir=DIR'
355 Look for the package's source code in directory DIR. Usually
356 `configure' can determine that directory automatically.
357
358 `--prefix=DIR'
359 Use DIR as the installation prefix. *note Installation Names::
360 for more details, including other options available for fine-tuning
361 the installation locations.
362
363 `--no-create'
364 `-n'
365 Run the configure checks, but stop before creating any output
366 files.
367
368 `configure' also accepts some other, not widely useful, options. Run
369 `configure --help' for more details.
1717 build-aux/useless-if-before-free \
1818 build-aux/vc-list-files \
1919 AUTHORS.in \
20 README.md \
2021 $(NULL)
2122
2223 DISTCLEAN_FILES = \
166166 $(top_srcdir)/build-aux/config.sub \
167167 $(top_srcdir)/build-aux/install-sh \
168168 $(top_srcdir)/build-aux/ltmain.sh \
169 $(top_srcdir)/build-aux/missing AUTHORS COPYING ChangeLog \
170 INSTALL NEWS README build-aux/compile build-aux/config.guess \
171 build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \
172 build-aux/missing
169 $(top_srcdir)/build-aux/missing AUTHORS COPYING ChangeLog NEWS \
170 build-aux/compile build-aux/config.guess build-aux/config.sub \
171 build-aux/install-sh build-aux/ltmain.sh build-aux/missing
173172 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
174173 distdir = $(PACKAGE)-$(VERSION)
175174 top_distdir = $(distdir)
274273 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
275274 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
276275 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
276 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
277277 LD = @LD@
278278 LDFLAGS = @LDFLAGS@
279279 LIBOBJS = @LIBOBJS@
412412 build-aux/useless-if-before-free \
413413 build-aux/vc-list-files \
414414 AUTHORS.in \
415 README.md \
415416 $(NULL)
416417
417418 DISTCLEAN_FILES = \
440441 @for dep in $?; do \
441442 case '$(am__configure_deps)' in \
442443 *$$dep*) \
443 echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
444 $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
444 echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
445 $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
445446 && exit 0; \
446447 exit 1;; \
447448 esac; \
448449 done; \
449 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
450 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
450451 $(am__cd) $(top_srcdir) && \
451 $(AUTOMAKE) --gnu Makefile
452 $(AUTOMAKE) --foreign Makefile
452453 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
453454 @case '$?' in \
454455 *config.status*) \
00 Virt Viewer News
11 ================
2
3 6.0: Aug 15, 2017
4 -----------------
5
6 - Mention use of ssh-agent in man page
7 - Display connection issue warnings in main window
8 - Switch to GTask API
9 - Add support changing CD ISO with oVirt foreign menu
10 - Update various outdated links in README
11 - Avoid printing password in debug logs
12 - Pass hostname to authentication dialog
13 - Fix example URLs in man page
14 - Add args to virt-viewer to specify whether to
15 resolve VM based on ID, UUID or name
16 - Fix misc runtime warnings
17 - Improve support for extracting listening info from XML
18 - Enable connecting to SPICE over UNIX socket
19 - Fix warnings with newer GCCs
20 - Allow controlling zoom level with keypad
21 - Don't close app during seemless migration
22 - Don't show toolbar in kiosk mode
23 - Re-show auth dialog in kiosk mode
24 - Don't show error when cancelling auth
25 - Change default screenshot name to 'Screenshot.png'
26 - Report errors when saving screenshot
27 - Fix build with latest glib-mkenums
228
329 5.0: Nov 24, 2016
430 -----------------
+0
-42
README less more
0 Virt Viewer
1 ===========
2
3 Virt Viewer provides a graphical viewer for the guest OS
4 display. At this time is supports guest OS using the VNC
5 or SPICE protocols. Further protocols may be supported in
6 the future as user demand dictates. The viewer can connect
7 directly to both local and remotely hosted guest OS, optionally
8 using SSL/TLS encryption.
9
10 Virt Viewer is the GTK3 application. Virt Viewer 3.0 was
11 the last release that supported GTK2.
12
13 Virt Viewer uses the GTK-VNC (>= 0.4.0) widget to provide a
14 display of the VNC protocol, which is available from
15
16 http://gtk-vnc.sourceforge.net/
17
18 Virt Viewer uses the SPICE-GTK (>= 0.30) widget to provide a
19 display of the SPICE protocol, which is available from:
20
21 http://www.spice-space.org/download.html
22
23 Use of either SPICE-GTK or GTK-VNC can be disabled at time
24 of configure, with --without-gtk-vnc or --without-spice-gtk
25 respectively.
26
27 Virt Viewer uses libvirt to lookup information about the
28 guest OS display. This is available from
29
30 http://libvirt.org/
31
32 Further information about the Virt Viewer application can be
33 found on the Virt Manager website:
34
35 http://virt-manager.org/
36
37 Feedback should be directed to the mailing list at
38
39 http://virt-manager.org/mailinglist.html
40
41 -- End
0 # Virt Viewer
1
2 Virt Viewer provides a graphical viewer for the guest OS
3 display. At this time is supports guest OS using the VNC
4 or SPICE protocols. Further protocols may be supported in
5 the future as user demand dictates. The viewer can connect
6 directly to both local and remotely hosted guest OS, optionally
7 using SSL/TLS encryption.
8
9 Virt Viewer is the GTK3 application. Virt Viewer 3.0 was
10 the last release that supported GTK2.
11
12 Virt Viewer uses the GTK-VNC (>= 0.4.0) widget to provide a
13 display of the VNC protocol, which is available from
14
15 https://wiki.gnome.org/Projects/gtk-vnc
16
17 Virt Viewer uses the SPICE-GTK (>= 0.33) widget to provide a
18 display of the SPICE protocol, which is available from:
19
20 https://www.spice-space.org/download.html
21
22 Use of either SPICE-GTK or GTK-VNC can be disabled at time
23 of configure, with `--without-gtk-vnc` or `--without-spice-gtk`
24 respectively.
25
26 Virt Viewer uses libvirt to lookup information about the
27 guest OS display. This is available from
28
29 http://libvirt.org/
30
31 Further information about the Virt Viewer application can be
32 found on the Virt Manager website:
33
34 http://virt-manager.org/
35
36 Feedback should be directed to the mailing list at
37
38 http://www.redhat.com/mailman/listinfo/virt-tools-list
118118 AC_SUBST($1)dnl
119119 ])
120120
121 dnl Checks for special options needed on Mac OS X.
122 dnl Defines INTL_MACOSX_LIBS.
123 dnl
124 dnl Copied from intlmacosx.m4 in gettext, GPL.
125 dnl Copyright (C) 2004-2013 Free Software Foundation, Inc.
126 glib_DEFUN([glib_gt_INTL_MACOSX],
127 [
128 dnl Check for API introduced in Mac OS X 10.2.
129 AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
130 [gt_cv_func_CFPreferencesCopyAppValue],
131 [gt_save_LIBS="$LIBS"
132 LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
133 AC_LINK_IFELSE(
134 [AC_LANG_PROGRAM(
135 [[#include <CoreFoundation/CFPreferences.h>]],
136 [[CFPreferencesCopyAppValue(NULL, NULL)]])],
137 [gt_cv_func_CFPreferencesCopyAppValue=yes],
138 [gt_cv_func_CFPreferencesCopyAppValue=no])
139 LIBS="$gt_save_LIBS"])
140 if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
141 AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
142 [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
143 fi
144 dnl Check for API introduced in Mac OS X 10.3.
145 AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
146 [gt_save_LIBS="$LIBS"
147 LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
148 AC_LINK_IFELSE(
149 [AC_LANG_PROGRAM(
150 [[#include <CoreFoundation/CFLocale.h>]],
151 [[CFLocaleCopyCurrent();]])],
152 [gt_cv_func_CFLocaleCopyCurrent=yes],
153 [gt_cv_func_CFLocaleCopyCurrent=no])
154 LIBS="$gt_save_LIBS"])
155 if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
156 AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
157 [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
158 fi
159 INTL_MACOSX_LIBS=
160 if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
161 INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
162 fi
163 AC_SUBST([INTL_MACOSX_LIBS])
164 ])
165
121166 # GLIB_WITH_NLS
122167 #-----------------
123168 glib_DEFUN([GLIB_WITH_NLS],
130175 CATOBJEXT=NONE
131176 XGETTEXT=:
132177 INTLLIBS=
178
179 glib_gt_INTL_MACOSX
133180
134181 AC_CHECK_HEADER(libintl.h,
135182 [gt_cv_func_dgettext_libintl="no"
214261 fi
215262
216263 if test "$gt_cv_func_dgettext_libintl" = "yes"; then
217 INTLLIBS="-lintl $libintl_extra_libs"
264 INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS"
218265 fi
219266
220267 if test "$gt_cv_have_gettext" = "yes"; then
679726 AC_SUBST([USE_NLS])
680727 ])
681728
682 dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
683 dnl serial 11 (pkg-config-0.29.1)
684 dnl
729 # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
730 # serial 11 (pkg-config-0.29.1)
731
685732 dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
686733 dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
687734 dnl
9541001
9551002 AS_VAR_IF([$1], [""], [$5], [$4])dnl
9561003 ])dnl PKG_CHECK_VAR
1004
1005 dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
1006 dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
1007 dnl [DESCRIPTION], [DEFAULT])
1008 dnl ------------------------------------------
1009 dnl
1010 dnl Prepare a "--with-" configure option using the lowercase
1011 dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
1012 dnl PKG_CHECK_MODULES in a single macro.
1013 AC_DEFUN([PKG_WITH_MODULES],
1014 [
1015 m4_pushdef([with_arg], m4_tolower([$1]))
1016
1017 m4_pushdef([description],
1018 [m4_default([$5], [build with ]with_arg[ support])])
1019
1020 m4_pushdef([def_arg], [m4_default([$6], [auto])])
1021 m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
1022 m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
1023
1024 m4_case(def_arg,
1025 [yes],[m4_pushdef([with_without], [--without-]with_arg)],
1026 [m4_pushdef([with_without],[--with-]with_arg)])
1027
1028 AC_ARG_WITH(with_arg,
1029 AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
1030 [AS_TR_SH([with_]with_arg)=def_arg])
1031
1032 AS_CASE([$AS_TR_SH([with_]with_arg)],
1033 [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
1034 [auto],[PKG_CHECK_MODULES([$1],[$2],
1035 [m4_n([def_action_if_found]) $3],
1036 [m4_n([def_action_if_not_found]) $4])])
1037
1038 m4_popdef([with_arg])
1039 m4_popdef([description])
1040 m4_popdef([def_arg])
1041
1042 ])dnl PKG_WITH_MODULES
1043
1044 dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
1045 dnl [DESCRIPTION], [DEFAULT])
1046 dnl -----------------------------------------------
1047 dnl
1048 dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
1049 dnl check._[VARIABLE-PREFIX] is exported as make variable.
1050 AC_DEFUN([PKG_HAVE_WITH_MODULES],
1051 [
1052 PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
1053
1054 AM_CONDITIONAL([HAVE_][$1],
1055 [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
1056 ])dnl PKG_HAVE_WITH_MODULES
1057
1058 dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
1059 dnl [DESCRIPTION], [DEFAULT])
1060 dnl ------------------------------------------------------
1061 dnl
1062 dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
1063 dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
1064 dnl and preprocessor variable.
1065 AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
1066 [
1067 PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
1068
1069 AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
1070 [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
1071 ])dnl PKG_HAVE_DEFINE_WITH_MODULES
9571072
9581073 # Copyright (C) 2002-2014 Free Software Foundation, Inc.
9591074 #
00 #! /bin/sh
11 # Attempt to guess a canonical system name.
2 # Copyright 1992-2015 Free Software Foundation, Inc.
3
4 timestamp='2015-01-01'
2 # Copyright 1992-2016 Free Software Foundation, Inc.
3
4 timestamp='2016-10-02'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
2626 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
2727 #
2828 # You can get the latest version of this script from:
29 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
29 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
3030 #
3131 # Please send patches to <config-patches@gnu.org>.
3232
4949 GNU config.guess ($timestamp)
5050
5151 Originally written by Per Bothner.
52 Copyright 1992-2015 Free Software Foundation, Inc.
52 Copyright 1992-2016 Free Software Foundation, Inc.
5353
5454 This is free software; see the source for copying conditions. There is NO
5555 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
167167 # Note: NetBSD doesn't particularly care about the vendor
168168 # portion of the name. We always set it to "unknown".
169169 sysctl="sysctl -n hw.machine_arch"
170 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
171 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
170 UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
171 /sbin/$sysctl 2>/dev/null || \
172 /usr/sbin/$sysctl 2>/dev/null || \
173 echo unknown)`
172174 case "${UNAME_MACHINE_ARCH}" in
173175 armeb) machine=armeb-unknown ;;
174176 arm*) machine=arm-unknown ;;
175177 sh3el) machine=shl-unknown ;;
176178 sh3eb) machine=sh-unknown ;;
177179 sh5el) machine=sh5le-unknown ;;
180 earmv*)
181 arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
182 endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
183 machine=${arch}${endian}-unknown
184 ;;
178185 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
179186 esac
180187 # The Operating System including object format, if it has switched
181 # to ELF recently, or will in the future.
188 # to ELF recently (or will in the future) and ABI.
182189 case "${UNAME_MACHINE_ARCH}" in
190 earm*)
191 os=netbsdelf
192 ;;
183193 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
184194 eval $set_cc_for_build
185195 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
196206 os=netbsd
197207 ;;
198208 esac
209 # Determine ABI tags.
210 case "${UNAME_MACHINE_ARCH}" in
211 earm*)
212 expr='s/^earmv[0-9]/-eabi/;s/eb$//'
213 abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
214 ;;
215 esac
199216 # The OS release
200217 # Debian GNU/NetBSD machines have a different userland, and
201218 # thus, need a distinct triplet. However, they do not need
206223 release='-gnu'
207224 ;;
208225 *)
209 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
226 release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
210227 ;;
211228 esac
212229 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
213230 # contains redundant information, the shorter form:
214231 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
215 echo "${machine}-${os}${release}"
232 echo "${machine}-${os}${release}${abi}"
216233 exit ;;
217234 *:Bitrig:*:*)
218235 UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
222239 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
223240 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
224241 exit ;;
242 *:LibertyBSD:*:*)
243 UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
244 echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
245 exit ;;
225246 *:ekkoBSD:*:*)
226247 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
227248 exit ;;
233254 exit ;;
234255 *:MirBSD:*:*)
235256 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
257 exit ;;
258 *:Sortix:*:*)
259 echo ${UNAME_MACHINE}-unknown-sortix
236260 exit ;;
237261 alpha:OSF1:*:*)
238262 case $UNAME_RELEASE in
250274 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
251275 case "$ALPHA_CPU_TYPE" in
252276 "EV4 (21064)")
253 UNAME_MACHINE="alpha" ;;
277 UNAME_MACHINE=alpha ;;
254278 "EV4.5 (21064)")
255 UNAME_MACHINE="alpha" ;;
279 UNAME_MACHINE=alpha ;;
256280 "LCA4 (21066/21068)")
257 UNAME_MACHINE="alpha" ;;
281 UNAME_MACHINE=alpha ;;
258282 "EV5 (21164)")
259 UNAME_MACHINE="alphaev5" ;;
283 UNAME_MACHINE=alphaev5 ;;
260284 "EV5.6 (21164A)")
261 UNAME_MACHINE="alphaev56" ;;
285 UNAME_MACHINE=alphaev56 ;;
262286 "EV5.6 (21164PC)")
263 UNAME_MACHINE="alphapca56" ;;
287 UNAME_MACHINE=alphapca56 ;;
264288 "EV5.7 (21164PC)")
265 UNAME_MACHINE="alphapca57" ;;
289 UNAME_MACHINE=alphapca57 ;;
266290 "EV6 (21264)")
267 UNAME_MACHINE="alphaev6" ;;
291 UNAME_MACHINE=alphaev6 ;;
268292 "EV6.7 (21264A)")
269 UNAME_MACHINE="alphaev67" ;;
293 UNAME_MACHINE=alphaev67 ;;
270294 "EV6.8CB (21264C)")
271 UNAME_MACHINE="alphaev68" ;;
295 UNAME_MACHINE=alphaev68 ;;
272296 "EV6.8AL (21264B)")
273 UNAME_MACHINE="alphaev68" ;;
297 UNAME_MACHINE=alphaev68 ;;
274298 "EV6.8CX (21264D)")
275 UNAME_MACHINE="alphaev68" ;;
299 UNAME_MACHINE=alphaev68 ;;
276300 "EV6.9A (21264/EV69A)")
277 UNAME_MACHINE="alphaev69" ;;
301 UNAME_MACHINE=alphaev69 ;;
278302 "EV7 (21364)")
279 UNAME_MACHINE="alphaev7" ;;
303 UNAME_MACHINE=alphaev7 ;;
280304 "EV7.9 (21364A)")
281 UNAME_MACHINE="alphaev79" ;;
305 UNAME_MACHINE=alphaev79 ;;
282306 esac
283307 # A Pn.n version is a patched version.
284308 # A Vn.n version is a released version.
285309 # A Tn.n version is a released field test version.
286310 # A Xn.n version is an unreleased experimental baselevel.
287311 # 1.2 uses "1.2" for uname -r.
288 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
312 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
289313 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
290314 exitcode=$?
291315 trap '' 0
358382 exit ;;
359383 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
360384 eval $set_cc_for_build
361 SUN_ARCH="i386"
385 SUN_ARCH=i386
362386 # If there is a compiler, see if it is configured for 64-bit objects.
363387 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
364388 # This test works for both compilers.
365 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
389 if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
366390 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
367 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
391 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
368392 grep IS_64BIT_ARCH >/dev/null
369393 then
370 SUN_ARCH="x86_64"
394 SUN_ARCH=x86_64
371395 fi
372396 fi
373397 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
392416 exit ;;
393417 sun*:*:4.2BSD:*)
394418 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
395 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
419 test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
396420 case "`/bin/arch`" in
397421 sun3)
398422 echo m68k-sun-sunos${UNAME_RELEASE}
617641 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
618642 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
619643 case "${sc_cpu_version}" in
620 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
621 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
644 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
645 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
622646 532) # CPU_PA_RISC2_0
623647 case "${sc_kernel_bits}" in
624 32) HP_ARCH="hppa2.0n" ;;
625 64) HP_ARCH="hppa2.0w" ;;
626 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
648 32) HP_ARCH=hppa2.0n ;;
649 64) HP_ARCH=hppa2.0w ;;
650 '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
627651 esac ;;
628652 esac
629653 fi
662686 exit (0);
663687 }
664688 EOF
665 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
689 (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
666690 test -z "$HP_ARCH" && HP_ARCH=hppa
667691 fi ;;
668692 esac
669 if [ ${HP_ARCH} = "hppa2.0w" ]
693 if [ ${HP_ARCH} = hppa2.0w ]
670694 then
671695 eval $set_cc_for_build
672696
679703 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
680704 # => hppa64-hp-hpux11.23
681705
682 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
706 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
683707 grep -q __LP64__
684708 then
685 HP_ARCH="hppa2.0w"
709 HP_ARCH=hppa2.0w
686710 else
687 HP_ARCH="hppa64"
711 HP_ARCH=hppa64
688712 fi
689713 fi
690714 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
789813 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
790814 exit ;;
791815 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
792 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
793 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
816 FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
817 FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
794818 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
795819 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
796820 exit ;;
797821 5000:UNIX_System_V:4.*:*)
798 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
799 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
822 FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
823 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
800824 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
801825 exit ;;
802826 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
878902 exit ;;
879903 *:GNU/*:*:*)
880904 # other systems with GNU libc and userland
881 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
905 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
882906 exit ;;
883907 i*86:Minix:*:*)
884908 echo ${UNAME_MACHINE}-pc-minix
901925 EV68*) UNAME_MACHINE=alphaev68 ;;
902926 esac
903927 objdump --private-headers /bin/sh | grep -q ld.so.1
904 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
928 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
905929 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
906930 exit ;;
907931 arc:Linux:*:* | arceb:Linux:*:*)
932956 crisv32:Linux:*:*)
933957 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
934958 exit ;;
959 e2k:Linux:*:*)
960 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
961 exit ;;
935962 frv:Linux:*:*)
936963 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
937964 exit ;;
942969 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
943970 exit ;;
944971 ia64:Linux:*:*)
972 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
973 exit ;;
974 k1om:Linux:*:*)
945975 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
946976 exit ;;
947977 m32r*:Linux:*:*)
969999 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
9701000 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
9711001 ;;
1002 mips64el:Linux:*:*)
1003 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1004 exit ;;
9721005 openrisc*:Linux:*:*)
9731006 echo or1k-unknown-linux-${LIBC}
9741007 exit ;;
10011034 ppcle:Linux:*:*)
10021035 echo powerpcle-unknown-linux-${LIBC}
10031036 exit ;;
1037 riscv32:Linux:*:* | riscv64:Linux:*:*)
1038 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1039 exit ;;
10041040 s390:Linux:*:* | s390x:Linux:*:*)
10051041 echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
10061042 exit ;;
10201056 echo ${UNAME_MACHINE}-dec-linux-${LIBC}
10211057 exit ;;
10221058 x86_64:Linux:*:*)
1023 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1059 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
10241060 exit ;;
10251061 xtensa*:Linux:*:*)
10261062 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
10991135 # uname -m prints for DJGPP always 'pc', but it prints nothing about
11001136 # the processor, so we play safe by assuming i586.
11011137 # Note: whatever this is, it MUST be the same as what config.sub
1102 # prints for the "djgpp" host, or else GDB configury will decide that
1138 # prints for the "djgpp" host, or else GDB configure will decide that
11031139 # this is a cross-build.
11041140 echo i586-pc-msdosdjgpp
11051141 exit ;;
12481284 SX-8R:SUPER-UX:*:*)
12491285 echo sx8r-nec-superux${UNAME_RELEASE}
12501286 exit ;;
1287 SX-ACE:SUPER-UX:*:*)
1288 echo sxace-nec-superux${UNAME_RELEASE}
1289 exit ;;
12511290 Power*:Rhapsody:*:*)
12521291 echo powerpc-apple-rhapsody${UNAME_RELEASE}
12531292 exit ;;
12611300 UNAME_PROCESSOR=powerpc
12621301 fi
12631302 if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
1264 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1303 if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
12651304 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1266 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1305 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
12671306 grep IS_64BIT_ARCH >/dev/null
12681307 then
12691308 case $UNAME_PROCESSOR in
12851324 exit ;;
12861325 *:procnto*:*:* | *:QNX:[0123456789]*:*)
12871326 UNAME_PROCESSOR=`uname -p`
1288 if test "$UNAME_PROCESSOR" = "x86"; then
1327 if test "$UNAME_PROCESSOR" = x86; then
12891328 UNAME_PROCESSOR=i386
12901329 UNAME_MACHINE=pc
12911330 fi
13161355 # "uname -m" is not consistent, so use $cputype instead. 386
13171356 # is converted to i386 for consistency with other x86
13181357 # operating systems.
1319 if test "$cputype" = "386"; then
1358 if test "$cputype" = 386; then
13201359 UNAME_MACHINE=i386
13211360 else
13221361 UNAME_MACHINE="$cputype"
13581397 echo i386-pc-xenix
13591398 exit ;;
13601399 i*86:skyos:*:*)
1361 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1400 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
13621401 exit ;;
13631402 i*86:rdos:*:*)
13641403 echo ${UNAME_MACHINE}-pc-rdos
13691408 x86_64:VMkernel:*:*)
13701409 echo ${UNAME_MACHINE}-unknown-esx
13711410 exit ;;
1411 amd64:Isilon\ OneFS:*:*)
1412 echo x86_64-unknown-onefs
1413 exit ;;
13721414 esac
13731415
13741416 cat >&2 <<EOF
13751417 $0: unable to guess system type
13761418
1377 This script, last modified $timestamp, has failed to recognize
1378 the operating system you are using. It is advised that you
1379 download the most up to date version of the config scripts from
1380
1381 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1419 This script (version $timestamp), has failed to recognize the
1420 operating system you are using. If your script is old, overwrite
1421 config.guess and config.sub with the latest versions from:
1422
1423 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
13821424 and
1383 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1384
1385 If the version you run ($0) is already up to date, please
1386 send the following data and any information you think might be
1387 pertinent to <config-patches@gnu.org> in order to provide the needed
1388 information to handle your system.
1425 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
1426
1427 If $0 has already been updated, send the following data and any
1428 information you think might be pertinent to config-patches@gnu.org to
1429 provide the necessary information to handle your system.
13891430
13901431 config.guess timestamp = $timestamp
13911432
00 #! /bin/sh
11 # Configuration validation subroutine script.
2 # Copyright 1992-2015 Free Software Foundation, Inc.
3
4 timestamp='2015-01-01'
2 # Copyright 1992-2016 Free Software Foundation, Inc.
3
4 timestamp='2016-09-05'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
3232 # Otherwise, we print the canonical config type on stdout and succeed.
3333
3434 # You can get the latest version of this script from:
35 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
35 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
3636
3737 # This file is supposed to be the same for all GNU packages
3838 # and recognize all the CPU types, system types and aliases
5252 me=`echo "$0" | sed -e 's,.*/,,'`
5353
5454 usage="\
55 Usage: $0 [OPTION] CPU-MFR-OPSYS
56 $0 [OPTION] ALIAS
55 Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
5756
5857 Canonicalize a configuration name.
5958
6766 version="\
6867 GNU config.sub ($timestamp)
6968
70 Copyright 1992-2015 Free Software Foundation, Inc.
69 Copyright 1992-2016 Free Software Foundation, Inc.
7170
7271 This is free software; see the source for copying conditions. There is NO
7372 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
116115 case $maybe_os in
117116 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
118117 linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119 knetbsd*-gnu* | netbsd*-gnu* | \
120 kopensolaris*-gnu* | \
118 knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
119 kopensolaris*-gnu* | cloudabi*-eabi* | \
121120 storm-chaos* | os2-emx* | rtmk-nova*)
122121 os=-$maybe_os
123122 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
254253 | arc | arceb \
255254 | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
256255 | avr | avr32 \
256 | ba \
257257 | be32 | be64 \
258258 | bfin \
259259 | c4x | c8051 | clipper \
260260 | d10v | d30v | dlx | dsp16xx \
261 | epiphany \
261 | e2k | epiphany \
262262 | fido | fr30 | frv | ft32 \
263263 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
264264 | hexagon \
304304 | riscv32 | riscv64 \
305305 | rl78 | rx \
306306 | score \
307 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
307 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
308308 | sh64 | sh64le \
309309 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
310310 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
375375 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
376376 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
377377 | avr-* | avr32-* \
378 | ba-* \
378379 | be32-* | be64-* \
379380 | bfin-* | bs2000-* \
380381 | c[123]* | c30-* | [cjt]90-* | c4x-* \
381382 | c8051-* | clipper-* | craynv-* | cydra-* \
382383 | d10v-* | d30v-* | dlx-* \
383 | elxsi-* \
384 | e2k-* | elxsi-* \
384385 | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
385386 | h8300-* | h8500-* \
386387 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
427428 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
428429 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
429430 | pyramid-* \
431 | riscv32-* | riscv64-* \
430432 | rl78-* | romp-* | rs6000-* | rx-* \
431433 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
432434 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
433435 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
434436 | sparclite-* \
435 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
437 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
436438 | tahoe-* \
437439 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
438440 | tile*-* \
517519 basic_machine=i386-pc
518520 os=-aros
519521 ;;
522 asmjs)
523 basic_machine=asmjs-unknown
524 ;;
520525 aux)
521526 basic_machine=m68k-apple
522527 os=-aux
636641 dpx2* | dpx2*-bull)
637642 basic_machine=m68k-bull
638643 os=-sysv3
644 ;;
645 e500v[12])
646 basic_machine=powerpc-unknown
647 os=$os"spe"
648 ;;
649 e500v[12]-*)
650 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
651 os=$os"spe"
639652 ;;
640653 ebmon29k)
641654 basic_machine=a29k-amd
10161029 ppc-* | ppcbe-*)
10171030 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
10181031 ;;
1019 ppcle | powerpclittle | ppc-le | powerpc-little)
1032 ppcle | powerpclittle)
10201033 basic_machine=powerpcle-unknown
10211034 ;;
10221035 ppcle-* | powerpclittle-*)
10261039 ;;
10271040 ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
10281041 ;;
1029 ppc64le | powerpc64little | ppc64-le | powerpc64-little)
1042 ppc64le | powerpc64little)
10301043 basic_machine=powerpc64le-unknown
10311044 ;;
10321045 ppc64le-* | powerpc64little-*)
13721385 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
13731386 | -sym* | -kopensolaris* | -plan9* \
13741387 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1375 | -aos* | -aros* \
1388 | -aos* | -aros* | -cloudabi* | -sortix* \
13761389 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
13771390 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
13781391 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1379 | -bitrig* | -openbsd* | -solidbsd* \
1392 | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
13801393 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
13811394 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
13821395 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
13831396 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
13841397 | -chorusos* | -chorusrdb* | -cegcc* \
13851398 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1386 | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1399 | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
13871400 | -linux-newlib* | -linux-musl* | -linux-uclibc* \
13881401 | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
13891402 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
13921405 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
13931406 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
13941407 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1395 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
1408 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1409 | -onefs* | -tirtos* | -phoenix*)
13961410 # Remember, each alternative MUST END IN *, to match a version number.
13971411 ;;
13981412 -qnx*)
15241538 ;;
15251539 -nacl*)
15261540 ;;
1541 -ios)
1542 ;;
15271543 -none)
15281544 ;;
15291545 *)
1616
1717 /* Define to 1 if you have the `bind_textdomain_codeset' function. */
1818 #undef HAVE_BIND_TEXTDOMAIN_CODESET
19
20 /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
21 CoreFoundation framework. */
22 #undef HAVE_CFLOCALECOPYCURRENT
23
24 /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
25 the CoreFoundation framework. */
26 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
1927
2028 /* Define to 1 if you have the `dcgettext' function. */
2129 #undef HAVE_DCGETTEXT
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for virt-viewer 5.0.
2 # Generated by GNU Autoconf 2.69 for virt-viewer 6.0.
33 #
44 #
55 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
586586 # Identity of this package.
587587 PACKAGE_NAME='virt-viewer'
588588 PACKAGE_TARNAME='virt-viewer'
589 PACKAGE_VERSION='5.0'
590 PACKAGE_STRING='virt-viewer 5.0'
589 PACKAGE_VERSION='6.0'
590 PACKAGE_STRING='virt-viewer 6.0'
591591 PACKAGE_BUGREPORT=''
592592 PACKAGE_URL=''
593593
715715 GMSGFMT
716716 MSGFMT_OPTS
717717 MSGFMT
718 INTL_MACOSX_LIBS
718719 USE_NLS
719720 GETTEXT_PACKAGE
720721 WARN_CFLAGS
14411442 # Omit some internal or obsolete options to make the list less imposing.
14421443 # This message is too long to be a string in the A/UX 3.1 sh.
14431444 cat <<_ACEOF
1444 \`configure' configures virt-viewer 5.0 to adapt to many kinds of systems.
1445 \`configure' configures virt-viewer 6.0 to adapt to many kinds of systems.
14451446
14461447 Usage: $0 [OPTION]... [VAR=VALUE]...
14471448
15111512
15121513 if test -n "$ac_init_help"; then
15131514 case $ac_init_help in
1514 short | recursive ) echo "Configuration of virt-viewer 5.0:";;
1515 short | recursive ) echo "Configuration of virt-viewer 6.0:";;
15151516 esac
15161517 cat <<\_ACEOF
15171518
16721673 test -n "$ac_init_help" && exit $ac_status
16731674 if $ac_init_version; then
16741675 cat <<\_ACEOF
1675 virt-viewer configure 5.0
1676 virt-viewer configure 6.0
16761677 generated by GNU Autoconf 2.69
16771678
16781679 Copyright (C) 2012 Free Software Foundation, Inc.
20372038 This file contains any messages produced by compilers while
20382039 running configure, to aid debugging if configure makes a mistake.
20392040
2040 It was created by virt-viewer $as_me 5.0, which was
2041 It was created by virt-viewer $as_me 6.0, which was
20412042 generated by GNU Autoconf 2.69. Invocation command line was
20422043
20432044 $ $0 $@
29042905
29052906 # Define the identity of the package.
29062907 PACKAGE='virt-viewer'
2907 VERSION='5.0'
2908 VERSION='6.0'
29082909
29092910
29102911 cat >>confdefs.h <<_ACEOF
31163117 GLIB2_ENCODED_VERSION="GLIB_VERSION_2_38"
31173118
31183119 # Keep these two definitions in agreement.
3119 GTK_REQUIRED="3.10"
3120 GTK_ENCODED_VERSION="GDK_VERSION_3_10"
3120 GTK_REQUIRED="3.12"
3121 GTK_ENCODED_VERSION="GDK_VERSION_3_12"
31213122
31223123 LIBXML2_REQUIRED="2.6.0"
31233124 LIBVIRT_REQUIRED="0.10.0"
1253612537 XGETTEXT=:
1253712538 INTLLIBS=
1253812539
12540
12541 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
12542 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
12543 if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
12544 $as_echo_n "(cached) " >&6
12545 else
12546 gt_save_LIBS="$LIBS"
12547 LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
12548 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12549 /* end confdefs.h. */
12550 #include <CoreFoundation/CFPreferences.h>
12551 int
12552 main ()
12553 {
12554 CFPreferencesCopyAppValue(NULL, NULL)
12555 ;
12556 return 0;
12557 }
12558 _ACEOF
12559 if ac_fn_c_try_link "$LINENO"; then :
12560 gt_cv_func_CFPreferencesCopyAppValue=yes
12561 else
12562 gt_cv_func_CFPreferencesCopyAppValue=no
12563 fi
12564 rm -f core conftest.err conftest.$ac_objext \
12565 conftest$ac_exeext conftest.$ac_ext
12566 LIBS="$gt_save_LIBS"
12567 fi
12568 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
12569 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
12570 if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
12571
12572 $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
12573
12574 fi
12575 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
12576 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
12577 if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
12578 $as_echo_n "(cached) " >&6
12579 else
12580 gt_save_LIBS="$LIBS"
12581 LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
12582 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12583 /* end confdefs.h. */
12584 #include <CoreFoundation/CFLocale.h>
12585 int
12586 main ()
12587 {
12588 CFLocaleCopyCurrent();
12589 ;
12590 return 0;
12591 }
12592 _ACEOF
12593 if ac_fn_c_try_link "$LINENO"; then :
12594 gt_cv_func_CFLocaleCopyCurrent=yes
12595 else
12596 gt_cv_func_CFLocaleCopyCurrent=no
12597 fi
12598 rm -f core conftest.err conftest.$ac_objext \
12599 conftest$ac_exeext conftest.$ac_ext
12600 LIBS="$gt_save_LIBS"
12601 fi
12602 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
12603 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
12604 if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
12605
12606 $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
12607
12608 fi
12609 INTL_MACOSX_LIBS=
12610 if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
12611 INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
12612 fi
12613
12614
12615
1253912616 ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
1254012617 if test "x$ac_cv_header_libintl_h" = xyes; then :
1254112618 gt_cv_func_dgettext_libintl="no"
1287612953 fi
1287712954
1287812955 if test "$gt_cv_func_dgettext_libintl" = "yes"; then
12879 INTLLIBS="-lintl $libintl_extra_libs"
12956 INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS"
1288012957 fi
1288112958
1288212959 if test "$gt_cv_have_gettext" = "yes"; then
1564615723 # report actual input values of CONFIG_FILES etc. instead of their
1564715724 # values after options handling.
1564815725 ac_log="
15649 This file was extended by virt-viewer $as_me 5.0, which was
15726 This file was extended by virt-viewer $as_me 6.0, which was
1565015727 generated by GNU Autoconf 2.69. Invocation command line was
1565115728
1565215729 CONFIG_FILES = $CONFIG_FILES
1571615793 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1571715794 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1571815795 ac_cs_version="\\
15719 virt-viewer config.status 5.0
15796 virt-viewer config.status 6.0
1572015797 configured by $0, generated by GNU Autoconf 2.69,
1572115798 with options \\"\$ac_cs_config\\"
1572215799
00
1 AC_INIT([virt-viewer],[5.0])
1 AC_INIT([virt-viewer],[6.0])
22 AC_CONFIG_SRCDIR(src/virt-viewer-main.c)
33 AC_CONFIG_MACRO_DIR([m4])
44 AC_CONFIG_AUX_DIR([build-aux])
55 AC_CONFIG_HEADERS([config.h])
66 dnl Make automake keep quiet about wildcards & other GNUmake-isms
7 AM_INIT_AUTOMAKE([subdir-objects -Wno-portability])
7 AM_INIT_AUTOMAKE([subdir-objects -Wno-portability foreign])
88 AC_CANONICAL_HOST
99
1010 # Use the silent-rules feature when possible.
1616 GLIB2_ENCODED_VERSION="GLIB_VERSION_2_38"
1717
1818 # Keep these two definitions in agreement.
19 GTK_REQUIRED="3.10"
20 GTK_ENCODED_VERSION="GDK_VERSION_3_10"
19 GTK_REQUIRED="3.12"
20 GTK_ENCODED_VERSION="GDK_VERSION_3_12"
2121
2222 LIBXML2_REQUIRED="2.6.0"
2323 LIBVIRT_REQUIRED="0.10.0"
221221 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
222222 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
223223 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
224 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
224225 LD = @LD@
225226 LDFLAGS = @LDFLAGS@
226227 LIBOBJS = @LIBOBJS@
376377 exit 1;; \
377378 esac; \
378379 done; \
379 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \
380 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \
380381 $(am__cd) $(top_srcdir) && \
381 $(AUTOMAKE) --gnu data/Makefile
382 $(AUTOMAKE) --foreign data/Makefile
382383 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
383384 @case '$?' in \
384385 *config.status*) \
0 virt-viewer (6.0-1~1.gbpd90bc7) UNRELEASED; urgency=medium
1
2 ** SNAPSHOT build @d90bc7ae941626a577c0c05f7b8c2ed701701825 **
3
4 * [4e082dc] Swith to DEB-14 compatible branch layout
5 * [a67c63a] Upstream moved to pagure
6 so update debian/watch
7 * [e123f05] New upstream version 6.0
8
9 -- Guido Günther <agx@sigxcpu.org> Tue, 22 Aug 2017 20:41:41 +0200
10
011 virt-viewer (5.0-1) unstable; urgency=medium
112
213 * [811799c] New upstream version 5.0
213213 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
214214 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
215215 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
216 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
216217 LD = @LD@
217218 LDFLAGS = @LDFLAGS@
218219 LIBOBJS = @LIBOBJS@
350351 exit 1;; \
351352 esac; \
352353 done; \
353 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/16x16/Makefile'; \
354 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/16x16/Makefile'; \
354355 $(am__cd) $(top_srcdir) && \
355 $(AUTOMAKE) --gnu icons/16x16/Makefile
356 $(AUTOMAKE) --foreign icons/16x16/Makefile
356357 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
357358 @case '$?' in \
358359 *config.status*) \
213213 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
214214 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
215215 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
216 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
216217 LD = @LD@
217218 LDFLAGS = @LDFLAGS@
218219 LIBOBJS = @LIBOBJS@
350351 exit 1;; \
351352 esac; \
352353 done; \
353 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/22x22/Makefile'; \
354 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/22x22/Makefile'; \
354355 $(am__cd) $(top_srcdir) && \
355 $(AUTOMAKE) --gnu icons/22x22/Makefile
356 $(AUTOMAKE) --foreign icons/22x22/Makefile
356357 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
357358 @case '$?' in \
358359 *config.status*) \
214214 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
215215 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
216216 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
217 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
217218 LD = @LD@
218219 LDFLAGS = @LDFLAGS@
219220 LIBOBJS = @LIBOBJS@
353354 exit 1;; \
354355 esac; \
355356 done; \
356 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/24x24/Makefile'; \
357 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/24x24/Makefile'; \
357358 $(am__cd) $(top_srcdir) && \
358 $(AUTOMAKE) --gnu icons/24x24/Makefile
359 $(AUTOMAKE) --foreign icons/24x24/Makefile
359360 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
360361 @case '$?' in \
361362 *config.status*) \
213213 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
214214 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
215215 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
216 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
216217 LD = @LD@
217218 LDFLAGS = @LDFLAGS@
218219 LIBOBJS = @LIBOBJS@
350351 exit 1;; \
351352 esac; \
352353 done; \
353 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/256x256/Makefile'; \
354 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/256x256/Makefile'; \
354355 $(am__cd) $(top_srcdir) && \
355 $(AUTOMAKE) --gnu icons/256x256/Makefile
356 $(AUTOMAKE) --foreign icons/256x256/Makefile
356357 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
357358 @case '$?' in \
358359 *config.status*) \
213213 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
214214 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
215215 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
216 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
216217 LD = @LD@
217218 LDFLAGS = @LDFLAGS@
218219 LIBOBJS = @LIBOBJS@
350351 exit 1;; \
351352 esac; \
352353 done; \
353 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/32x32/Makefile'; \
354 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/32x32/Makefile'; \
354355 $(am__cd) $(top_srcdir) && \
355 $(AUTOMAKE) --gnu icons/32x32/Makefile
356 $(AUTOMAKE) --foreign icons/32x32/Makefile
356357 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
357358 @case '$?' in \
358359 *config.status*) \
213213 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
214214 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
215215 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
216 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
216217 LD = @LD@
217218 LDFLAGS = @LDFLAGS@
218219 LIBOBJS = @LIBOBJS@
350351 exit 1;; \
351352 esac; \
352353 done; \
353 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/48x48/Makefile'; \
354 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/48x48/Makefile'; \
354355 $(am__cd) $(top_srcdir) && \
355 $(AUTOMAKE) --gnu icons/48x48/Makefile
356 $(AUTOMAKE) --foreign icons/48x48/Makefile
356357 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
357358 @case '$?' in \
358359 *config.status*) \
245245 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
246246 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
247247 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
248 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
248249 LD = @LD@
249250 LDFLAGS = @LDFLAGS@
250251 LIBOBJS = @LIBOBJS@
384385 exit 1;; \
385386 esac; \
386387 done; \
387 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/Makefile'; \
388 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/Makefile'; \
388389 $(am__cd) $(top_srcdir) && \
389 $(AUTOMAKE) --gnu icons/Makefile
390 $(AUTOMAKE) --foreign icons/Makefile
390391 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
391392 @case '$?' in \
392393 *config.status*) \
214214 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
215215 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
216216 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
217 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
217218 LD = @LD@
218219 LDFLAGS = @LDFLAGS@
219220 LIBOBJS = @LIBOBJS@
359360 exit 1;; \
360361 esac; \
361362 done; \
362 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
363 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \
363364 $(am__cd) $(top_srcdir) && \
364 $(AUTOMAKE) --gnu man/Makefile
365 $(AUTOMAKE) --foreign man/Makefile
365366 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
366367 @case '$?' in \
367368 *config.status*) \
0 .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.32)
0 .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
11 .\"
22 .\" Standard preamble:
33 .\" ========================================================================
128128 .\" ========================================================================
129129 .\"
130130 .IX Title "REMOTE-VIEWER 1"
131 .TH REMOTE-VIEWER 1 "2016-11-02" "perl v5.24.0" "Virtualization Support"
131 .TH REMOTE-VIEWER 1 "2017-01-19" "perl v5.24.2" "Virtualization Support"
132132 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
133133 .\" way too many mistakes in technical documents.
134134 .if n .ad l
0 .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.32)
0 .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
11 .\"
22 .\" Standard preamble:
33 .\" ========================================================================
128128 .\" ========================================================================
129129 .\"
130130 .IX Title "VIRT-VIEWER 1"
131 .TH VIRT-VIEWER 1 "2016-11-02" "perl v5.24.0" "Virtualization Support"
131 .TH VIRT-VIEWER 1 "2017-07-07" "perl v5.24.2" "Virtualization Support"
132132 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
133133 .\" way too many mistakes in technical documents.
134134 .if n .ad l
137137 virt\-viewer \- display the graphical console for a virtual machine
138138 .SH "SYNOPSIS"
139139 .IX Header "SYNOPSIS"
140 \&\fBvirt-viewer\fR [\s-1OPTIONS\s0] [DOMAIN\-NAME|ID|UUID]
140 \&\fBvirt-viewer\fR [\s-1OPTIONS\s0] [ID|UUID|DOMAIN\-NAME]
141141 .SH "DESCRIPTION"
142142 .IX Header "DESCRIPTION"
143143 \&\fBvirt-viewer\fR is a minimal tool for displaying the graphical console
237237 kiosk-quit option to \*(L"on-disconnect\*(R" value, virt-viewer will quit
238238 instead. Please note that \-\-reconnect takes precedence over this
239239 option, and will attempt to do a reconnection before it quits.
240 .IP "\-\-id, \-\-uuid, \-\-domain\-name" 4
241 .IX Item "--id, --uuid, --domain-name"
242 Connect to the virtual machine by its id, uuid or name. These options
243 are mutual exclusive. For example the following command may sometimes
244 connect to a virtual machine with the id 2 or with the name 2 (depending
245 on the number of running machines):
246 .Sp
247 .Vb 1
248 \& virt\-viewer 2
249 .Ve
250 .Sp
251 To always connect to the virtual machine with the name \*(L"2\*(R" use the
252 \&\*(L"\-\-domain\-name\*(R" option:
253 .Sp
254 .Vb 1
255 \& virt\-viewer \-\-domain\-name 2
256 .Ve
240257 .SH "CONFIGURATION"
241258 .IX Header "CONFIGURATION"
242259 A small number of configuration options can be controlled by editing the
303320 .Vb 1
304321 \& virt\-viewer \-\-connect xen://example.org/ demo
305322 .Ve
323 .PP
324 To connect to a remote host using \s-1SSH,\s0 lookup the guest config and
325 then make a tunnelled connection of the console
326 .PP
327 .Vb 1
328 \& virt\-viewer \-\-connect qemu+ssh://root@example.org/system demo
329 .Ve
330 .PP
331 When using a \s-1SSH\s0 tunnel to connect to a \s-1SPICE\s0 console, it's recommended to
332 have ssh-agent running to avoid getting multiple authentication prompts.
306333 .PP
307334 To connect to a remote host using \s-1SSH,\s0 lookup the guest config and
308335 then make a direct non-tunnelled connection of the console
44
55 =head1 SYNOPSIS
66
7 B<virt-viewer> [OPTIONS] [DOMAIN-NAME|ID|UUID]
7 B<virt-viewer> [OPTIONS] [ID|UUID|DOMAIN-NAME]
88
99 =head1 DESCRIPTION
1010
121121 instead. Please note that --reconnect takes precedence over this
122122 option, and will attempt to do a reconnection before it quits.
123123
124 =item --id, --uuid, --domain-name
125
126 Connect to the virtual machine by its id, uuid or name. These options
127 are mutual exclusive. For example the following command may sometimes
128 connect to a virtual machine with the id 2 or with the name 2 (depending
129 on the number of running machines):
130
131 virt-viewer 2
132
133 To always connect to the virtual machine with the name "2" use the
134 "--domain-name" option:
135
136 virt-viewer --domain-name 2
137
124138 =back
125139
126140 =head1 CONFIGURATION
178192 virt-viewer --connect xen://example.org/ demo
179193
180194 To connect to a remote host using SSH, lookup the guest config and
195 then make a tunnelled connection of the console
196
197 virt-viewer --connect qemu+ssh://root@example.org/system demo
198
199 When using a SSH tunnel to connect to a SPICE console, it's recommended to
200 have ssh-agent running to avoid getting multiple authentication prompts.
201
202
203 To connect to a remote host using SSH, lookup the guest config and
181204 then make a direct non-tunnelled connection of the console
182205
183206 virt-viewer --direct --connect xen+ssh://root@example.org/ demo
00 data/remote-viewer.appdata.xml.in
11 data/remote-viewer.desktop.in
22 data/virt-viewer-mime.xml.in
3 src/remote-viewer-iso-list-dialog.c
34 src/remote-viewer-main.c
45 src/remote-viewer.c
56 [type: gettext/glade] src/resources/ui/remote-viewer-connect.ui
7 [type: gettext/glade] src/resources/ui/remote-viewer-iso-list.ui
68 [type: gettext/glade] src/resources/ui/virt-viewer-about.ui
79 src/virt-viewer-app.c
810 src/virt-viewer-auth.c
1212 resources/ui/virt-viewer-vm-connection.ui \
1313 resources/ui/virt-viewer-preferences.ui \
1414 resources/ui/remote-viewer-connect.ui \
15 resources/ui/remote-viewer-iso-list.ui \
1516 resources/ui/virt-viewer-file-transfer-dialog.ui \
1617 $(NULL)
1718
3738 $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/resources --generate --c-name virt_viewer $<
3839
3940 virt-viewer-enums.c virt-viewer-enums.h: %: %.etemplate $(ENUMS_FILES)
40 $(AM_V_GEN)$(GLIB_MKENUMS) --template $^ | \
41 $(AM_V_GEN)LC_ALL= LANG=C LC_CTYPE=en_US.UTF-8 $(GLIB_MKENUMS) --template $^ | \
4142 sed -e 's/VIRT_TYPE_VIEWER/VIRT_VIEWER_TYPE/' \
4243 -e 's,#include "$(srcdir)/,#include ",' > $@
4344
9697 libvirt_viewer_la_SOURCES += \
9798 ovirt-foreign-menu.h \
9899 ovirt-foreign-menu.c \
100 remote-viewer-iso-list-dialog.c \
101 remote-viewer-iso-list-dialog.h \
99102 $(NULL)
100103 endif
101104
109109 @HAVE_OVIRT_TRUE@am__append_3 = \
110110 @HAVE_OVIRT_TRUE@ ovirt-foreign-menu.h \
111111 @HAVE_OVIRT_TRUE@ ovirt-foreign-menu.c \
112 @HAVE_OVIRT_TRUE@ remote-viewer-iso-list-dialog.c \
113 @HAVE_OVIRT_TRUE@ remote-viewer-iso-list-dialog.h \
112114 @HAVE_OVIRT_TRUE@ $(NULL)
113115
114116 @HAVE_LIBVIRT_TRUE@am__append_4 = virt-viewer
168170 virt-viewer-display-spice.h virt-viewer-display-spice.c \
169171 virt-viewer-file-transfer-dialog.h \
170172 virt-viewer-file-transfer-dialog.c ovirt-foreign-menu.h \
171 ovirt-foreign-menu.c
173 ovirt-foreign-menu.c remote-viewer-iso-list-dialog.c \
174 remote-viewer-iso-list-dialog.h
172175 am__objects_2 = libvirt_viewer_la-virt-viewer-resources.lo \
173176 libvirt_viewer_la-virt-viewer-enums.lo $(am__objects_1)
174177 @HAVE_GTK_VNC_TRUE@am__objects_3 = libvirt_viewer_la-virt-viewer-session-vnc.lo \
180183 @HAVE_SPICE_GTK_TRUE@ $(am__objects_1)
181184 @HAVE_OVIRT_TRUE@am__objects_5 = \
182185 @HAVE_OVIRT_TRUE@ libvirt_viewer_la-ovirt-foreign-menu.lo \
186 @HAVE_OVIRT_TRUE@ libvirt_viewer_la-remote-viewer-iso-list-dialog.lo \
183187 @HAVE_OVIRT_TRUE@ $(am__objects_1)
184188 am_libvirt_viewer_la_OBJECTS = $(am__objects_2) \
185189 libvirt_viewer_la-virt-viewer-auth.lo \
377381 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
378382 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
379383 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
384 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
380385 LD = @LD@
381386 LDFLAGS = @LDFLAGS@
382387 LIBOBJS = @LIBOBJS@
510515 resources/ui/virt-viewer-vm-connection.ui \
511516 resources/ui/virt-viewer-preferences.ui \
512517 resources/ui/remote-viewer-connect.ui \
518 resources/ui/remote-viewer-iso-list.ui \
513519 resources/ui/virt-viewer-file-transfer-dialog.ui \
514520 $(NULL)
515521
652658 exit 1;; \
653659 esac; \
654660 done; \
655 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
661 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
656662 $(am__cd) $(top_srcdir) && \
657 $(AUTOMAKE) --gnu src/Makefile
663 $(AUTOMAKE) --foreign src/Makefile
658664 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
659665 @case '$?' in \
660666 *config.status*) \
765771
766772 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug_helper-debug-helper.Po@am__quote@
767773 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-ovirt-foreign-menu.Plo@am__quote@
774 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-remote-viewer-iso-list-dialog.Plo@am__quote@
768775 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-app.Plo@am__quote@
769776 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-auth.Plo@am__quote@
770777 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-spice.Plo@am__quote@
938945 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ovirt-foreign-menu.c' object='libvirt_viewer_la-ovirt-foreign-menu.lo' libtool=yes @AMDEPBACKSLASH@
939946 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
940947 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_viewer_la_CFLAGS) $(CFLAGS) -c -o libvirt_viewer_la-ovirt-foreign-menu.lo `test -f 'ovirt-foreign-menu.c' || echo '$(srcdir)/'`ovirt-foreign-menu.c
948
949 libvirt_viewer_la-remote-viewer-iso-list-dialog.lo: remote-viewer-iso-list-dialog.c
950 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_viewer_la_CFLAGS) $(CFLAGS) -MT libvirt_viewer_la-remote-viewer-iso-list-dialog.lo -MD -MP -MF $(DEPDIR)/libvirt_viewer_la-remote-viewer-iso-list-dialog.Tpo -c -o libvirt_viewer_la-remote-viewer-iso-list-dialog.lo `test -f 'remote-viewer-iso-list-dialog.c' || echo '$(srcdir)/'`remote-viewer-iso-list-dialog.c
951 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_viewer_la-remote-viewer-iso-list-dialog.Tpo $(DEPDIR)/libvirt_viewer_la-remote-viewer-iso-list-dialog.Plo
952 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='remote-viewer-iso-list-dialog.c' object='libvirt_viewer_la-remote-viewer-iso-list-dialog.lo' libtool=yes @AMDEPBACKSLASH@
953 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
954 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_viewer_la_CFLAGS) $(CFLAGS) -c -o libvirt_viewer_la-remote-viewer-iso-list-dialog.lo `test -f 'remote-viewer-iso-list-dialog.c' || echo '$(srcdir)/'`remote-viewer-iso-list-dialog.c
941955
942956 debug_helper-debug-helper.o: debug-helper.c
943957 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debug_helper_CFLAGS) $(CFLAGS) -MT debug_helper-debug-helper.o -MD -MP -MF $(DEPDIR)/debug_helper-debug-helper.Tpo -c -o debug_helper-debug-helper.o `test -f 'debug-helper.c' || echo '$(srcdir)/'`debug-helper.c
12481262 $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/resources --generate --c-name virt_viewer $<
12491263
12501264 virt-viewer-enums.c virt-viewer-enums.h: %: %.etemplate $(ENUMS_FILES)
1251 $(AM_V_GEN)$(GLIB_MKENUMS) --template $^ | \
1265 $(AM_V_GEN)LC_ALL= LANG=C LC_CTYPE=en_US.UTF-8 $(GLIB_MKENUMS) --template $^ | \
12521266 sed -e 's/VIRT_TYPE_VIEWER/VIRT_VIEWER_TYPE/' \
12531267 -e 's,#include "$(srcdir)/,#include ",' > $@
12541268
3939 STATE_ISOS
4040 } OvirtForeignMenuState;
4141
42 static void ovirt_foreign_menu_next_async_step(OvirtForeignMenu *menu, OvirtForeignMenuState state);
43 static void ovirt_foreign_menu_fetch_api_async(OvirtForeignMenu *menu);
44 static void ovirt_foreign_menu_fetch_vm_async(OvirtForeignMenu *menu);
45 static void ovirt_foreign_menu_fetch_storage_domain_async(OvirtForeignMenu *menu);
46 static void ovirt_foreign_menu_fetch_vm_cdrom_async(OvirtForeignMenu *menu);
47 static void ovirt_foreign_menu_refresh_cdrom_file_async(OvirtForeignMenu *menu);
48 static gboolean ovirt_foreign_menu_refresh_iso_list(gpointer user_data);
42 static void ovirt_foreign_menu_next_async_step(OvirtForeignMenu *menu, GTask *task, OvirtForeignMenuState state);
43 static void ovirt_foreign_menu_fetch_api_async(OvirtForeignMenu *menu, GTask *task);
44 static void ovirt_foreign_menu_fetch_vm_async(OvirtForeignMenu *menu, GTask *task);
45 static void ovirt_foreign_menu_fetch_storage_domain_async(OvirtForeignMenu *menu, GTask *task);
46 static void ovirt_foreign_menu_fetch_vm_cdrom_async(OvirtForeignMenu *menu, GTask *task);
47 static void ovirt_foreign_menu_refresh_cdrom_file_async(OvirtForeignMenu *menu, GTask *task);
48 static void ovirt_foreign_menu_fetch_iso_list_async(OvirtForeignMenu *menu, GTask *task);
4949
5050 G_DEFINE_TYPE (OvirtForeignMenu, ovirt_foreign_menu, G_TYPE_OBJECT)
5151
8484 };
8585
8686
87 static char *
87 gchar *
8888 ovirt_foreign_menu_get_current_iso_name(OvirtForeignMenu *foreign_menu)
8989 {
90 char *name;
90 gchar *name;
9191
9292 if (foreign_menu->priv->cdrom == NULL) {
9393 return NULL;
9696 g_object_get(foreign_menu->priv->cdrom, "file", &name, NULL);
9797
9898 return name;
99 }
100
101
102 GList*
103 ovirt_foreign_menu_get_iso_names(OvirtForeignMenu *foreign_menu)
104 {
105 return foreign_menu->priv->iso_names;
99106 }
100107
101108
272279
273280 static void
274281 ovirt_foreign_menu_next_async_step(OvirtForeignMenu *menu,
282 GTask *task,
275283 OvirtForeignMenuState current_state)
276284 {
277 g_return_if_fail(current_state >= STATE_0);
278 g_return_if_fail(current_state < STATE_ISOS);
279
280285 /* Each state will check if the member is initialized, falling directly to
281286 * the next one if so. If not, the callback for the asynchronous call will
282287 * be responsible for calling is function again with the next state as
285290 switch (current_state + 1) {
286291 case STATE_API:
287292 if (menu->priv->api == NULL) {
288 ovirt_foreign_menu_fetch_api_async(menu);
293 ovirt_foreign_menu_fetch_api_async(menu, task);
289294 break;
290295 }
296 /* fall through */
291297 case STATE_VM:
292298 if (menu->priv->vm == NULL) {
293 ovirt_foreign_menu_fetch_vm_async(menu);
299 ovirt_foreign_menu_fetch_vm_async(menu, task);
294300 break;
295301 }
302 /* fall through */
296303 case STATE_STORAGE_DOMAIN:
297304 if (menu->priv->files == NULL) {
298 ovirt_foreign_menu_fetch_storage_domain_async(menu);
305 ovirt_foreign_menu_fetch_storage_domain_async(menu, task);
299306 break;
300307 }
308 /* fall through */
301309 case STATE_VM_CDROM:
302310 if (menu->priv->cdrom == NULL) {
303 ovirt_foreign_menu_fetch_vm_cdrom_async(menu);
311 ovirt_foreign_menu_fetch_vm_cdrom_async(menu, task);
304312 break;
305313 }
314 /* fall through */
306315 case STATE_CDROM_FILE:
307 ovirt_foreign_menu_refresh_cdrom_file_async(menu);
316 ovirt_foreign_menu_refresh_cdrom_file_async(menu, task);
308317 break;
309318 case STATE_ISOS:
310319 g_warn_if_fail(menu->priv->api != NULL);
312321 g_warn_if_fail(menu->priv->files != NULL);
313322 g_warn_if_fail(menu->priv->cdrom != NULL);
314323
315 ovirt_foreign_menu_refresh_iso_list(menu);
324 ovirt_foreign_menu_fetch_iso_list_async(menu, task);
316325 break;
317326 default:
318327 g_warn_if_reached();
328 g_task_return_new_error(task, OVIRT_ERROR, OVIRT_ERROR_FAILED,
329 "Invalid state: %d", current_state);
330 g_object_unref(task);
319331 }
320332 }
321333
322334
323335 void
324 ovirt_foreign_menu_start(OvirtForeignMenu *menu)
325 {
326 ovirt_foreign_menu_next_async_step(menu, STATE_0);
327 }
328
329
330 static void
331 ovirt_foreign_menu_activate_item_cb(GtkMenuItem *menuitem, gpointer user_data);
332
333
334 static void
335 menu_item_set_active_no_signal(GtkMenuItem *menuitem,
336 gboolean active,
337 GCallback callback,
338 gpointer user_data)
339 {
340 g_signal_handlers_block_by_func(menuitem, callback, user_data);
341 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), active);
342 g_signal_handlers_unblock_by_func(menuitem, callback, user_data);
343 }
344
345
346 static void updated_cdrom_cb(GObject *source_object,
347 GAsyncResult *result,
348 gpointer user_data)
336 ovirt_foreign_menu_fetch_iso_names_async(OvirtForeignMenu *menu,
337 GCancellable *cancellable,
338 GAsyncReadyCallback callback,
339 gpointer user_data)
340 {
341 GTask *task = g_task_new(menu, cancellable, callback, user_data);
342 ovirt_foreign_menu_next_async_step(menu, task, STATE_0);
343 }
344
345
346 GList *
347 ovirt_foreign_menu_fetch_iso_names_finish(OvirtForeignMenu *foreign_menu,
348 GAsyncResult *result,
349 GError **error)
350 {
351 g_return_val_if_fail(OVIRT_IS_FOREIGN_MENU(foreign_menu), NULL);
352 return g_task_propagate_pointer(G_TASK(result), error);
353 }
354
355
356 static void iso_name_set_cb(GObject *source_object,
357 GAsyncResult *result,
358 gpointer user_data)
349359 {
350360 GError *error = NULL;
351 OvirtForeignMenu *foreign_menu;
361 GTask *task = G_TASK(user_data);
362 OvirtForeignMenu *foreign_menu = OVIRT_FOREIGN_MENU(g_task_get_source_object(task));
352363 gboolean updated;
353364
354 foreign_menu = OVIRT_FOREIGN_MENU(user_data);
355365 updated = ovirt_cdrom_update_finish(OVIRT_CDROM(source_object),
356366 result, &error);
357 g_debug("Finished updating cdrom content");
358367 if (updated) {
368 g_debug("Finished updating cdrom content: %s", foreign_menu->priv->next_iso_name);
359369 g_free(foreign_menu->priv->current_iso_name);
360370 foreign_menu->priv->current_iso_name = foreign_menu->priv->next_iso_name;
361371 foreign_menu->priv->next_iso_name = NULL;
362 g_object_notify(G_OBJECT(foreign_menu), "file");
372 g_task_return_boolean(task, TRUE);
373 goto end;
374 }
375
376 /* Reset old state back as we were not successful in switching to
377 * the new ISO */
378 g_debug("setting OvirtCdrom:file back to '%s'",
379 foreign_menu->priv->current_iso_name);
380 g_object_set(foreign_menu->priv->cdrom, "file",
381 foreign_menu->priv->current_iso_name, NULL);
382 g_clear_pointer(&foreign_menu->priv->next_iso_name, g_free);
383
384 if (error != NULL) {
385 g_warning("failed to update cdrom resource: %s", error->message);
386 g_task_return_error(task, error);
363387 } else {
364 /* Reset old state back as we were not successful in switching to
365 * the new ISO */
366 const char *current_file = foreign_menu->priv->current_iso_name;
367
368 if (error != NULL) {
369 g_warning("failed to update cdrom resource: %s", error->message);
370 g_clear_error(&error);
371 }
372 g_debug("setting OvirtCdrom:file back to '%s'",
373 current_file?current_file:NULL);
374 g_object_set(foreign_menu->priv->cdrom, "file", current_file, NULL);
375 }
376
377 g_clear_pointer(&foreign_menu->priv->next_iso_name, g_free);
378 }
379
380
381 static void
382 ovirt_foreign_menu_activate_item_cb(GtkMenuItem *menuitem, gpointer user_data)
383 {
384 OvirtForeignMenu *foreign_menu;
385 const char *iso_name;
386 gboolean checked;
387
388 checked = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem));
389 foreign_menu = OVIRT_FOREIGN_MENU(user_data);
388 g_warn_if_reached();
389 g_task_return_new_error(task, OVIRT_ERROR, OVIRT_ERROR_FAILED,
390 "failed to update cdrom resource");
391 }
392
393 end:
394 g_object_unref(task);
395 }
396
397
398 void ovirt_foreign_menu_set_current_iso_name_async(OvirtForeignMenu *foreign_menu,
399 const char *name,
400 GCancellable *cancellable,
401 GAsyncReadyCallback callback,
402 gpointer user_data)
403 {
404 GTask *task;
405
390406 g_return_if_fail(foreign_menu->priv->cdrom != NULL);
391407 g_return_if_fail(foreign_menu->priv->next_iso_name == NULL);
392408
393 g_debug("'%s' clicked", gtk_menu_item_get_label(menuitem));
394
395 /* We only want to move the check mark for the currently selected ISO
396 * when ovirt_cdrom_update_async() is successful, so for now we move
397 * the check mark back to where it was before
398 */
399 menu_item_set_active_no_signal(menuitem, !checked,
400 (GCallback)ovirt_foreign_menu_activate_item_cb,
401 foreign_menu);
402
403 if (checked) {
404 iso_name = gtk_menu_item_get_label(menuitem);
405 g_debug("Updating VM cdrom image to '%s'", iso_name);
406 foreign_menu->priv->next_iso_name = g_strdup(iso_name);
409 if (name) {
410 g_debug("Updating VM cdrom image to '%s'", name);
411 foreign_menu->priv->next_iso_name = g_strdup(name);
407412 } else {
408413 g_debug("Removing current cdrom image");
409 iso_name = NULL;
410414 foreign_menu->priv->next_iso_name = NULL;
411415 }
416
412417 g_object_set(foreign_menu->priv->cdrom,
413 "file", iso_name,
418 "file", name,
414419 NULL);
420
421 task = g_task_new(foreign_menu, cancellable, callback, user_data);
415422 ovirt_cdrom_update_async(foreign_menu->priv->cdrom, TRUE,
416 foreign_menu->priv->proxy, NULL,
417 updated_cdrom_cb, foreign_menu);
418 }
419
420
421 GtkWidget *ovirt_foreign_menu_get_gtk_menu(OvirtForeignMenu *foreign_menu)
422 {
423 GtkWidget *gtk_menu;
424 GList *it;
425 char *current_iso;
426
427 if (foreign_menu->priv->iso_names == NULL) {
428 g_debug("ISO list is empty, no menu to show");
429 return NULL;
430 }
431 g_debug("Creating GtkMenu for foreign menu");
432 current_iso = ovirt_foreign_menu_get_current_iso_name(foreign_menu);
433 gtk_menu = gtk_menu_new();
434 for (it = foreign_menu->priv->iso_names; it != NULL; it = it->next) {
435 GtkWidget *menuitem;
436
437 menuitem = gtk_check_menu_item_new_with_label((char *)it->data);
438 if (g_strcmp0((char *)it->data, current_iso) == 0) {
439 g_warn_if_fail(g_strcmp0(current_iso, foreign_menu->priv->current_iso_name) == 0);
440 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),
441 TRUE);
442 }
443 g_signal_connect(menuitem, "activate",
444 G_CALLBACK(ovirt_foreign_menu_activate_item_cb),
445 foreign_menu);
446 gtk_menu_shell_append(GTK_MENU_SHELL(gtk_menu), menuitem);
447 }
448 g_free(current_iso);
449
450 return gtk_menu;
423 foreign_menu->priv->proxy, cancellable,
424 iso_name_set_cb, task);
425 }
426
427
428 gboolean ovirt_foreign_menu_set_current_iso_name_finish(OvirtForeignMenu *foreign_menu,
429 GAsyncResult *result,
430 GError **error)
431 {
432 g_return_val_if_fail(OVIRT_IS_FOREIGN_MENU(foreign_menu), FALSE);
433 return g_task_propagate_boolean(G_TASK(result), error);
451434 }
452435
453436
489472
490473 g_list_free_full(menu->priv->iso_names, (GDestroyNotify)g_free);
491474 menu->priv->iso_names = sorted_files;
492 g_object_notify(G_OBJECT(menu), "files");
493475 }
494476
495477
497479 GAsyncResult *result,
498480 gpointer user_data)
499481 {
482 GTask *task = G_TASK(user_data);
483 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(g_task_get_source_object(task));
500484 OvirtResource *cdrom = OVIRT_RESOURCE(source_object);
501 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(user_data);
502485 GError *error = NULL;
503486
504487 ovirt_resource_refresh_finish(cdrom, result, &error);
505488 if (error != NULL) {
506489 g_warning("failed to refresh cdrom content: %s", error->message);
507 g_clear_error(&error);
490 g_task_return_error(task, error);
491 g_object_unref(task);
508492 return;
509493 }
510494
515499 "file", &menu->priv->current_iso_name,
516500 NULL);
517501 }
518 g_object_notify(G_OBJECT(menu), "file");
519502 if (menu->priv->cdrom != NULL) {
520 ovirt_foreign_menu_next_async_step(menu, STATE_CDROM_FILE);
503 ovirt_foreign_menu_next_async_step(menu, task, STATE_CDROM_FILE);
521504 } else {
522505 g_debug("Could not find VM cdrom through oVirt REST API");
523 }
524 }
525
526
527 static void ovirt_foreign_menu_refresh_cdrom_file_async(OvirtForeignMenu *menu)
506 g_task_return_new_error(task, OVIRT_ERROR, OVIRT_ERROR_FAILED,
507 "Could not find VM cdrom through oVirt REST API");
508 g_object_unref(task);
509 }
510 }
511
512
513 static void ovirt_foreign_menu_refresh_cdrom_file_async(OvirtForeignMenu *menu,
514 GTask *task)
528515 {
529516 g_return_if_fail(OVIRT_IS_RESOURCE(menu->priv->cdrom));
530517
531518 ovirt_resource_refresh_async(OVIRT_RESOURCE(menu->priv->cdrom),
532 menu->priv->proxy, NULL,
533 cdrom_file_refreshed_cb, menu);
519 menu->priv->proxy, g_task_get_cancellable(task),
520 cdrom_file_refreshed_cb, task);
534521 }
535522
536523
540527 {
541528 GHashTable *cdroms;
542529 OvirtCollection *cdrom_collection = OVIRT_COLLECTION(source_object);
543 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(user_data);
530 GTask *task = G_TASK(user_data);
531 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(g_task_get_source_object(task));
544532 GHashTableIter iter;
545533 OvirtCdrom *cdrom;
546534 GError *error = NULL;
548536 ovirt_collection_fetch_finish(cdrom_collection, result, &error);
549537 if (error != NULL) {
550538 g_warning("failed to fetch cdrom collection: %s", error->message);
551 g_clear_error(&error);
539 g_task_return_error(task, error);
540 g_object_unref(task);
552541 return;
553542 }
554543
570559 }
571560
572561 if (menu->priv->cdrom != NULL) {
573 ovirt_foreign_menu_next_async_step(menu, STATE_VM_CDROM);
562 ovirt_foreign_menu_next_async_step(menu, task, STATE_VM_CDROM);
574563 } else {
575564 g_debug("Could not find VM cdrom through oVirt REST API");
576 }
577 }
578
579
580 static void ovirt_foreign_menu_fetch_vm_cdrom_async(OvirtForeignMenu *menu)
565 g_task_return_new_error(task, OVIRT_ERROR, OVIRT_ERROR_FAILED,
566 "Could not find VM cdrom through oVirt REST API");
567 g_object_unref(task);
568 }
569 }
570
571
572 static void ovirt_foreign_menu_fetch_vm_cdrom_async(OvirtForeignMenu *menu,
573 GTask *task)
581574 {
582575 OvirtCollection *cdrom_collection;
583576
584577 cdrom_collection = ovirt_vm_get_cdroms(menu->priv->vm);
585 ovirt_collection_fetch_async(cdrom_collection, menu->priv->proxy, NULL,
586 cdroms_fetched_cb, menu);
578 ovirt_collection_fetch_async(cdrom_collection, menu->priv->proxy,
579 g_task_get_cancellable(task),
580 cdroms_fetched_cb, task);
587581 }
588582
589583
592586 gpointer user_data)
593587 {
594588 GError *error = NULL;
595 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(user_data);
589 GTask *task = G_TASK(user_data);
590 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(g_task_get_source_object(task));
596591 OvirtCollection *collection = OVIRT_COLLECTION(source_object);
597592 GHashTableIter iter;
598593 OvirtStorageDomain *domain;
600595 ovirt_collection_fetch_finish(collection, result, &error);
601596 if (error != NULL) {
602597 g_warning("failed to fetch storage domains: %s", error->message);
603 g_clear_error(&error);
598 g_task_return_error(task, error);
599 g_object_unref(task);
604600 return;
605601 }
606602
631627 }
632628
633629 if (menu->priv->files != NULL) {
634 ovirt_foreign_menu_next_async_step(menu, STATE_STORAGE_DOMAIN);
630 ovirt_foreign_menu_next_async_step(menu, task, STATE_STORAGE_DOMAIN);
635631 } else {
636632 g_debug("Could not find iso file collection");
637 }
638 }
639
640
641 static void ovirt_foreign_menu_fetch_storage_domain_async(OvirtForeignMenu *menu)
642 {
643 OvirtCollection *collection;
633 g_task_return_new_error(task, OVIRT_ERROR, OVIRT_ERROR_FAILED,
634 "Could not find ISO file collection");
635 g_object_unref(task);
636 }
637 }
638
639
640 static void ovirt_foreign_menu_fetch_storage_domain_async(OvirtForeignMenu *menu,
641 GTask *task)
642 {
643 OvirtCollection *collection = ovirt_api_get_storage_domains(menu->priv->api);
644644
645645 g_debug("Start fetching oVirt REST collection");
646 collection = ovirt_api_get_storage_domains(menu->priv->api);
647 ovirt_collection_fetch_async(collection, menu->priv->proxy, NULL,
648 storage_domains_fetched_cb, menu);
646 ovirt_collection_fetch_async(collection, menu->priv->proxy,
647 g_task_get_cancellable(task),
648 storage_domains_fetched_cb, task);
649649 }
650650
651651
654654 gpointer user_data)
655655 {
656656 GError *error = NULL;
657 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(user_data);
658 OvirtCollection *collection;
657 GTask *task = G_TASK(user_data);
658 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(g_task_get_source_object(task));
659 OvirtCollection *collection = OVIRT_COLLECTION(source_object);
659660 GHashTableIter iter;
660661 OvirtVm *vm;
661662
662 collection = OVIRT_COLLECTION(source_object);
663663 ovirt_collection_fetch_finish(collection, result, &error);
664664 if (error != NULL) {
665665 g_debug("failed to fetch VM list: %s", error->message);
666 g_clear_error(&error);
666 g_task_return_error(task, error);
667 g_object_unref(task);
667668 return;
668669 }
669670
680681 g_free(guid);
681682 }
682683 if (menu->priv->vm != NULL) {
683 ovirt_foreign_menu_next_async_step(menu, STATE_VM);
684 ovirt_foreign_menu_next_async_step(menu, task, STATE_VM);
684685 } else {
685686 g_warning("failed to find a VM with guid \"%s\"", menu->priv->vm_guid);
686 }
687 }
688
689
690 static void ovirt_foreign_menu_fetch_vm_async(OvirtForeignMenu *menu)
687 g_task_return_new_error(task, OVIRT_ERROR, OVIRT_ERROR_FAILED,
688 "Could not find a VM with guid \"%s\"", menu->priv->vm_guid);
689 g_object_unref(task);
690 }
691 }
692
693
694 static void ovirt_foreign_menu_fetch_vm_async(OvirtForeignMenu *menu,
695 GTask *task)
691696 {
692697 OvirtCollection *vms;
693698
697702
698703 vms = ovirt_api_get_vms(menu->priv->api);
699704 ovirt_collection_fetch_async(vms, menu->priv->proxy,
700 NULL, vms_fetched_cb, menu);
705 g_task_get_cancellable(task),
706 vms_fetched_cb, task);
701707 }
702708
703709
706712 gpointer user_data)
707713 {
708714 GError *error = NULL;
709 OvirtProxy *proxy;
710 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(user_data);
711
712 proxy = OVIRT_PROXY(source_object);
715 GTask *task = G_TASK(user_data);
716 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(g_task_get_source_object(task));
717 OvirtProxy *proxy = OVIRT_PROXY(source_object);
718
713719 menu->priv->api = ovirt_proxy_fetch_api_finish(proxy, result, &error);
714720 if (error != NULL) {
715721 g_debug("failed to fetch toplevel API object: %s", error->message);
716 g_clear_error(&error);
722 g_task_return_error(task, error);
723 g_object_unref(task);
717724 return;
718725 }
719726 g_return_if_fail(OVIRT_IS_API(menu->priv->api));
720727 g_object_ref(menu->priv->api);
721728
722 ovirt_foreign_menu_next_async_step(menu, STATE_API);
723 }
724
725
726 static void ovirt_foreign_menu_fetch_api_async(OvirtForeignMenu *menu)
729 ovirt_foreign_menu_next_async_step(menu, task, STATE_API);
730 }
731
732
733 static void ovirt_foreign_menu_fetch_api_async(OvirtForeignMenu *menu,
734 GTask *task)
727735 {
728736 g_debug("Start fetching oVirt main entry point");
729737
730738 g_return_if_fail(OVIRT_IS_FOREIGN_MENU(menu));
731739 g_return_if_fail(OVIRT_IS_PROXY(menu->priv->proxy));
732740
733 ovirt_proxy_fetch_api_async(menu->priv->proxy, NULL, api_fetched_cb, menu);
741 ovirt_proxy_fetch_api_async(menu->priv->proxy,
742 g_task_get_cancellable(task),
743 api_fetched_cb, task);
734744 }
735745
736746
738748 GAsyncResult *result,
739749 gpointer user_data)
740750 {
751 GTask *task = G_TASK(user_data);
752 OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(g_task_get_source_object(task));
741753 OvirtCollection *collection = OVIRT_COLLECTION(source_object);
742754 GError *error = NULL;
743755 GList *files;
746758 if (error != NULL) {
747759 g_warning("failed to fetch files for ISO storage domain: %s",
748760 error->message);
749 g_clear_error(&error);
761 g_task_return_error(task, error);
762 g_object_unref(task);
750763 return;
751764 }
752765
753766 files = g_hash_table_get_values(ovirt_collection_get_resources(collection));
754 ovirt_foreign_menu_set_files(OVIRT_FOREIGN_MENU(user_data), files);
767 ovirt_foreign_menu_set_files(menu, files);
755768 g_list_free(files);
756
757 g_timeout_add_seconds(300, ovirt_foreign_menu_refresh_iso_list, user_data);
758 }
759
760
761 static void ovirt_foreign_menu_fetch_iso_list_async(OvirtForeignMenu *menu)
769 g_task_return_pointer(task, menu->priv->iso_names, NULL);
770 g_object_unref(task);
771 }
772
773
774 static void ovirt_foreign_menu_fetch_iso_list_async(OvirtForeignMenu *menu,
775 GTask *task)
762776 {
763777 if (menu->priv->files == NULL) {
764778 return;
765779 }
766780
767781 ovirt_collection_fetch_async(menu->priv->files, menu->priv->proxy,
768 NULL, iso_list_fetched_cb, menu);
769 }
770
771
772 static gboolean ovirt_foreign_menu_refresh_iso_list(gpointer user_data)
773 {
774 OvirtForeignMenu *menu;
775
776 g_debug("Refreshing foreign menu iso list");
777 menu = OVIRT_FOREIGN_MENU(user_data);
778 ovirt_foreign_menu_fetch_iso_list_async(menu);
779
780 /* ovirt_foreign_menu_fetch_iso_list_async() will schedule a new call to
781 * that function through iso_list_fetched_cb() when it has finished
782 * fetching the iso list
783 */
784 return G_SOURCE_REMOVE;
782 g_task_get_cancellable(task),
783 iso_list_fetched_cb, task);
785784 }
786785
787786
6767
6868 OvirtForeignMenu* ovirt_foreign_menu_new(OvirtProxy *proxy);
6969 OvirtForeignMenu *ovirt_foreign_menu_new_from_file(VirtViewerFile *self);
70 void ovirt_foreign_menu_start(OvirtForeignMenu *menu);
70
71 void ovirt_foreign_menu_fetch_iso_names_async(OvirtForeignMenu *menu,
72 GCancellable *cancellable,
73 GAsyncReadyCallback callback,
74 gpointer user_data);
75 GList *ovirt_foreign_menu_fetch_iso_names_finish(OvirtForeignMenu *foreign_menu,
76 GAsyncResult *result,
77 GError **error);
78
79 void ovirt_foreign_menu_set_current_iso_name_async(OvirtForeignMenu *foreign_menu,
80 const char *name,
81 GCancellable *cancellable,
82 GAsyncReadyCallback callback,
83 gpointer user_data);
84 gboolean ovirt_foreign_menu_set_current_iso_name_finish(OvirtForeignMenu *foreign_menu,
85 GAsyncResult *result,
86 GError **error);
87
7188
7289 GtkWidget *ovirt_foreign_menu_get_gtk_menu(OvirtForeignMenu *foreign_menu);
90 gchar *ovirt_foreign_menu_get_current_iso_name(OvirtForeignMenu *menu);
91 GList *ovirt_foreign_menu_get_iso_names(OvirtForeignMenu *menu);
7392
7493 G_END_DECLS
7594
171171 * @return FALSE if Cancel is pressed or dialog is closed
172172 */
173173 gboolean
174 remote_viewer_connect_dialog(gchar **uri)
174 remote_viewer_connect_dialog(GtkWindow *main_window, gchar **uri)
175175 {
176176 GtkWidget *window, *label, *entry, *recent, *connect_button, *cancel_button;
177177 GtkRecentFilter *rfilter;
191191 g_return_val_if_fail(builder != NULL, GTK_RESPONSE_NONE);
192192
193193 window = GTK_WIDGET(gtk_builder_get_object(builder, "remote-viewer-connection-window"));
194 gtk_window_set_transient_for(GTK_WINDOW(window), main_window);
194195 connect_button = GTK_WIDGET(gtk_builder_get_object(builder, "connect-button"));
195196 cancel_button = GTK_WIDGET(gtk_builder_get_object(builder, "cancel-button"));
196197 label = GTK_WIDGET(gtk_builder_get_object(builder, "example-label"));
2222
2323 #include <gtk/gtk.h>
2424
25 gboolean remote_viewer_connect_dialog(gchar **uri);
25 gboolean remote_viewer_connect_dialog(GtkWindow *main_window, gchar **uri);
2626
2727 #endif /* REMOTE_VIEWER_CONNECT_H */
2828
0 /*
1 * Virt Viewer: A virtual machine console viewer
2 *
3 * Copyright (C) 2017 Red Hat, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License