Update upstream source from tag 'upstream/6.0'
Update to upstream version '6.0'
with Debian dir 3456fa8384ae0abaa7abd5c404c3a01462b9e45b
Guido Günther
6 years ago
12 | 12 | |
13 | 13 | Charles Arnold <carnold@suse.com> |
14 | 14 | Christophe Fergeau <cfergeau@redhat.com> |
15 | Christophe de Dinechin <cdupontd@redhat.com> | |
15 | 16 | Daniel P. Berrange <berrange@redhat.com> |
16 | 17 | Dave Allan <dallan@redhat.com> |
17 | 18 | Doug Goldstein <cardoe@cardoe.com> |
36 | 37 | Richard W.M. Jones <rjones@redhat.com> |
37 | 38 | Ronnie Sahlberg <ronniesahlberg@gmail.com> |
38 | 39 | Sandy Stutsman <sstutsma@redhat.com> |
40 | Snir Sheriber <ssheribe@redhat.com> | |
39 | 41 | Uri Lublin <uril@redhat.com> |
42 | Victor Toso <me@victortoso.com> | |
40 | 43 | Victor Toso <victortoso@redhat.com> |
41 | 44 | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
42 | 45 | 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 | ||
0 | 540 | 2016-11-24 Daniel P. Berrange <berrange@redhat.com> |
541 | ||
542 | Post release version bump to 6.0 | |
1 | 543 | |
2 | 544 | Add NEWS for 5.0 release |
3 | 545 |
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. |
17 | 17 | build-aux/useless-if-before-free \ |
18 | 18 | build-aux/vc-list-files \ |
19 | 19 | AUTHORS.in \ |
20 | README.md \ | |
20 | 21 | $(NULL) |
21 | 22 | |
22 | 23 | DISTCLEAN_FILES = \ |
166 | 166 | $(top_srcdir)/build-aux/config.sub \ |
167 | 167 | $(top_srcdir)/build-aux/install-sh \ |
168 | 168 | $(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 | |
173 | 172 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
174 | 173 | distdir = $(PACKAGE)-$(VERSION) |
175 | 174 | top_distdir = $(distdir) |
274 | 273 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
275 | 274 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
276 | 275 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
276 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
277 | 277 | LD = @LD@ |
278 | 278 | LDFLAGS = @LDFLAGS@ |
279 | 279 | LIBOBJS = @LIBOBJS@ |
412 | 412 | build-aux/useless-if-before-free \ |
413 | 413 | build-aux/vc-list-files \ |
414 | 414 | AUTHORS.in \ |
415 | README.md \ | |
415 | 416 | $(NULL) |
416 | 417 | |
417 | 418 | DISTCLEAN_FILES = \ |
440 | 441 | @for dep in $?; do \ |
441 | 442 | case '$(am__configure_deps)' in \ |
442 | 443 | *$$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 \ | |
445 | 446 | && exit 0; \ |
446 | 447 | exit 1;; \ |
447 | 448 | esac; \ |
448 | 449 | done; \ |
449 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ | |
450 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ | |
450 | 451 | $(am__cd) $(top_srcdir) && \ |
451 | $(AUTOMAKE) --gnu Makefile | |
452 | $(AUTOMAKE) --foreign Makefile | |
452 | 453 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
453 | 454 | @case '$?' in \ |
454 | 455 | *config.status*) \ |
0 | 0 | Virt Viewer News |
1 | 1 | ================ |
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 | |
2 | 28 | |
3 | 29 | 5.0: Nov 24, 2016 |
4 | 30 | ----------------- |
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 |
118 | 118 | AC_SUBST($1)dnl |
119 | 119 | ]) |
120 | 120 | |
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 | ||
121 | 166 | # GLIB_WITH_NLS |
122 | 167 | #----------------- |
123 | 168 | glib_DEFUN([GLIB_WITH_NLS], |
130 | 175 | CATOBJEXT=NONE |
131 | 176 | XGETTEXT=: |
132 | 177 | INTLLIBS= |
178 | ||
179 | glib_gt_INTL_MACOSX | |
133 | 180 | |
134 | 181 | AC_CHECK_HEADER(libintl.h, |
135 | 182 | [gt_cv_func_dgettext_libintl="no" |
214 | 261 | fi |
215 | 262 | |
216 | 263 | if test "$gt_cv_func_dgettext_libintl" = "yes"; then |
217 | INTLLIBS="-lintl $libintl_extra_libs" | |
264 | INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" | |
218 | 265 | fi |
219 | 266 | |
220 | 267 | if test "$gt_cv_have_gettext" = "yes"; then |
679 | 726 | AC_SUBST([USE_NLS]) |
680 | 727 | ]) |
681 | 728 | |
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 | ||
685 | 732 | dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. |
686 | 733 | dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> |
687 | 734 | dnl |
954 | 1001 | |
955 | 1002 | AS_VAR_IF([$1], [""], [$5], [$4])dnl |
956 | 1003 | ])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 | |
957 | 1072 | |
958 | 1073 | # Copyright (C) 2002-2014 Free Software Foundation, Inc. |
959 | 1074 | # |
0 | 0 | #! /bin/sh |
1 | 1 | # 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' | |
5 | 5 | |
6 | 6 | # This file is free software; you can redistribute it and/or modify it |
7 | 7 | # under the terms of the GNU General Public License as published by |
26 | 26 | # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. |
27 | 27 | # |
28 | 28 | # 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 | |
30 | 30 | # |
31 | 31 | # Please send patches to <config-patches@gnu.org>. |
32 | 32 | |
49 | 49 | GNU config.guess ($timestamp) |
50 | 50 | |
51 | 51 | Originally written by Per Bothner. |
52 | Copyright 1992-2015 Free Software Foundation, Inc. | |
52 | Copyright 1992-2016 Free Software Foundation, Inc. | |
53 | 53 | |
54 | 54 | This is free software; see the source for copying conditions. There is NO |
55 | 55 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
167 | 167 | # Note: NetBSD doesn't particularly care about the vendor |
168 | 168 | # portion of the name. We always set it to "unknown". |
169 | 169 | 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)` | |
172 | 174 | case "${UNAME_MACHINE_ARCH}" in |
173 | 175 | armeb) machine=armeb-unknown ;; |
174 | 176 | arm*) machine=arm-unknown ;; |
175 | 177 | sh3el) machine=shl-unknown ;; |
176 | 178 | sh3eb) machine=sh-unknown ;; |
177 | 179 | 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 | ;; | |
178 | 185 | *) machine=${UNAME_MACHINE_ARCH}-unknown ;; |
179 | 186 | esac |
180 | 187 | # 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. | |
182 | 189 | case "${UNAME_MACHINE_ARCH}" in |
190 | earm*) | |
191 | os=netbsdelf | |
192 | ;; | |
183 | 193 | arm*|i386|m68k|ns32k|sh3*|sparc|vax) |
184 | 194 | eval $set_cc_for_build |
185 | 195 | if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
196 | 206 | os=netbsd |
197 | 207 | ;; |
198 | 208 | 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 | |
199 | 216 | # The OS release |
200 | 217 | # Debian GNU/NetBSD machines have a different userland, and |
201 | 218 | # thus, need a distinct triplet. However, they do not need |
206 | 223 | release='-gnu' |
207 | 224 | ;; |
208 | 225 | *) |
209 | release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` | |
226 | release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` | |
210 | 227 | ;; |
211 | 228 | esac |
212 | 229 | # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: |
213 | 230 | # contains redundant information, the shorter form: |
214 | 231 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. |
215 | echo "${machine}-${os}${release}" | |
232 | echo "${machine}-${os}${release}${abi}" | |
216 | 233 | exit ;; |
217 | 234 | *:Bitrig:*:*) |
218 | 235 | UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` |
222 | 239 | UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` |
223 | 240 | echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} |
224 | 241 | exit ;; |
242 | *:LibertyBSD:*:*) | |
243 | UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` | |
244 | echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} | |
245 | exit ;; | |
225 | 246 | *:ekkoBSD:*:*) |
226 | 247 | echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} |
227 | 248 | exit ;; |
233 | 254 | exit ;; |
234 | 255 | *:MirBSD:*:*) |
235 | 256 | echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} |
257 | exit ;; | |
258 | *:Sortix:*:*) | |
259 | echo ${UNAME_MACHINE}-unknown-sortix | |
236 | 260 | exit ;; |
237 | 261 | alpha:OSF1:*:*) |
238 | 262 | case $UNAME_RELEASE in |
250 | 274 | ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` |
251 | 275 | case "$ALPHA_CPU_TYPE" in |
252 | 276 | "EV4 (21064)") |
253 | UNAME_MACHINE="alpha" ;; | |
277 | UNAME_MACHINE=alpha ;; | |
254 | 278 | "EV4.5 (21064)") |
255 | UNAME_MACHINE="alpha" ;; | |
279 | UNAME_MACHINE=alpha ;; | |
256 | 280 | "LCA4 (21066/21068)") |
257 | UNAME_MACHINE="alpha" ;; | |
281 | UNAME_MACHINE=alpha ;; | |
258 | 282 | "EV5 (21164)") |
259 | UNAME_MACHINE="alphaev5" ;; | |
283 | UNAME_MACHINE=alphaev5 ;; | |
260 | 284 | "EV5.6 (21164A)") |
261 | UNAME_MACHINE="alphaev56" ;; | |
285 | UNAME_MACHINE=alphaev56 ;; | |
262 | 286 | "EV5.6 (21164PC)") |
263 | UNAME_MACHINE="alphapca56" ;; | |
287 | UNAME_MACHINE=alphapca56 ;; | |
264 | 288 | "EV5.7 (21164PC)") |
265 | UNAME_MACHINE="alphapca57" ;; | |
289 | UNAME_MACHINE=alphapca57 ;; | |
266 | 290 | "EV6 (21264)") |
267 | UNAME_MACHINE="alphaev6" ;; | |
291 | UNAME_MACHINE=alphaev6 ;; | |
268 | 292 | "EV6.7 (21264A)") |
269 | UNAME_MACHINE="alphaev67" ;; | |
293 | UNAME_MACHINE=alphaev67 ;; | |
270 | 294 | "EV6.8CB (21264C)") |
271 | UNAME_MACHINE="alphaev68" ;; | |
295 | UNAME_MACHINE=alphaev68 ;; | |
272 | 296 | "EV6.8AL (21264B)") |
273 | UNAME_MACHINE="alphaev68" ;; | |
297 | UNAME_MACHINE=alphaev68 ;; | |
274 | 298 | "EV6.8CX (21264D)") |
275 | UNAME_MACHINE="alphaev68" ;; | |
299 | UNAME_MACHINE=alphaev68 ;; | |
276 | 300 | "EV6.9A (21264/EV69A)") |
277 | UNAME_MACHINE="alphaev69" ;; | |
301 | UNAME_MACHINE=alphaev69 ;; | |
278 | 302 | "EV7 (21364)") |
279 | UNAME_MACHINE="alphaev7" ;; | |
303 | UNAME_MACHINE=alphaev7 ;; | |
280 | 304 | "EV7.9 (21364A)") |
281 | UNAME_MACHINE="alphaev79" ;; | |
305 | UNAME_MACHINE=alphaev79 ;; | |
282 | 306 | esac |
283 | 307 | # A Pn.n version is a patched version. |
284 | 308 | # A Vn.n version is a released version. |
285 | 309 | # A Tn.n version is a released field test version. |
286 | 310 | # A Xn.n version is an unreleased experimental baselevel. |
287 | 311 | # 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` | |
289 | 313 | # Reset EXIT trap before exiting to avoid spurious non-zero exit code. |
290 | 314 | exitcode=$? |
291 | 315 | trap '' 0 |
358 | 382 | exit ;; |
359 | 383 | i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) |
360 | 384 | eval $set_cc_for_build |
361 | SUN_ARCH="i386" | |
385 | SUN_ARCH=i386 | |
362 | 386 | # If there is a compiler, see if it is configured for 64-bit objects. |
363 | 387 | # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. |
364 | 388 | # This test works for both compilers. |
365 | if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then | |
389 | if [ "$CC_FOR_BUILD" != no_compiler_found ]; then | |
366 | 390 | 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) | \ | |
368 | 392 | grep IS_64BIT_ARCH >/dev/null |
369 | 393 | then |
370 | SUN_ARCH="x86_64" | |
394 | SUN_ARCH=x86_64 | |
371 | 395 | fi |
372 | 396 | fi |
373 | 397 | echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
392 | 416 | exit ;; |
393 | 417 | sun*:*:4.2BSD:*) |
394 | 418 | 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 | |
396 | 420 | case "`/bin/arch`" in |
397 | 421 | sun3) |
398 | 422 | echo m68k-sun-sunos${UNAME_RELEASE} |
617 | 641 | sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` |
618 | 642 | sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` |
619 | 643 | 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 | |
622 | 646 | 532) # CPU_PA_RISC2_0 |
623 | 647 | 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 | |
627 | 651 | esac ;; |
628 | 652 | esac |
629 | 653 | fi |
662 | 686 | exit (0); |
663 | 687 | } |
664 | 688 | 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` | |
666 | 690 | test -z "$HP_ARCH" && HP_ARCH=hppa |
667 | 691 | fi ;; |
668 | 692 | esac |
669 | if [ ${HP_ARCH} = "hppa2.0w" ] | |
693 | if [ ${HP_ARCH} = hppa2.0w ] | |
670 | 694 | then |
671 | 695 | eval $set_cc_for_build |
672 | 696 | |
679 | 703 | # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess |
680 | 704 | # => hppa64-hp-hpux11.23 |
681 | 705 | |
682 | if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | | |
706 | if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | | |
683 | 707 | grep -q __LP64__ |
684 | 708 | then |
685 | HP_ARCH="hppa2.0w" | |
709 | HP_ARCH=hppa2.0w | |
686 | 710 | else |
687 | HP_ARCH="hppa64" | |
711 | HP_ARCH=hppa64 | |
688 | 712 | fi |
689 | 713 | fi |
690 | 714 | echo ${HP_ARCH}-hp-hpux${HPUX_REV} |
789 | 813 | echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
790 | 814 | exit ;; |
791 | 815 | 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/\///'` | |
794 | 818 | FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` |
795 | 819 | echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
796 | 820 | exit ;; |
797 | 821 | 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/ /_/'` | |
800 | 824 | echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
801 | 825 | exit ;; |
802 | 826 | i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) |
878 | 902 | exit ;; |
879 | 903 | *:GNU/*:*:*) |
880 | 904 | # 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} | |
882 | 906 | exit ;; |
883 | 907 | i*86:Minix:*:*) |
884 | 908 | echo ${UNAME_MACHINE}-pc-minix |
901 | 925 | EV68*) UNAME_MACHINE=alphaev68 ;; |
902 | 926 | esac |
903 | 927 | 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 | |
905 | 929 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
906 | 930 | exit ;; |
907 | 931 | arc:Linux:*:* | arceb:Linux:*:*) |
932 | 956 | crisv32:Linux:*:*) |
933 | 957 | echo ${UNAME_MACHINE}-axis-linux-${LIBC} |
934 | 958 | exit ;; |
959 | e2k:Linux:*:*) | |
960 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
961 | exit ;; | |
935 | 962 | frv:Linux:*:*) |
936 | 963 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
937 | 964 | exit ;; |
942 | 969 | echo ${UNAME_MACHINE}-pc-linux-${LIBC} |
943 | 970 | exit ;; |
944 | 971 | ia64:Linux:*:*) |
972 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
973 | exit ;; | |
974 | k1om:Linux:*:*) | |
945 | 975 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
946 | 976 | exit ;; |
947 | 977 | m32r*:Linux:*:*) |
969 | 999 | eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` |
970 | 1000 | test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } |
971 | 1001 | ;; |
1002 | mips64el:Linux:*:*) | |
1003 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
1004 | exit ;; | |
972 | 1005 | openrisc*:Linux:*:*) |
973 | 1006 | echo or1k-unknown-linux-${LIBC} |
974 | 1007 | exit ;; |
1001 | 1034 | ppcle:Linux:*:*) |
1002 | 1035 | echo powerpcle-unknown-linux-${LIBC} |
1003 | 1036 | exit ;; |
1037 | riscv32:Linux:*:* | riscv64:Linux:*:*) | |
1038 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
1039 | exit ;; | |
1004 | 1040 | s390:Linux:*:* | s390x:Linux:*:*) |
1005 | 1041 | echo ${UNAME_MACHINE}-ibm-linux-${LIBC} |
1006 | 1042 | exit ;; |
1020 | 1056 | echo ${UNAME_MACHINE}-dec-linux-${LIBC} |
1021 | 1057 | exit ;; |
1022 | 1058 | x86_64:Linux:*:*) |
1023 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
1059 | echo ${UNAME_MACHINE}-pc-linux-${LIBC} | |
1024 | 1060 | exit ;; |
1025 | 1061 | xtensa*:Linux:*:*) |
1026 | 1062 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
1099 | 1135 | # uname -m prints for DJGPP always 'pc', but it prints nothing about |
1100 | 1136 | # the processor, so we play safe by assuming i586. |
1101 | 1137 | # 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 | |
1103 | 1139 | # this is a cross-build. |
1104 | 1140 | echo i586-pc-msdosdjgpp |
1105 | 1141 | exit ;; |
1248 | 1284 | SX-8R:SUPER-UX:*:*) |
1249 | 1285 | echo sx8r-nec-superux${UNAME_RELEASE} |
1250 | 1286 | exit ;; |
1287 | SX-ACE:SUPER-UX:*:*) | |
1288 | echo sxace-nec-superux${UNAME_RELEASE} | |
1289 | exit ;; | |
1251 | 1290 | Power*:Rhapsody:*:*) |
1252 | 1291 | echo powerpc-apple-rhapsody${UNAME_RELEASE} |
1253 | 1292 | exit ;; |
1261 | 1300 | UNAME_PROCESSOR=powerpc |
1262 | 1301 | fi |
1263 | 1302 | 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 | |
1265 | 1304 | 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) | \ | |
1267 | 1306 | grep IS_64BIT_ARCH >/dev/null |
1268 | 1307 | then |
1269 | 1308 | case $UNAME_PROCESSOR in |
1285 | 1324 | exit ;; |
1286 | 1325 | *:procnto*:*:* | *:QNX:[0123456789]*:*) |
1287 | 1326 | UNAME_PROCESSOR=`uname -p` |
1288 | if test "$UNAME_PROCESSOR" = "x86"; then | |
1327 | if test "$UNAME_PROCESSOR" = x86; then | |
1289 | 1328 | UNAME_PROCESSOR=i386 |
1290 | 1329 | UNAME_MACHINE=pc |
1291 | 1330 | fi |
1316 | 1355 | # "uname -m" is not consistent, so use $cputype instead. 386 |
1317 | 1356 | # is converted to i386 for consistency with other x86 |
1318 | 1357 | # operating systems. |
1319 | if test "$cputype" = "386"; then | |
1358 | if test "$cputype" = 386; then | |
1320 | 1359 | UNAME_MACHINE=i386 |
1321 | 1360 | else |
1322 | 1361 | UNAME_MACHINE="$cputype" |
1358 | 1397 | echo i386-pc-xenix |
1359 | 1398 | exit ;; |
1360 | 1399 | 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/ .*$//'` | |
1362 | 1401 | exit ;; |
1363 | 1402 | i*86:rdos:*:*) |
1364 | 1403 | echo ${UNAME_MACHINE}-pc-rdos |
1369 | 1408 | x86_64:VMkernel:*:*) |
1370 | 1409 | echo ${UNAME_MACHINE}-unknown-esx |
1371 | 1410 | exit ;; |
1411 | amd64:Isilon\ OneFS:*:*) | |
1412 | echo x86_64-unknown-onefs | |
1413 | exit ;; | |
1372 | 1414 | esac |
1373 | 1415 | |
1374 | 1416 | cat >&2 <<EOF |
1375 | 1417 | $0: unable to guess system type |
1376 | 1418 | |
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 | |
1382 | 1424 | 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. | |
1389 | 1430 | |
1390 | 1431 | config.guess timestamp = $timestamp |
1391 | 1432 |
0 | 0 | #! /bin/sh |
1 | 1 | # 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' | |
5 | 5 | |
6 | 6 | # This file is free software; you can redistribute it and/or modify it |
7 | 7 | # under the terms of the GNU General Public License as published by |
32 | 32 | # Otherwise, we print the canonical config type on stdout and succeed. |
33 | 33 | |
34 | 34 | # 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 | |
36 | 36 | |
37 | 37 | # This file is supposed to be the same for all GNU packages |
38 | 38 | # and recognize all the CPU types, system types and aliases |
52 | 52 | me=`echo "$0" | sed -e 's,.*/,,'` |
53 | 53 | |
54 | 54 | usage="\ |
55 | Usage: $0 [OPTION] CPU-MFR-OPSYS | |
56 | $0 [OPTION] ALIAS | |
55 | Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS | |
57 | 56 | |
58 | 57 | Canonicalize a configuration name. |
59 | 58 | |
67 | 66 | version="\ |
68 | 67 | GNU config.sub ($timestamp) |
69 | 68 | |
70 | Copyright 1992-2015 Free Software Foundation, Inc. | |
69 | Copyright 1992-2016 Free Software Foundation, Inc. | |
71 | 70 | |
72 | 71 | This is free software; see the source for copying conditions. There is NO |
73 | 72 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
116 | 115 | case $maybe_os in |
117 | 116 | nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ |
118 | 117 | 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* | \ | |
121 | 120 | storm-chaos* | os2-emx* | rtmk-nova*) |
122 | 121 | os=-$maybe_os |
123 | 122 | basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` |
254 | 253 | | arc | arceb \ |
255 | 254 | | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ |
256 | 255 | | avr | avr32 \ |
256 | | ba \ | |
257 | 257 | | be32 | be64 \ |
258 | 258 | | bfin \ |
259 | 259 | | c4x | c8051 | clipper \ |
260 | 260 | | d10v | d30v | dlx | dsp16xx \ |
261 | | epiphany \ | |
261 | | e2k | epiphany \ | |
262 | 262 | | fido | fr30 | frv | ft32 \ |
263 | 263 | | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ |
264 | 264 | | hexagon \ |
304 | 304 | | riscv32 | riscv64 \ |
305 | 305 | | rl78 | rx \ |
306 | 306 | | 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 \ | |
308 | 308 | | sh64 | sh64le \ |
309 | 309 | | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ |
310 | 310 | | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ |
375 | 375 | | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ |
376 | 376 | | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ |
377 | 377 | | avr-* | avr32-* \ |
378 | | ba-* \ | |
378 | 379 | | be32-* | be64-* \ |
379 | 380 | | bfin-* | bs2000-* \ |
380 | 381 | | c[123]* | c30-* | [cjt]90-* | c4x-* \ |
381 | 382 | | c8051-* | clipper-* | craynv-* | cydra-* \ |
382 | 383 | | d10v-* | d30v-* | dlx-* \ |
383 | | elxsi-* \ | |
384 | | e2k-* | elxsi-* \ | |
384 | 385 | | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ |
385 | 386 | | h8300-* | h8500-* \ |
386 | 387 | | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ |
427 | 428 | | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ |
428 | 429 | | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ |
429 | 430 | | pyramid-* \ |
431 | | riscv32-* | riscv64-* \ | |
430 | 432 | | rl78-* | romp-* | rs6000-* | rx-* \ |
431 | 433 | | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ |
432 | 434 | | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ |
433 | 435 | | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ |
434 | 436 | | sparclite-* \ |
435 | | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | |
437 | | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | |
436 | 438 | | tahoe-* \ |
437 | 439 | | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ |
438 | 440 | | tile*-* \ |
517 | 519 | basic_machine=i386-pc |
518 | 520 | os=-aros |
519 | 521 | ;; |
522 | asmjs) | |
523 | basic_machine=asmjs-unknown | |
524 | ;; | |
520 | 525 | aux) |
521 | 526 | basic_machine=m68k-apple |
522 | 527 | os=-aux |
636 | 641 | dpx2* | dpx2*-bull) |
637 | 642 | basic_machine=m68k-bull |
638 | 643 | 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" | |
639 | 652 | ;; |
640 | 653 | ebmon29k) |
641 | 654 | basic_machine=a29k-amd |
1016 | 1029 | ppc-* | ppcbe-*) |
1017 | 1030 | basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` |
1018 | 1031 | ;; |
1019 | ppcle | powerpclittle | ppc-le | powerpc-little) | |
1032 | ppcle | powerpclittle) | |
1020 | 1033 | basic_machine=powerpcle-unknown |
1021 | 1034 | ;; |
1022 | 1035 | ppcle-* | powerpclittle-*) |
1026 | 1039 | ;; |
1027 | 1040 | ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` |
1028 | 1041 | ;; |
1029 | ppc64le | powerpc64little | ppc64-le | powerpc64-little) | |
1042 | ppc64le | powerpc64little) | |
1030 | 1043 | basic_machine=powerpc64le-unknown |
1031 | 1044 | ;; |
1032 | 1045 | ppc64le-* | powerpc64little-*) |
1372 | 1385 | | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ |
1373 | 1386 | | -sym* | -kopensolaris* | -plan9* \ |
1374 | 1387 | | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ |
1375 | | -aos* | -aros* \ | |
1388 | | -aos* | -aros* | -cloudabi* | -sortix* \ | |
1376 | 1389 | | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ |
1377 | 1390 | | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ |
1378 | 1391 | | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ |
1379 | | -bitrig* | -openbsd* | -solidbsd* \ | |
1392 | | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | |
1380 | 1393 | | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ |
1381 | 1394 | | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ |
1382 | 1395 | | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ |
1383 | 1396 | | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ |
1384 | 1397 | | -chorusos* | -chorusrdb* | -cegcc* \ |
1385 | 1398 | | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ |
1386 | | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | |
1399 | | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | |
1387 | 1400 | | -linux-newlib* | -linux-musl* | -linux-uclibc* \ |
1388 | 1401 | | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ |
1389 | 1402 | | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ |
1392 | 1405 | | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ |
1393 | 1406 | | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ |
1394 | 1407 | | -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*) | |
1396 | 1410 | # Remember, each alternative MUST END IN *, to match a version number. |
1397 | 1411 | ;; |
1398 | 1412 | -qnx*) |
1524 | 1538 | ;; |
1525 | 1539 | -nacl*) |
1526 | 1540 | ;; |
1541 | -ios) | |
1542 | ;; | |
1527 | 1543 | -none) |
1528 | 1544 | ;; |
1529 | 1545 | *) |
16 | 16 | |
17 | 17 | /* Define to 1 if you have the `bind_textdomain_codeset' function. */ |
18 | 18 | #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 | |
19 | 27 | |
20 | 28 | /* Define to 1 if you have the `dcgettext' function. */ |
21 | 29 | #undef HAVE_DCGETTEXT |
0 | 0 | #! /bin/sh |
1 | 1 | # 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. | |
3 | 3 | # |
4 | 4 | # |
5 | 5 | # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. |
586 | 586 | # Identity of this package. |
587 | 587 | PACKAGE_NAME='virt-viewer' |
588 | 588 | 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' | |
591 | 591 | PACKAGE_BUGREPORT='' |
592 | 592 | PACKAGE_URL='' |
593 | 593 | |
715 | 715 | GMSGFMT |
716 | 716 | MSGFMT_OPTS |
717 | 717 | MSGFMT |
718 | INTL_MACOSX_LIBS | |
718 | 719 | USE_NLS |
719 | 720 | GETTEXT_PACKAGE |
720 | 721 | WARN_CFLAGS |
1441 | 1442 | # Omit some internal or obsolete options to make the list less imposing. |
1442 | 1443 | # This message is too long to be a string in the A/UX 3.1 sh. |
1443 | 1444 | 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. | |
1445 | 1446 | |
1446 | 1447 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1447 | 1448 | |
1511 | 1512 | |
1512 | 1513 | if test -n "$ac_init_help"; then |
1513 | 1514 | 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:";; | |
1515 | 1516 | esac |
1516 | 1517 | cat <<\_ACEOF |
1517 | 1518 | |
1672 | 1673 | test -n "$ac_init_help" && exit $ac_status |
1673 | 1674 | if $ac_init_version; then |
1674 | 1675 | cat <<\_ACEOF |
1675 | virt-viewer configure 5.0 | |
1676 | virt-viewer configure 6.0 | |
1676 | 1677 | generated by GNU Autoconf 2.69 |
1677 | 1678 | |
1678 | 1679 | Copyright (C) 2012 Free Software Foundation, Inc. |
2037 | 2038 | This file contains any messages produced by compilers while |
2038 | 2039 | running configure, to aid debugging if configure makes a mistake. |
2039 | 2040 | |
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 | |
2041 | 2042 | generated by GNU Autoconf 2.69. Invocation command line was |
2042 | 2043 | |
2043 | 2044 | $ $0 $@ |
2904 | 2905 | |
2905 | 2906 | # Define the identity of the package. |
2906 | 2907 | PACKAGE='virt-viewer' |
2907 | VERSION='5.0' | |
2908 | VERSION='6.0' | |
2908 | 2909 | |
2909 | 2910 | |
2910 | 2911 | cat >>confdefs.h <<_ACEOF |
3116 | 3117 | GLIB2_ENCODED_VERSION="GLIB_VERSION_2_38" |
3117 | 3118 | |
3118 | 3119 | # 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" | |
3121 | 3122 | |
3122 | 3123 | LIBXML2_REQUIRED="2.6.0" |
3123 | 3124 | LIBVIRT_REQUIRED="0.10.0" |
12536 | 12537 | XGETTEXT=: |
12537 | 12538 | INTLLIBS= |
12538 | 12539 | |
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 | ||
12539 | 12616 | ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" |
12540 | 12617 | if test "x$ac_cv_header_libintl_h" = xyes; then : |
12541 | 12618 | gt_cv_func_dgettext_libintl="no" |
12876 | 12953 | fi |
12877 | 12954 | |
12878 | 12955 | if test "$gt_cv_func_dgettext_libintl" = "yes"; then |
12879 | INTLLIBS="-lintl $libintl_extra_libs" | |
12956 | INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" | |
12880 | 12957 | fi |
12881 | 12958 | |
12882 | 12959 | if test "$gt_cv_have_gettext" = "yes"; then |
15646 | 15723 | # report actual input values of CONFIG_FILES etc. instead of their |
15647 | 15724 | # values after options handling. |
15648 | 15725 | 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 | |
15650 | 15727 | generated by GNU Autoconf 2.69. Invocation command line was |
15651 | 15728 | |
15652 | 15729 | CONFIG_FILES = $CONFIG_FILES |
15716 | 15793 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
15717 | 15794 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
15718 | 15795 | ac_cs_version="\\ |
15719 | virt-viewer config.status 5.0 | |
15796 | virt-viewer config.status 6.0 | |
15720 | 15797 | configured by $0, generated by GNU Autoconf 2.69, |
15721 | 15798 | with options \\"\$ac_cs_config\\" |
15722 | 15799 |
0 | 0 | |
1 | AC_INIT([virt-viewer],[5.0]) | |
1 | AC_INIT([virt-viewer],[6.0]) | |
2 | 2 | AC_CONFIG_SRCDIR(src/virt-viewer-main.c) |
3 | 3 | AC_CONFIG_MACRO_DIR([m4]) |
4 | 4 | AC_CONFIG_AUX_DIR([build-aux]) |
5 | 5 | AC_CONFIG_HEADERS([config.h]) |
6 | 6 | 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]) | |
8 | 8 | AC_CANONICAL_HOST |
9 | 9 | |
10 | 10 | # Use the silent-rules feature when possible. |
16 | 16 | GLIB2_ENCODED_VERSION="GLIB_VERSION_2_38" |
17 | 17 | |
18 | 18 | # 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" | |
21 | 21 | |
22 | 22 | LIBXML2_REQUIRED="2.6.0" |
23 | 23 | LIBVIRT_REQUIRED="0.10.0" |
221 | 221 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
222 | 222 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
223 | 223 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
224 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
224 | 225 | LD = @LD@ |
225 | 226 | LDFLAGS = @LDFLAGS@ |
226 | 227 | LIBOBJS = @LIBOBJS@ |
376 | 377 | exit 1;; \ |
377 | 378 | esac; \ |
378 | 379 | done; \ |
379 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ | |
380 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ | |
380 | 381 | $(am__cd) $(top_srcdir) && \ |
381 | $(AUTOMAKE) --gnu data/Makefile | |
382 | $(AUTOMAKE) --foreign data/Makefile | |
382 | 383 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
383 | 384 | @case '$?' in \ |
384 | 385 | *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 | ||
0 | 11 | virt-viewer (5.0-1) unstable; urgency=medium |
1 | 12 | |
2 | 13 | * [811799c] New upstream version 5.0 |
213 | 213 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
214 | 214 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
215 | 215 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
216 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
216 | 217 | LD = @LD@ |
217 | 218 | LDFLAGS = @LDFLAGS@ |
218 | 219 | LIBOBJS = @LIBOBJS@ |
350 | 351 | exit 1;; \ |
351 | 352 | esac; \ |
352 | 353 | done; \ |
353 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/16x16/Makefile'; \ | |
354 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/16x16/Makefile'; \ | |
354 | 355 | $(am__cd) $(top_srcdir) && \ |
355 | $(AUTOMAKE) --gnu icons/16x16/Makefile | |
356 | $(AUTOMAKE) --foreign icons/16x16/Makefile | |
356 | 357 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
357 | 358 | @case '$?' in \ |
358 | 359 | *config.status*) \ |
213 | 213 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
214 | 214 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
215 | 215 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
216 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
216 | 217 | LD = @LD@ |
217 | 218 | LDFLAGS = @LDFLAGS@ |
218 | 219 | LIBOBJS = @LIBOBJS@ |
350 | 351 | exit 1;; \ |
351 | 352 | esac; \ |
352 | 353 | done; \ |
353 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/22x22/Makefile'; \ | |
354 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/22x22/Makefile'; \ | |
354 | 355 | $(am__cd) $(top_srcdir) && \ |
355 | $(AUTOMAKE) --gnu icons/22x22/Makefile | |
356 | $(AUTOMAKE) --foreign icons/22x22/Makefile | |
356 | 357 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
357 | 358 | @case '$?' in \ |
358 | 359 | *config.status*) \ |
214 | 214 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
215 | 215 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
216 | 216 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
217 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
217 | 218 | LD = @LD@ |
218 | 219 | LDFLAGS = @LDFLAGS@ |
219 | 220 | LIBOBJS = @LIBOBJS@ |
353 | 354 | exit 1;; \ |
354 | 355 | esac; \ |
355 | 356 | done; \ |
356 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/24x24/Makefile'; \ | |
357 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/24x24/Makefile'; \ | |
357 | 358 | $(am__cd) $(top_srcdir) && \ |
358 | $(AUTOMAKE) --gnu icons/24x24/Makefile | |
359 | $(AUTOMAKE) --foreign icons/24x24/Makefile | |
359 | 360 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
360 | 361 | @case '$?' in \ |
361 | 362 | *config.status*) \ |
213 | 213 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
214 | 214 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
215 | 215 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
216 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
216 | 217 | LD = @LD@ |
217 | 218 | LDFLAGS = @LDFLAGS@ |
218 | 219 | LIBOBJS = @LIBOBJS@ |
350 | 351 | exit 1;; \ |
351 | 352 | esac; \ |
352 | 353 | done; \ |
353 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/256x256/Makefile'; \ | |
354 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/256x256/Makefile'; \ | |
354 | 355 | $(am__cd) $(top_srcdir) && \ |
355 | $(AUTOMAKE) --gnu icons/256x256/Makefile | |
356 | $(AUTOMAKE) --foreign icons/256x256/Makefile | |
356 | 357 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
357 | 358 | @case '$?' in \ |
358 | 359 | *config.status*) \ |
213 | 213 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
214 | 214 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
215 | 215 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
216 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
216 | 217 | LD = @LD@ |
217 | 218 | LDFLAGS = @LDFLAGS@ |
218 | 219 | LIBOBJS = @LIBOBJS@ |
350 | 351 | exit 1;; \ |
351 | 352 | esac; \ |
352 | 353 | done; \ |
353 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/32x32/Makefile'; \ | |
354 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/32x32/Makefile'; \ | |
354 | 355 | $(am__cd) $(top_srcdir) && \ |
355 | $(AUTOMAKE) --gnu icons/32x32/Makefile | |
356 | $(AUTOMAKE) --foreign icons/32x32/Makefile | |
356 | 357 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
357 | 358 | @case '$?' in \ |
358 | 359 | *config.status*) \ |
213 | 213 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
214 | 214 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
215 | 215 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
216 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
216 | 217 | LD = @LD@ |
217 | 218 | LDFLAGS = @LDFLAGS@ |
218 | 219 | LIBOBJS = @LIBOBJS@ |
350 | 351 | exit 1;; \ |
351 | 352 | esac; \ |
352 | 353 | done; \ |
353 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/48x48/Makefile'; \ | |
354 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/48x48/Makefile'; \ | |
354 | 355 | $(am__cd) $(top_srcdir) && \ |
355 | $(AUTOMAKE) --gnu icons/48x48/Makefile | |
356 | $(AUTOMAKE) --foreign icons/48x48/Makefile | |
356 | 357 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
357 | 358 | @case '$?' in \ |
358 | 359 | *config.status*) \ |
245 | 245 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
246 | 246 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
247 | 247 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
248 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
248 | 249 | LD = @LD@ |
249 | 250 | LDFLAGS = @LDFLAGS@ |
250 | 251 | LIBOBJS = @LIBOBJS@ |
384 | 385 | exit 1;; \ |
385 | 386 | esac; \ |
386 | 387 | done; \ |
387 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/Makefile'; \ | |
388 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/Makefile'; \ | |
388 | 389 | $(am__cd) $(top_srcdir) && \ |
389 | $(AUTOMAKE) --gnu icons/Makefile | |
390 | $(AUTOMAKE) --foreign icons/Makefile | |
390 | 391 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
391 | 392 | @case '$?' in \ |
392 | 393 | *config.status*) \ |
214 | 214 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
215 | 215 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
216 | 216 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
217 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
217 | 218 | LD = @LD@ |
218 | 219 | LDFLAGS = @LDFLAGS@ |
219 | 220 | LIBOBJS = @LIBOBJS@ |
359 | 360 | exit 1;; \ |
360 | 361 | esac; \ |
361 | 362 | done; \ |
362 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \ | |
363 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \ | |
363 | 364 | $(am__cd) $(top_srcdir) && \ |
364 | $(AUTOMAKE) --gnu man/Makefile | |
365 | $(AUTOMAKE) --foreign man/Makefile | |
365 | 366 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
366 | 367 | @case '$?' in \ |
367 | 368 | *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) | |
1 | 1 | .\" |
2 | 2 | .\" Standard preamble: |
3 | 3 | .\" ======================================================================== |
128 | 128 | .\" ======================================================================== |
129 | 129 | .\" |
130 | 130 | .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" | |
132 | 132 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
133 | 133 | .\" way too many mistakes in technical documents. |
134 | 134 | .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) | |
1 | 1 | .\" |
2 | 2 | .\" Standard preamble: |
3 | 3 | .\" ======================================================================== |
128 | 128 | .\" ======================================================================== |
129 | 129 | .\" |
130 | 130 | .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" | |
132 | 132 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
133 | 133 | .\" way too many mistakes in technical documents. |
134 | 134 | .if n .ad l |
137 | 137 | virt\-viewer \- display the graphical console for a virtual machine |
138 | 138 | .SH "SYNOPSIS" |
139 | 139 | .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] | |
141 | 141 | .SH "DESCRIPTION" |
142 | 142 | .IX Header "DESCRIPTION" |
143 | 143 | \&\fBvirt-viewer\fR is a minimal tool for displaying the graphical console |
237 | 237 | kiosk-quit option to \*(L"on-disconnect\*(R" value, virt-viewer will quit |
238 | 238 | instead. Please note that \-\-reconnect takes precedence over this |
239 | 239 | 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 | |
240 | 257 | .SH "CONFIGURATION" |
241 | 258 | .IX Header "CONFIGURATION" |
242 | 259 | A small number of configuration options can be controlled by editing the |
303 | 320 | .Vb 1 |
304 | 321 | \& virt\-viewer \-\-connect xen://example.org/ demo |
305 | 322 | .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. | |
306 | 333 | .PP |
307 | 334 | To connect to a remote host using \s-1SSH,\s0 lookup the guest config and |
308 | 335 | then make a direct non-tunnelled connection of the console |
4 | 4 | |
5 | 5 | =head1 SYNOPSIS |
6 | 6 | |
7 | B<virt-viewer> [OPTIONS] [DOMAIN-NAME|ID|UUID] | |
7 | B<virt-viewer> [OPTIONS] [ID|UUID|DOMAIN-NAME] | |
8 | 8 | |
9 | 9 | =head1 DESCRIPTION |
10 | 10 | |
121 | 121 | instead. Please note that --reconnect takes precedence over this |
122 | 122 | option, and will attempt to do a reconnection before it quits. |
123 | 123 | |
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 | ||
124 | 138 | =back |
125 | 139 | |
126 | 140 | =head1 CONFIGURATION |
178 | 192 | virt-viewer --connect xen://example.org/ demo |
179 | 193 | |
180 | 194 | 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 | |
181 | 204 | then make a direct non-tunnelled connection of the console |
182 | 205 | |
183 | 206 | virt-viewer --direct --connect xen+ssh://root@example.org/ demo |
0 | 0 | data/remote-viewer.appdata.xml.in |
1 | 1 | data/remote-viewer.desktop.in |
2 | 2 | data/virt-viewer-mime.xml.in |
3 | src/remote-viewer-iso-list-dialog.c | |
3 | 4 | src/remote-viewer-main.c |
4 | 5 | src/remote-viewer.c |
5 | 6 | [type: gettext/glade] src/resources/ui/remote-viewer-connect.ui |
7 | [type: gettext/glade] src/resources/ui/remote-viewer-iso-list.ui | |
6 | 8 | [type: gettext/glade] src/resources/ui/virt-viewer-about.ui |
7 | 9 | src/virt-viewer-app.c |
8 | 10 | src/virt-viewer-auth.c |
12 | 12 | resources/ui/virt-viewer-vm-connection.ui \ |
13 | 13 | resources/ui/virt-viewer-preferences.ui \ |
14 | 14 | resources/ui/remote-viewer-connect.ui \ |
15 | resources/ui/remote-viewer-iso-list.ui \ | |
15 | 16 | resources/ui/virt-viewer-file-transfer-dialog.ui \ |
16 | 17 | $(NULL) |
17 | 18 | |
37 | 38 | $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/resources --generate --c-name virt_viewer $< |
38 | 39 | |
39 | 40 | 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 $^ | \ | |
41 | 42 | sed -e 's/VIRT_TYPE_VIEWER/VIRT_VIEWER_TYPE/' \ |
42 | 43 | -e 's,#include "$(srcdir)/,#include ",' > $@ |
43 | 44 | |
96 | 97 | libvirt_viewer_la_SOURCES += \ |
97 | 98 | ovirt-foreign-menu.h \ |
98 | 99 | ovirt-foreign-menu.c \ |
100 | remote-viewer-iso-list-dialog.c \ | |
101 | remote-viewer-iso-list-dialog.h \ | |
99 | 102 | $(NULL) |
100 | 103 | endif |
101 | 104 |
109 | 109 | @HAVE_OVIRT_TRUE@am__append_3 = \ |
110 | 110 | @HAVE_OVIRT_TRUE@ ovirt-foreign-menu.h \ |
111 | 111 | @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 \ | |
112 | 114 | @HAVE_OVIRT_TRUE@ $(NULL) |
113 | 115 | |
114 | 116 | @HAVE_LIBVIRT_TRUE@am__append_4 = virt-viewer |
168 | 170 | virt-viewer-display-spice.h virt-viewer-display-spice.c \ |
169 | 171 | virt-viewer-file-transfer-dialog.h \ |
170 | 172 | 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 | |
172 | 175 | am__objects_2 = libvirt_viewer_la-virt-viewer-resources.lo \ |
173 | 176 | libvirt_viewer_la-virt-viewer-enums.lo $(am__objects_1) |
174 | 177 | @HAVE_GTK_VNC_TRUE@am__objects_3 = libvirt_viewer_la-virt-viewer-session-vnc.lo \ |
180 | 183 | @HAVE_SPICE_GTK_TRUE@ $(am__objects_1) |
181 | 184 | @HAVE_OVIRT_TRUE@am__objects_5 = \ |
182 | 185 | @HAVE_OVIRT_TRUE@ libvirt_viewer_la-ovirt-foreign-menu.lo \ |
186 | @HAVE_OVIRT_TRUE@ libvirt_viewer_la-remote-viewer-iso-list-dialog.lo \ | |
183 | 187 | @HAVE_OVIRT_TRUE@ $(am__objects_1) |
184 | 188 | am_libvirt_viewer_la_OBJECTS = $(am__objects_2) \ |
185 | 189 | libvirt_viewer_la-virt-viewer-auth.lo \ |
377 | 381 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ |
378 | 382 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ |
379 | 383 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ |
384 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
380 | 385 | LD = @LD@ |
381 | 386 | LDFLAGS = @LDFLAGS@ |
382 | 387 | LIBOBJS = @LIBOBJS@ |
510 | 515 | resources/ui/virt-viewer-vm-connection.ui \ |
511 | 516 | resources/ui/virt-viewer-preferences.ui \ |
512 | 517 | resources/ui/remote-viewer-connect.ui \ |
518 | resources/ui/remote-viewer-iso-list.ui \ | |
513 | 519 | resources/ui/virt-viewer-file-transfer-dialog.ui \ |
514 | 520 | $(NULL) |
515 | 521 | |
652 | 658 | exit 1;; \ |
653 | 659 | esac; \ |
654 | 660 | done; \ |
655 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ | |
661 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ | |
656 | 662 | $(am__cd) $(top_srcdir) && \ |
657 | $(AUTOMAKE) --gnu src/Makefile | |
663 | $(AUTOMAKE) --foreign src/Makefile | |
658 | 664 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
659 | 665 | @case '$?' in \ |
660 | 666 | *config.status*) \ |
765 | 771 | |
766 | 772 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug_helper-debug-helper.Po@am__quote@ |
767 | 773 | @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@ | |
768 | 775 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-app.Plo@am__quote@ |
769 | 776 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-auth.Plo@am__quote@ |
770 | 777 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-spice.Plo@am__quote@ |
938 | 945 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ovirt-foreign-menu.c' object='libvirt_viewer_la-ovirt-foreign-menu.lo' libtool=yes @AMDEPBACKSLASH@ |
939 | 946 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
940 | 947 | @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 | |
941 | 955 | |
942 | 956 | debug_helper-debug-helper.o: debug-helper.c |
943 | 957 | @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 |
1248 | 1262 | $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/resources --generate --c-name virt_viewer $< |
1249 | 1263 | |
1250 | 1264 | 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 $^ | \ | |
1252 | 1266 | sed -e 's/VIRT_TYPE_VIEWER/VIRT_VIEWER_TYPE/' \ |
1253 | 1267 | -e 's,#include "$(srcdir)/,#include ",' > $@ |
1254 | 1268 |
39 | 39 | STATE_ISOS |
40 | 40 | } OvirtForeignMenuState; |
41 | 41 | |
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); | |
49 | 49 | |
50 | 50 | G_DEFINE_TYPE (OvirtForeignMenu, ovirt_foreign_menu, G_TYPE_OBJECT) |
51 | 51 | |
84 | 84 | }; |
85 | 85 | |
86 | 86 | |
87 | static char * | |
87 | gchar * | |
88 | 88 | ovirt_foreign_menu_get_current_iso_name(OvirtForeignMenu *foreign_menu) |
89 | 89 | { |
90 | char *name; | |
90 | gchar *name; | |
91 | 91 | |
92 | 92 | if (foreign_menu->priv->cdrom == NULL) { |
93 | 93 | return NULL; |
96 | 96 | g_object_get(foreign_menu->priv->cdrom, "file", &name, NULL); |
97 | 97 | |
98 | 98 | 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; | |
99 | 106 | } |
100 | 107 | |
101 | 108 | |
272 | 279 | |
273 | 280 | static void |
274 | 281 | ovirt_foreign_menu_next_async_step(OvirtForeignMenu *menu, |
282 | GTask *task, | |
275 | 283 | OvirtForeignMenuState current_state) |
276 | 284 | { |
277 | g_return_if_fail(current_state >= STATE_0); | |
278 | g_return_if_fail(current_state < STATE_ISOS); | |
279 | ||
280 | 285 | /* Each state will check if the member is initialized, falling directly to |
281 | 286 | * the next one if so. If not, the callback for the asynchronous call will |
282 | 287 | * be responsible for calling is function again with the next state as |
285 | 290 | switch (current_state + 1) { |
286 | 291 | case STATE_API: |
287 | 292 | if (menu->priv->api == NULL) { |
288 | ovirt_foreign_menu_fetch_api_async(menu); | |
293 | ovirt_foreign_menu_fetch_api_async(menu, task); | |
289 | 294 | break; |
290 | 295 | } |
296 | /* fall through */ | |
291 | 297 | case STATE_VM: |
292 | 298 | if (menu->priv->vm == NULL) { |
293 | ovirt_foreign_menu_fetch_vm_async(menu); | |
299 | ovirt_foreign_menu_fetch_vm_async(menu, task); | |
294 | 300 | break; |
295 | 301 | } |
302 | /* fall through */ | |
296 | 303 | case STATE_STORAGE_DOMAIN: |
297 | 304 | if (menu->priv->files == NULL) { |
298 | ovirt_foreign_menu_fetch_storage_domain_async(menu); | |
305 | ovirt_foreign_menu_fetch_storage_domain_async(menu, task); | |
299 | 306 | break; |
300 | 307 | } |
308 | /* fall through */ | |
301 | 309 | case STATE_VM_CDROM: |
302 | 310 | if (menu->priv->cdrom == NULL) { |
303 | ovirt_foreign_menu_fetch_vm_cdrom_async(menu); | |
311 | ovirt_foreign_menu_fetch_vm_cdrom_async(menu, task); | |
304 | 312 | break; |
305 | 313 | } |
314 | /* fall through */ | |
306 | 315 | case STATE_CDROM_FILE: |
307 | ovirt_foreign_menu_refresh_cdrom_file_async(menu); | |
316 | ovirt_foreign_menu_refresh_cdrom_file_async(menu, task); | |
308 | 317 | break; |
309 | 318 | case STATE_ISOS: |
310 | 319 | g_warn_if_fail(menu->priv->api != NULL); |
312 | 321 | g_warn_if_fail(menu->priv->files != NULL); |
313 | 322 | g_warn_if_fail(menu->priv->cdrom != NULL); |
314 | 323 | |
315 | ovirt_foreign_menu_refresh_iso_list(menu); | |
324 | ovirt_foreign_menu_fetch_iso_list_async(menu, task); | |
316 | 325 | break; |
317 | 326 | default: |
318 | 327 | 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); | |
319 | 331 | } |
320 | 332 | } |
321 | 333 | |
322 | 334 | |
323 | 335 | 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) | |
349 | 359 | { |
350 | 360 | 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)); | |
352 | 363 | gboolean updated; |
353 | 364 | |
354 | foreign_menu = OVIRT_FOREIGN_MENU(user_data); | |
355 | 365 | updated = ovirt_cdrom_update_finish(OVIRT_CDROM(source_object), |
356 | 366 | result, &error); |
357 | g_debug("Finished updating cdrom content"); | |
358 | 367 | if (updated) { |
368 | g_debug("Finished updating cdrom content: %s", foreign_menu->priv->next_iso_name); | |
359 | 369 | g_free(foreign_menu->priv->current_iso_name); |
360 | 370 | foreign_menu->priv->current_iso_name = foreign_menu->priv->next_iso_name; |
361 | 371 | 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); | |
363 | 387 | } 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 | ||
390 | 406 | g_return_if_fail(foreign_menu->priv->cdrom != NULL); |
391 | 407 | g_return_if_fail(foreign_menu->priv->next_iso_name == NULL); |
392 | 408 | |
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); | |
407 | 412 | } else { |
408 | 413 | g_debug("Removing current cdrom image"); |
409 | iso_name = NULL; | |
410 | 414 | foreign_menu->priv->next_iso_name = NULL; |
411 | 415 | } |
416 | ||
412 | 417 | g_object_set(foreign_menu->priv->cdrom, |
413 | "file", iso_name, | |
418 | "file", name, | |
414 | 419 | NULL); |
420 | ||
421 | task = g_task_new(foreign_menu, cancellable, callback, user_data); | |
415 | 422 | 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); | |
451 | 434 | } |
452 | 435 | |
453 | 436 | |
489 | 472 | |
490 | 473 | g_list_free_full(menu->priv->iso_names, (GDestroyNotify)g_free); |
491 | 474 | menu->priv->iso_names = sorted_files; |
492 | g_object_notify(G_OBJECT(menu), "files"); | |
493 | 475 | } |
494 | 476 | |
495 | 477 | |
497 | 479 | GAsyncResult *result, |
498 | 480 | gpointer user_data) |
499 | 481 | { |
482 | GTask *task = G_TASK(user_data); | |
483 | OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(g_task_get_source_object(task)); | |
500 | 484 | OvirtResource *cdrom = OVIRT_RESOURCE(source_object); |
501 | OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(user_data); | |
502 | 485 | GError *error = NULL; |
503 | 486 | |
504 | 487 | ovirt_resource_refresh_finish(cdrom, result, &error); |
505 | 488 | if (error != NULL) { |
506 | 489 | 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); | |
508 | 492 | return; |
509 | 493 | } |
510 | 494 | |
515 | 499 | "file", &menu->priv->current_iso_name, |
516 | 500 | NULL); |
517 | 501 | } |
518 | g_object_notify(G_OBJECT(menu), "file"); | |
519 | 502 | 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); | |
521 | 504 | } else { |
522 | 505 | 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) | |
528 | 515 | { |
529 | 516 | g_return_if_fail(OVIRT_IS_RESOURCE(menu->priv->cdrom)); |
530 | 517 | |
531 | 518 | 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); | |
534 | 521 | } |
535 | 522 | |
536 | 523 | |
540 | 527 | { |
541 | 528 | GHashTable *cdroms; |
542 | 529 | 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)); | |
544 | 532 | GHashTableIter iter; |
545 | 533 | OvirtCdrom *cdrom; |
546 | 534 | GError *error = NULL; |
548 | 536 | ovirt_collection_fetch_finish(cdrom_collection, result, &error); |
549 | 537 | if (error != NULL) { |
550 | 538 | 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); | |
552 | 541 | return; |
553 | 542 | } |
554 | 543 | |
570 | 559 | } |
571 | 560 | |
572 | 561 | 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); | |
574 | 563 | } else { |
575 | 564 | 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) | |
581 | 574 | { |
582 | 575 | OvirtCollection *cdrom_collection; |
583 | 576 | |
584 | 577 | 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); | |
587 | 581 | } |
588 | 582 | |
589 | 583 | |
592 | 586 | gpointer user_data) |
593 | 587 | { |
594 | 588 | 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)); | |
596 | 591 | OvirtCollection *collection = OVIRT_COLLECTION(source_object); |
597 | 592 | GHashTableIter iter; |
598 | 593 | OvirtStorageDomain *domain; |
600 | 595 | ovirt_collection_fetch_finish(collection, result, &error); |
601 | 596 | if (error != NULL) { |
602 | 597 | 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); | |
604 | 600 | return; |
605 | 601 | } |
606 | 602 | |
631 | 627 | } |
632 | 628 | |
633 | 629 | 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); | |
635 | 631 | } else { |
636 | 632 | 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); | |
644 | 644 | |
645 | 645 | 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); | |
649 | 649 | } |
650 | 650 | |
651 | 651 | |
654 | 654 | gpointer user_data) |
655 | 655 | { |
656 | 656 | 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); | |
659 | 660 | GHashTableIter iter; |
660 | 661 | OvirtVm *vm; |
661 | 662 | |
662 | collection = OVIRT_COLLECTION(source_object); | |
663 | 663 | ovirt_collection_fetch_finish(collection, result, &error); |
664 | 664 | if (error != NULL) { |
665 | 665 | 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); | |
667 | 668 | return; |
668 | 669 | } |
669 | 670 | |
680 | 681 | g_free(guid); |
681 | 682 | } |
682 | 683 | 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); | |
684 | 685 | } else { |
685 | 686 | 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) | |
691 | 696 | { |
692 | 697 | OvirtCollection *vms; |
693 | 698 | |
697 | 702 | |
698 | 703 | vms = ovirt_api_get_vms(menu->priv->api); |
699 | 704 | 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); | |
701 | 707 | } |
702 | 708 | |
703 | 709 | |
706 | 712 | gpointer user_data) |
707 | 713 | { |
708 | 714 | 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 | ||
713 | 719 | menu->priv->api = ovirt_proxy_fetch_api_finish(proxy, result, &error); |
714 | 720 | if (error != NULL) { |
715 | 721 | 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); | |
717 | 724 | return; |
718 | 725 | } |
719 | 726 | g_return_if_fail(OVIRT_IS_API(menu->priv->api)); |
720 | 727 | g_object_ref(menu->priv->api); |
721 | 728 | |
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) | |
727 | 735 | { |
728 | 736 | g_debug("Start fetching oVirt main entry point"); |
729 | 737 | |
730 | 738 | g_return_if_fail(OVIRT_IS_FOREIGN_MENU(menu)); |
731 | 739 | g_return_if_fail(OVIRT_IS_PROXY(menu->priv->proxy)); |
732 | 740 | |
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); | |
734 | 744 | } |
735 | 745 | |
736 | 746 | |
738 | 748 | GAsyncResult *result, |
739 | 749 | gpointer user_data) |
740 | 750 | { |
751 | GTask *task = G_TASK(user_data); | |
752 | OvirtForeignMenu *menu = OVIRT_FOREIGN_MENU(g_task_get_source_object(task)); | |
741 | 753 | OvirtCollection *collection = OVIRT_COLLECTION(source_object); |
742 | 754 | GError *error = NULL; |
743 | 755 | GList *files; |
746 | 758 | if (error != NULL) { |
747 | 759 | g_warning("failed to fetch files for ISO storage domain: %s", |
748 | 760 | error->message); |
749 | g_clear_error(&error); | |
761 | g_task_return_error(task, error); | |
762 | g_object_unref(task); | |
750 | 763 | return; |
751 | 764 | } |
752 | 765 | |
753 | 766 | 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); | |
755 | 768 | 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) | |
762 | 776 | { |
763 | 777 | if (menu->priv->files == NULL) { |
764 | 778 | return; |
765 | 779 | } |
766 | 780 | |
767 | 781 | 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); | |
785 | 784 | } |
786 | 785 | |
787 | 786 |
67 | 67 | |
68 | 68 | OvirtForeignMenu* ovirt_foreign_menu_new(OvirtProxy *proxy); |
69 | 69 | 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 | ||
71 | 88 | |
72 | 89 | 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); | |
73 | 92 | |
74 | 93 | G_END_DECLS |
75 | 94 |
171 | 171 | * @return FALSE if Cancel is pressed or dialog is closed |
172 | 172 | */ |
173 | 173 | gboolean |
174 | remote_viewer_connect_dialog(gchar **uri) | |
174 | remote_viewer_connect_dialog(GtkWindow *main_window, gchar **uri) | |
175 | 175 | { |
176 | 176 | GtkWidget *window, *label, *entry, *recent, *connect_button, *cancel_button; |
177 | 177 | GtkRecentFilter *rfilter; |
191 | 191 | g_return_val_if_fail(builder != NULL, GTK_RESPONSE_NONE); |
192 | 192 | |
193 | 193 | window = GTK_WIDGET(gtk_builder_get_object(builder, "remote-viewer-connection-window")); |
194 | gtk_window_set_transient_for(GTK_WINDOW(window), main_window); | |
194 | 195 | connect_button = GTK_WIDGET(gtk_builder_get_object(builder, "connect-button")); |
195 | 196 | cancel_button = GTK_WIDGET(gtk_builder_get_object(builder, "cancel-button")); |
196 | 197 | label = GTK_WIDGET(gtk_builder_get_object(builder, "example-label")); |
22 | 22 | |
23 | 23 | #include <gtk/gtk.h> |
24 | 24 | |
25 | gboolean remote_viewer_connect_dialog(gchar **uri); | |
25 | gboolean remote_viewer_connect_dialog(GtkWindow *main_window, gchar **uri); | |
26 | 26 | |
27 | 27 | #endif /* REMOTE_VIEWER_CONNECT_H */ |
28 | 28 |
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 | |