New upstream version 8.0
Guido Günther
5 years ago
10 | 10 | |
11 | 11 | With additional patches & translations from: |
12 | 12 | |
13 | Andrea Bolognani <abologna@redhat.com> | |
14 | Ben Mathews <beniam@yahoo.com> | |
13 | 15 | Charles Arnold <carnold@suse.com> |
14 | 16 | Christophe Fergeau <cfergeau@redhat.com> |
15 | 17 | Christophe de Dinechin <cdupontd@redhat.com> |
31 | 33 | Marc-André Lureau <marcandre.lureau@redhat.com> |
32 | 34 | Martin Kletzander <mkletzan@redhat.com> |
33 | 35 | Michal Privoznik <mprivozn@redhat.com> |
36 | Paul Donohue <virt-tools@PaulSD.com> | |
34 | 37 | Pavel Grunt <pgrunt@redhat.com> |
35 | 38 | Pavel Hrdina <phrdina@redhat.com> |
36 | 39 | Pavel Raiskup <praiskup@redhat.com> |
40 | Qiu Wenbo <qiuwenbo@kylinos.com.cn> | |
37 | 41 | Rex Dieter <rdieter@math.unl.edu> |
38 | 42 | Richard W.M. Jones <rjones@redhat.com> |
39 | 43 | Ronnie Sahlberg <ronniesahlberg@gmail.com> |
0 | 2019-03-01 Daniel P. Berrangé <berrange@redhat.com> | |
1 | ||
2 | Update NEWS for 8.0 release | |
3 | ||
4 | rpm: use the mingw hicolor icon theme not native | |
5 | ||
6 | Add glib2-devel for mingw build | |
7 | The native glib2-devel package is needed for mingw builds in order to | |
8 | get the glib-compile-schemas binary. | |
9 | ||
10 | 2019-02-22 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
11 | ||
12 | iso-dialog: Move type definitions from header to source file | |
13 | There is no reason for this object to define a private structure, so it | |
14 | is fine to make everything private to the dialog itself. | |
15 | ||
16 | Update usage of GObject private structures | |
17 | New functions and macros have been added in glib 2.38 to better handle | |
18 | this case. | |
19 | ||
20 | https://gitlab.gnome.org/GNOME/glib/blob/c8de2b11bbbf5705ee20bf68d0c11e455b441312/NEWS | |
21 | ||
22 | The old method is being deprecated as of version 2.58. | |
23 | ||
24 | https://gitlab.gnome.org/GNOME/glib/merge_requests/7/commits | |
25 | ||
26 | 2019-02-19 Daniel P. Berrangé <berrange@redhat.com> | |
27 | ||
28 | msi: record full build environment in MSI installer | |
29 | For proper compliance with the GPL and other licenses we need to be | |
30 | clear about exactly what toolchain and dependent packages we used in | |
31 | order to build the MSI installer we distribute. | |
32 | ||
33 | Historically we've done this by including a "deps.txt" file which | |
34 | provides a list of all the mingw{32,64}-* RPMs on the host system. | |
35 | ||
36 | This is not sufficient information, however, because the build system | |
37 | will in fact use various native packages too from the toolchain too, | |
38 | notably including any program run by "configure" which covers various | |
39 | shell utilities, and pkg-config, and then of course make & msitools | |
40 | itself. | |
41 | ||
42 | Rather than try to figure out which subset of host RPMs are used, | |
43 | just list every single host RPM that is installed. | |
44 | ||
45 | A key implication of this is that formal release builds should always | |
46 | be done in a pristine build root populated with the minimal content | |
47 | required for the build. | |
48 | ||
49 | Declare VirtViewerFile variable at start of method | |
50 | virt_viewer_session_vnc_auth_credential uses gotos which jump over the | |
51 | declaration of 'file', meaning its contents are uninitialized in the | |
52 | jump target. | |
53 | ||
54 | Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> | |
55 | ||
56 | Fix prototype of function with no arguments | |
57 | Modern C standard requires the function to be "void" | |
58 | ||
59 | Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> | |
60 | ||
61 | Fix signed/unsigned mixup in format args | |
62 | Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> | |
63 | ||
64 | 2019-02-13 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
65 | ||
66 | window: Use proper define from glib for ignoring deprecated warning | |
67 | Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | |
68 | ||
69 | 2019-02-12 Daniel P. Berrangé <berrange@redhat.com> | |
70 | ||
71 | Disable deprecation warnings for gtk_window_fullscreen_on_monitor | |
72 | We use GLIB_VERSION_MAX_ALLOWED to prevent use of functions from | |
73 | GTK >= 3.12. When we do conditional compilation based on a GTK | |
74 | version check, we must thus suppress the warning: | |
75 | ||
76 | CC libvirt_viewer_la-virt-viewer-window.lo | |
77 | ../../src/virt-viewer-window.c: In function 'virt_viewer_window_enter_fullscreen': | |
78 | ../../src/virt-viewer-window.c:608:9: error: 'gtk_window_fullscreen_on_monitor' is deprecated: Not available before 3.18 [-Werror=deprecated-declarations] | |
79 | gtk_window_fullscreen_on_monitor(GTK_WINDOW(priv->window), | |
80 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
81 | In file included from /usr/include/gtk-3.0/gtk/gtkdialog.h:32, | |
82 | from /usr/include/gtk-3.0/gtk/gtkaboutdialog.h:30, | |
83 | from /usr/include/gtk-3.0/gtk/gtk.h:31, | |
84 | from ../../src/virt-viewer-window.c:28: | |
85 | /usr/include/gtk-3.0/gtk/gtkwindow.h:391:10: note: declared here | |
86 | void gtk_window_fullscreen_on_monitor(GtkWindow *window, | |
87 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
88 | cc1: all warnings being treated as errors | |
89 | ||
90 | 2019-02-04 Marc-André Lureau <marcandre.lureau@redhat.com> | |
91 | ||
92 | build-sys: lower spice-gtk requirement to 0.35 again | |
93 | Compile out QMP channel support if spice-gtk version < 0.36. | |
94 | ||
95 | (note: I didn't bother adding configure switch to enable it | |
96 | explicitly, this could be added later if necessary) | |
97 | ||
98 | Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | |
99 | ||
100 | 2019-02-01 Paul Donohue <virt-tools@PaulSD.com> | |
101 | ||
102 | Report gtk_accel_map_change_entry() failures | |
103 | Message-Id: <1533340753-24176-2-git-send-email-virt-tools@PaulSD.com> | |
104 | Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> | |
105 | ||
106 | 2019-02-01 Marc-André Lureau <marcandre.lureau@redhat.com> | |
107 | ||
108 | spice: hook into QMP port | |
109 | If the "org.qemu.monitor.qmp.0" port is available: | |
110 | - enable the VM UI | |
111 | - get and follow the VM state | |
112 | - send the requested VM actions | |
113 | ||
114 | This requires spice-gtk version 0.36 with SpiceQmpPort helper. | |
115 | ||
116 | Acked-by: Victor Toso <victortoso@redhat.com> | |
117 | ||
118 | spice: hook into port channel to create VTE terminals | |
119 | QEMU defines a few Spice port channel names in | |
120 | docs/spice-port-fqdn.txt that can be interacted with a terminal. | |
121 | ||
122 | Create VirtViewerDisplayVte display for all known terminal channel, | |
123 | and redirect read/write signals. | |
124 | ||
125 | Note that if VTE support is disabled, or if the VTE console isn't | |
126 | shown, spice-gtk will still process those port channels (discarding | |
127 | the read if VTE is disabled). | |
128 | ||
129 | Acked-by: Victor Toso <victortoso@redhat.com> | |
130 | ||
131 | session: do not take VTE display into account for geometry changes | |
132 | Acked-by: Victor Toso <victortoso@redhat.com> | |
133 | ||
134 | 2019-01-28 Jonathon Jongsma <jjongsma@redhat.com> | |
135 | ||
136 | Fix regression when showing disconnect error | |
137 | Commit 65ef66e42 introduced a regression due to lack of type-safety on | |
138 | signals. We mistakenly passed a GError rather than a string error | |
139 | message to the signal. | |
140 | ||
141 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
142 | ||
143 | 2019-01-18 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
144 | ||
145 | Add missing G_MODULE_EXPORT to signal handler | |
146 | Fixes the Windows case where the dialog fails to show with the following | |
147 | message: | |
148 | ||
149 | warning: "Could not find signal handler 'virt_viewer_window_menu_change_cd_activate'" | |
150 | ||
151 | 2018-12-21 Daniel P. Berrangé <berrange@redhat.com> | |
152 | ||
153 | Add src/virt-viewer-display-vte.c to POTFILES | |
154 | ||
155 | 2018-12-21 Marc-André Lureau <marcandre.lureau@redhat.com> | |
156 | ||
157 | app: add "vm-running" property | |
158 | Add "vm-running" property and modify "menu-vm-pause" check button | |
159 | state when the running state changes. | |
160 | ||
161 | Acked-by: Victor Toso <victortoso@redhat.com> | |
162 | ||
163 | app: add "machine" UI | |
164 | Add a new "Machine" menu, which allows to Pause/Reset/Power Down a VM. | |
165 | ||
166 | The menu is only visible if "vm-ui" app property is set. | |
167 | ||
168 | When the application quits, it will also send a quit action to the VM. | |
169 | ||
170 | This is a similar behaviour/UI as qemu -display gtk. | |
171 | ||
172 | Acked-by: Victor Toso <victortoso@redhat.com> | |
173 | ||
174 | app: create a window for VTE displays | |
175 | virt_viewer_app_display_added() now handles VTE displays. They should | |
176 | be skipped for monitor configuration, and they don't emit "show-hint". | |
177 | ||
178 | (a VTE display has a monitor nth == -1, which is now a valid value) | |
179 | ||
180 | The associated window will be hidden when virt-viewer is started. | |
181 | ||
182 | Acked-by: Victor Toso <victortoso@redhat.com> | |
183 | ||
184 | spice: add unix-path in .vv file support | |
185 | This will allow to connect to a Spice server using a unix socket path, | |
186 | for example: | |
187 | ||
188 | [virt-viewer] | |
189 | type=spice | |
190 | unix-path=/var/run/user/1000/qemu/test/spice.sock | |
191 | ||
192 | Reviewed-by: Christophe Fergeau <cfergeau@redhat.com> | |
193 | ||
194 | display: allow display without associated monitor number | |
195 | The VTE display will have monitor id -1. | |
196 | ||
197 | Eventually, having a base "console" class without monitor id could | |
198 | avoid this allowance. | |
199 | ||
200 | Acked-by: Victor Toso <victortoso@redhat.com> | |
201 | ||
202 | app: append VTE consoles to display submenu | |
203 | Acked-by: Victor Toso <victortoso@redhat.com> | |
204 | ||
205 | app: set subtitle using VTE name | |
206 | Currently, subtitle indicate the monitor number, ex: "Fedora (1)". | |
207 | ||
208 | Custom subtitle use %d to place the monitor number. | |
209 | ||
210 | Let's make this placeholder more generic to place the name of the | |
211 | console, ex: "Fedora (Serial)". | |
212 | ||
213 | Acked-by: Victor Toso <victortoso@redhat.com> | |
214 | ||
215 | session: skip monitor changes if there is no sized monitors | |
216 | spice-gtk discards configurations without any sized monitors. | |
217 | ||
218 | Also shuts extra warnings when shifting the monitors. | |
219 | ||
220 | Acked-by: Victor Toso <victortoso@redhat.com> | |
221 | ||
222 | display: ignore display that do not have toplevel window | |
223 | virt_viewer_display_get_preferred_monitor_geometry() may be called | |
224 | during application initialization (when the VTE console is being | |
225 | shown, virt_viewer_session_update_displays_geometry() is called when | |
226 | the visibility menu item is toggled). But the other displays may not | |
227 | yet be associated with a window, ignore them. | |
228 | ||
229 | Acked-by: Victor Toso <victortoso@redhat.com> | |
230 | ||
231 | window/zoom: deal with VTE display differently | |
232 | VTE display doesn't use the desktop / window aspect ratio, let's just | |
233 | call directly the functions handling zoom. | |
234 | ||
235 | Acked-by: Victor Toso <victortoso@redhat.com> | |
236 | ||
237 | Add a VirtViewerDisplayVte display kind | |
238 | This is not a graphical display, so the application will have to deal | |
239 | with it with care. | |
240 | ||
241 | You may argue that we need a large refactoring to introduce a more | |
242 | generic "console" object, that could be either graphical or textual. | |
243 | For now, this does work well enough for me. | |
244 | ||
245 | Acked-by: Victor Toso <victortoso@redhat.com> | |
246 | ||
247 | build-sys: check for VTE library | |
248 | Acked-by: Victor Toso <victortoso@redhat.com> | |
249 | ||
250 | window: set sensitivity based on display capability | |
251 | A following patch is adding a new display (VTE) that won't have the | |
252 | send_key() or screenshot() callbacks. Activating those menu/actions | |
253 | would lead to nothing or a crash. I chose to keep the UI consistent | |
254 | for all display, but disable the menu sensitivity. | |
255 | ||
256 | Acked-by: Victor Toso <victortoso@redhat.com> | |
257 | ||
258 | window: do not reset sensitivity of menu-send in rebuild | |
259 | The sensitivy of "menu-send" is getting more complex in the following | |
260 | patch. Let's have the logic in a single place, | |
261 | virt_viewer_window_set_menus_sensitive(). | |
262 | ||
263 | rebuild_combo_menu() is called in 2 cases: | |
264 | ||
265 | 1. notify::enable-accel: there is no need to update the sensitivy of | |
266 | "menu-send" | |
267 | ||
268 | 2. on construction: default to false since display == NULL. It will be | |
269 | later updated when virt_viewer_window_set_menus_sensitive(). The | |
270 | default sensitivity is covered by previous .ui patch change. | |
271 | ||
272 | Acked-by: Victor Toso <victortoso@redhat.com> | |
273 | ||
274 | 2018-12-06 Christophe Fergeau <cfergeau@redhat.com> | |
275 | ||
276 | ovirt: Fix initial connection | |
277 | After commit df42f78d46 "remote-viewer: factor our | |
278 | remote_viewer_initial_connect()", the initial connection code only gets | |
279 | run in the !ovirt case. When ovirt is in use, the initial connection | |
280 | never happens, meaning all we get when using ovirt:// is a blank | |
281 | virt-viewer window. | |
282 | ||
283 | This commit fixes that by moving creation of the ovirt session to | |
284 | remote_viewer_initial_connect, and unconditionnally calling the | |
285 | remote_viewer_initial_connect rather than only doing it in the !ovirt | |
286 | case. | |
287 | ||
288 | https://bugzilla.redhat.com/show_bug.cgi?id=1655537 | |
289 | ||
290 | 2018-12-05 Ben Mathews <beniam@yahoo.com> | |
291 | ||
292 | Set window title to VM name | |
293 | The attached patch address an issue with virt-view not setting the | |
294 | titlebar text to be the title of the VM (previously discussed on: | |
295 | https://www.redhat.com/archives/virt-tools-list/2018-September/msg00064.html). | |
296 | ||
297 | 2018-12-04 Jonathon Jongsma <jjongsma@redhat.com> | |
298 | ||
299 | Silence coverity warning about dead code | |
300 | For some reason, coverity was complaining that the definition of | |
301 | cred_type_to_str was dead code, even though it wasn't. Changing the | |
302 | storage to static silences the warning. Since that's a benficial change | |
303 | anyway, let's change it. At the same time, make the pointer constant as | |
304 | well and move it outside of the loop since it doesn't need to be inside | |
305 | the loop. | |
306 | ||
307 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
308 | ||
309 | Avoid potential memory leak in spice session | |
310 | If j == -1, the memory allocated for rect will leak. So move the | |
311 | allocation after the test. | |
312 | ||
313 | Acked-by: Victor Toso <victortoso@redhat.com> | |
314 | ||
315 | 2018-11-13 Andrea Bolognani <abologna@redhat.com> | |
316 | ||
317 | spec: Drop %{extra_release} | |
318 | It was mainly meant to be used for automatic builds through | |
319 | Test::AutoBuild, so it can be removed now. | |
320 | ||
321 | prepare-release: Drop references to Test::AutoBuild | |
322 | They are misleading, and no longer relevant anyway. | |
323 | ||
324 | maint: Rename autobuild.sh to prepare-release.sh | |
325 | The script was originally used by the Test::AutoBuild | |
326 | project to perform periodic automatic builds; however, that | |
327 | effort has been abandoned a long time ago, and these days | |
328 | virt-viewer CI builds are happening on the Jenkins-based | |
329 | CentOS CI environment under the libvirt umbrella[1], where | |
330 | build recipes are maintained separately from the projects | |
331 | themselves. | |
332 | ||
333 | The script is still used to prepare releases, so it can't | |
334 | be dropped from the repository: rename it so that its | |
335 | purpose is more clearly communicated instead. | |
336 | ||
337 | [1] https://ci.centos.org/view/libvirt/ | |
338 | ||
339 | 2018-11-09 Jonathon Jongsma <jjongsma@redhat.com> | |
340 | ||
341 | Relax Gtk+ requirement slightly | |
342 | We previously bumped the gtk+ requirement to 3.18 for the function | |
343 | gtk_window_fullscreen_on_monitor(). But this function is only necessary | |
344 | in Wayland. So add some preprocessor version checks to allow it to | |
345 | compile on older distributions if they don't care about wayland support. | |
346 | ||
347 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
348 | ||
349 | 2018-10-16 Qiu Wenbo <qiuwenbo@kylinos.com.cn> | |
350 | ||
351 | win32: fix command line encoding on windows platform | |
352 | On Windows, the arguments we get in GApplication::ocal_command_line | |
353 | come from g_win32_get_command_line(), and g_option_context_parse_strv() | |
354 | documentation says: | |
355 | « On Windows, the strings are expected to be in UTF-8. This is in | |
356 | contrast to g_option_context_parse() which expects them to be in the | |
357 | system codepage, which is how they are passed as argv to main(). See | |
358 | g_win32_get_command_line() for a solution. » | |
359 | ||
360 | This was causing issues on Windows when running: | |
361 | remote-viewer -t "你好" spice://<target-host>:5900 | |
362 | ||
363 | 2018-10-15 Jonathon Jongsma <jjongsma@redhat.com> | |
364 | ||
365 | Fullscreen displays on wrong monitors in Wayland | |
366 | In fullscreen mode, we attempt to enable a guest display for each client | |
367 | monitor and then place a fullscreen window for each display on the | |
368 | appropriate monitor. Previously, we were using gtk_window_move() to move | |
369 | the window to the proper monitor, and then calling | |
370 | gtk_window_fullscreen() to enter fullscreen mode on that monitor. | |
371 | However, under wayland, gtk_window_move() no longer has any effect for | |
372 | toplevel windows, so all displays were showing up on top of eachother on | |
373 | the same client monitor. | |
374 | ||
375 | Fortunately, Gtk+ 3.18 added a new gtk_window_fullscreen_on_monitor() | |
376 | API that works on Wayland. In theory this allows us to remove the call | |
377 | to gtk_window_move() from the code. But to avoid potentially changing | |
378 | behavior on xorg or older systems, I left the existing logic. | |
379 | ||
380 | This requires a dependency bump for gtk+ from 3.12 to 3.18. Gtk 3.18 is | |
381 | provided by the following distributions (or newer): | |
382 | - RHEL 7.4 | |
383 | - Fedora 23 | |
384 | - Ubuntu 16.04LTS | |
385 | ||
386 | Resolves: rhbz#1584561 | |
387 | ||
388 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> | |
389 | ||
390 | 2018-09-25 Marc-André Lureau <marcandre.lureau@redhat.com> | |
391 | ||
392 | display: make klass->close() optional | |
393 | Spice and VTE display do not need to implement it. | |
394 | ||
395 | Acked-by: Victor Toso <victortoso@redhat.com> | |
396 | ||
397 | window: move default sensitivity in .ui | |
398 | Instead of modifying it in object initialization. | |
399 | ||
400 | Acked-by: Victor Toso <victortoso@redhat.com> | |
401 | ||
402 | window: use virt_viewer_window_set_menus_sensitive() | |
403 | virt_viewer_window_set_menus_sensitive() is the common function to set | |
404 | sensitivity on menu items. | |
405 | ||
406 | It was lacking "toolbar_send_key", so add it there too. | |
407 | ||
408 | Acked-by: Victor Toso <victortoso@redhat.com> | |
409 | ||
410 | app: simplify toggling visibility | |
411 | There is a hack to maintain the toggle state to a desired state within | |
412 | the "toggled" handler. | |
413 | ||
414 | However it is only necessary for the ask-quit case. In this case, we | |
415 | want to maintain the item active, which is simpler to handle than the | |
416 | general case. Simplify the code by folding | |
417 | virt_viewer_app_window_set_visible() and removing the static | |
418 | "reentering" hack, only maintaining "active" on the last item. | |
419 | ||
420 | Note that the hack was needed since there is no way to hook a signal | |
421 | handler on "clicked" before "toggled" is emitted and handled by Gtk, | |
422 | to avoid the recursion. | |
423 | ||
424 | Acked-by: Victor Toso <victortoso@redhat.com> | |
425 | ||
426 | Remove class signal handlers | |
427 | We don't use class signal handlers, remove the extra pointers. | |
428 | ||
429 | g_signal_override_class_handler() could be used instead when needed. | |
430 | ||
431 | Acked-by: Victor Toso <victortoso@redhat.com> | |
432 | ||
433 | remote-viewer: add handling of spice+unix and spice+tls schemes | |
434 | - spice+unix:// was added in spice-gtk v0.28 | |
435 | - spice+tls:// was added in spice-gtk v0.35 | |
436 | ||
437 | This allows launchers to start remote-viewer when they encounter a | |
438 | Spice URI with +unix or +tls. | |
439 | ||
440 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> | |
441 | Acked-by: Victor Toso <victortoso@redhat.com> | |
442 | ||
443 | 2018-09-18 Jonathon Jongsma <jjongsma@redhat.com> | |
444 | ||
445 | Spice: listen for new 'SpiceSession::disconnected' signal | |
446 | Previously we were emitting the VirtViewerSession::session-disconnected | |
447 | when we got the Spice::session::channel-destroy signal for the last | |
448 | channel. However, since the channels are still valid at this point, and | |
449 | because VirtViewerApp quits the application in response to the | |
450 | session-disconnected signal, that means that the channels were never | |
451 | being properly freed. This was particularly problematic for the usbredir | |
452 | channel, which must disconnect any connected USB devices as part of its | |
453 | destruction. By using the new SpiceSession::disconnected signal instead, | |
454 | we can ensure that all channels have been disconnected and properly | |
455 | destroyed before quitting the application. | |
456 | ||
457 | 2018-09-12 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
458 | ||
459 | ovirt-foreign-menu: New function storage_domain_validate() | |
460 | It may be useful to know why the storage domain has not been listed, | |
461 | given that there are different reasons for that. To make it easier to | |
462 | provide more detailed debug messages, we move code from the callback | |
463 | function to this new one. | |
464 | ||
465 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> | |
466 | ||
467 | build: Update govirt and rest requirements | |
468 | With these new values, 0.3.3 for libgovirt and 0.8 for librest, we can | |
469 | remove checks for OVIRT_REST_CALL_ERROR_CANCELLED and correspondent | |
470 | rest_proxy_auth_cancel(). | |
471 | ||
472 | Distros that already ship these versions, such as Fedora, RHEL 7.4 | |
473 | onwards, and Ubuntu since 17.10. | |
474 | ||
475 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> | |
476 | ||
477 | 2018-09-03 Victor Toso <me@victortoso.com> | |
478 | ||
479 | app: Always add guest name comment | |
480 | Even when the user adds comments, we should place the guest's name | |
481 | unless it is present already. | |
482 | ||
483 | Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1623756 | |
484 | ||
485 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> | |
486 | ||
487 | 2018-08-31 Christophe Fergeau <cfergeau@redhat.com> | |
488 | ||
489 | ovirt: Filter everything which does not end in .iso | |
490 | oVirt REST API does not provide a way to know what is a valid ISO image | |
491 | which can be assigned to a running VM. I've seen floppy disk images | |
492 | (.vfd) in a domain, which is already filtered. Now I've seen an ISO | |
493 | domain with .qcow2 files in it, which can't be assigned to a VM either. | |
494 | This commit filters every file which does not have a .iso extension as | |
495 | it's unlikely to be possible to use it. | |
496 | ||
497 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
498 | ||
499 | 2018-08-07 Christophe Fergeau <cfergeau@redhat.com> | |
500 | ||
501 | ovirt: Improve handling of g_strv_contains() | |
502 | The ovirt code uses g_strv_contains() with fallback code in | |
503 | glib-compat.h when we are using a glib version where it's not available. | |
504 | However, when we use a glib version where g_strv_contains is available, | |
505 | we get a compilation warning since we are compiling GLIB_VERSION_MAX_ALLOWED | |
506 | set to 2.38. | |
507 | ||
508 | This commit wraps both the compat code and the g_strv_contains() call in | |
509 | a strv_contains() helper where we can hide the magic needed to avoid | |
510 | deprecation warnings. | |
511 | ||
512 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
513 | ||
514 | window: Adjust get_image_format() prototype | |
515 | This adds an unused parameter, but lets us get rid of this new warning | |
516 | with gcc 8: | |
517 | ||
518 | virt-viewer-window.c: In function 'get_image_format': | |
519 | virt-viewer-window.c:930:33: warning: cast between incompatible function types from 'GHashTable * (*)(void)' {aka 'struct _GHashTable * (*)(void)'} to 'void * (*)(void *)' [-Wcast-function-type] | |
520 | g_once(&image_formats_once, (GThreadFunc)init_image_formats, NULL); | |
521 | ||
522 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
523 | ||
524 | 2018-08-06 Christophe Fergeau <cfergeau@redhat.com> | |
525 | ||
526 | app: Remove VirtViewerApp::has-focus | |
527 | This is no longer needed since 140cb84 | |
528 | 'remote-viewer: remove --spice-controller' | |
529 | ||
530 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
531 | ||
0 | 532 | 2018-07-27 Daniel P. Berrangé <berrange@redhat.com> |
533 | ||
534 | rpm: import spec changes from fedora | |
535 | ||
536 | Post release version bump to 8.0 | |
1 | 537 | |
2 | 538 | Add NEWS for 7.0 release |
3 | 539 |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
88 | 88 | host_triplet = @host@ |
89 | 89 | subdir = . |
90 | 90 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
91 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
92 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
93 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
94 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
95 | $(top_srcdir)/configure.ac | |
91 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
92 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
93 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
94 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
96 | 95 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
97 | 96 | $(ACLOCAL_M4) |
98 | 97 | DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ |
137 | 136 | $(RECURSIVE_CLEAN_TARGETS) \ |
138 | 137 | $(am__extra_recursive_targets) |
139 | 138 | AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ |
140 | cscope distdir dist dist-all distcheck | |
139 | cscope distdir distdir-am dist dist-all distcheck | |
141 | 140 | am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ |
142 | 141 | $(LISP)config.h.in |
143 | 142 | # Read a list of newline-separated strings from the standard input, |
322 | 321 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
323 | 322 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
324 | 323 | RANLIB = @RANLIB@ |
324 | REST_REQUIRED = @REST_REQUIRED@ | |
325 | 325 | SED = @SED@ |
326 | 326 | SET_MAKE = @SET_MAKE@ |
327 | 327 | SHELL = @SHELL@ |
335 | 335 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
336 | 336 | USE_NLS = @USE_NLS@ |
337 | 337 | VERSION = @VERSION@ |
338 | VTE_CFLAGS = @VTE_CFLAGS@ | |
339 | VTE_LIBS = @VTE_LIBS@ | |
338 | 340 | WARN_CFLAGS = @WARN_CFLAGS@ |
339 | 341 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
340 | 342 | WINDRES = @WINDRES@ |
455 | 457 | echo ' $(SHELL) ./config.status'; \ |
456 | 458 | $(SHELL) ./config.status;; \ |
457 | 459 | *) \ |
458 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ | |
459 | cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ | |
460 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ | |
461 | cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ | |
460 | 462 | esac; |
461 | 463 | |
462 | 464 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
602 | 604 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
603 | 605 | -rm -f cscope.out cscope.in.out cscope.po.out cscope.files |
604 | 606 | |
605 | distdir: $(DISTFILES) | |
607 | distdir: $(BUILT_SOURCES) | |
608 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
609 | ||
610 | distdir-am: $(DISTFILES) | |
606 | 611 | $(am__remove_distdir) |
607 | 612 | test -d "$(distdir)" || mkdir "$(distdir)" |
608 | 613 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
0 | 0 | Virt Viewer News |
1 | 1 | ================ |
2 | ||
3 | 8.0: Mar 1, 2019 | |
4 | ----------------- | |
5 | ||
6 | - Fix warnings with latest GCC versions | |
7 | - More strictly filter out non-ISO images in ovirt menu | |
8 | - Require libgovirt >= 0.3.3 | |
9 | - Require librest >= 0.8 | |
10 | - Support UNIX and TLS URI schemes for spice | |
11 | - Fix full screen monitor placement under wayland | |
12 | - Fix command line encoding on Windows | |
13 | - Ensure VM name is set in window title | |
14 | - Support unix-path in .vv files | |
15 | - Support text console windows via VTE | |
16 | - Add machine power control menu options | |
17 | - Record full build env in MSI installer | |
2 | 18 | |
3 | 19 | 7.0: Jul 27, 2018 |
4 | 20 | ----------------- |
0 | # generated automatically by aclocal 1.15.1 -*- Autoconf -*- | |
1 | ||
2 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
0 | # generated automatically by aclocal 1.16.1 -*- Autoconf -*- | |
1 | ||
2 | # Copyright (C) 1996-2018 Free Software Foundation, Inc. | |
3 | 3 | |
4 | 4 | # This file is free software; the Free Software Foundation |
5 | 5 | # gives unlimited permission to copy and/or distribute it, |
506 | 506 | fi]) |
507 | 507 | |
508 | 508 | |
509 | ||
510 | dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) | |
511 | # serial 42 IT_PROG_INTLTOOL | |
512 | AC_DEFUN([IT_PROG_INTLTOOL], [ | |
513 | AC_PREREQ([2.50])dnl | |
514 | AC_REQUIRE([AM_NLS])dnl | |
515 | ||
516 | case "$am__api_version" in | |
517 | 1.[01234]) | |
518 | AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) | |
519 | ;; | |
520 | *) | |
521 | ;; | |
522 | esac | |
523 | ||
524 | INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` | |
525 | INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` | |
526 | INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` | |
527 | if test -n "$1"; then | |
528 | AC_MSG_CHECKING([for intltool >= $1]) | |
529 | AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) | |
530 | test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || | |
531 | AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) | |
532 | fi | |
533 | ||
534 | AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) | |
535 | AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) | |
536 | AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) | |
537 | if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then | |
538 | AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) | |
539 | fi | |
540 | ||
541 | if test -z "$AM_DEFAULT_VERBOSITY"; then | |
542 | AM_DEFAULT_VERBOSITY=1 | |
543 | fi | |
544 | AC_SUBST([AM_DEFAULT_VERBOSITY]) | |
545 | ||
546 | INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' | |
547 | INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' | |
548 | INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' | |
549 | AC_SUBST(INTLTOOL_V_MERGE) | |
550 | AC_SUBST(INTLTOOL__v_MERGE_) | |
551 | AC_SUBST(INTLTOOL__v_MERGE_0) | |
552 | ||
553 | INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' | |
554 | intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' | |
555 | intltool__v_merge_options_0='-q' | |
556 | AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) | |
557 | AC_SUBST(intltool__v_merge_options_) | |
558 | AC_SUBST(intltool__v_merge_options_0) | |
559 | ||
560 | INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
561 | INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
562 | INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
563 | INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
564 | INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' | |
565 | INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
566 | INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
567 | INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
568 | INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
569 | INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
570 | INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
571 | if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then | |
572 | INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' | |
573 | else | |
574 | INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' | |
575 | fi | |
576 | INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
577 | INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
578 | INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
579 | INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
580 | INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
581 | INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
582 | INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
583 | ||
584 | _IT_SUBST(INTLTOOL_DESKTOP_RULE) | |
585 | _IT_SUBST(INTLTOOL_DIRECTORY_RULE) | |
586 | _IT_SUBST(INTLTOOL_KEYS_RULE) | |
587 | _IT_SUBST(INTLTOOL_PROP_RULE) | |
588 | _IT_SUBST(INTLTOOL_OAF_RULE) | |
589 | _IT_SUBST(INTLTOOL_PONG_RULE) | |
590 | _IT_SUBST(INTLTOOL_SERVER_RULE) | |
591 | _IT_SUBST(INTLTOOL_SHEET_RULE) | |
592 | _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) | |
593 | _IT_SUBST(INTLTOOL_UI_RULE) | |
594 | _IT_SUBST(INTLTOOL_XAM_RULE) | |
595 | _IT_SUBST(INTLTOOL_KBD_RULE) | |
596 | _IT_SUBST(INTLTOOL_XML_RULE) | |
597 | _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) | |
598 | _IT_SUBST(INTLTOOL_CAVES_RULE) | |
599 | _IT_SUBST(INTLTOOL_SCHEMAS_RULE) | |
600 | _IT_SUBST(INTLTOOL_THEME_RULE) | |
601 | _IT_SUBST(INTLTOOL_SERVICE_RULE) | |
602 | _IT_SUBST(INTLTOOL_POLICY_RULE) | |
603 | ||
604 | # Check the gettext tools to make sure they are GNU | |
605 | AC_PATH_PROG(XGETTEXT, xgettext) | |
606 | AC_PATH_PROG(MSGMERGE, msgmerge) | |
607 | AC_PATH_PROG(MSGFMT, msgfmt) | |
608 | AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) | |
609 | if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then | |
610 | AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) | |
611 | fi | |
612 | xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" | |
613 | mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" | |
614 | mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" | |
615 | if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then | |
616 | AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) | |
617 | fi | |
618 | ||
619 | AC_PATH_PROG(INTLTOOL_PERL, perl) | |
620 | if test -z "$INTLTOOL_PERL"; then | |
621 | AC_MSG_ERROR([perl not found]) | |
622 | fi | |
623 | AC_MSG_CHECKING([for perl >= 5.8.1]) | |
624 | $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 | |
625 | if test $? -ne 0; then | |
626 | AC_MSG_ERROR([perl 5.8.1 is required for intltool]) | |
627 | else | |
628 | IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` | |
629 | AC_MSG_RESULT([$IT_PERL_VERSION]) | |
630 | fi | |
631 | if test "x$2" != "xno-xml"; then | |
632 | AC_MSG_CHECKING([for XML::Parser]) | |
633 | if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then | |
634 | AC_MSG_RESULT([ok]) | |
635 | else | |
636 | AC_MSG_ERROR([XML::Parser perl module is required for intltool]) | |
637 | fi | |
638 | fi | |
639 | ||
640 | # Substitute ALL_LINGUAS so we can use it in po/Makefile | |
641 | AC_SUBST(ALL_LINGUAS) | |
642 | ||
643 | IT_PO_SUBDIR([po]) | |
644 | ||
645 | ]) | |
646 | ||
647 | ||
648 | # IT_PO_SUBDIR(DIRNAME) | |
649 | # --------------------- | |
650 | # All po subdirs have to be declared with this macro; the subdir "po" is | |
651 | # declared by IT_PROG_INTLTOOL. | |
652 | # | |
653 | AC_DEFUN([IT_PO_SUBDIR], | |
654 | [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. | |
655 | dnl | |
656 | dnl The following CONFIG_COMMANDS should be executed at the very end | |
657 | dnl of config.status. | |
658 | AC_CONFIG_COMMANDS_PRE([ | |
659 | AC_CONFIG_COMMANDS([$1/stamp-it], [ | |
660 | if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then | |
661 | AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) | |
662 | fi | |
663 | rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" | |
664 | >"$1/stamp-it.tmp" | |
665 | [sed '/^#/d | |
666 | s/^[[].*] *// | |
667 | /^[ ]*$/d | |
668 | '"s|^| $ac_top_srcdir/|" \ | |
669 | "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" | |
670 | ] | |
671 | [sed '/^POTFILES =/,/[^\\]$/ { | |
672 | /^POTFILES =/!d | |
673 | r $1/POTFILES | |
674 | } | |
675 | ' "$1/Makefile.in" >"$1/Makefile"] | |
676 | rm -f "$1/Makefile.tmp" | |
677 | mv "$1/stamp-it.tmp" "$1/stamp-it" | |
678 | ]) | |
679 | ])dnl | |
680 | ]) | |
681 | ||
682 | # _IT_SUBST(VARIABLE) | |
683 | # ------------------- | |
684 | # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST | |
685 | # | |
686 | AC_DEFUN([_IT_SUBST], | |
687 | [ | |
688 | AC_SUBST([$1]) | |
689 | m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) | |
690 | ] | |
691 | ) | |
692 | ||
693 | # deprecated macros | |
694 | AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) | |
695 | # A hint is needed for aclocal from Automake <= 1.9.4: | |
696 | # AC_DEFUN([AC_PROG_INTLTOOL], ...) | |
697 | ||
698 | ||
509 | 699 | # nls.m4 serial 5 (gettext-0.18) |
510 | 700 | dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software |
511 | 701 | dnl Foundation, Inc. |
883 | 1073 | [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) |
884 | 1074 | ])dnl PKG_HAVE_DEFINE_WITH_MODULES |
885 | 1075 | |
886 | # Copyright (C) 2002-2017 Free Software Foundation, Inc. | |
1076 | # Copyright (C) 2002-2018 Free Software Foundation, Inc. | |
887 | 1077 | # |
888 | 1078 | # This file is free software; the Free Software Foundation |
889 | 1079 | # gives unlimited permission to copy and/or distribute it, |
895 | 1085 | # generated from the m4 files accompanying Automake X.Y. |
896 | 1086 | # (This private macro should not be called outside this file.) |
897 | 1087 | AC_DEFUN([AM_AUTOMAKE_VERSION], |
898 | [am__api_version='1.15' | |
1088 | [am__api_version='1.16' | |
899 | 1089 | dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to |
900 | 1090 | dnl require some minimum version. Point them to the right macro. |
901 | m4_if([$1], [1.15.1], [], | |
1091 | m4_if([$1], [1.16.1], [], | |
902 | 1092 | [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl |
903 | 1093 | ]) |
904 | 1094 | |
914 | 1104 | # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. |
915 | 1105 | # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. |
916 | 1106 | AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], |
917 | [AM_AUTOMAKE_VERSION([1.15.1])dnl | |
1107 | [AM_AUTOMAKE_VERSION([1.16.1])dnl | |
918 | 1108 | m4_ifndef([AC_AUTOCONF_VERSION], |
919 | 1109 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
920 | 1110 | _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) |
921 | 1111 | |
922 | 1112 | # AM_AUX_DIR_EXPAND -*- Autoconf -*- |
923 | 1113 | |
924 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
1114 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
925 | 1115 | # |
926 | 1116 | # This file is free software; the Free Software Foundation |
927 | 1117 | # gives unlimited permission to copy and/or distribute it, |
973 | 1163 | |
974 | 1164 | # AM_CONDITIONAL -*- Autoconf -*- |
975 | 1165 | |
976 | # Copyright (C) 1997-2017 Free Software Foundation, Inc. | |
1166 | # Copyright (C) 1997-2018 Free Software Foundation, Inc. | |
977 | 1167 | # |
978 | 1168 | # This file is free software; the Free Software Foundation |
979 | 1169 | # gives unlimited permission to copy and/or distribute it, |
1004 | 1194 | Usually this means the macro was only invoked conditionally.]]) |
1005 | 1195 | fi])]) |
1006 | 1196 | |
1007 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
1197 | # Copyright (C) 1999-2018 Free Software Foundation, Inc. | |
1008 | 1198 | # |
1009 | 1199 | # This file is free software; the Free Software Foundation |
1010 | 1200 | # gives unlimited permission to copy and/or distribute it, |
1195 | 1385 | |
1196 | 1386 | # Generate code to set up dependency tracking. -*- Autoconf -*- |
1197 | 1387 | |
1198 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
1388 | # Copyright (C) 1999-2018 Free Software Foundation, Inc. | |
1199 | 1389 | # |
1200 | 1390 | # This file is free software; the Free Software Foundation |
1201 | 1391 | # gives unlimited permission to copy and/or distribute it, |
1202 | 1392 | # with or without modifications, as long as this notice is preserved. |
1203 | ||
1204 | 1393 | |
1205 | 1394 | # _AM_OUTPUT_DEPENDENCY_COMMANDS |
1206 | 1395 | # ------------------------------ |
1209 | 1398 | # Older Autoconf quotes --file arguments for eval, but not when files |
1210 | 1399 | # are listed without --file. Let's play safe and only enable the eval |
1211 | 1400 | # if we detect the quoting. |
1212 | case $CONFIG_FILES in | |
1213 | *\'*) eval set x "$CONFIG_FILES" ;; | |
1214 | *) set x $CONFIG_FILES ;; | |
1215 | esac | |
1401 | # TODO: see whether this extra hack can be removed once we start | |
1402 | # requiring Autoconf 2.70 or later. | |
1403 | AS_CASE([$CONFIG_FILES], | |
1404 | [*\'*], [eval set x "$CONFIG_FILES"], | |
1405 | [*], [set x $CONFIG_FILES]) | |
1216 | 1406 | shift |
1217 | for mf | |
1407 | # Used to flag and report bootstrapping failures. | |
1408 | am_rc=0 | |
1409 | for am_mf | |
1218 | 1410 | do |
1219 | 1411 | # Strip MF so we end up with the name of the file. |
1220 | mf=`echo "$mf" | sed -e 's/:.*$//'` | |
1221 | # Check whether this is an Automake generated Makefile or not. | |
1222 | # We used to match only the files named 'Makefile.in', but | |
1223 | # some people rename them; so instead we look at the file content. | |
1224 | # Grep'ing the first line is not enough: some people post-process | |
1225 | # each Makefile.in and add a new line on top of each file to say so. | |
1226 | # Grep'ing the whole file is not good either: AIX grep has a line | |
1412 | am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` | |
1413 | # Check whether this is an Automake generated Makefile which includes | |
1414 | # dependency-tracking related rules and includes. | |
1415 | # Grep'ing the whole file directly is not great: AIX grep has a line | |
1227 | 1416 | # limit of 2048, but all sed's we know have understand at least 4000. |
1228 | if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then | |
1229 | dirpart=`AS_DIRNAME("$mf")` | |
1230 | else | |
1231 | continue | |
1232 | fi | |
1233 | # Extract the definition of DEPDIR, am__include, and am__quote | |
1234 | # from the Makefile without running 'make'. | |
1235 | DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` | |
1236 | test -z "$DEPDIR" && continue | |
1237 | am__include=`sed -n 's/^am__include = //p' < "$mf"` | |
1238 | test -z "$am__include" && continue | |
1239 | am__quote=`sed -n 's/^am__quote = //p' < "$mf"` | |
1240 | # Find all dependency output files, they are included files with | |
1241 | # $(DEPDIR) in their names. We invoke sed twice because it is the | |
1242 | # simplest approach to changing $(DEPDIR) to its actual value in the | |
1243 | # expansion. | |
1244 | for file in `sed -n " | |
1245 | s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ | |
1246 | sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do | |
1247 | # Make sure the directory exists. | |
1248 | test -f "$dirpart/$file" && continue | |
1249 | fdir=`AS_DIRNAME(["$file"])` | |
1250 | AS_MKDIR_P([$dirpart/$fdir]) | |
1251 | # echo "creating $dirpart/$file" | |
1252 | echo '# dummy' > "$dirpart/$file" | |
1253 | done | |
1417 | sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ | |
1418 | || continue | |
1419 | am_dirpart=`AS_DIRNAME(["$am_mf"])` | |
1420 | am_filepart=`AS_BASENAME(["$am_mf"])` | |
1421 | AM_RUN_LOG([cd "$am_dirpart" \ | |
1422 | && sed -e '/# am--include-marker/d' "$am_filepart" \ | |
1423 | | $MAKE -f - am--depfiles]) || am_rc=$? | |
1254 | 1424 | done |
1425 | if test $am_rc -ne 0; then | |
1426 | AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments | |
1427 | for automatic dependency tracking. Try re-running configure with the | |
1428 | '--disable-dependency-tracking' option to at least be able to build | |
1429 | the package (albeit without support for automatic dependency tracking).]) | |
1430 | fi | |
1431 | AS_UNSET([am_dirpart]) | |
1432 | AS_UNSET([am_filepart]) | |
1433 | AS_UNSET([am_mf]) | |
1434 | AS_UNSET([am_rc]) | |
1435 | rm -f conftest-deps.mk | |
1255 | 1436 | } |
1256 | 1437 | ])# _AM_OUTPUT_DEPENDENCY_COMMANDS |
1257 | 1438 | |
1260 | 1441 | # ----------------------------- |
1261 | 1442 | # This macro should only be invoked once -- use via AC_REQUIRE. |
1262 | 1443 | # |
1263 | # This code is only required when automatic dependency tracking | |
1264 | # is enabled. FIXME. This creates each '.P' file that we will | |
1265 | # need in order to bootstrap the dependency handling code. | |
1444 | # This code is only required when automatic dependency tracking is enabled. | |
1445 | # This creates each '.Po' and '.Plo' makefile fragment that we'll need in | |
1446 | # order to bootstrap the dependency handling code. | |
1266 | 1447 | AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], |
1267 | 1448 | [AC_CONFIG_COMMANDS([depfiles], |
1268 | 1449 | [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], |
1269 | [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) | |
1270 | ]) | |
1450 | [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) | |
1271 | 1451 | |
1272 | 1452 | # Do all the work for Automake. -*- Autoconf -*- |
1273 | 1453 | |
1274 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
1454 | # Copyright (C) 1996-2018 Free Software Foundation, Inc. | |
1275 | 1455 | # |
1276 | 1456 | # This file is free software; the Free Software Foundation |
1277 | 1457 | # gives unlimited permission to copy and/or distribute it, |
1358 | 1538 | AC_REQUIRE([AC_PROG_MKDIR_P])dnl |
1359 | 1539 | # For better backward compatibility. To be removed once Automake 1.9.x |
1360 | 1540 | # dies out for good. For more background, see: |
1361 | # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> | |
1362 | # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> | |
1541 | # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> | |
1542 | # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> | |
1363 | 1543 | AC_SUBST([mkdir_p], ['$(MKDIR_P)']) |
1364 | 1544 | # We need awk for the "check" target (and possibly the TAP driver). The |
1365 | 1545 | # system "awk" is bad on some platforms. |
1426 | 1606 | Aborting the configuration process, to ensure you take notice of the issue. |
1427 | 1607 | |
1428 | 1608 | You can download and install GNU coreutils to get an 'rm' implementation |
1429 | that behaves properly: <http://www.gnu.org/software/coreutils/>. | |
1609 | that behaves properly: <https://www.gnu.org/software/coreutils/>. | |
1430 | 1610 | |
1431 | 1611 | If you want to complete the configuration process using your problematic |
1432 | 1612 | 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM |
1468 | 1648 | done |
1469 | 1649 | echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) |
1470 | 1650 | |
1471 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
1651 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1472 | 1652 | # |
1473 | 1653 | # This file is free software; the Free Software Foundation |
1474 | 1654 | # gives unlimited permission to copy and/or distribute it, |
1489 | 1669 | fi |
1490 | 1670 | AC_SUBST([install_sh])]) |
1491 | 1671 | |
1492 | # Copyright (C) 2003-2017 Free Software Foundation, Inc. | |
1672 | # Copyright (C) 2003-2018 Free Software Foundation, Inc. | |
1493 | 1673 | # |
1494 | 1674 | # This file is free software; the Free Software Foundation |
1495 | 1675 | # gives unlimited permission to copy and/or distribute it, |
1510 | 1690 | |
1511 | 1691 | # Check to see how 'make' treats includes. -*- Autoconf -*- |
1512 | 1692 | |
1513 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
1693 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1514 | 1694 | # |
1515 | 1695 | # This file is free software; the Free Software Foundation |
1516 | 1696 | # gives unlimited permission to copy and/or distribute it, |
1518 | 1698 | |
1519 | 1699 | # AM_MAKE_INCLUDE() |
1520 | 1700 | # ----------------- |
1521 | # Check to see how make treats includes. | |
1701 | # Check whether make has an 'include' directive that can support all | |
1702 | # the idioms we need for our automatic dependency tracking code. | |
1522 | 1703 | AC_DEFUN([AM_MAKE_INCLUDE], |
1523 | [am_make=${MAKE-make} | |
1524 | cat > confinc << 'END' | |
1704 | [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) | |
1705 | cat > confinc.mk << 'END' | |
1525 | 1706 | am__doit: |
1526 | @echo this is the am__doit target | |
1707 | @echo this is the am__doit target >confinc.out | |
1527 | 1708 | .PHONY: am__doit |
1528 | 1709 | END |
1529 | # If we don't find an include directive, just comment out the code. | |
1530 | AC_MSG_CHECKING([for style of include used by $am_make]) | |
1531 | 1710 | am__include="#" |
1532 | 1711 | am__quote= |
1533 | _am_result=none | |
1534 | # First try GNU make style include. | |
1535 | echo "include confinc" > confmf | |
1536 | # Ignore all kinds of additional output from 'make'. | |
1537 | case `$am_make -s -f confmf 2> /dev/null` in #( | |
1538 | *the\ am__doit\ target*) | |
1539 | am__include=include | |
1540 | am__quote= | |
1541 | _am_result=GNU | |
1542 | ;; | |
1543 | esac | |
1544 | # Now try BSD make style include. | |
1545 | if test "$am__include" = "#"; then | |
1546 | echo '.include "confinc"' > confmf | |
1547 | case `$am_make -s -f confmf 2> /dev/null` in #( | |
1548 | *the\ am__doit\ target*) | |
1549 | am__include=.include | |
1550 | am__quote="\"" | |
1551 | _am_result=BSD | |
1552 | ;; | |
1553 | esac | |
1554 | fi | |
1555 | AC_SUBST([am__include]) | |
1556 | AC_SUBST([am__quote]) | |
1557 | AC_MSG_RESULT([$_am_result]) | |
1558 | rm -f confinc confmf | |
1559 | ]) | |
1712 | # BSD make does it like this. | |
1713 | echo '.include "confinc.mk" # ignored' > confmf.BSD | |
1714 | # Other make implementations (GNU, Solaris 10, AIX) do it like this. | |
1715 | echo 'include confinc.mk # ignored' > confmf.GNU | |
1716 | _am_result=no | |
1717 | for s in GNU BSD; do | |
1718 | AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) | |
1719 | AS_CASE([$?:`cat confinc.out 2>/dev/null`], | |
1720 | ['0:this is the am__doit target'], | |
1721 | [AS_CASE([$s], | |
1722 | [BSD], [am__include='.include' am__quote='"'], | |
1723 | [am__include='include' am__quote=''])]) | |
1724 | if test "$am__include" != "#"; then | |
1725 | _am_result="yes ($s style)" | |
1726 | break | |
1727 | fi | |
1728 | done | |
1729 | rm -f confinc.* confmf.* | |
1730 | AC_MSG_RESULT([${_am_result}]) | |
1731 | AC_SUBST([am__include])]) | |
1732 | AC_SUBST([am__quote])]) | |
1560 | 1733 | |
1561 | 1734 | # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- |
1562 | 1735 | |
1563 | # Copyright (C) 1997-2017 Free Software Foundation, Inc. | |
1736 | # Copyright (C) 1997-2018 Free Software Foundation, Inc. | |
1564 | 1737 | # |
1565 | 1738 | # This file is free software; the Free Software Foundation |
1566 | 1739 | # gives unlimited permission to copy and/or distribute it, |
1599 | 1772 | |
1600 | 1773 | # Helper functions for option handling. -*- Autoconf -*- |
1601 | 1774 | |
1602 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
1775 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1603 | 1776 | # |
1604 | 1777 | # This file is free software; the Free Software Foundation |
1605 | 1778 | # gives unlimited permission to copy and/or distribute it, |
1628 | 1801 | AC_DEFUN([_AM_IF_OPTION], |
1629 | 1802 | [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) |
1630 | 1803 | |
1631 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
1804 | # Copyright (C) 1999-2018 Free Software Foundation, Inc. | |
1632 | 1805 | # |
1633 | 1806 | # This file is free software; the Free Software Foundation |
1634 | 1807 | # gives unlimited permission to copy and/or distribute it, |
1675 | 1848 | # For backward compatibility. |
1676 | 1849 | AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) |
1677 | 1850 | |
1678 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
1851 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1679 | 1852 | # |
1680 | 1853 | # This file is free software; the Free Software Foundation |
1681 | 1854 | # gives unlimited permission to copy and/or distribute it, |
1694 | 1867 | |
1695 | 1868 | # Check to make sure that the build environment is sane. -*- Autoconf -*- |
1696 | 1869 | |
1697 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
1870 | # Copyright (C) 1996-2018 Free Software Foundation, Inc. | |
1698 | 1871 | # |
1699 | 1872 | # This file is free software; the Free Software Foundation |
1700 | 1873 | # gives unlimited permission to copy and/or distribute it, |
1775 | 1948 | rm -f conftest.file |
1776 | 1949 | ]) |
1777 | 1950 | |
1778 | # Copyright (C) 2009-2017 Free Software Foundation, Inc. | |
1951 | # Copyright (C) 2009-2018 Free Software Foundation, Inc. | |
1779 | 1952 | # |
1780 | 1953 | # This file is free software; the Free Software Foundation |
1781 | 1954 | # gives unlimited permission to copy and/or distribute it, |
1835 | 2008 | _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl |
1836 | 2009 | ]) |
1837 | 2010 | |
1838 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
2011 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1839 | 2012 | # |
1840 | 2013 | # This file is free software; the Free Software Foundation |
1841 | 2014 | # gives unlimited permission to copy and/or distribute it, |
1863 | 2036 | INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" |
1864 | 2037 | AC_SUBST([INSTALL_STRIP_PROGRAM])]) |
1865 | 2038 | |
1866 | # Copyright (C) 2006-2017 Free Software Foundation, Inc. | |
2039 | # Copyright (C) 2006-2018 Free Software Foundation, Inc. | |
1867 | 2040 | # |
1868 | 2041 | # This file is free software; the Free Software Foundation |
1869 | 2042 | # gives unlimited permission to copy and/or distribute it, |
1882 | 2055 | |
1883 | 2056 | # Check how to create a tarball. -*- Autoconf -*- |
1884 | 2057 | |
1885 | # Copyright (C) 2004-2017 Free Software Foundation, Inc. | |
2058 | # Copyright (C) 2004-2018 Free Software Foundation, Inc. | |
1886 | 2059 | # |
1887 | 2060 | # This file is free software; the Free Software Foundation |
1888 | 2061 | # gives unlimited permission to copy and/or distribute it, |
2013 | 2186 | AC_SUBST([am__untar]) |
2014 | 2187 | ]) # _AM_PROG_TAR |
2015 | 2188 | |
2016 | m4_include([m4/intltool.m4]) | |
2017 | 2189 | m4_include([m4/libtool.m4]) |
2018 | 2190 | m4_include([m4/ltoptions.m4]) |
2019 | 2191 | m4_include([m4/ltsugar.m4]) |
0 | #!/bin/sh | |
0 | #! /bin/sh | |
1 | 1 | # Wrapper for compilers which do not understand '-c -o'. |
2 | 2 | |
3 | scriptversion=2016-01-11.22; # UTC | |
4 | ||
5 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
3 | scriptversion=2018-03-07.03; # UTC | |
4 | ||
5 | # Copyright (C) 1999-2018 Free Software Foundation, Inc. | |
6 | 6 | # Written by Tom Tromey <tromey@cygnus.com>. |
7 | 7 | # |
8 | 8 | # This program is free software; you can redistribute it and/or modify |
16 | 16 | # GNU General Public License for more details. |
17 | 17 | # |
18 | 18 | # You should have received a copy of the GNU General Public License |
19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
19 | # along with this program. If not, see <https://www.gnu.org/licenses/>. | |
20 | 20 | |
21 | 21 | # As a special exception to the GNU General Public License, if you |
22 | 22 | # distribute this file as part of a program that contains a |
339 | 339 | # Local Variables: |
340 | 340 | # mode: shell-script |
341 | 341 | # sh-indentation: 2 |
342 | # eval: (add-hook 'write-file-hooks 'time-stamp) | |
342 | # eval: (add-hook 'before-save-hook 'time-stamp) | |
343 | 343 | # time-stamp-start: "scriptversion=" |
344 | 344 | # time-stamp-format: "%:y-%02m-%02d.%02H" |
345 | 345 | # time-stamp-time-zone: "UTC0" |
0 | #!/bin/sh | |
0 | #! /bin/sh | |
1 | 1 | # Attempt to guess a canonical system name. |
2 | # Copyright 1992-2017 Free Software Foundation, Inc. | |
3 | ||
4 | timestamp='2017-08-08' | |
2 | # Copyright 1992-2018 Free Software Foundation, Inc. | |
3 | ||
4 | timestamp='2018-03-08' | |
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 |
14 | 14 | # General Public License for more details. |
15 | 15 | # |
16 | 16 | # You should have received a copy of the GNU General Public License |
17 | # along with this program; if not, see <http://www.gnu.org/licenses/>. | |
17 | # along with this program; if not, see <https://www.gnu.org/licenses/>. | |
18 | 18 | # |
19 | 19 | # As a special exception to the GNU General Public License, if you |
20 | 20 | # distribute this file as part of a program that contains a |
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 | |
29 | # https://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 | |
38 | 38 | |
39 | 39 | Output the configuration name of the system \`$me' is run on. |
40 | 40 | |
41 | Operation modes: | |
41 | Options: | |
42 | 42 | -h, --help print this help, then exit |
43 | 43 | -t, --time-stamp print date of last modification, then exit |
44 | 44 | -v, --version print version number, then exit |
49 | 49 | GNU config.guess ($timestamp) |
50 | 50 | |
51 | 51 | Originally written by Per Bothner. |
52 | Copyright 1992-2017 Free Software Foundation, Inc. | |
52 | Copyright 1992-2018 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." |
106 | 106 | dummy=$tmp/dummy ; |
107 | 107 | tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; |
108 | 108 | case $CC_FOR_BUILD,$HOST_CC,$CC in |
109 | ,,) echo "int x;" > $dummy.c ; | |
109 | ,,) echo "int x;" > "$dummy.c" ; | |
110 | 110 | for c in cc gcc c89 c99 ; do |
111 | if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then | |
111 | if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then | |
112 | 112 | CC_FOR_BUILD="$c"; break ; |
113 | 113 | fi ; |
114 | 114 | done ; |
131 | 131 | UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown |
132 | 132 | UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown |
133 | 133 | |
134 | case "${UNAME_SYSTEM}" in | |
134 | case "$UNAME_SYSTEM" in | |
135 | 135 | Linux|GNU|GNU/*) |
136 | 136 | # If the system lacks a compiler, then just pick glibc. |
137 | 137 | # We could probably try harder. |
138 | 138 | LIBC=gnu |
139 | 139 | |
140 | eval $set_cc_for_build | |
141 | cat <<-EOF > $dummy.c | |
140 | eval "$set_cc_for_build" | |
141 | cat <<-EOF > "$dummy.c" | |
142 | 142 | #include <features.h> |
143 | 143 | #if defined(__UCLIBC__) |
144 | 144 | LIBC=uclibc |
148 | 148 | LIBC=gnu |
149 | 149 | #endif |
150 | 150 | EOF |
151 | eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` | |
151 | eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" | |
152 | ||
153 | # If ldd exists, use it to detect musl libc. | |
154 | if command -v ldd >/dev/null && \ | |
155 | ldd --version 2>&1 | grep -q ^musl | |
156 | then | |
157 | LIBC=musl | |
158 | fi | |
152 | 159 | ;; |
153 | 160 | esac |
154 | 161 | |
155 | 162 | # Note: order is significant - the case branches are not exclusive. |
156 | 163 | |
157 | case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | |
164 | case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in | |
158 | 165 | *:NetBSD:*:*) |
159 | 166 | # NetBSD (nbsd) targets should (where applicable) match one or |
160 | 167 | # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, |
168 | 175 | # portion of the name. We always set it to "unknown". |
169 | 176 | sysctl="sysctl -n hw.machine_arch" |
170 | 177 | UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ |
171 | /sbin/$sysctl 2>/dev/null || \ | |
172 | /usr/sbin/$sysctl 2>/dev/null || \ | |
178 | "/sbin/$sysctl" 2>/dev/null || \ | |
179 | "/usr/sbin/$sysctl" 2>/dev/null || \ | |
173 | 180 | echo unknown)` |
174 | case "${UNAME_MACHINE_ARCH}" in | |
181 | case "$UNAME_MACHINE_ARCH" in | |
175 | 182 | armeb) machine=armeb-unknown ;; |
176 | 183 | arm*) machine=arm-unknown ;; |
177 | 184 | sh3el) machine=shl-unknown ;; |
178 | 185 | sh3eb) machine=sh-unknown ;; |
179 | 186 | sh5el) machine=sh5le-unknown ;; |
180 | 187 | 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 | |
188 | arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` | |
189 | endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` | |
190 | machine="${arch}${endian}"-unknown | |
184 | 191 | ;; |
185 | *) machine=${UNAME_MACHINE_ARCH}-unknown ;; | |
192 | *) machine="$UNAME_MACHINE_ARCH"-unknown ;; | |
186 | 193 | esac |
187 | 194 | # The Operating System including object format, if it has switched |
188 | 195 | # to ELF recently (or will in the future) and ABI. |
189 | case "${UNAME_MACHINE_ARCH}" in | |
196 | case "$UNAME_MACHINE_ARCH" in | |
190 | 197 | earm*) |
191 | 198 | os=netbsdelf |
192 | 199 | ;; |
193 | 200 | arm*|i386|m68k|ns32k|sh3*|sparc|vax) |
194 | eval $set_cc_for_build | |
201 | eval "$set_cc_for_build" | |
195 | 202 | if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
196 | 203 | | grep -q __ELF__ |
197 | 204 | then |
207 | 214 | ;; |
208 | 215 | esac |
209 | 216 | # Determine ABI tags. |
210 | case "${UNAME_MACHINE_ARCH}" in | |
217 | case "$UNAME_MACHINE_ARCH" in | |
211 | 218 | earm*) |
212 | 219 | expr='s/^earmv[0-9]/-eabi/;s/eb$//' |
213 | abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` | |
220 | abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` | |
214 | 221 | ;; |
215 | 222 | esac |
216 | 223 | # The OS release |
218 | 225 | # thus, need a distinct triplet. However, they do not need |
219 | 226 | # kernel version information, so it can be replaced with a |
220 | 227 | # suitable tag, in the style of linux-gnu. |
221 | case "${UNAME_VERSION}" in | |
228 | case "$UNAME_VERSION" in | |
222 | 229 | Debian*) |
223 | 230 | release='-gnu' |
224 | 231 | ;; |
225 | 232 | *) |
226 | release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` | |
233 | release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` | |
227 | 234 | ;; |
228 | 235 | esac |
229 | 236 | # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: |
230 | 237 | # contains redundant information, the shorter form: |
231 | 238 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. |
232 | echo "${machine}-${os}${release}${abi}" | |
239 | echo "$machine-${os}${release}${abi}" | |
233 | 240 | exit ;; |
234 | 241 | *:Bitrig:*:*) |
235 | 242 | UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` |
236 | echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} | |
243 | echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" | |
237 | 244 | exit ;; |
238 | 245 | *:OpenBSD:*:*) |
239 | 246 | UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` |
240 | echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} | |
247 | echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" | |
241 | 248 | exit ;; |
242 | 249 | *:LibertyBSD:*:*) |
243 | 250 | UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` |
244 | echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} | |
251 | echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" | |
252 | exit ;; | |
253 | *:MidnightBSD:*:*) | |
254 | echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" | |
245 | 255 | exit ;; |
246 | 256 | *:ekkoBSD:*:*) |
247 | echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} | |
257 | echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" | |
248 | 258 | exit ;; |
249 | 259 | *:SolidBSD:*:*) |
250 | echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} | |
260 | echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" | |
251 | 261 | exit ;; |
252 | 262 | macppc:MirBSD:*:*) |
253 | echo powerpc-unknown-mirbsd${UNAME_RELEASE} | |
263 | echo powerpc-unknown-mirbsd"$UNAME_RELEASE" | |
254 | 264 | exit ;; |
255 | 265 | *:MirBSD:*:*) |
256 | echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} | |
266 | echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" | |
257 | 267 | exit ;; |
258 | 268 | *:Sortix:*:*) |
259 | echo ${UNAME_MACHINE}-unknown-sortix | |
269 | echo "$UNAME_MACHINE"-unknown-sortix | |
260 | 270 | exit ;; |
261 | 271 | *:Redox:*:*) |
262 | echo ${UNAME_MACHINE}-unknown-redox | |
263 | exit ;; | |
272 | echo "$UNAME_MACHINE"-unknown-redox | |
273 | exit ;; | |
274 | mips:OSF1:*.*) | |
275 | echo mips-dec-osf1 | |
276 | exit ;; | |
264 | 277 | alpha:OSF1:*:*) |
265 | 278 | case $UNAME_RELEASE in |
266 | 279 | *4.0) |
312 | 325 | # A Tn.n version is a released field test version. |
313 | 326 | # A Xn.n version is an unreleased experimental baselevel. |
314 | 327 | # 1.2 uses "1.2" for uname -r. |
315 | echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` | |
328 | echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" | |
316 | 329 | # Reset EXIT trap before exiting to avoid spurious non-zero exit code. |
317 | 330 | exitcode=$? |
318 | 331 | trap '' 0 |
319 | 332 | exit $exitcode ;; |
320 | Alpha\ *:Windows_NT*:*) | |
321 | # How do we know it's Interix rather than the generic POSIX subsystem? | |
322 | # Should we change UNAME_MACHINE based on the output of uname instead | |
323 | # of the specific Alpha model? | |
324 | echo alpha-pc-interix | |
325 | exit ;; | |
326 | 21064:Windows_NT:50:3) | |
327 | echo alpha-dec-winnt3.5 | |
328 | exit ;; | |
329 | 333 | Amiga*:UNIX_System_V:4.0:*) |
330 | 334 | echo m68k-unknown-sysv4 |
331 | 335 | exit ;; |
332 | 336 | *:[Aa]miga[Oo][Ss]:*:*) |
333 | echo ${UNAME_MACHINE}-unknown-amigaos | |
337 | echo "$UNAME_MACHINE"-unknown-amigaos | |
334 | 338 | exit ;; |
335 | 339 | *:[Mm]orph[Oo][Ss]:*:*) |
336 | echo ${UNAME_MACHINE}-unknown-morphos | |
340 | echo "$UNAME_MACHINE"-unknown-morphos | |
337 | 341 | exit ;; |
338 | 342 | *:OS/390:*:*) |
339 | 343 | echo i370-ibm-openedition |
345 | 349 | echo powerpc-ibm-os400 |
346 | 350 | exit ;; |
347 | 351 | arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) |
348 | echo arm-acorn-riscix${UNAME_RELEASE} | |
352 | echo arm-acorn-riscix"$UNAME_RELEASE" | |
349 | 353 | exit ;; |
350 | 354 | arm*:riscos:*:*|arm*:RISCOS:*:*) |
351 | 355 | echo arm-unknown-riscos |
372 | 376 | sparc) echo sparc-icl-nx7; exit ;; |
373 | 377 | esac ;; |
374 | 378 | s390x:SunOS:*:*) |
375 | echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
379 | echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" | |
376 | 380 | exit ;; |
377 | 381 | sun4H:SunOS:5.*:*) |
378 | echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
382 | echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" | |
379 | 383 | exit ;; |
380 | 384 | sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) |
381 | echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
385 | echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" | |
382 | 386 | exit ;; |
383 | 387 | i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) |
384 | echo i386-pc-auroraux${UNAME_RELEASE} | |
388 | echo i386-pc-auroraux"$UNAME_RELEASE" | |
385 | 389 | exit ;; |
386 | 390 | i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) |
387 | eval $set_cc_for_build | |
391 | eval "$set_cc_for_build" | |
388 | 392 | SUN_ARCH=i386 |
389 | 393 | # If there is a compiler, see if it is configured for 64-bit objects. |
390 | 394 | # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. |
397 | 401 | SUN_ARCH=x86_64 |
398 | 402 | fi |
399 | 403 | fi |
400 | echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
404 | echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" | |
401 | 405 | exit ;; |
402 | 406 | sun4*:SunOS:6*:*) |
403 | 407 | # According to config.sub, this is the proper way to canonicalize |
404 | 408 | # SunOS6. Hard to guess exactly what SunOS6 will be like, but |
405 | 409 | # it's likely to be more like Solaris than SunOS4. |
406 | echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
410 | echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" | |
407 | 411 | exit ;; |
408 | 412 | sun4*:SunOS:*:*) |
409 | 413 | case "`/usr/bin/arch -k`" in |
412 | 416 | ;; |
413 | 417 | esac |
414 | 418 | # Japanese Language versions have a version number like `4.1.3-JL'. |
415 | echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` | |
419 | echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" | |
416 | 420 | exit ;; |
417 | 421 | sun3*:SunOS:*:*) |
418 | echo m68k-sun-sunos${UNAME_RELEASE} | |
422 | echo m68k-sun-sunos"$UNAME_RELEASE" | |
419 | 423 | exit ;; |
420 | 424 | sun*:*:4.2BSD:*) |
421 | 425 | UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` |
422 | test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 | |
426 | test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 | |
423 | 427 | case "`/bin/arch`" in |
424 | 428 | sun3) |
425 | echo m68k-sun-sunos${UNAME_RELEASE} | |
429 | echo m68k-sun-sunos"$UNAME_RELEASE" | |
426 | 430 | ;; |
427 | 431 | sun4) |
428 | echo sparc-sun-sunos${UNAME_RELEASE} | |
432 | echo sparc-sun-sunos"$UNAME_RELEASE" | |
429 | 433 | ;; |
430 | 434 | esac |
431 | 435 | exit ;; |
432 | 436 | aushp:SunOS:*:*) |
433 | echo sparc-auspex-sunos${UNAME_RELEASE} | |
437 | echo sparc-auspex-sunos"$UNAME_RELEASE" | |
434 | 438 | exit ;; |
435 | 439 | # The situation for MiNT is a little confusing. The machine name |
436 | 440 | # can be virtually everything (everything which is not |
441 | 445 | # MiNT. But MiNT is downward compatible to TOS, so this should |
442 | 446 | # be no problem. |
443 | 447 | atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) |
444 | echo m68k-atari-mint${UNAME_RELEASE} | |
448 | echo m68k-atari-mint"$UNAME_RELEASE" | |
445 | 449 | exit ;; |
446 | 450 | atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) |
447 | echo m68k-atari-mint${UNAME_RELEASE} | |
451 | echo m68k-atari-mint"$UNAME_RELEASE" | |
448 | 452 | exit ;; |
449 | 453 | *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) |
450 | echo m68k-atari-mint${UNAME_RELEASE} | |
454 | echo m68k-atari-mint"$UNAME_RELEASE" | |
451 | 455 | exit ;; |
452 | 456 | milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) |
453 | echo m68k-milan-mint${UNAME_RELEASE} | |
457 | echo m68k-milan-mint"$UNAME_RELEASE" | |
454 | 458 | exit ;; |
455 | 459 | hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) |
456 | echo m68k-hades-mint${UNAME_RELEASE} | |
460 | echo m68k-hades-mint"$UNAME_RELEASE" | |
457 | 461 | exit ;; |
458 | 462 | *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) |
459 | echo m68k-unknown-mint${UNAME_RELEASE} | |
463 | echo m68k-unknown-mint"$UNAME_RELEASE" | |
460 | 464 | exit ;; |
461 | 465 | m68k:machten:*:*) |
462 | echo m68k-apple-machten${UNAME_RELEASE} | |
466 | echo m68k-apple-machten"$UNAME_RELEASE" | |
463 | 467 | exit ;; |
464 | 468 | powerpc:machten:*:*) |
465 | echo powerpc-apple-machten${UNAME_RELEASE} | |
469 | echo powerpc-apple-machten"$UNAME_RELEASE" | |
466 | 470 | exit ;; |
467 | 471 | RISC*:Mach:*:*) |
468 | 472 | echo mips-dec-mach_bsd4.3 |
469 | 473 | exit ;; |
470 | 474 | RISC*:ULTRIX:*:*) |
471 | echo mips-dec-ultrix${UNAME_RELEASE} | |
475 | echo mips-dec-ultrix"$UNAME_RELEASE" | |
472 | 476 | exit ;; |
473 | 477 | VAX*:ULTRIX*:*:*) |
474 | echo vax-dec-ultrix${UNAME_RELEASE} | |
478 | echo vax-dec-ultrix"$UNAME_RELEASE" | |
475 | 479 | exit ;; |
476 | 480 | 2020:CLIX:*:* | 2430:CLIX:*:*) |
477 | echo clipper-intergraph-clix${UNAME_RELEASE} | |
481 | echo clipper-intergraph-clix"$UNAME_RELEASE" | |
478 | 482 | exit ;; |
479 | 483 | mips:*:*:UMIPS | mips:*:*:RISCos) |
480 | eval $set_cc_for_build | |
481 | sed 's/^ //' << EOF >$dummy.c | |
484 | eval "$set_cc_for_build" | |
485 | sed 's/^ //' << EOF > "$dummy.c" | |
482 | 486 | #ifdef __cplusplus |
483 | 487 | #include <stdio.h> /* for printf() prototype */ |
484 | 488 | int main (int argc, char *argv[]) { |
487 | 491 | #endif |
488 | 492 | #if defined (host_mips) && defined (MIPSEB) |
489 | 493 | #if defined (SYSTYPE_SYSV) |
490 | printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); | |
494 | printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); | |
491 | 495 | #endif |
492 | 496 | #if defined (SYSTYPE_SVR4) |
493 | printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); | |
497 | printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); | |
494 | 498 | #endif |
495 | 499 | #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) |
496 | printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); | |
500 | printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); | |
497 | 501 | #endif |
498 | 502 | #endif |
499 | 503 | exit (-1); |
500 | 504 | } |
501 | 505 | EOF |
502 | $CC_FOR_BUILD -o $dummy $dummy.c && | |
503 | dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && | |
504 | SYSTEM_NAME=`$dummy $dummyarg` && | |
506 | $CC_FOR_BUILD -o "$dummy" "$dummy.c" && | |
507 | dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && | |
508 | SYSTEM_NAME=`"$dummy" "$dummyarg"` && | |
505 | 509 | { echo "$SYSTEM_NAME"; exit; } |
506 | echo mips-mips-riscos${UNAME_RELEASE} | |
510 | echo mips-mips-riscos"$UNAME_RELEASE" | |
507 | 511 | exit ;; |
508 | 512 | Motorola:PowerMAX_OS:*:*) |
509 | 513 | echo powerpc-motorola-powermax |
529 | 533 | AViiON:dgux:*:*) |
530 | 534 | # DG/UX returns AViiON for all architectures |
531 | 535 | UNAME_PROCESSOR=`/usr/bin/uname -p` |
532 | if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] | |
536 | if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] | |
533 | 537 | then |
534 | if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ | |
535 | [ ${TARGET_BINARY_INTERFACE}x = x ] | |
538 | if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ | |
539 | [ "$TARGET_BINARY_INTERFACE"x = x ] | |
536 | 540 | then |
537 | echo m88k-dg-dgux${UNAME_RELEASE} | |
541 | echo m88k-dg-dgux"$UNAME_RELEASE" | |
538 | 542 | else |
539 | echo m88k-dg-dguxbcs${UNAME_RELEASE} | |
543 | echo m88k-dg-dguxbcs"$UNAME_RELEASE" | |
540 | 544 | fi |
541 | 545 | else |
542 | echo i586-dg-dgux${UNAME_RELEASE} | |
546 | echo i586-dg-dgux"$UNAME_RELEASE" | |
543 | 547 | fi |
544 | 548 | exit ;; |
545 | 549 | M88*:DolphinOS:*:*) # DolphinOS (SVR3) |
556 | 560 | echo m68k-tektronix-bsd |
557 | 561 | exit ;; |
558 | 562 | *:IRIX*:*:*) |
559 | echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` | |
563 | echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" | |
560 | 564 | exit ;; |
561 | 565 | ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. |
562 | 566 | echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id |
568 | 572 | if [ -x /usr/bin/oslevel ] ; then |
569 | 573 | IBM_REV=`/usr/bin/oslevel` |
570 | 574 | else |
571 | IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} | |
572 | fi | |
573 | echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} | |
575 | IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" | |
576 | fi | |
577 | echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" | |
574 | 578 | exit ;; |
575 | 579 | *:AIX:2:3) |
576 | 580 | if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then |
577 | eval $set_cc_for_build | |
578 | sed 's/^ //' << EOF >$dummy.c | |
581 | eval "$set_cc_for_build" | |
582 | sed 's/^ //' << EOF > "$dummy.c" | |
579 | 583 | #include <sys/systemcfg.h> |
580 | 584 | |
581 | 585 | main() |
586 | 590 | exit(0); |
587 | 591 | } |
588 | 592 | EOF |
589 | if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` | |
593 | if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` | |
590 | 594 | then |
591 | 595 | echo "$SYSTEM_NAME" |
592 | 596 | else |
600 | 604 | exit ;; |
601 | 605 | *:AIX:*:[4567]) |
602 | 606 | IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` |
603 | if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then | |
607 | if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then | |
604 | 608 | IBM_ARCH=rs6000 |
605 | 609 | else |
606 | 610 | IBM_ARCH=powerpc |
609 | 613 | IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | |
610 | 614 | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` |
611 | 615 | else |
612 | IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} | |
613 | fi | |
614 | echo ${IBM_ARCH}-ibm-aix${IBM_REV} | |
616 | IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" | |
617 | fi | |
618 | echo "$IBM_ARCH"-ibm-aix"$IBM_REV" | |
615 | 619 | exit ;; |
616 | 620 | *:AIX:*:*) |
617 | 621 | echo rs6000-ibm-aix |
618 | 622 | exit ;; |
619 | ibmrt:4.4BSD:*|romp-ibm:BSD:*) | |
623 | ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) | |
620 | 624 | echo romp-ibm-bsd4.4 |
621 | 625 | exit ;; |
622 | 626 | ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and |
623 | echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to | |
627 | echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to | |
624 | 628 | exit ;; # report: romp-ibm BSD 4.3 |
625 | 629 | *:BOSX:*:*) |
626 | 630 | echo rs6000-bull-bosx |
635 | 639 | echo m68k-hp-bsd4.4 |
636 | 640 | exit ;; |
637 | 641 | 9000/[34678]??:HP-UX:*:*) |
638 | HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` | |
639 | case "${UNAME_MACHINE}" in | |
640 | 9000/31? ) HP_ARCH=m68000 ;; | |
641 | 9000/[34]?? ) HP_ARCH=m68k ;; | |
642 | HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` | |
643 | case "$UNAME_MACHINE" in | |
644 | 9000/31?) HP_ARCH=m68000 ;; | |
645 | 9000/[34]??) HP_ARCH=m68k ;; | |
642 | 646 | 9000/[678][0-9][0-9]) |
643 | 647 | if [ -x /usr/bin/getconf ]; then |
644 | 648 | sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` |
645 | 649 | sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` |
646 | case "${sc_cpu_version}" in | |
650 | case "$sc_cpu_version" in | |
647 | 651 | 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 |
648 | 652 | 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 |
649 | 653 | 532) # CPU_PA_RISC2_0 |
650 | case "${sc_kernel_bits}" in | |
654 | case "$sc_kernel_bits" in | |
651 | 655 | 32) HP_ARCH=hppa2.0n ;; |
652 | 656 | 64) HP_ARCH=hppa2.0w ;; |
653 | 657 | '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 |
654 | 658 | esac ;; |
655 | 659 | esac |
656 | 660 | fi |
657 | if [ "${HP_ARCH}" = "" ]; then | |
658 | eval $set_cc_for_build | |
659 | sed 's/^ //' << EOF >$dummy.c | |
661 | if [ "$HP_ARCH" = "" ]; then | |
662 | eval "$set_cc_for_build" | |
663 | sed 's/^ //' << EOF > "$dummy.c" | |
660 | 664 | |
661 | 665 | #define _HPUX_SOURCE |
662 | 666 | #include <stdlib.h> |
689 | 693 | exit (0); |
690 | 694 | } |
691 | 695 | EOF |
692 | (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` | |
696 | (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` | |
693 | 697 | test -z "$HP_ARCH" && HP_ARCH=hppa |
694 | 698 | fi ;; |
695 | 699 | esac |
696 | if [ ${HP_ARCH} = hppa2.0w ] | |
700 | if [ "$HP_ARCH" = hppa2.0w ] | |
697 | 701 | then |
698 | eval $set_cc_for_build | |
702 | eval "$set_cc_for_build" | |
699 | 703 | |
700 | 704 | # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating |
701 | 705 | # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler |
714 | 718 | HP_ARCH=hppa64 |
715 | 719 | fi |
716 | 720 | fi |
717 | echo ${HP_ARCH}-hp-hpux${HPUX_REV} | |
721 | echo "$HP_ARCH"-hp-hpux"$HPUX_REV" | |
718 | 722 | exit ;; |
719 | 723 | ia64:HP-UX:*:*) |
720 | HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` | |
721 | echo ia64-hp-hpux${HPUX_REV} | |
724 | HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` | |
725 | echo ia64-hp-hpux"$HPUX_REV" | |
722 | 726 | exit ;; |
723 | 727 | 3050*:HI-UX:*:*) |
724 | eval $set_cc_for_build | |
725 | sed 's/^ //' << EOF >$dummy.c | |
728 | eval "$set_cc_for_build" | |
729 | sed 's/^ //' << EOF > "$dummy.c" | |
726 | 730 | #include <unistd.h> |
727 | 731 | int |
728 | 732 | main () |
747 | 751 | exit (0); |
748 | 752 | } |
749 | 753 | EOF |
750 | $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && | |
754 | $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && | |
751 | 755 | { echo "$SYSTEM_NAME"; exit; } |
752 | 756 | echo unknown-hitachi-hiuxwe2 |
753 | 757 | exit ;; |
754 | 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) | |
758 | 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) | |
755 | 759 | echo hppa1.1-hp-bsd |
756 | 760 | exit ;; |
757 | 761 | 9000/8??:4.3bsd:*:*) |
760 | 764 | *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) |
761 | 765 | echo hppa1.0-hp-mpeix |
762 | 766 | exit ;; |
763 | hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) | |
767 | hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) | |
764 | 768 | echo hppa1.1-hp-osf |
765 | 769 | exit ;; |
766 | 770 | hp8??:OSF1:*:*) |
768 | 772 | exit ;; |
769 | 773 | i*86:OSF1:*:*) |
770 | 774 | if [ -x /usr/sbin/sysversion ] ; then |
771 | echo ${UNAME_MACHINE}-unknown-osf1mk | |
775 | echo "$UNAME_MACHINE"-unknown-osf1mk | |
772 | 776 | else |
773 | echo ${UNAME_MACHINE}-unknown-osf1 | |
777 | echo "$UNAME_MACHINE"-unknown-osf1 | |
774 | 778 | fi |
775 | 779 | exit ;; |
776 | 780 | parisc*:Lites*:*:*) |
795 | 799 | echo c4-convex-bsd |
796 | 800 | exit ;; |
797 | 801 | CRAY*Y-MP:*:*:*) |
798 | echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | |
802 | echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' | |
799 | 803 | exit ;; |
800 | 804 | CRAY*[A-Z]90:*:*:*) |
801 | echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | |
805 | echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | |
802 | 806 | | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ |
803 | 807 | -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ |
804 | 808 | -e 's/\.[^.]*$/.X/' |
805 | 809 | exit ;; |
806 | 810 | CRAY*TS:*:*:*) |
807 | echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | |
811 | echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' | |
808 | 812 | exit ;; |
809 | 813 | CRAY*T3E:*:*:*) |
810 | echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | |
814 | echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' | |
811 | 815 | exit ;; |
812 | 816 | CRAY*SV1:*:*:*) |
813 | echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | |
817 | echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' | |
814 | 818 | exit ;; |
815 | 819 | *:UNICOS/mp:*:*) |
816 | echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | |
820 | echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' | |
817 | 821 | exit ;; |
818 | 822 | F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) |
819 | 823 | FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` |
820 | 824 | FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` |
821 | FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` | |
825 | FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` | |
822 | 826 | echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
823 | 827 | exit ;; |
824 | 828 | 5000:UNIX_System_V:4.*:*) |
825 | 829 | FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` |
826 | FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` | |
830 | FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` | |
827 | 831 | echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
828 | 832 | exit ;; |
829 | 833 | i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) |
830 | echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} | |
834 | echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" | |
831 | 835 | exit ;; |
832 | 836 | sparc*:BSD/OS:*:*) |
833 | echo sparc-unknown-bsdi${UNAME_RELEASE} | |
837 | echo sparc-unknown-bsdi"$UNAME_RELEASE" | |
834 | 838 | exit ;; |
835 | 839 | *:BSD/OS:*:*) |
836 | echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} | |
840 | echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" | |
837 | 841 | exit ;; |
838 | 842 | *:FreeBSD:*:*) |
839 | 843 | UNAME_PROCESSOR=`/usr/bin/uname -p` |
840 | case ${UNAME_PROCESSOR} in | |
844 | case "$UNAME_PROCESSOR" in | |
841 | 845 | amd64) |
842 | 846 | UNAME_PROCESSOR=x86_64 ;; |
843 | 847 | i386) |
844 | 848 | UNAME_PROCESSOR=i586 ;; |
845 | 849 | esac |
846 | echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` | |
850 | echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" | |
847 | 851 | exit ;; |
848 | 852 | i*:CYGWIN*:*) |
849 | echo ${UNAME_MACHINE}-pc-cygwin | |
853 | echo "$UNAME_MACHINE"-pc-cygwin | |
850 | 854 | exit ;; |
851 | 855 | *:MINGW64*:*) |
852 | echo ${UNAME_MACHINE}-pc-mingw64 | |
856 | echo "$UNAME_MACHINE"-pc-mingw64 | |
853 | 857 | exit ;; |
854 | 858 | *:MINGW*:*) |
855 | echo ${UNAME_MACHINE}-pc-mingw32 | |
859 | echo "$UNAME_MACHINE"-pc-mingw32 | |
856 | 860 | exit ;; |
857 | 861 | *:MSYS*:*) |
858 | echo ${UNAME_MACHINE}-pc-msys | |
859 | exit ;; | |
860 | i*:windows32*:*) | |
861 | # uname -m includes "-pc" on this system. | |
862 | echo ${UNAME_MACHINE}-mingw32 | |
862 | echo "$UNAME_MACHINE"-pc-msys | |
863 | 863 | exit ;; |
864 | 864 | i*:PW*:*) |
865 | echo ${UNAME_MACHINE}-pc-pw32 | |
865 | echo "$UNAME_MACHINE"-pc-pw32 | |
866 | 866 | exit ;; |
867 | 867 | *:Interix*:*) |
868 | case ${UNAME_MACHINE} in | |
868 | case "$UNAME_MACHINE" in | |
869 | 869 | x86) |
870 | echo i586-pc-interix${UNAME_RELEASE} | |
870 | echo i586-pc-interix"$UNAME_RELEASE" | |
871 | 871 | exit ;; |
872 | 872 | authenticamd | genuineintel | EM64T) |
873 | echo x86_64-unknown-interix${UNAME_RELEASE} | |
873 | echo x86_64-unknown-interix"$UNAME_RELEASE" | |
874 | 874 | exit ;; |
875 | 875 | IA64) |
876 | echo ia64-unknown-interix${UNAME_RELEASE} | |
876 | echo ia64-unknown-interix"$UNAME_RELEASE" | |
877 | 877 | exit ;; |
878 | 878 | esac ;; |
879 | [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) | |
880 | echo i${UNAME_MACHINE}-pc-mks | |
881 | exit ;; | |
882 | 8664:Windows_NT:*) | |
883 | echo x86_64-pc-mks | |
884 | exit ;; | |
885 | i*:Windows_NT*:* | Pentium*:Windows_NT*:*) | |
886 | # How do we know it's Interix rather than the generic POSIX subsystem? | |
887 | # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we | |
888 | # UNAME_MACHINE based on the output of uname instead of i386? | |
889 | echo i586-pc-interix | |
890 | exit ;; | |
891 | 879 | i*:UWIN*:*) |
892 | echo ${UNAME_MACHINE}-pc-uwin | |
880 | echo "$UNAME_MACHINE"-pc-uwin | |
893 | 881 | exit ;; |
894 | 882 | amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) |
895 | 883 | echo x86_64-unknown-cygwin |
896 | 884 | exit ;; |
897 | p*:CYGWIN*:*) | |
898 | echo powerpcle-unknown-cygwin | |
899 | exit ;; | |
900 | 885 | prep*:SunOS:5.*:*) |
901 | echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
886 | echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" | |
902 | 887 | exit ;; |
903 | 888 | *:GNU:*:*) |
904 | 889 | # the GNU system |
905 | echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` | |
890 | echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" | |
906 | 891 | exit ;; |
907 | 892 | *:GNU/*:*:*) |
908 | 893 | # other systems with GNU libc and userland |
909 | echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} | |
894 | echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" | |
910 | 895 | exit ;; |
911 | 896 | i*86:Minix:*:*) |
912 | echo ${UNAME_MACHINE}-pc-minix | |
897 | echo "$UNAME_MACHINE"-pc-minix | |
913 | 898 | exit ;; |
914 | 899 | aarch64:Linux:*:*) |
915 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
900 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
916 | 901 | exit ;; |
917 | 902 | aarch64_be:Linux:*:*) |
918 | 903 | UNAME_MACHINE=aarch64_be |
919 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
904 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
920 | 905 | exit ;; |
921 | 906 | alpha:Linux:*:*) |
922 | 907 | case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in |
930 | 915 | esac |
931 | 916 | objdump --private-headers /bin/sh | grep -q ld.so.1 |
932 | 917 | if test "$?" = 0 ; then LIBC=gnulibc1 ; fi |
933 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
918 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
934 | 919 | exit ;; |
935 | 920 | arc:Linux:*:* | arceb:Linux:*:*) |
936 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
921 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
937 | 922 | exit ;; |
938 | 923 | arm*:Linux:*:*) |
939 | eval $set_cc_for_build | |
924 | eval "$set_cc_for_build" | |
940 | 925 | if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
941 | 926 | | grep -q __ARM_EABI__ |
942 | 927 | then |
943 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
928 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
944 | 929 | else |
945 | 930 | if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ |
946 | 931 | | grep -q __ARM_PCS_VFP |
947 | 932 | then |
948 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi | |
933 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi | |
949 | 934 | else |
950 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf | |
935 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf | |
951 | 936 | fi |
952 | 937 | fi |
953 | 938 | exit ;; |
954 | 939 | avr32*:Linux:*:*) |
955 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
940 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
956 | 941 | exit ;; |
957 | 942 | cris:Linux:*:*) |
958 | echo ${UNAME_MACHINE}-axis-linux-${LIBC} | |
943 | echo "$UNAME_MACHINE"-axis-linux-"$LIBC" | |
959 | 944 | exit ;; |
960 | 945 | crisv32:Linux:*:*) |
961 | echo ${UNAME_MACHINE}-axis-linux-${LIBC} | |
946 | echo "$UNAME_MACHINE"-axis-linux-"$LIBC" | |
962 | 947 | exit ;; |
963 | 948 | e2k:Linux:*:*) |
964 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
949 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
965 | 950 | exit ;; |
966 | 951 | frv:Linux:*:*) |
967 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
952 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
968 | 953 | exit ;; |
969 | 954 | hexagon:Linux:*:*) |
970 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
955 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
971 | 956 | exit ;; |
972 | 957 | i*86:Linux:*:*) |
973 | echo ${UNAME_MACHINE}-pc-linux-${LIBC} | |
958 | echo "$UNAME_MACHINE"-pc-linux-"$LIBC" | |
974 | 959 | exit ;; |
975 | 960 | ia64:Linux:*:*) |
976 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
961 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
977 | 962 | exit ;; |
978 | 963 | k1om:Linux:*:*) |
979 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
964 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
980 | 965 | exit ;; |
981 | 966 | m32r*:Linux:*:*) |
982 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
967 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
983 | 968 | exit ;; |
984 | 969 | m68*:Linux:*:*) |
985 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
970 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
986 | 971 | exit ;; |
987 | 972 | mips:Linux:*:* | mips64:Linux:*:*) |
988 | eval $set_cc_for_build | |
989 | sed 's/^ //' << EOF >$dummy.c | |
973 | eval "$set_cc_for_build" | |
974 | sed 's/^ //' << EOF > "$dummy.c" | |
990 | 975 | #undef CPU |
991 | 976 | #undef ${UNAME_MACHINE} |
992 | 977 | #undef ${UNAME_MACHINE}el |
1000 | 985 | #endif |
1001 | 986 | #endif |
1002 | 987 | EOF |
1003 | eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` | |
1004 | test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } | |
988 | eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" | |
989 | test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } | |
1005 | 990 | ;; |
1006 | 991 | mips64el:Linux:*:*) |
1007 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
992 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
1008 | 993 | exit ;; |
1009 | 994 | openrisc*:Linux:*:*) |
1010 | echo or1k-unknown-linux-${LIBC} | |
995 | echo or1k-unknown-linux-"$LIBC" | |
1011 | 996 | exit ;; |
1012 | 997 | or32:Linux:*:* | or1k*:Linux:*:*) |
1013 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
998 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
1014 | 999 | exit ;; |
1015 | 1000 | padre:Linux:*:*) |
1016 | echo sparc-unknown-linux-${LIBC} | |
1001 | echo sparc-unknown-linux-"$LIBC" | |
1017 | 1002 | exit ;; |
1018 | 1003 | parisc64:Linux:*:* | hppa64:Linux:*:*) |
1019 | echo hppa64-unknown-linux-${LIBC} | |
1004 | echo hppa64-unknown-linux-"$LIBC" | |
1020 | 1005 | exit ;; |
1021 | 1006 | parisc:Linux:*:* | hppa:Linux:*:*) |
1022 | 1007 | # Look for CPU level |
1023 | 1008 | case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in |
1024 | PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; | |
1025 | PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; | |
1026 | *) echo hppa-unknown-linux-${LIBC} ;; | |
1009 | PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; | |
1010 | PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; | |
1011 | *) echo hppa-unknown-linux-"$LIBC" ;; | |
1027 | 1012 | esac |
1028 | 1013 | exit ;; |
1029 | 1014 | ppc64:Linux:*:*) |
1030 | echo powerpc64-unknown-linux-${LIBC} | |
1015 | echo powerpc64-unknown-linux-"$LIBC" | |
1031 | 1016 | exit ;; |
1032 | 1017 | ppc:Linux:*:*) |
1033 | echo powerpc-unknown-linux-${LIBC} | |
1018 | echo powerpc-unknown-linux-"$LIBC" | |
1034 | 1019 | exit ;; |
1035 | 1020 | ppc64le:Linux:*:*) |
1036 | echo powerpc64le-unknown-linux-${LIBC} | |
1021 | echo powerpc64le-unknown-linux-"$LIBC" | |
1037 | 1022 | exit ;; |
1038 | 1023 | ppcle:Linux:*:*) |
1039 | echo powerpcle-unknown-linux-${LIBC} | |
1024 | echo powerpcle-unknown-linux-"$LIBC" | |
1040 | 1025 | exit ;; |
1041 | 1026 | riscv32:Linux:*:* | riscv64:Linux:*:*) |
1042 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
1027 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
1043 | 1028 | exit ;; |
1044 | 1029 | s390:Linux:*:* | s390x:Linux:*:*) |
1045 | echo ${UNAME_MACHINE}-ibm-linux-${LIBC} | |
1030 | echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" | |
1046 | 1031 | exit ;; |
1047 | 1032 | sh64*:Linux:*:*) |
1048 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
1033 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
1049 | 1034 | exit ;; |
1050 | 1035 | sh*:Linux:*:*) |
1051 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
1036 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
1052 | 1037 | exit ;; |
1053 | 1038 | sparc:Linux:*:* | sparc64:Linux:*:*) |
1054 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
1039 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
1055 | 1040 | exit ;; |
1056 | 1041 | tile*:Linux:*:*) |
1057 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
1042 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
1058 | 1043 | exit ;; |
1059 | 1044 | vax:Linux:*:*) |
1060 | echo ${UNAME_MACHINE}-dec-linux-${LIBC} | |
1045 | echo "$UNAME_MACHINE"-dec-linux-"$LIBC" | |
1061 | 1046 | exit ;; |
1062 | 1047 | x86_64:Linux:*:*) |
1063 | echo ${UNAME_MACHINE}-pc-linux-${LIBC} | |
1048 | echo "$UNAME_MACHINE"-pc-linux-"$LIBC" | |
1064 | 1049 | exit ;; |
1065 | 1050 | xtensa*:Linux:*:*) |
1066 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} | |
1051 | echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" | |
1067 | 1052 | exit ;; |
1068 | 1053 | i*86:DYNIX/ptx:4*:*) |
1069 | 1054 | # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. |
1077 | 1062 | # I am not positive that other SVR4 systems won't match this, |
1078 | 1063 | # I just have to hope. -- rms. |
1079 | 1064 | # Use sysv4.2uw... so that sysv4* matches it. |
1080 | echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} | |
1065 | echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" | |
1081 | 1066 | exit ;; |
1082 | 1067 | i*86:OS/2:*:*) |
1083 | 1068 | # If we were able to find `uname', then EMX Unix compatibility |
1084 | 1069 | # is probably installed. |
1085 | echo ${UNAME_MACHINE}-pc-os2-emx | |
1070 | echo "$UNAME_MACHINE"-pc-os2-emx | |
1086 | 1071 | exit ;; |
1087 | 1072 | i*86:XTS-300:*:STOP) |
1088 | echo ${UNAME_MACHINE}-unknown-stop | |
1073 | echo "$UNAME_MACHINE"-unknown-stop | |
1089 | 1074 | exit ;; |
1090 | 1075 | i*86:atheos:*:*) |
1091 | echo ${UNAME_MACHINE}-unknown-atheos | |
1076 | echo "$UNAME_MACHINE"-unknown-atheos | |
1092 | 1077 | exit ;; |
1093 | 1078 | i*86:syllable:*:*) |
1094 | echo ${UNAME_MACHINE}-pc-syllable | |
1079 | echo "$UNAME_MACHINE"-pc-syllable | |
1095 | 1080 | exit ;; |
1096 | 1081 | i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) |
1097 | echo i386-unknown-lynxos${UNAME_RELEASE} | |
1082 | echo i386-unknown-lynxos"$UNAME_RELEASE" | |
1098 | 1083 | exit ;; |
1099 | 1084 | i*86:*DOS:*:*) |
1100 | echo ${UNAME_MACHINE}-pc-msdosdjgpp | |
1101 | exit ;; | |
1102 | i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) | |
1103 | UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` | |
1085 | echo "$UNAME_MACHINE"-pc-msdosdjgpp | |
1086 | exit ;; | |
1087 | i*86:*:4.*:*) | |
1088 | UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` | |
1104 | 1089 | if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then |
1105 | echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} | |
1090 | echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" | |
1106 | 1091 | else |
1107 | echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} | |
1092 | echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" | |
1108 | 1093 | fi |
1109 | 1094 | exit ;; |
1110 | 1095 | i*86:*:5:[678]*) |
1114 | 1099 | *Pentium) UNAME_MACHINE=i586 ;; |
1115 | 1100 | *Pent*|*Celeron) UNAME_MACHINE=i686 ;; |
1116 | 1101 | esac |
1117 | echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} | |
1102 | echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" | |
1118 | 1103 | exit ;; |
1119 | 1104 | i*86:*:3.2:*) |
1120 | 1105 | if test -f /usr/options/cb.name; then |
1121 | 1106 | UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` |
1122 | echo ${UNAME_MACHINE}-pc-isc$UNAME_REL | |
1107 | echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL" | |
1123 | 1108 | elif /bin/uname -X 2>/dev/null >/dev/null ; then |
1124 | 1109 | UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` |
1125 | 1110 | (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 |
1129 | 1114 | && UNAME_MACHINE=i686 |
1130 | 1115 | (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ |
1131 | 1116 | && UNAME_MACHINE=i686 |
1132 | echo ${UNAME_MACHINE}-pc-sco$UNAME_REL | |
1117 | echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" | |
1133 | 1118 | else |
1134 | echo ${UNAME_MACHINE}-pc-sysv32 | |
1119 | echo "$UNAME_MACHINE"-pc-sysv32 | |
1135 | 1120 | fi |
1136 | 1121 | exit ;; |
1137 | 1122 | pc:*:*:*) |
1151 | 1136 | exit ;; |
1152 | 1137 | i860:*:4.*:*) # i860-SVR4 |
1153 | 1138 | if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then |
1154 | echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 | |
1139 | echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 | |
1155 | 1140 | else # Add other i860-SVR4 vendors below as they are discovered. |
1156 | echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 | |
1141 | echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 | |
1157 | 1142 | fi |
1158 | 1143 | exit ;; |
1159 | 1144 | mini*:CTIX:SYS*5:*) |
1173 | 1158 | test -r /etc/.relid \ |
1174 | 1159 | && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` |
1175 | 1160 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
1176 | && { echo i486-ncr-sysv4.3${OS_REL}; exit; } | |
1161 | && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } | |
1177 | 1162 | /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ |
1178 | && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; | |
1163 | && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; | |
1179 | 1164 | 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) |
1180 | 1165 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
1181 | 1166 | && { echo i486-ncr-sysv4; exit; } ;; |
1184 | 1169 | test -r /etc/.relid \ |
1185 | 1170 | && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` |
1186 | 1171 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
1187 | && { echo i486-ncr-sysv4.3${OS_REL}; exit; } | |
1172 | && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } | |
1188 | 1173 | /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ |
1189 | && { echo i586-ncr-sysv4.3${OS_REL}; exit; } | |
1174 | && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } | |
1190 | 1175 | /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ |
1191 | && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; | |
1176 | && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; | |
1192 | 1177 | m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) |
1193 | echo m68k-unknown-lynxos${UNAME_RELEASE} | |
1178 | echo m68k-unknown-lynxos"$UNAME_RELEASE" | |
1194 | 1179 | exit ;; |
1195 | 1180 | mc68030:UNIX_System_V:4.*:*) |
1196 | 1181 | echo m68k-atari-sysv4 |
1197 | 1182 | exit ;; |
1198 | 1183 | TSUNAMI:LynxOS:2.*:*) |
1199 | echo sparc-unknown-lynxos${UNAME_RELEASE} | |
1184 | echo sparc-unknown-lynxos"$UNAME_RELEASE" | |
1200 | 1185 | exit ;; |
1201 | 1186 | rs6000:LynxOS:2.*:*) |
1202 | echo rs6000-unknown-lynxos${UNAME_RELEASE} | |
1187 | echo rs6000-unknown-lynxos"$UNAME_RELEASE" | |
1203 | 1188 | exit ;; |
1204 | 1189 | PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) |
1205 | echo powerpc-unknown-lynxos${UNAME_RELEASE} | |
1190 | echo powerpc-unknown-lynxos"$UNAME_RELEASE" | |
1206 | 1191 | exit ;; |
1207 | 1192 | SM[BE]S:UNIX_SV:*:*) |
1208 | echo mips-dde-sysv${UNAME_RELEASE} | |
1193 | echo mips-dde-sysv"$UNAME_RELEASE" | |
1209 | 1194 | exit ;; |
1210 | 1195 | RM*:ReliantUNIX-*:*:*) |
1211 | 1196 | echo mips-sni-sysv4 |
1216 | 1201 | *:SINIX-*:*:*) |
1217 | 1202 | if uname -p 2>/dev/null >/dev/null ; then |
1218 | 1203 | UNAME_MACHINE=`(uname -p) 2>/dev/null` |
1219 | echo ${UNAME_MACHINE}-sni-sysv4 | |
1204 | echo "$UNAME_MACHINE"-sni-sysv4 | |
1220 | 1205 | else |
1221 | 1206 | echo ns32k-sni-sysv |
1222 | 1207 | fi |
1236 | 1221 | exit ;; |
1237 | 1222 | i*86:VOS:*:*) |
1238 | 1223 | # From Paul.Green@stratus.com. |
1239 | echo ${UNAME_MACHINE}-stratus-vos | |
1224 | echo "$UNAME_MACHINE"-stratus-vos | |
1240 | 1225 | exit ;; |
1241 | 1226 | *:VOS:*:*) |
1242 | 1227 | # From Paul.Green@stratus.com. |
1243 | 1228 | echo hppa1.1-stratus-vos |
1244 | 1229 | exit ;; |
1245 | 1230 | mc68*:A/UX:*:*) |
1246 | echo m68k-apple-aux${UNAME_RELEASE} | |
1231 | echo m68k-apple-aux"$UNAME_RELEASE" | |
1247 | 1232 | exit ;; |
1248 | 1233 | news*:NEWS-OS:6*:*) |
1249 | 1234 | echo mips-sony-newsos6 |
1250 | 1235 | exit ;; |
1251 | 1236 | R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) |
1252 | 1237 | if [ -d /usr/nec ]; then |
1253 | echo mips-nec-sysv${UNAME_RELEASE} | |
1238 | echo mips-nec-sysv"$UNAME_RELEASE" | |
1254 | 1239 | else |
1255 | echo mips-unknown-sysv${UNAME_RELEASE} | |
1240 | echo mips-unknown-sysv"$UNAME_RELEASE" | |
1256 | 1241 | fi |
1257 | 1242 | exit ;; |
1258 | 1243 | BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. |
1271 | 1256 | echo x86_64-unknown-haiku |
1272 | 1257 | exit ;; |
1273 | 1258 | SX-4:SUPER-UX:*:*) |
1274 | echo sx4-nec-superux${UNAME_RELEASE} | |
1259 | echo sx4-nec-superux"$UNAME_RELEASE" | |
1275 | 1260 | exit ;; |
1276 | 1261 | SX-5:SUPER-UX:*:*) |
1277 | echo sx5-nec-superux${UNAME_RELEASE} | |
1262 | echo sx5-nec-superux"$UNAME_RELEASE" | |
1278 | 1263 | exit ;; |
1279 | 1264 | SX-6:SUPER-UX:*:*) |
1280 | echo sx6-nec-superux${UNAME_RELEASE} | |
1265 | echo sx6-nec-superux"$UNAME_RELEASE" | |
1281 | 1266 | exit ;; |
1282 | 1267 | SX-7:SUPER-UX:*:*) |
1283 | echo sx7-nec-superux${UNAME_RELEASE} | |
1268 | echo sx7-nec-superux"$UNAME_RELEASE" | |
1284 | 1269 | exit ;; |
1285 | 1270 | SX-8:SUPER-UX:*:*) |
1286 | echo sx8-nec-superux${UNAME_RELEASE} | |
1271 | echo sx8-nec-superux"$UNAME_RELEASE" | |
1287 | 1272 | exit ;; |
1288 | 1273 | SX-8R:SUPER-UX:*:*) |
1289 | echo sx8r-nec-superux${UNAME_RELEASE} | |
1274 | echo sx8r-nec-superux"$UNAME_RELEASE" | |
1290 | 1275 | exit ;; |
1291 | 1276 | SX-ACE:SUPER-UX:*:*) |
1292 | echo sxace-nec-superux${UNAME_RELEASE} | |
1277 | echo sxace-nec-superux"$UNAME_RELEASE" | |
1293 | 1278 | exit ;; |
1294 | 1279 | Power*:Rhapsody:*:*) |
1295 | echo powerpc-apple-rhapsody${UNAME_RELEASE} | |
1280 | echo powerpc-apple-rhapsody"$UNAME_RELEASE" | |
1296 | 1281 | exit ;; |
1297 | 1282 | *:Rhapsody:*:*) |
1298 | echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} | |
1283 | echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" | |
1299 | 1284 | exit ;; |
1300 | 1285 | *:Darwin:*:*) |
1301 | 1286 | UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown |
1302 | eval $set_cc_for_build | |
1287 | eval "$set_cc_for_build" | |
1303 | 1288 | if test "$UNAME_PROCESSOR" = unknown ; then |
1304 | 1289 | UNAME_PROCESSOR=powerpc |
1305 | 1290 | fi |
1306 | if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then | |
1291 | if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then | |
1307 | 1292 | if [ "$CC_FOR_BUILD" != no_compiler_found ]; then |
1308 | 1293 | if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ |
1309 | 1294 | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ |
1331 | 1316 | # that Apple uses in portable devices. |
1332 | 1317 | UNAME_PROCESSOR=x86_64 |
1333 | 1318 | fi |
1334 | echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} | |
1319 | echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" | |
1335 | 1320 | exit ;; |
1336 | 1321 | *:procnto*:*:* | *:QNX:[0123456789]*:*) |
1337 | 1322 | UNAME_PROCESSOR=`uname -p` |
1339 | 1324 | UNAME_PROCESSOR=i386 |
1340 | 1325 | UNAME_MACHINE=pc |
1341 | 1326 | fi |
1342 | echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} | |
1327 | echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" | |
1343 | 1328 | exit ;; |
1344 | 1329 | *:QNX:*:4*) |
1345 | 1330 | echo i386-pc-qnx |
1346 | 1331 | exit ;; |
1347 | 1332 | NEO-*:NONSTOP_KERNEL:*:*) |
1348 | echo neo-tandem-nsk${UNAME_RELEASE} | |
1333 | echo neo-tandem-nsk"$UNAME_RELEASE" | |
1349 | 1334 | exit ;; |
1350 | 1335 | NSE-*:NONSTOP_KERNEL:*:*) |
1351 | echo nse-tandem-nsk${UNAME_RELEASE} | |
1336 | echo nse-tandem-nsk"$UNAME_RELEASE" | |
1352 | 1337 | exit ;; |
1353 | 1338 | NSR-*:NONSTOP_KERNEL:*:*) |
1354 | echo nsr-tandem-nsk${UNAME_RELEASE} | |
1339 | echo nsr-tandem-nsk"$UNAME_RELEASE" | |
1340 | exit ;; | |
1341 | NSV-*:NONSTOP_KERNEL:*:*) | |
1342 | echo nsv-tandem-nsk"$UNAME_RELEASE" | |
1355 | 1343 | exit ;; |
1356 | 1344 | NSX-*:NONSTOP_KERNEL:*:*) |
1357 | echo nsx-tandem-nsk${UNAME_RELEASE} | |
1345 | echo nsx-tandem-nsk"$UNAME_RELEASE" | |
1358 | 1346 | exit ;; |
1359 | 1347 | *:NonStop-UX:*:*) |
1360 | 1348 | echo mips-compaq-nonstopux |
1363 | 1351 | echo bs2000-siemens-sysv |
1364 | 1352 | exit ;; |
1365 | 1353 | DS/*:UNIX_System_V:*:*) |
1366 | echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} | |
1354 | echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" | |
1367 | 1355 | exit ;; |
1368 | 1356 | *:Plan9:*:*) |
1369 | 1357 | # "uname -m" is not consistent, so use $cputype instead. 386 |
1374 | 1362 | else |
1375 | 1363 | UNAME_MACHINE="$cputype" |
1376 | 1364 | fi |
1377 | echo ${UNAME_MACHINE}-unknown-plan9 | |
1365 | echo "$UNAME_MACHINE"-unknown-plan9 | |
1378 | 1366 | exit ;; |
1379 | 1367 | *:TOPS-10:*:*) |
1380 | 1368 | echo pdp10-unknown-tops10 |
1395 | 1383 | echo pdp10-unknown-its |
1396 | 1384 | exit ;; |
1397 | 1385 | SEI:*:*:SEIUX) |
1398 | echo mips-sei-seiux${UNAME_RELEASE} | |
1386 | echo mips-sei-seiux"$UNAME_RELEASE" | |
1399 | 1387 | exit ;; |
1400 | 1388 | *:DragonFly:*:*) |
1401 | echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` | |
1389 | echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" | |
1402 | 1390 | exit ;; |
1403 | 1391 | *:*VMS:*:*) |
1404 | 1392 | UNAME_MACHINE=`(uname -p) 2>/dev/null` |
1405 | case "${UNAME_MACHINE}" in | |
1393 | case "$UNAME_MACHINE" in | |
1406 | 1394 | A*) echo alpha-dec-vms ; exit ;; |
1407 | 1395 | I*) echo ia64-dec-vms ; exit ;; |
1408 | 1396 | V*) echo vax-dec-vms ; exit ;; |
1411 | 1399 | echo i386-pc-xenix |
1412 | 1400 | exit ;; |
1413 | 1401 | i*86:skyos:*:*) |
1414 | echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` | |
1402 | echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" | |
1415 | 1403 | exit ;; |
1416 | 1404 | i*86:rdos:*:*) |
1417 | echo ${UNAME_MACHINE}-pc-rdos | |
1405 | echo "$UNAME_MACHINE"-pc-rdos | |
1418 | 1406 | exit ;; |
1419 | 1407 | i*86:AROS:*:*) |
1420 | echo ${UNAME_MACHINE}-pc-aros | |
1408 | echo "$UNAME_MACHINE"-pc-aros | |
1421 | 1409 | exit ;; |
1422 | 1410 | x86_64:VMkernel:*:*) |
1423 | echo ${UNAME_MACHINE}-unknown-esx | |
1411 | echo "$UNAME_MACHINE"-unknown-esx | |
1424 | 1412 | exit ;; |
1425 | 1413 | amd64:Isilon\ OneFS:*:*) |
1426 | 1414 | echo x86_64-unknown-onefs |
1427 | 1415 | exit ;; |
1428 | 1416 | esac |
1429 | 1417 | |
1418 | echo "$0: unable to guess system type" >&2 | |
1419 | ||
1420 | case "$UNAME_MACHINE:$UNAME_SYSTEM" in | |
1421 | mips:Linux | mips64:Linux) | |
1422 | # If we got here on MIPS GNU/Linux, output extra information. | |
1423 | cat >&2 <<EOF | |
1424 | ||
1425 | NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize | |
1426 | the system type. Please install a C compiler and try again. | |
1427 | EOF | |
1428 | ;; | |
1429 | esac | |
1430 | ||
1430 | 1431 | cat >&2 <<EOF |
1431 | $0: unable to guess system type | |
1432 | 1432 | |
1433 | 1433 | This script (version $timestamp), has failed to recognize the |
1434 | 1434 | operating system you are using. If your script is old, overwrite *all* |
1435 | 1435 | copies of config.guess and config.sub with the latest versions from: |
1436 | 1436 | |
1437 | http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess | |
1437 | https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess | |
1438 | 1438 | and |
1439 | http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub | |
1439 | https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub | |
1440 | 1440 | |
1441 | 1441 | If $0 has already been updated, send the following data and any |
1442 | 1442 | information you think might be pertinent to config-patches@gnu.org to |
1459 | 1459 | /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` |
1460 | 1460 | /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` |
1461 | 1461 | |
1462 | UNAME_MACHINE = ${UNAME_MACHINE} | |
1463 | UNAME_RELEASE = ${UNAME_RELEASE} | |
1464 | UNAME_SYSTEM = ${UNAME_SYSTEM} | |
1465 | UNAME_VERSION = ${UNAME_VERSION} | |
1462 | UNAME_MACHINE = "$UNAME_MACHINE" | |
1463 | UNAME_RELEASE = "$UNAME_RELEASE" | |
1464 | UNAME_SYSTEM = "$UNAME_SYSTEM" | |
1465 | UNAME_VERSION = "$UNAME_VERSION" | |
1466 | 1466 | EOF |
1467 | 1467 | |
1468 | 1468 | exit 1 |
1469 | 1469 | |
1470 | 1470 | # Local variables: |
1471 | # eval: (add-hook 'write-file-hooks 'time-stamp) | |
1471 | # eval: (add-hook 'before-save-hook 'time-stamp) | |
1472 | 1472 | # time-stamp-start: "timestamp='" |
1473 | 1473 | # time-stamp-format: "%:y-%02m-%02d" |
1474 | 1474 | # time-stamp-end: "'" |
0 | #!/bin/sh | |
0 | #! /bin/sh | |
1 | 1 | # Configuration validation subroutine script. |
2 | # Copyright 1992-2017 Free Software Foundation, Inc. | |
3 | ||
4 | timestamp='2017-04-02' | |
2 | # Copyright 1992-2018 Free Software Foundation, Inc. | |
3 | ||
4 | timestamp='2018-05-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 |
14 | 14 | # General Public License for more details. |
15 | 15 | # |
16 | 16 | # You should have received a copy of the GNU General Public License |
17 | # along with this program; if not, see <http://www.gnu.org/licenses/>. | |
17 | # along with this program; if not, see <https://www.gnu.org/licenses/>. | |
18 | 18 | # |
19 | 19 | # As a special exception to the GNU General Public License, if you |
20 | 20 | # distribute this file as part of a program that contains a |
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 | |
35 | # https://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 |
56 | 56 | |
57 | 57 | Canonicalize a configuration name. |
58 | 58 | |
59 | Operation modes: | |
59 | Options: | |
60 | 60 | -h, --help print this help, then exit |
61 | 61 | -t, --time-stamp print date of last modification, then exit |
62 | 62 | -v, --version print version number, then exit |
66 | 66 | version="\ |
67 | 67 | GNU config.sub ($timestamp) |
68 | 68 | |
69 | Copyright 1992-2017 Free Software Foundation, Inc. | |
69 | Copyright 1992-2018 Free Software Foundation, Inc. | |
70 | 70 | |
71 | 71 | This is free software; see the source for copying conditions. There is NO |
72 | 72 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
93 | 93 | |
94 | 94 | *local*) |
95 | 95 | # First pass through any local machine types. |
96 | echo $1 | |
96 | echo "$1" | |
97 | 97 | exit ;; |
98 | 98 | |
99 | 99 | * ) |
109 | 109 | exit 1;; |
110 | 110 | esac |
111 | 111 | |
112 | # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). | |
113 | # Here we must recognize all the valid KERNEL-OS combinations. | |
114 | maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` | |
115 | case $maybe_os in | |
116 | nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ | |
117 | linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ | |
118 | knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ | |
119 | kopensolaris*-gnu* | cloudabi*-eabi* | \ | |
120 | storm-chaos* | os2-emx* | rtmk-nova*) | |
121 | os=-$maybe_os | |
122 | basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` | |
123 | ;; | |
124 | android-linux) | |
125 | os=-linux-android | |
126 | basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown | |
127 | ;; | |
128 | *) | |
129 | basic_machine=`echo $1 | sed 's/-[^-]*$//'` | |
130 | if [ $basic_machine != $1 ] | |
131 | then os=`echo $1 | sed 's/.*-/-/'` | |
132 | else os=; fi | |
133 | ;; | |
112 | # Spilt fields of configuration type | |
113 | IFS="-" read -r field1 field2 field3 field4 <<EOF | |
114 | $1 | |
115 | EOF | |
116 | ||
117 | # Separate into logical components for further validation | |
118 | case $1 in | |
119 | *-*-*-*) | |
120 | basic_machine=$field1-$field2 | |
121 | os=-$field3-$field4 | |
122 | ;; | |
123 | *-*-*) | |
124 | # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two | |
125 | # parts | |
126 | maybe_os=$field2-$field3 | |
127 | case $maybe_os in | |
128 | nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ | |
129 | | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ | |
130 | | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | |
131 | | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ | |
132 | | storm-chaos* | os2-emx* | rtmk-nova*) | |
133 | basic_machine=$field1 | |
134 | os=-$maybe_os | |
135 | ;; | |
136 | android-linux) | |
137 | basic_machine=$field1-unknown | |
138 | os=-linux-android | |
139 | ;; | |
140 | *) | |
141 | basic_machine=$field1-$field2 | |
142 | os=-$field3 | |
143 | ;; | |
144 | esac | |
145 | ;; | |
146 | *-*) | |
147 | basic_machine=$field1 | |
148 | os=-$field2 | |
149 | ;; | |
150 | *) | |
151 | basic_machine=$1 | |
152 | os= | |
153 | ;; | |
134 | 154 | esac |
135 | 155 | |
136 | 156 | ### Let's recognize common machines as not being operating systems so |
177 | 197 | ;; |
178 | 198 | -sco6) |
179 | 199 | os=-sco5v6 |
180 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
200 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
181 | 201 | ;; |
182 | 202 | -sco5) |
183 | 203 | os=-sco3.2v5 |
184 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
204 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
185 | 205 | ;; |
186 | 206 | -sco4) |
187 | 207 | os=-sco3.2v4 |
188 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
208 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
189 | 209 | ;; |
190 | 210 | -sco3.2.[4-9]*) |
191 | 211 | os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` |
192 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
212 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
193 | 213 | ;; |
194 | 214 | -sco3.2v[4-9]*) |
195 | 215 | # Don't forget version if it is 3.2v4 or newer. |
196 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
216 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
197 | 217 | ;; |
198 | 218 | -sco5v6*) |
199 | 219 | # Don't forget version if it is 3.2v4 or newer. |
200 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
220 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
201 | 221 | ;; |
202 | 222 | -sco*) |
203 | 223 | os=-sco3.2v2 |
204 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
224 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
205 | 225 | ;; |
206 | 226 | -udk*) |
207 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
227 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
208 | 228 | ;; |
209 | 229 | -isc) |
210 | 230 | os=-isc2.2 |
211 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
231 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
212 | 232 | ;; |
213 | 233 | -clix*) |
214 | 234 | basic_machine=clipper-intergraph |
215 | 235 | ;; |
216 | 236 | -isc*) |
217 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
237 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` | |
218 | 238 | ;; |
219 | 239 | -lynx*178) |
220 | 240 | os=-lynxos178 |
226 | 246 | os=-lynxos |
227 | 247 | ;; |
228 | 248 | -ptx*) |
229 | basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` | |
230 | ;; | |
231 | -windowsnt*) | |
232 | os=`echo $os | sed -e 's/windowsnt/winnt/'` | |
249 | basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` | |
233 | 250 | ;; |
234 | 251 | -psos*) |
235 | 252 | os=-psos |
251 | 268 | | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ |
252 | 269 | | am33_2.0 \ |
253 | 270 | | arc | arceb \ |
254 | | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | |
271 | | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \ | |
255 | 272 | | avr | avr32 \ |
256 | 273 | | ba \ |
257 | 274 | | be32 | be64 \ |
258 | 275 | | bfin \ |
259 | | c4x | c8051 | clipper \ | |
276 | | c4x | c8051 | clipper | csky \ | |
260 | 277 | | d10v | d30v | dlx | dsp16xx \ |
261 | 278 | | e2k | epiphany \ |
262 | 279 | | fido | fr30 | frv | ft32 \ |
295 | 312 | | mt \ |
296 | 313 | | msp430 \ |
297 | 314 | | nds32 | nds32le | nds32be \ |
315 | | nfp \ | |
298 | 316 | | nios | nios2 | nios2eb | nios2el \ |
299 | 317 | | ns16k | ns32k \ |
300 | 318 | | open8 | or1k | or1knd | or32 \ |
301 | | pdp10 | pdp11 | pj | pjl \ | |
319 | | pdp10 | pj | pjl \ | |
302 | 320 | | powerpc | powerpc64 | powerpc64le | powerpcle \ |
303 | 321 | | pru \ |
304 | 322 | | pyramid \ |
315 | 333 | | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ |
316 | 334 | | visium \ |
317 | 335 | | wasm32 \ |
318 | | we32k \ | |
319 | 336 | | x86 | xc16x | xstormy16 | xtensa \ |
320 | 337 | | z8k | z80) |
321 | 338 | basic_machine=$basic_machine-unknown |
336 | 353 | basic_machine=$basic_machine-unknown |
337 | 354 | os=-none |
338 | 355 | ;; |
339 | m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) | |
356 | m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) | |
357 | ;; | |
358 | m9s12z | m68hcs12z | hcs12z | s12z) | |
359 | basic_machine=s12z-unknown | |
360 | os=-none | |
340 | 361 | ;; |
341 | 362 | ms1) |
342 | 363 | basic_machine=mt-unknown |
365 | 386 | ;; |
366 | 387 | # Object if more than one company name word. |
367 | 388 | *-*-*) |
368 | echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 | |
389 | echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 | |
369 | 390 | exit 1 |
370 | 391 | ;; |
371 | 392 | # Recognize the basic CPU types with company name. |
381 | 402 | | be32-* | be64-* \ |
382 | 403 | | bfin-* | bs2000-* \ |
383 | 404 | | c[123]* | c30-* | [cjt]90-* | c4x-* \ |
384 | | c8051-* | clipper-* | craynv-* | cydra-* \ | |
405 | | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \ | |
385 | 406 | | d10v-* | d30v-* | dlx-* \ |
386 | 407 | | e2k-* | elxsi-* \ |
387 | 408 | | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ |
422 | 443 | | mt-* \ |
423 | 444 | | msp430-* \ |
424 | 445 | | nds32-* | nds32le-* | nds32be-* \ |
446 | | nfp-* \ | |
425 | 447 | | nios-* | nios2-* | nios2eb-* | nios2el-* \ |
426 | 448 | | none-* | np1-* | ns16k-* | ns32k-* \ |
427 | 449 | | open8-* \ |
460 | 482 | # Recognize the various machine names and aliases which stand |
461 | 483 | # for a CPU type and a company and sometimes even an OS. |
462 | 484 | 386bsd) |
463 | basic_machine=i386-unknown | |
485 | basic_machine=i386-pc | |
464 | 486 | os=-bsd |
465 | 487 | ;; |
466 | 488 | 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) |
494 | 516 | basic_machine=x86_64-pc |
495 | 517 | ;; |
496 | 518 | amd64-*) |
497 | basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` | |
519 | basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
498 | 520 | ;; |
499 | 521 | amdahl) |
500 | 522 | basic_machine=580-amdahl |
539 | 561 | os=-linux |
540 | 562 | ;; |
541 | 563 | blackfin-*) |
542 | basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` | |
564 | basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
543 | 565 | os=-linux |
544 | 566 | ;; |
545 | 567 | bluegene*) |
547 | 569 | os=-cnk |
548 | 570 | ;; |
549 | 571 | c54x-*) |
550 | basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` | |
572 | basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
551 | 573 | ;; |
552 | 574 | c55x-*) |
553 | basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` | |
575 | basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
554 | 576 | ;; |
555 | 577 | c6x-*) |
556 | basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` | |
578 | basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
557 | 579 | ;; |
558 | 580 | c90) |
559 | 581 | basic_machine=c90-cray |
642 | 664 | basic_machine=rs6000-bull |
643 | 665 | os=-bosx |
644 | 666 | ;; |
645 | dpx2* | dpx2*-bull) | |
667 | dpx2*) | |
646 | 668 | basic_machine=m68k-bull |
647 | 669 | os=-sysv3 |
648 | 670 | ;; |
651 | 673 | os=$os"spe" |
652 | 674 | ;; |
653 | 675 | e500v[12]-*) |
654 | basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` | |
676 | basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
655 | 677 | os=$os"spe" |
656 | 678 | ;; |
657 | 679 | ebmon29k) |
743 | 765 | hp9k8[0-9][0-9] | hp8[0-9][0-9]) |
744 | 766 | basic_machine=hppa1.0-hp |
745 | 767 | ;; |
746 | hppa-next) | |
747 | os=-nextstep3 | |
748 | ;; | |
749 | 768 | hppaosf) |
750 | 769 | basic_machine=hppa1.1-hp |
751 | 770 | os=-osf |
758 | 777 | basic_machine=i370-ibm |
759 | 778 | ;; |
760 | 779 | i*86v32) |
761 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | |
780 | basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` | |
762 | 781 | os=-sysv32 |
763 | 782 | ;; |
764 | 783 | i*86v4*) |
765 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | |
784 | basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` | |
766 | 785 | os=-sysv4 |
767 | 786 | ;; |
768 | 787 | i*86v) |
769 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | |
788 | basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` | |
770 | 789 | os=-sysv |
771 | 790 | ;; |
772 | 791 | i*86sol2) |
773 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | |
792 | basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` | |
774 | 793 | os=-solaris2 |
775 | 794 | ;; |
776 | 795 | i386mach) |
777 | 796 | basic_machine=i386-mach |
778 | 797 | os=-mach |
779 | 798 | ;; |
780 | i386-vsta | vsta) | |
799 | vsta) | |
781 | 800 | basic_machine=i386-unknown |
782 | 801 | os=-vsta |
783 | 802 | ;; |
796 | 815 | os=-sysv |
797 | 816 | ;; |
798 | 817 | leon-*|leon[3-9]-*) |
799 | basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` | |
818 | basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` | |
800 | 819 | ;; |
801 | 820 | m68knommu) |
802 | 821 | basic_machine=m68k-unknown |
803 | 822 | os=-linux |
804 | 823 | ;; |
805 | 824 | m68knommu-*) |
806 | basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` | |
825 | basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
807 | 826 | os=-linux |
808 | ;; | |
809 | m88k-omron*) | |
810 | basic_machine=m88k-omron | |
811 | 827 | ;; |
812 | 828 | magnum | m3230) |
813 | 829 | basic_machine=mips-mips |
840 | 856 | os=-mint |
841 | 857 | ;; |
842 | 858 | mips3*-*) |
843 | basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` | |
859 | basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` | |
844 | 860 | ;; |
845 | 861 | mips3*) |
846 | basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown | |
862 | basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown | |
847 | 863 | ;; |
848 | 864 | monitor) |
849 | 865 | basic_machine=m68k-rom68k |
862 | 878 | os=-msdos |
863 | 879 | ;; |
864 | 880 | ms1-*) |
865 | basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` | |
881 | basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` | |
866 | 882 | ;; |
867 | 883 | msys) |
868 | 884 | basic_machine=i686-pc |
904 | 920 | basic_machine=v70-nec |
905 | 921 | os=-sysv |
906 | 922 | ;; |
907 | next | m*-next ) | |
923 | next | m*-next) | |
908 | 924 | basic_machine=m68k-next |
909 | 925 | case $os in |
910 | 926 | -nextstep* ) |
949 | 965 | nsr-tandem) |
950 | 966 | basic_machine=nsr-tandem |
951 | 967 | ;; |
968 | nsv-tandem) | |
969 | basic_machine=nsv-tandem | |
970 | ;; | |
952 | 971 | nsx-tandem) |
953 | 972 | basic_machine=nsx-tandem |
954 | 973 | ;; |
984 | 1003 | os=-linux |
985 | 1004 | ;; |
986 | 1005 | parisc-*) |
987 | basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1006 | basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
988 | 1007 | os=-linux |
989 | 1008 | ;; |
990 | 1009 | pbd) |
1000 | 1019 | basic_machine=i386-pc |
1001 | 1020 | ;; |
1002 | 1021 | pc98-*) |
1003 | basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1022 | basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1004 | 1023 | ;; |
1005 | 1024 | pentium | p5 | k5 | k6 | nexgen | viac3) |
1006 | 1025 | basic_machine=i586-pc |
1015 | 1034 | basic_machine=i786-pc |
1016 | 1035 | ;; |
1017 | 1036 | pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) |
1018 | basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1037 | basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1019 | 1038 | ;; |
1020 | 1039 | pentiumpro-* | p6-* | 6x86-* | athlon-*) |
1021 | basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1040 | basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1022 | 1041 | ;; |
1023 | 1042 | pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) |
1024 | basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1043 | basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1025 | 1044 | ;; |
1026 | 1045 | pentium4-*) |
1027 | basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1046 | basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1028 | 1047 | ;; |
1029 | 1048 | pn) |
1030 | 1049 | basic_machine=pn-gould |
1034 | 1053 | ppc | ppcbe) basic_machine=powerpc-unknown |
1035 | 1054 | ;; |
1036 | 1055 | ppc-* | ppcbe-*) |
1037 | basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1056 | basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1038 | 1057 | ;; |
1039 | 1058 | ppcle | powerpclittle) |
1040 | 1059 | basic_machine=powerpcle-unknown |
1041 | 1060 | ;; |
1042 | 1061 | ppcle-* | powerpclittle-*) |
1043 | basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1062 | basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1044 | 1063 | ;; |
1045 | 1064 | ppc64) basic_machine=powerpc64-unknown |
1046 | 1065 | ;; |
1047 | ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1066 | ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1048 | 1067 | ;; |
1049 | 1068 | ppc64le | powerpc64little) |
1050 | 1069 | basic_machine=powerpc64le-unknown |
1051 | 1070 | ;; |
1052 | 1071 | ppc64le-* | powerpc64little-*) |
1053 | basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1072 | basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1054 | 1073 | ;; |
1055 | 1074 | ps2) |
1056 | 1075 | basic_machine=i386-ibm |
1104 | 1123 | sequent) |
1105 | 1124 | basic_machine=i386-sequent |
1106 | 1125 | ;; |
1107 | sh) | |
1108 | basic_machine=sh-hitachi | |
1109 | os=-hms | |
1110 | ;; | |
1111 | 1126 | sh5el) |
1112 | 1127 | basic_machine=sh5le-unknown |
1113 | 1128 | ;; |
1114 | sh64) | |
1115 | basic_machine=sh64-unknown | |
1116 | ;; | |
1117 | sparclite-wrs | simso-wrs) | |
1129 | simso-wrs) | |
1118 | 1130 | basic_machine=sparclite-wrs |
1119 | 1131 | os=-vxworks |
1120 | 1132 | ;; |
1133 | 1145 | os=-sysv4 |
1134 | 1146 | ;; |
1135 | 1147 | strongarm-* | thumb-*) |
1136 | basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` | |
1148 | basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` | |
1137 | 1149 | ;; |
1138 | 1150 | sun2) |
1139 | 1151 | basic_machine=m68000-sun |
1247 | 1259 | basic_machine=a29k-wrs |
1248 | 1260 | os=-vxworks |
1249 | 1261 | ;; |
1250 | wasm32) | |
1251 | basic_machine=wasm32-unknown | |
1252 | ;; | |
1253 | 1262 | w65*) |
1254 | 1263 | basic_machine=w65-wdc |
1255 | 1264 | os=-none |
1258 | 1267 | basic_machine=hppa1.1-winbond |
1259 | 1268 | os=-proelf |
1260 | 1269 | ;; |
1270 | x64) | |
1271 | basic_machine=x86_64-pc | |
1272 | ;; | |
1261 | 1273 | xbox) |
1262 | 1274 | basic_machine=i686-pc |
1263 | 1275 | os=-mingw32 |
1266 | 1278 | basic_machine=xps100-honeywell |
1267 | 1279 | ;; |
1268 | 1280 | xscale-* | xscalee[bl]-*) |
1269 | basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` | |
1281 | basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` | |
1270 | 1282 | ;; |
1271 | 1283 | ymp) |
1272 | 1284 | basic_machine=ymp-cray |
1273 | 1285 | os=-unicos |
1274 | ;; | |
1275 | z8k-*-coff) | |
1276 | basic_machine=z8k-unknown | |
1277 | os=-sim | |
1278 | ;; | |
1279 | z80-*-coff) | |
1280 | basic_machine=z80-unknown | |
1281 | os=-sim | |
1282 | 1286 | ;; |
1283 | 1287 | none) |
1284 | 1288 | basic_machine=none-none |
1308 | 1312 | vax) |
1309 | 1313 | basic_machine=vax-dec |
1310 | 1314 | ;; |
1311 | pdp10) | |
1312 | # there are many clones, so DEC is not a safe bet | |
1313 | basic_machine=pdp10-unknown | |
1314 | ;; | |
1315 | 1315 | pdp11) |
1316 | 1316 | basic_machine=pdp11-dec |
1317 | 1317 | ;; |
1321 | 1321 | sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) |
1322 | 1322 | basic_machine=sh-unknown |
1323 | 1323 | ;; |
1324 | sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) | |
1325 | basic_machine=sparc-sun | |
1326 | ;; | |
1327 | 1324 | cydra) |
1328 | 1325 | basic_machine=cydra-cydrome |
1329 | 1326 | ;; |
1343 | 1340 | # Make sure to match an already-canonicalized machine name. |
1344 | 1341 | ;; |
1345 | 1342 | *) |
1346 | echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 | |
1343 | echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 | |
1347 | 1344 | exit 1 |
1348 | 1345 | ;; |
1349 | 1346 | esac |
1351 | 1348 | # Here we canonicalize certain aliases for manufacturers. |
1352 | 1349 | case $basic_machine in |
1353 | 1350 | *-digital*) |
1354 | basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` | |
1351 | basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` | |
1355 | 1352 | ;; |
1356 | 1353 | *-commodore*) |
1357 | basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` | |
1354 | basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` | |
1358 | 1355 | ;; |
1359 | 1356 | *) |
1360 | 1357 | ;; |
1362 | 1359 | |
1363 | 1360 | # Decode manufacturer-specific aliases for certain operating systems. |
1364 | 1361 | |
1365 | if [ x"$os" != x"" ] | |
1362 | if [ x$os != x ] | |
1366 | 1363 | then |
1367 | 1364 | case $os in |
1368 | # First match some system type aliases | |
1369 | # that might get confused with valid system types. | |
1365 | # First match some system type aliases that might get confused | |
1366 | # with valid system types. | |
1370 | 1367 | # -solaris* is a basic system type, with this one exception. |
1371 | 1368 | -auroraux) |
1372 | 1369 | os=-auroraux |
1377 | 1374 | -solaris) |
1378 | 1375 | os=-solaris2 |
1379 | 1376 | ;; |
1380 | -svr4*) | |
1381 | os=-sysv4 | |
1382 | ;; | |
1383 | 1377 | -unixware*) |
1384 | 1378 | os=-sysv4.2uw |
1385 | 1379 | ;; |
1386 | 1380 | -gnu/linux*) |
1387 | 1381 | os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` |
1388 | 1382 | ;; |
1389 | # First accept the basic system types. | |
1383 | # es1800 is here to avoid being matched by es* (a different OS) | |
1384 | -es1800*) | |
1385 | os=-ose | |
1386 | ;; | |
1387 | # Now accept the basic system types. | |
1390 | 1388 | # The portable systems comes first. |
1391 | # Each alternative MUST END IN A *, to match a version number. | |
1389 | # Each alternative MUST end in a * to match a version number. | |
1392 | 1390 | # -sysv* is not here because it comes later, after sysvr4. |
1393 | 1391 | -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ |
1394 | 1392 | | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ |
1398 | 1396 | | -aos* | -aros* | -cloudabi* | -sortix* \ |
1399 | 1397 | | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ |
1400 | 1398 | | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ |
1401 | | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | |
1399 | | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ | |
1402 | 1400 | | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ |
1403 | 1401 | | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ |
1404 | 1402 | | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ |
1405 | 1403 | | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ |
1406 | | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | |
1404 | | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ | |
1407 | 1405 | | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ |
1408 | 1406 | | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ |
1409 | 1407 | | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ |
1410 | 1408 | | -linux-newlib* | -linux-musl* | -linux-uclibc* \ |
1411 | 1409 | | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ |
1412 | | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | |
1410 | | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | |
1413 | 1411 | | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ |
1414 | 1412 | | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ |
1415 | 1413 | | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ |
1416 | | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | |
1414 | | -morphos* | -superux* | -rtmk* | -windiss* \ | |
1417 | 1415 | | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ |
1418 | 1416 | | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ |
1419 | | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) | |
1417 | | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ | |
1418 | | -midnightbsd*) | |
1420 | 1419 | # Remember, each alternative MUST END IN *, to match a version number. |
1421 | 1420 | ;; |
1422 | 1421 | -qnx*) |
1433 | 1432 | -nto*) |
1434 | 1433 | os=`echo $os | sed -e 's|nto|nto-qnx|'` |
1435 | 1434 | ;; |
1436 | -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | |
1437 | | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | |
1435 | -sim | -xray | -os68k* | -v88r* \ | |
1436 | | -windows* | -osx | -abug | -netware* | -os9* \ | |
1438 | 1437 | | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) |
1439 | 1438 | ;; |
1440 | 1439 | -mac*) |
1441 | os=`echo $os | sed -e 's|mac|macos|'` | |
1440 | os=`echo "$os" | sed -e 's|mac|macos|'` | |
1442 | 1441 | ;; |
1443 | 1442 | -linux-dietlibc) |
1444 | 1443 | os=-linux-dietlibc |
1447 | 1446 | os=`echo $os | sed -e 's|linux|linux-gnu|'` |
1448 | 1447 | ;; |
1449 | 1448 | -sunos5*) |
1450 | os=`echo $os | sed -e 's|sunos5|solaris2|'` | |
1449 | os=`echo "$os" | sed -e 's|sunos5|solaris2|'` | |
1451 | 1450 | ;; |
1452 | 1451 | -sunos6*) |
1453 | os=`echo $os | sed -e 's|sunos6|solaris3|'` | |
1452 | os=`echo "$os" | sed -e 's|sunos6|solaris3|'` | |
1454 | 1453 | ;; |
1455 | 1454 | -opened*) |
1456 | 1455 | os=-openedition |
1461 | 1460 | -wince*) |
1462 | 1461 | os=-wince |
1463 | 1462 | ;; |
1464 | -osfrose*) | |
1465 | os=-osfrose | |
1466 | ;; | |
1467 | -osf*) | |
1468 | os=-osf | |
1469 | ;; | |
1470 | 1463 | -utek*) |
1471 | 1464 | os=-bsd |
1472 | 1465 | ;; |
1491 | 1484 | -nova*) |
1492 | 1485 | os=-rtmk-nova |
1493 | 1486 | ;; |
1494 | -ns2 ) | |
1487 | -ns2) | |
1495 | 1488 | os=-nextstep2 |
1496 | 1489 | ;; |
1497 | 1490 | -nsk*) |
1513 | 1506 | -oss*) |
1514 | 1507 | os=-sysv3 |
1515 | 1508 | ;; |
1516 | -svr4) | |
1509 | -svr4*) | |
1517 | 1510 | os=-sysv4 |
1518 | 1511 | ;; |
1519 | 1512 | -svr3) |
1528 | 1521 | -ose*) |
1529 | 1522 | os=-ose |
1530 | 1523 | ;; |
1531 | -es1800*) | |
1532 | os=-ose | |
1533 | ;; | |
1534 | -xenix) | |
1535 | os=-xenix | |
1536 | ;; | |
1537 | 1524 | -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) |
1538 | 1525 | os=-mint |
1539 | 1526 | ;; |
1540 | -aros*) | |
1541 | os=-aros | |
1542 | ;; | |
1543 | 1527 | -zvmoe) |
1544 | 1528 | os=-zvmoe |
1545 | 1529 | ;; |
1546 | 1530 | -dicos*) |
1547 | 1531 | os=-dicos |
1548 | 1532 | ;; |
1533 | -pikeos*) | |
1534 | # Until real need of OS specific support for | |
1535 | # particular features comes up, bare metal | |
1536 | # configurations are quite functional. | |
1537 | case $basic_machine in | |
1538 | arm*) | |
1539 | os=-eabi | |
1540 | ;; | |
1541 | *) | |
1542 | os=-elf | |
1543 | ;; | |
1544 | esac | |
1545 | ;; | |
1549 | 1546 | -nacl*) |
1550 | 1547 | ;; |
1551 | 1548 | -ios) |
1552 | 1549 | ;; |
1553 | 1550 | -none) |
1551 | ;; | |
1552 | -*-eabi) | |
1553 | case $basic_machine in | |
1554 | arm*) | |
1555 | ;; | |
1556 | esac | |
1554 | 1557 | ;; |
1555 | 1558 | *) |
1556 | 1559 | # Get rid of the `-' at the beginning of $os. |
1557 | 1560 | os=`echo $os | sed 's/[^-]*-//'` |
1558 | echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 | |
1561 | echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 | |
1559 | 1562 | exit 1 |
1560 | 1563 | ;; |
1561 | 1564 | esac |
1651 | 1654 | *-be) |
1652 | 1655 | os=-beos |
1653 | 1656 | ;; |
1654 | *-haiku) | |
1655 | os=-haiku | |
1656 | ;; | |
1657 | 1657 | *-ibm) |
1658 | 1658 | os=-aix |
1659 | 1659 | ;; |
1693 | 1693 | m88k-omron*) |
1694 | 1694 | os=-luna |
1695 | 1695 | ;; |
1696 | *-next ) | |
1696 | *-next) | |
1697 | 1697 | os=-nextstep |
1698 | 1698 | ;; |
1699 | 1699 | *-sequent) |
1707 | 1707 | ;; |
1708 | 1708 | i370-*) |
1709 | 1709 | os=-mvs |
1710 | ;; | |
1711 | *-next) | |
1712 | os=-nextstep3 | |
1713 | 1710 | ;; |
1714 | 1711 | *-gould) |
1715 | 1712 | os=-sysv |
1820 | 1817 | vendor=stratus |
1821 | 1818 | ;; |
1822 | 1819 | esac |
1823 | basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` | |
1820 | basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` | |
1824 | 1821 | ;; |
1825 | 1822 | esac |
1826 | 1823 | |
1827 | echo $basic_machine$os | |
1824 | echo "$basic_machine$os" | |
1828 | 1825 | exit |
1829 | 1826 | |
1830 | 1827 | # Local variables: |
1831 | # eval: (add-hook 'write-file-hooks 'time-stamp) | |
1828 | # eval: (add-hook 'before-save-hook 'time-stamp) | |
1832 | 1829 | # time-stamp-start: "timestamp='" |
1833 | 1830 | # time-stamp-format: "%:y-%02m-%02d" |
1834 | 1831 | # time-stamp-end: "'" |
0 | #!/bin/sh | |
0 | #! /bin/sh | |
1 | 1 | # depcomp - compile a program generating dependencies as side-effects |
2 | 2 | |
3 | scriptversion=2016-01-11.22; # UTC | |
4 | ||
5 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
3 | scriptversion=2018-03-07.03; # UTC | |
4 | ||
5 | # Copyright (C) 1999-2018 Free Software Foundation, Inc. | |
6 | 6 | |
7 | 7 | # This program is free software; you can redistribute it and/or modify |
8 | 8 | # it under the terms of the GNU General Public License as published by |
15 | 15 | # GNU General Public License for more details. |
16 | 16 | |
17 | 17 | # You should have received a copy of the GNU General Public License |
18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
18 | # along with this program. If not, see <https://www.gnu.org/licenses/>. | |
19 | 19 | |
20 | 20 | # As a special exception to the GNU General Public License, if you |
21 | 21 | # distribute this file as part of a program that contains a |
782 | 782 | # Local Variables: |
783 | 783 | # mode: shell-script |
784 | 784 | # sh-indentation: 2 |
785 | # eval: (add-hook 'write-file-hooks 'time-stamp) | |
785 | # eval: (add-hook 'before-save-hook 'time-stamp) | |
786 | 786 | # time-stamp-start: "scriptversion=" |
787 | 787 | # time-stamp-format: "%:y-%02m-%02d.%02H" |
788 | 788 | # time-stamp-time-zone: "UTC0" |
0 | 0 | #!/bin/sh |
1 | 1 | # install - install a program, script, or datafile |
2 | 2 | |
3 | scriptversion=2016-01-11.22; # UTC | |
3 | scriptversion=2018-03-11.20; # UTC | |
4 | 4 | |
5 | 5 | # This originates from X11R5 (mit/util/scripts/install.sh), which was |
6 | 6 | # later released in X11R6 (xc/config/util/install.sh) with the |
270 | 270 | fi |
271 | 271 | dst=$dst_arg |
272 | 272 | |
273 | # If destination is a directory, append the input filename; won't work | |
274 | # if double slashes aren't ignored. | |
273 | # If destination is a directory, append the input filename. | |
275 | 274 | if test -d "$dst"; then |
276 | 275 | if test "$is_target_a_directory" = never; then |
277 | 276 | echo "$0: $dst_arg: Is a directory" >&2 |
278 | 277 | exit 1 |
279 | 278 | fi |
280 | 279 | dstdir=$dst |
281 | dst=$dstdir/`basename "$src"` | |
280 | dstbase=`basename "$src"` | |
281 | case $dst in | |
282 | */) dst=$dst$dstbase;; | |
283 | *) dst=$dst/$dstbase;; | |
284 | esac | |
282 | 285 | dstdir_status=0 |
283 | 286 | else |
284 | 287 | dstdir=`dirname "$dst"` |
286 | 289 | dstdir_status=$? |
287 | 290 | fi |
288 | 291 | fi |
292 | ||
293 | case $dstdir in | |
294 | */) dstdirslash=$dstdir;; | |
295 | *) dstdirslash=$dstdir/;; | |
296 | esac | |
289 | 297 | |
290 | 298 | obsolete_mkdir_used=false |
291 | 299 | |
323 | 331 | # is incompatible with FreeBSD 'install' when (umask & 300) != 0. |
324 | 332 | ;; |
325 | 333 | *) |
334 | # Note that $RANDOM variable is not portable (e.g. dash); Use it | |
335 | # here however when possible just to lower collision chance. | |
326 | 336 | tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ |
327 | trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 | |
328 | ||
337 | ||
338 | trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 | |
339 | ||
340 | # Because "mkdir -p" follows existing symlinks and we likely work | |
341 | # directly in world-writeable /tmp, make sure that the '$tmpdir' | |
342 | # directory is successfully created first before we actually test | |
343 | # 'mkdir -p' feature. | |
329 | 344 | if (umask $mkdir_umask && |
330 | exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 | |
345 | $mkdirprog $mkdir_mode "$tmpdir" && | |
346 | exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 | |
331 | 347 | then |
332 | 348 | if test -z "$dir_arg" || { |
333 | 349 | # Check for POSIX incompatibilities with -m. |
334 | 350 | # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or |
335 | 351 | # other-writable bit of parent directory when it shouldn't. |
336 | 352 | # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. |
337 | ls_ld_tmpdir=`ls -ld "$tmpdir"` | |
353 | test_tmpdir="$tmpdir/a" | |
354 | ls_ld_tmpdir=`ls -ld "$test_tmpdir"` | |
338 | 355 | case $ls_ld_tmpdir in |
339 | 356 | d????-?r-*) different_mode=700;; |
340 | 357 | d????-?--*) different_mode=755;; |
341 | 358 | *) false;; |
342 | 359 | esac && |
343 | $mkdirprog -m$different_mode -p -- "$tmpdir" && { | |
344 | ls_ld_tmpdir_1=`ls -ld "$tmpdir"` | |
360 | $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { | |
361 | ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` | |
345 | 362 | test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" |
346 | 363 | } |
347 | 364 | } |
348 | 365 | then posix_mkdir=: |
349 | 366 | fi |
350 | rmdir "$tmpdir/d" "$tmpdir" | |
367 | rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" | |
351 | 368 | else |
352 | 369 | # Remove any dirs left behind by ancient mkdir implementations. |
353 | rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null | |
370 | rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null | |
354 | 371 | fi |
355 | 372 | trap '' 0;; |
356 | 373 | esac;; |
426 | 443 | else |
427 | 444 | |
428 | 445 | # Make a couple of temp file names in the proper directory. |
429 | dsttmp=$dstdir/_inst.$$_ | |
430 | rmtmp=$dstdir/_rm.$$_ | |
446 | dsttmp=${dstdirslash}_inst.$$_ | |
447 | rmtmp=${dstdirslash}_rm.$$_ | |
431 | 448 | |
432 | 449 | # Trap to clean up those temp files at exit. |
433 | 450 | trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 |
492 | 509 | done |
493 | 510 | |
494 | 511 | # Local variables: |
495 | # eval: (add-hook 'write-file-hooks 'time-stamp) | |
512 | # eval: (add-hook 'before-save-hook 'time-stamp) | |
496 | 513 | # time-stamp-start: "scriptversion=" |
497 | 514 | # time-stamp-format: "%:y-%02m-%02d.%02H" |
498 | 515 | # time-stamp-time-zone: "UTC0" |
2123 | 2123 | # a configuration failure hint, and exit. |
2124 | 2124 | func_fatal_configuration () |
2125 | 2125 | { |
2126 | func__fatal_error ${1+"$@"} \ | |
2126 | func_fatal_error ${1+"$@"} \ | |
2127 | 2127 | "See the $PACKAGE documentation for more information." \ |
2128 | 2128 | "Fatal configuration error." |
2129 | 2129 | } |
0 | #!/bin/sh | |
0 | #! /bin/sh | |
1 | 1 | # Common wrapper for a few potentially missing GNU programs. |
2 | 2 | |
3 | scriptversion=2016-01-11.22; # UTC | |
4 | ||
5 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
3 | scriptversion=2018-03-07.03; # UTC | |
4 | ||
5 | # Copyright (C) 1996-2018 Free Software Foundation, Inc. | |
6 | 6 | # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. |
7 | 7 | |
8 | 8 | # This program is free software; you can redistribute it and/or modify |
16 | 16 | # GNU General Public License for more details. |
17 | 17 | |
18 | 18 | # You should have received a copy of the GNU General Public License |
19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
19 | # along with this program. If not, see <https://www.gnu.org/licenses/>. | |
20 | 20 | |
21 | 21 | # As a special exception to the GNU General Public License, if you |
22 | 22 | # distribute this file as part of a program that contains a |
100 | 100 | exit $st |
101 | 101 | fi |
102 | 102 | |
103 | perl_URL=http://www.perl.org/ | |
104 | flex_URL=http://flex.sourceforge.net/ | |
105 | gnu_software_URL=http://www.gnu.org/software | |
103 | perl_URL=https://www.perl.org/ | |
104 | flex_URL=https://github.com/westes/flex | |
105 | gnu_software_URL=https://www.gnu.org/software | |
106 | 106 | |
107 | 107 | program_details () |
108 | 108 | { |
206 | 206 | exit $st |
207 | 207 | |
208 | 208 | # Local variables: |
209 | # eval: (add-hook 'write-file-hooks 'time-stamp) | |
209 | # eval: (add-hook 'before-save-hook 'time-stamp) | |
210 | 210 | # time-stamp-start: "scriptversion=" |
211 | 211 | # time-stamp-format: "%:y-%02m-%02d.%02H" |
212 | 212 | # time-stamp-time-zone: "UTC0" |
0 | #!/bin/sh | |
0 | #! /bin/sh | |
1 | 1 | # test-driver - basic testsuite driver script. |
2 | 2 | |
3 | scriptversion=2016-01-11.22; # UTC | |
3 | scriptversion=2018-03-07.03; # UTC | |
4 | 4 | |
5 | # Copyright (C) 2011-2017 Free Software Foundation, Inc. | |
5 | # Copyright (C) 2011-2018 Free Software Foundation, Inc. | |
6 | 6 | # |
7 | 7 | # This program is free software; you can redistribute it and/or modify |
8 | 8 | # it under the terms of the GNU General Public License as published by |
15 | 15 | # GNU General Public License for more details. |
16 | 16 | # |
17 | 17 | # You should have received a copy of the GNU General Public License |
18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
18 | # along with this program. If not, see <https://www.gnu.org/licenses/>. | |
19 | 19 | |
20 | 20 | # As a special exception to the GNU General Public License, if you |
21 | 21 | # distribute this file as part of a program that contains a |
139 | 139 | # Local Variables: |
140 | 140 | # mode: shell-script |
141 | 141 | # sh-indentation: 2 |
142 | # eval: (add-hook 'write-file-hooks 'time-stamp) | |
142 | # eval: (add-hook 'before-save-hook 'time-stamp) | |
143 | 143 | # time-stamp-start: "scriptversion=" |
144 | 144 | # time-stamp-format: "%:y-%02m-%02d.%02H" |
145 | 145 | # time-stamp-time-zone: "UTC0" |
61 | 61 | /* Define to 1 if you have the `ovirt_api_search_vms' function. */ |
62 | 62 | #undef HAVE_OVIRT_API_SEARCH_VMS |
63 | 63 | |
64 | /* Have rest_proxy_auth_cancel and OVIRT_REST_CALL_ERROR_CANCELLED? */ | |
65 | #undef HAVE_OVIRT_CANCEL | |
66 | ||
67 | 64 | /* Define to 1 if you have the `ovirt_cluster_get_data_center' function. */ |
68 | 65 | #undef HAVE_OVIRT_CLUSTER_GET_DATA_CENTER |
69 | 66 | |
112 | 109 | /* Have virDomainOpenGraphicsFD? */ |
113 | 110 | #undef HAVE_VIR_DOMAIN_OPEN_GRAPHICS_FD |
114 | 111 | |
112 | /* Have vte? */ | |
113 | #undef HAVE_VTE | |
114 | ||
115 | 115 | /* Define to 1 if you have the <windows.h> header file. */ |
116 | 116 | #undef HAVE_WINDOWS_H |
117 | 117 |
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 7.0. | |
2 | # Generated by GNU Autoconf 2.69 for virt-viewer 8.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='7.0' | |
590 | PACKAGE_STRING='virt-viewer 7.0' | |
589 | PACKAGE_VERSION='8.0' | |
590 | PACKAGE_STRING='virt-viewer 8.0' | |
591 | 591 | PACKAGE_BUGREPORT='' |
592 | 592 | PACKAGE_URL='' |
593 | 593 | |
642 | 642 | HAVE_OVIRT_TRUE |
643 | 643 | OVIRT_LIBS |
644 | 644 | OVIRT_CFLAGS |
645 | HAVE_VTE_FALSE | |
646 | HAVE_VTE_TRUE | |
647 | VTE_LIBS | |
648 | VTE_CFLAGS | |
645 | 649 | HAVE_SPICE_GTK_FALSE |
646 | 650 | HAVE_SPICE_GTK_TRUE |
647 | 651 | SPICE_PROTOCOL_LIBS |
749 | 753 | AMDEPBACKSLASH |
750 | 754 | AMDEP_FALSE |
751 | 755 | AMDEP_TRUE |
752 | am__quote | |
753 | 756 | am__include |
754 | 757 | DEPDIR |
755 | 758 | OBJEXT |
762 | 765 | OS_WIN32_FALSE |
763 | 766 | OS_WIN32_TRUE |
764 | 767 | WIXL_ARCH |
768 | REST_REQUIRED | |
765 | 769 | GOVIRT_REQUIRED |
766 | 770 | SPICE_PROTOCOL_REQUIRED |
767 | 771 | SPICE_GTK_REQUIRED |
843 | 847 | PACKAGE_TARNAME |
844 | 848 | PACKAGE_NAME |
845 | 849 | PATH_SEPARATOR |
846 | SHELL' | |
850 | SHELL | |
851 | am__quote' | |
847 | 852 | ac_subst_files='' |
848 | 853 | ac_user_opts=' |
849 | 854 | enable_option_checking |
863 | 868 | with_libvirt |
864 | 869 | with_gtk_vnc |
865 | 870 | with_spice_gtk |
871 | with_vte | |
866 | 872 | with_ovirt |
867 | 873 | with_osid |
868 | 874 | with_buildid |
896 | 902 | SPICE_GTK_LIBS |
897 | 903 | SPICE_PROTOCOL_CFLAGS |
898 | 904 | SPICE_PROTOCOL_LIBS |
905 | VTE_CFLAGS | |
906 | VTE_LIBS | |
899 | 907 | OVIRT_CFLAGS |
900 | 908 | OVIRT_LIBS' |
901 | 909 | |
1438 | 1446 | # Omit some internal or obsolete options to make the list less imposing. |
1439 | 1447 | # This message is too long to be a string in the A/UX 3.1 sh. |
1440 | 1448 | cat <<_ACEOF |
1441 | \`configure' configures virt-viewer 7.0 to adapt to many kinds of systems. | |
1449 | \`configure' configures virt-viewer 8.0 to adapt to many kinds of systems. | |
1442 | 1450 | |
1443 | 1451 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1444 | 1452 | |
1508 | 1516 | |
1509 | 1517 | if test -n "$ac_init_help"; then |
1510 | 1518 | case $ac_init_help in |
1511 | short | recursive ) echo "Configuration of virt-viewer 7.0:";; | |
1519 | short | recursive ) echo "Configuration of virt-viewer 8.0:";; | |
1512 | 1520 | esac |
1513 | 1521 | cat <<\_ACEOF |
1514 | 1522 | |
1548 | 1556 | --without-libvirt Ignore presence of libvirt and disable it |
1549 | 1557 | --without-gtk-vnc Ignore presence of gtk-vnc and disable it |
1550 | 1558 | --without-spice-gtk Ignore presence of spice-gtk and disable it |
1559 | --without-vte Ignore presence of vte and disable it | |
1551 | 1560 | --without-ovirt Ignore presence of librest and disable oVirt support |
1552 | 1561 | --with-osid=id Set OS ID for use in .vv files |
1553 | 1562 | --with-buildid=id Set additional build version details |
1595 | 1604 | C compiler flags for SPICE_PROTOCOL, overriding pkg-config |
1596 | 1605 | SPICE_PROTOCOL_LIBS |
1597 | 1606 | linker flags for SPICE_PROTOCOL, overriding pkg-config |
1607 | VTE_CFLAGS C compiler flags for VTE, overriding pkg-config | |
1608 | VTE_LIBS linker flags for VTE, overriding pkg-config | |
1598 | 1609 | OVIRT_CFLAGS |
1599 | 1610 | C compiler flags for OVIRT, overriding pkg-config |
1600 | 1611 | OVIRT_LIBS linker flags for OVIRT, overriding pkg-config |
1665 | 1676 | test -n "$ac_init_help" && exit $ac_status |
1666 | 1677 | if $ac_init_version; then |
1667 | 1678 | cat <<\_ACEOF |
1668 | virt-viewer configure 7.0 | |
1679 | virt-viewer configure 8.0 | |
1669 | 1680 | generated by GNU Autoconf 2.69 |
1670 | 1681 | |
1671 | 1682 | Copyright (C) 2012 Free Software Foundation, Inc. |
2030 | 2041 | This file contains any messages produced by compilers while |
2031 | 2042 | running configure, to aid debugging if configure makes a mistake. |
2032 | 2043 | |
2033 | It was created by virt-viewer $as_me 7.0, which was | |
2044 | It was created by virt-viewer $as_me 8.0, which was | |
2034 | 2045 | generated by GNU Autoconf 2.69. Invocation command line was |
2035 | 2046 | |
2036 | 2047 | $ $0 $@ |
2411 | 2422 | |
2412 | 2423 | ac_config_headers="$ac_config_headers config.h" |
2413 | 2424 | |
2414 | am__api_version='1.15' | |
2425 | am__api_version='1.16' | |
2415 | 2426 | |
2416 | 2427 | # Find a good install program. We prefer a C program (faster), |
2417 | 2428 | # so one script is as good as another. But avoid the broken or |
2897 | 2908 | |
2898 | 2909 | # Define the identity of the package. |
2899 | 2910 | PACKAGE='virt-viewer' |
2900 | VERSION='7.0' | |
2911 | VERSION='8.0' | |
2901 | 2912 | |
2902 | 2913 | |
2903 | 2914 | cat >>confdefs.h <<_ACEOF |
2927 | 2938 | |
2928 | 2939 | # For better backward compatibility. To be removed once Automake 1.9.x |
2929 | 2940 | # dies out for good. For more background, see: |
2930 | # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> | |
2931 | # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> | |
2941 | # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> | |
2942 | # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> | |
2932 | 2943 | mkdir_p='$(MKDIR_P)' |
2933 | 2944 | |
2934 | 2945 | # We need awk for the "check" target (and possibly the TAP driver). The |
2979 | 2990 | Aborting the configuration process, to ensure you take notice of the issue. |
2980 | 2991 | |
2981 | 2992 | You can download and install GNU coreutils to get an 'rm' implementation |
2982 | that behaves properly: <http://www.gnu.org/software/coreutils/>. | |
2993 | that behaves properly: <https://www.gnu.org/software/coreutils/>. | |
2983 | 2994 | |
2984 | 2995 | If you want to complete the configuration process using your problematic |
2985 | 2996 | 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM |
3105 | 3116 | |
3106 | 3117 | |
3107 | 3118 | # Keep these two definitions in agreement. |
3108 | GLIB2_REQUIRED="2.38" | |
3109 | GLIB2_ENCODED_VERSION="GLIB_VERSION_2_38" | |
3119 | GLIB2_REQUIRED="2.40" | |
3120 | GLIB2_ENCODED_VERSION="GLIB_VERSION_2_40" | |
3110 | 3121 | |
3111 | 3122 | # Keep these two definitions in agreement. |
3112 | 3123 | GTK_REQUIRED="3.12" |
3118 | 3129 | GTK_VNC_REQUIRED="0.4.0" |
3119 | 3130 | SPICE_GTK_REQUIRED="0.35" |
3120 | 3131 | SPICE_PROTOCOL_REQUIRED="0.12.7" |
3121 | GOVIRT_REQUIRED="0.3.2" | |
3132 | GOVIRT_REQUIRED="0.3.3" | |
3133 | REST_REQUIRED="0.8" | |
3134 | ||
3122 | 3135 | |
3123 | 3136 | |
3124 | 3137 | |
4011 | 4024 | |
4012 | 4025 | ac_config_commands="$ac_config_commands depfiles" |
4013 | 4026 | |
4014 | ||
4015 | am_make=${MAKE-make} | |
4016 | cat > confinc << 'END' | |
4027 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 | |
4028 | $as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } | |
4029 | cat > confinc.mk << 'END' | |
4017 | 4030 | am__doit: |
4018 | @echo this is the am__doit target | |
4031 | @echo this is the am__doit target >confinc.out | |
4019 | 4032 | .PHONY: am__doit |
4020 | 4033 | END |
4021 | # If we don't find an include directive, just comment out the code. | |
4022 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 | |
4023 | $as_echo_n "checking for style of include used by $am_make... " >&6; } | |
4024 | 4034 | am__include="#" |
4025 | 4035 | am__quote= |
4026 | _am_result=none | |
4027 | # First try GNU make style include. | |
4028 | echo "include confinc" > confmf | |
4029 | # Ignore all kinds of additional output from 'make'. | |
4030 | case `$am_make -s -f confmf 2> /dev/null` in #( | |
4031 | *the\ am__doit\ target*) | |
4032 | am__include=include | |
4033 | am__quote= | |
4034 | _am_result=GNU | |
4035 | ;; | |
4036 | # BSD make does it like this. | |
4037 | echo '.include "confinc.mk" # ignored' > confmf.BSD | |
4038 | # Other make implementations (GNU, Solaris 10, AIX) do it like this. | |
4039 | echo 'include confinc.mk # ignored' > confmf.GNU | |
4040 | _am_result=no | |
4041 | for s in GNU BSD; do | |
4042 | { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 | |
4043 | (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 | |
4044 | ac_status=$? | |
4045 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
4046 | (exit $ac_status); } | |
4047 | case $?:`cat confinc.out 2>/dev/null` in #( | |
4048 | '0:this is the am__doit target') : | |
4049 | case $s in #( | |
4050 | BSD) : | |
4051 | am__include='.include' am__quote='"' ;; #( | |
4052 | *) : | |
4053 | am__include='include' am__quote='' ;; | |
4054 | esac ;; #( | |
4055 | *) : | |
4056 | ;; | |
4036 | 4057 | esac |
4037 | # Now try BSD make style include. | |
4038 | if test "$am__include" = "#"; then | |
4039 | echo '.include "confinc"' > confmf | |
4040 | case `$am_make -s -f confmf 2> /dev/null` in #( | |
4041 | *the\ am__doit\ target*) | |
4042 | am__include=.include | |
4043 | am__quote="\"" | |
4044 | _am_result=BSD | |
4045 | ;; | |
4046 | esac | |
4047 | fi | |
4048 | ||
4049 | ||
4050 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 | |
4051 | $as_echo "$_am_result" >&6; } | |
4052 | rm -f confinc confmf | |
4058 | if test "$am__include" != "#"; then | |
4059 | _am_result="yes ($s style)" | |
4060 | break | |
4061 | fi | |
4062 | done | |
4063 | rm -f confinc.* confmf.* | |
4064 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 | |
4065 | $as_echo "${_am_result}" >&6; } | |
4053 | 4066 | |
4054 | 4067 | # Check whether --enable-dependency-tracking was given. |
4055 | 4068 | if test "${enable_dependency_tracking+set}" = set; then : |
14782 | 14795 | |
14783 | 14796 | |
14784 | 14797 | |
14798 | # Check whether --with-vte was given. | |
14799 | if test "${with_vte+set}" = set; then : | |
14800 | withval=$with_vte; | |
14801 | fi | |
14802 | ||
14803 | ||
14804 | if test "x$with_vte" != "xno" && test "x$with_vte" != "xyes"; then : | |
14805 | if test -n "$PKG_CONFIG" && \ | |
14806 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"vte-2.91\""; } >&5 | |
14807 | ($PKG_CONFIG --exists --print-errors "vte-2.91") 2>&5 | |
14808 | ac_status=$? | |
14809 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | |
14810 | test $ac_status = 0; }; then | |
14811 | with_vte=yes | |
14812 | else | |
14813 | with_vte=no | |
14814 | fi | |
14815 | fi | |
14816 | ||
14817 | if test "x$with_vte" = "xyes"; then : | |
14818 | ||
14819 | pkg_failed=no | |
14820 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for VTE" >&5 | |
14821 | $as_echo_n "checking for VTE... " >&6; } | |
14822 | ||
14823 | if test -n "$VTE_CFLAGS"; then | |
14824 | pkg_cv_VTE_CFLAGS="$VTE_CFLAGS" | |
14825 | elif test -n "$PKG_CONFIG"; then | |
14826 | if test -n "$PKG_CONFIG" && \ | |
14827 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"vte-2.91\""; } >&5 | |
14828 | ($PKG_CONFIG --exists --print-errors "vte-2.91") 2>&5 | |
14829 | ac_status=$? | |
14830 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | |
14831 | test $ac_status = 0; }; then | |
14832 | pkg_cv_VTE_CFLAGS=`$PKG_CONFIG --cflags "vte-2.91" 2>/dev/null` | |
14833 | test "x$?" != "x0" && pkg_failed=yes | |
14834 | else | |
14835 | pkg_failed=yes | |
14836 | fi | |
14837 | else | |
14838 | pkg_failed=untried | |
14839 | fi | |
14840 | if test -n "$VTE_LIBS"; then | |
14841 | pkg_cv_VTE_LIBS="$VTE_LIBS" | |
14842 | elif test -n "$PKG_CONFIG"; then | |
14843 | if test -n "$PKG_CONFIG" && \ | |
14844 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"vte-2.91\""; } >&5 | |
14845 | ($PKG_CONFIG --exists --print-errors "vte-2.91") 2>&5 | |
14846 | ac_status=$? | |
14847 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | |
14848 | test $ac_status = 0; }; then | |
14849 | pkg_cv_VTE_LIBS=`$PKG_CONFIG --libs "vte-2.91" 2>/dev/null` | |
14850 | test "x$?" != "x0" && pkg_failed=yes | |
14851 | else | |
14852 | pkg_failed=yes | |
14853 | fi | |
14854 | else | |
14855 | pkg_failed=untried | |
14856 | fi | |
14857 | ||
14858 | ||
14859 | ||
14860 | if test $pkg_failed = yes; then | |
14861 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | |
14862 | $as_echo "no" >&6; } | |
14863 | ||
14864 | if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | |
14865 | _pkg_short_errors_supported=yes | |
14866 | else | |
14867 | _pkg_short_errors_supported=no | |
14868 | fi | |
14869 | if test $_pkg_short_errors_supported = yes; then | |
14870 | VTE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "vte-2.91" 2>&1` | |
14871 | else | |
14872 | VTE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "vte-2.91" 2>&1` | |
14873 | fi | |
14874 | # Put the nasty error message in config.log where it belongs | |
14875 | echo "$VTE_PKG_ERRORS" >&5 | |
14876 | ||
14877 | as_fn_error $? "Package requirements (vte-2.91) were not met: | |
14878 | ||
14879 | $VTE_PKG_ERRORS | |
14880 | ||
14881 | Consider adjusting the PKG_CONFIG_PATH environment variable if you | |
14882 | installed software in a non-standard prefix. | |
14883 | ||
14884 | Alternatively, you may set the environment variables VTE_CFLAGS | |
14885 | and VTE_LIBS to avoid the need to call pkg-config. | |
14886 | See the pkg-config man page for more details." "$LINENO" 5 | |
14887 | elif test $pkg_failed = untried; then | |
14888 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | |
14889 | $as_echo "no" >&6; } | |
14890 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | |
14891 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | |
14892 | as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it | |
14893 | is in your PATH or set the PKG_CONFIG environment variable to the full | |
14894 | path to pkg-config. | |
14895 | ||
14896 | Alternatively, you may set the environment variables VTE_CFLAGS | |
14897 | and VTE_LIBS to avoid the need to call pkg-config. | |
14898 | See the pkg-config man page for more details. | |
14899 | ||
14900 | To get pkg-config, see <http://pkg-config.freedesktop.org/>. | |
14901 | See \`config.log' for more details" "$LINENO" 5; } | |
14902 | else | |
14903 | VTE_CFLAGS=$pkg_cv_VTE_CFLAGS | |
14904 | VTE_LIBS=$pkg_cv_VTE_LIBS | |
14905 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | |
14906 | $as_echo "yes" >&6; } | |
14907 | ||
14908 | fi | |
14909 | ||
14910 | $as_echo "#define HAVE_VTE 1" >>confdefs.h | |
14911 | ||
14912 | ||
14913 | fi | |
14914 | if test "x$with_vte" = "xyes"; then | |
14915 | HAVE_VTE_TRUE= | |
14916 | HAVE_VTE_FALSE='#' | |
14917 | else | |
14918 | HAVE_VTE_TRUE='#' | |
14919 | HAVE_VTE_FALSE= | |
14920 | fi | |
14921 | ||
14922 | ||
14923 | ||
14785 | 14924 | # Check whether --with-ovirt was given. |
14786 | 14925 | if test "${with_ovirt+set}" = set; then : |
14787 | 14926 | withval=$with_ovirt; |
14811 | 14950 | pkg_cv_OVIRT_CFLAGS="$OVIRT_CFLAGS" |
14812 | 14951 | elif test -n "$PKG_CONFIG"; then |
14813 | 14952 | if test -n "$PKG_CONFIG" && \ |
14814 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"govirt-1.0 >= \$GOVIRT_REQUIRED\""; } >&5 | |
14815 | ($PKG_CONFIG --exists --print-errors "govirt-1.0 >= $GOVIRT_REQUIRED") 2>&5 | |
14953 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"govirt-1.0 >= \$GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED\""; } >&5 | |
14954 | ($PKG_CONFIG --exists --print-errors "govirt-1.0 >= $GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED") 2>&5 | |
14816 | 14955 | ac_status=$? |
14817 | 14956 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |
14818 | 14957 | test $ac_status = 0; }; then |
14819 | pkg_cv_OVIRT_CFLAGS=`$PKG_CONFIG --cflags "govirt-1.0 >= $GOVIRT_REQUIRED" 2>/dev/null` | |
14958 | pkg_cv_OVIRT_CFLAGS=`$PKG_CONFIG --cflags "govirt-1.0 >= $GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED" 2>/dev/null` | |
14820 | 14959 | test "x$?" != "x0" && pkg_failed=yes |
14821 | 14960 | else |
14822 | 14961 | pkg_failed=yes |
14828 | 14967 | pkg_cv_OVIRT_LIBS="$OVIRT_LIBS" |
14829 | 14968 | elif test -n "$PKG_CONFIG"; then |
14830 | 14969 | if test -n "$PKG_CONFIG" && \ |
14831 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"govirt-1.0 >= \$GOVIRT_REQUIRED\""; } >&5 | |
14832 | ($PKG_CONFIG --exists --print-errors "govirt-1.0 >= $GOVIRT_REQUIRED") 2>&5 | |
14970 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"govirt-1.0 >= \$GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED\""; } >&5 | |
14971 | ($PKG_CONFIG --exists --print-errors "govirt-1.0 >= $GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED") 2>&5 | |
14833 | 14972 | ac_status=$? |
14834 | 14973 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |
14835 | 14974 | test $ac_status = 0; }; then |
14836 | pkg_cv_OVIRT_LIBS=`$PKG_CONFIG --libs "govirt-1.0 >= $GOVIRT_REQUIRED" 2>/dev/null` | |
14975 | pkg_cv_OVIRT_LIBS=`$PKG_CONFIG --libs "govirt-1.0 >= $GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED" 2>/dev/null` | |
14837 | 14976 | test "x$?" != "x0" && pkg_failed=yes |
14838 | 14977 | else |
14839 | 14978 | pkg_failed=yes |
14854 | 14993 | _pkg_short_errors_supported=no |
14855 | 14994 | fi |
14856 | 14995 | if test $_pkg_short_errors_supported = yes; then |
14857 | OVIRT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "govirt-1.0 >= $GOVIRT_REQUIRED" 2>&1` | |
14996 | OVIRT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "govirt-1.0 >= $GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED" 2>&1` | |
14858 | 14997 | else |
14859 | OVIRT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "govirt-1.0 >= $GOVIRT_REQUIRED" 2>&1` | |
14998 | OVIRT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "govirt-1.0 >= $GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED" 2>&1` | |
14860 | 14999 | fi |
14861 | 15000 | # Put the nasty error message in config.log where it belongs |
14862 | 15001 | echo "$OVIRT_PKG_ERRORS" >&5 |
14863 | 15002 | |
14864 | as_fn_error $? "Package requirements (govirt-1.0 >= $GOVIRT_REQUIRED) were not met: | |
15003 | as_fn_error $? "Package requirements (govirt-1.0 >= $GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED) were not met: | |
14865 | 15004 | |
14866 | 15005 | $OVIRT_PKG_ERRORS |
14867 | 15006 | |
14900 | 15039 | SAVED_LIBS="$LIBS" |
14901 | 15040 | CFLAGS="$OVIRT_CFLAGS" |
14902 | 15041 | LIBS="$OVIRT_LIBS" |
14903 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
14904 | /* end confdefs.h. */ | |
14905 | #include <govirt/govirt.h> | |
14906 | int | |
14907 | main () | |
14908 | { | |
14909 | static int err = OVIRT_REST_CALL_ERROR_CANCELLED; | |
14910 | void *fun = rest_proxy_auth_cancel; | |
14911 | ; | |
14912 | return 0; | |
14913 | } | |
14914 | _ACEOF | |
14915 | if ac_fn_c_try_compile "$LINENO"; then : | |
14916 | ||
14917 | $as_echo "#define HAVE_OVIRT_CANCEL 1" >>confdefs.h | |
14918 | ||
14919 | fi | |
14920 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | |
14921 | 15042 | for ac_func in ovirt_api_search_vms ovirt_vm_get_host ovirt_host_get_cluster ovirt_cluster_get_data_center |
14922 | 15043 | do : |
14923 | 15044 | as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` |
15235 | 15356 | as_fn_error $? "conditional \"HAVE_SPICE_GTK\" was never defined. |
15236 | 15357 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
15237 | 15358 | fi |
15359 | if test -z "${HAVE_VTE_TRUE}" && test -z "${HAVE_VTE_FALSE}"; then | |
15360 | as_fn_error $? "conditional \"HAVE_VTE\" was never defined. | |
15361 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | |
15362 | fi | |
15238 | 15363 | if test -z "${HAVE_OVIRT_TRUE}" && test -z "${HAVE_OVIRT_FALSE}"; then |
15239 | 15364 | as_fn_error $? "conditional \"HAVE_OVIRT\" was never defined. |
15240 | 15365 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
15640 | 15765 | # report actual input values of CONFIG_FILES etc. instead of their |
15641 | 15766 | # values after options handling. |
15642 | 15767 | ac_log=" |
15643 | This file was extended by virt-viewer $as_me 7.0, which was | |
15768 | This file was extended by virt-viewer $as_me 8.0, which was | |
15644 | 15769 | generated by GNU Autoconf 2.69. Invocation command line was |
15645 | 15770 | |
15646 | 15771 | CONFIG_FILES = $CONFIG_FILES |
15710 | 15835 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
15711 | 15836 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
15712 | 15837 | ac_cs_version="\\ |
15713 | virt-viewer config.status 7.0 | |
15838 | virt-viewer config.status 8.0 | |
15714 | 15839 | configured by $0, generated by GNU Autoconf 2.69, |
15715 | 15840 | with options \\"\$ac_cs_config\\" |
15716 | 15841 | |
15829 | 15954 | # |
15830 | 15955 | # INIT-COMMANDS |
15831 | 15956 | # |
15832 | AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" | |
15957 | AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" | |
15833 | 15958 | |
15834 | 15959 | |
15835 | 15960 | # The HP-UX ksh and POSIX shell print the target directory to stdout |
16778 | 16903 | # Older Autoconf quotes --file arguments for eval, but not when files |
16779 | 16904 | # are listed without --file. Let's play safe and only enable the eval |
16780 | 16905 | # if we detect the quoting. |
16781 | case $CONFIG_FILES in | |
16782 | *\'*) eval set x "$CONFIG_FILES" ;; | |
16783 | *) set x $CONFIG_FILES ;; | |
16784 | esac | |
16906 | # TODO: see whether this extra hack can be removed once we start | |
16907 | # requiring Autoconf 2.70 or later. | |
16908 | case $CONFIG_FILES in #( | |
16909 | *\'*) : | |
16910 | eval set x "$CONFIG_FILES" ;; #( | |
16911 | *) : | |
16912 | set x $CONFIG_FILES ;; #( | |
16913 | *) : | |
16914 | ;; | |
16915 | esac | |
16785 | 16916 | shift |
16786 | for mf | |
16917 | # Used to flag and report bootstrapping failures. | |
16918 | am_rc=0 | |
16919 | for am_mf | |
16787 | 16920 | do |
16788 | 16921 | # Strip MF so we end up with the name of the file. |
16789 | mf=`echo "$mf" | sed -e 's/:.*$//'` | |
16790 | # Check whether this is an Automake generated Makefile or not. | |
16791 | # We used to match only the files named 'Makefile.in', but | |
16792 | # some people rename them; so instead we look at the file content. | |
16793 | # Grep'ing the first line is not enough: some people post-process | |
16794 | # each Makefile.in and add a new line on top of each file to say so. | |
16795 | # Grep'ing the whole file is not good either: AIX grep has a line | |
16922 | am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` | |
16923 | # Check whether this is an Automake generated Makefile which includes | |
16924 | # dependency-tracking related rules and includes. | |
16925 | # Grep'ing the whole file directly is not great: AIX grep has a line | |
16796 | 16926 | # limit of 2048, but all sed's we know have understand at least 4000. |
16797 | if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then | |
16798 | dirpart=`$as_dirname -- "$mf" || | |
16799 | $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | |
16800 | X"$mf" : 'X\(//\)[^/]' \| \ | |
16801 | X"$mf" : 'X\(//\)$' \| \ | |
16802 | X"$mf" : 'X\(/\)' \| . 2>/dev/null || | |
16803 | $as_echo X"$mf" | | |
16927 | sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ | |
16928 | || continue | |
16929 | am_dirpart=`$as_dirname -- "$am_mf" || | |
16930 | $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | |
16931 | X"$am_mf" : 'X\(//\)[^/]' \| \ | |
16932 | X"$am_mf" : 'X\(//\)$' \| \ | |
16933 | X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || | |
16934 | $as_echo X"$am_mf" | | |
16804 | 16935 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ |
16805 | 16936 | s//\1/ |
16806 | 16937 | q |
16818 | 16949 | q |
16819 | 16950 | } |
16820 | 16951 | s/.*/./; q'` |
16821 | else | |
16822 | continue | |
16823 | fi | |
16824 | # Extract the definition of DEPDIR, am__include, and am__quote | |
16825 | # from the Makefile without running 'make'. | |
16826 | DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` | |
16827 | test -z "$DEPDIR" && continue | |
16828 | am__include=`sed -n 's/^am__include = //p' < "$mf"` | |
16829 | test -z "$am__include" && continue | |
16830 | am__quote=`sed -n 's/^am__quote = //p' < "$mf"` | |
16831 | # Find all dependency output files, they are included files with | |
16832 | # $(DEPDIR) in their names. We invoke sed twice because it is the | |
16833 | # simplest approach to changing $(DEPDIR) to its actual value in the | |
16834 | # expansion. | |
16835 | for file in `sed -n " | |
16836 | s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ | |
16837 | sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do | |
16838 | # Make sure the directory exists. | |
16839 | test -f "$dirpart/$file" && continue | |
16840 | fdir=`$as_dirname -- "$file" || | |
16841 | $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | |
16842 | X"$file" : 'X\(//\)[^/]' \| \ | |
16843 | X"$file" : 'X\(//\)$' \| \ | |
16844 | X"$file" : 'X\(/\)' \| . 2>/dev/null || | |
16845 | $as_echo X"$file" | | |
16846 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | |
16952 | am_filepart=`$as_basename -- "$am_mf" || | |
16953 | $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ | |
16954 | X"$am_mf" : 'X\(//\)$' \| \ | |
16955 | X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || | |
16956 | $as_echo X/"$am_mf" | | |
16957 | sed '/^.*\/\([^/][^/]*\)\/*$/{ | |
16847 | 16958 | s//\1/ |
16848 | 16959 | q |
16849 | 16960 | } |
16850 | /^X\(\/\/\)[^/].*/{ | |
16961 | /^X\/\(\/\/\)$/{ | |
16851 | 16962 | s//\1/ |
16852 | 16963 | q |
16853 | 16964 | } |
16854 | /^X\(\/\/\)$/{ | |
16855 | s//\1/ | |
16856 | q | |
16857 | } | |
16858 | /^X\(\/\).*/{ | |
16965 | /^X\/\(\/\).*/{ | |
16859 | 16966 | s//\1/ |
16860 | 16967 | q |
16861 | 16968 | } |
16862 | 16969 | s/.*/./; q'` |
16863 | as_dir=$dirpart/$fdir; as_fn_mkdir_p | |
16864 | # echo "creating $dirpart/$file" | |
16865 | echo '# dummy' > "$dirpart/$file" | |
16866 | done | |
16970 | { echo "$as_me:$LINENO: cd "$am_dirpart" \ | |
16971 | && sed -e '/# am--include-marker/d' "$am_filepart" \ | |
16972 | | $MAKE -f - am--depfiles" >&5 | |
16973 | (cd "$am_dirpart" \ | |
16974 | && sed -e '/# am--include-marker/d' "$am_filepart" \ | |
16975 | | $MAKE -f - am--depfiles) >&5 2>&5 | |
16976 | ac_status=$? | |
16977 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
16978 | (exit $ac_status); } || am_rc=$? | |
16867 | 16979 | done |
16980 | if test $am_rc -ne 0; then | |
16981 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | |
16982 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | |
16983 | as_fn_error $? "Something went wrong bootstrapping makefile fragments | |
16984 | for automatic dependency tracking. Try re-running configure with the | |
16985 | '--disable-dependency-tracking' option to at least be able to build | |
16986 | the package (albeit without support for automatic dependency tracking). | |
16987 | See \`config.log' for more details" "$LINENO" 5; } | |
16988 | fi | |
16989 | { am_dirpart=; unset am_dirpart;} | |
16990 | { am_filepart=; unset am_filepart;} | |
16991 | { am_mf=; unset am_mf;} | |
16992 | { am_rc=; unset am_rc;} | |
16993 | rm -f conftest-deps.mk | |
16868 | 16994 | } |
16869 | 16995 | ;; |
16870 | 16996 | "libtool":C) |
17500 | 17626 | $as_echo "$as_me: SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS" >&6;} |
17501 | 17627 | { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 |
17502 | 17628 | $as_echo "$as_me: " >&6;} |
17629 | { $as_echo "$as_me:${as_lineno-$LINENO}: VTE: $VTE_CFLAGS $VTE_LIBS" >&5 | |
17630 | $as_echo "$as_me: VTE: $VTE_CFLAGS $VTE_LIBS" >&6;} | |
17631 | { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 | |
17632 | $as_echo "$as_me: " >&6;} | |
17503 | 17633 | { $as_echo "$as_me:${as_lineno-$LINENO}: LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS" >&5 |
17504 | 17634 | $as_echo "$as_me: LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS" >&6;} |
17505 | 17635 | { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 |
0 | 0 | |
1 | AC_INIT([virt-viewer],[7.0]) | |
1 | AC_INIT([virt-viewer],[8.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]) |
12 | 12 | AM_SILENT_RULES([yes]) |
13 | 13 | |
14 | 14 | # Keep these two definitions in agreement. |
15 | GLIB2_REQUIRED="2.38" | |
16 | GLIB2_ENCODED_VERSION="GLIB_VERSION_2_38" | |
15 | GLIB2_REQUIRED="2.40" | |
16 | GLIB2_ENCODED_VERSION="GLIB_VERSION_2_40" | |
17 | 17 | |
18 | 18 | # Keep these two definitions in agreement. |
19 | 19 | GTK_REQUIRED="3.12" |
25 | 25 | GTK_VNC_REQUIRED="0.4.0" |
26 | 26 | SPICE_GTK_REQUIRED="0.35" |
27 | 27 | SPICE_PROTOCOL_REQUIRED="0.12.7" |
28 | GOVIRT_REQUIRED="0.3.2" | |
28 | GOVIRT_REQUIRED="0.3.3" | |
29 | REST_REQUIRED="0.8" | |
29 | 30 | |
30 | 31 | AC_SUBST([GLIB2_REQUIRED]) |
31 | 32 | AC_SUBST([LIBXML2_REQUIRED]) |
36 | 37 | AC_SUBST([SPICE_GTK_REQUIRED]) |
37 | 38 | AC_SUBST([SPICE_PROTOCOL_REQUIRED]) |
38 | 39 | AC_SUBST([GOVIRT_REQUIRED]) |
40 | AC_SUBST([REST_REQUIRED]) | |
39 | 41 | |
40 | 42 | AC_MSG_CHECKING([for native Win32]) |
41 | 43 | case "$host_os" in |
169 | 171 | ) |
170 | 172 | AM_CONDITIONAL([HAVE_SPICE_GTK], [test "x$with_spice_gtk" = "xyes"]) |
171 | 173 | |
174 | AC_ARG_WITH([vte], | |
175 | AS_HELP_STRING([--without-vte], [Ignore presence of vte and disable it])) | |
176 | ||
177 | AS_IF([test "x$with_vte" != "xno" && test "x$with_vte" != "xyes"], | |
178 | [PKG_CHECK_EXISTS([vte-2.91], [with_vte=yes], [with_vte=no])]) | |
179 | ||
180 | AS_IF([test "x$with_vte" = "xyes"], | |
181 | [PKG_CHECK_MODULES(VTE, [vte-2.91])] | |
182 | [AC_DEFINE([HAVE_VTE], 1, [Have vte?])] | |
183 | ) | |
184 | AM_CONDITIONAL([HAVE_VTE], [test "x$with_vte" = "xyes"]) | |
185 | ||
172 | 186 | AC_ARG_WITH([ovirt], |
173 | 187 | AS_HELP_STRING([--without-ovirt], [Ignore presence of librest and disable oVirt support])) |
174 | 188 | |
177 | 191 | [with_ovirt=yes], [with_ovirt=no])]) |
178 | 192 | |
179 | 193 | AS_IF([test "x$with_ovirt" = "xyes"], |
180 | [PKG_CHECK_MODULES([OVIRT], [govirt-1.0 >= $GOVIRT_REQUIRED])] | |
194 | [PKG_CHECK_MODULES([OVIRT], [govirt-1.0 >= $GOVIRT_REQUIRED rest-0.7 >= REST_REQUIRED])] | |
181 | 195 | [AC_DEFINE([HAVE_OVIRT], 1, [Have libgovirt?])] |
182 | 196 | [SAVED_CFLAGS="$CFLAGS" |
183 | 197 | SAVED_LIBS="$LIBS" |
184 | 198 | CFLAGS="$OVIRT_CFLAGS" |
185 | 199 | LIBS="$OVIRT_LIBS" |
186 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <govirt/govirt.h>]], | |
187 | [static int err = OVIRT_REST_CALL_ERROR_CANCELLED; | |
188 | void *fun = rest_proxy_auth_cancel;])], | |
189 | [AC_DEFINE([HAVE_OVIRT_CANCEL], 1, [Have rest_proxy_auth_cancel and OVIRT_REST_CALL_ERROR_CANCELLED?])], | |
190 | []) | |
191 | 200 | AC_CHECK_FUNCS([ovirt_api_search_vms ovirt_vm_get_host ovirt_host_get_cluster ovirt_cluster_get_data_center], |
192 | 201 | [AC_DEFINE([HAVE_OVIRT_DATA_CENTER], 1, [Have support for data center])], |
193 | 202 | [] |
273 | 282 | AC_MSG_NOTICE([]) |
274 | 283 | AC_MSG_NOTICE([ SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS]) |
275 | 284 | AC_MSG_NOTICE([]) |
285 | AC_MSG_NOTICE([ VTE: $VTE_CFLAGS $VTE_LIBS]) | |
286 | AC_MSG_NOTICE([]) | |
276 | 287 | AC_MSG_NOTICE([ LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS]) |
277 | 288 | AC_MSG_NOTICE([]) |
278 | 289 | AC_MSG_NOTICE([ LIBVIRT: $LIBVIRT_CFLAGS $LIBVIRT_LIBS]) |
35 | 35 | HaveGtkVnc = False |
36 | 36 | endif |
37 | 37 | |
38 | deps.txt: | |
39 | $(AM_V_GEN)rpm -qa | grep $(host_os) | sort | unix2dos > $@ | |
38 | buildenv.txt: | |
39 | $(AM_V_GEN)rpm -qa | sort | unix2dos > $@ | |
40 | 40 | |
41 | virt-viewer-$(WIXL_ARCH)-$(VERSION).msi: virt-viewer.wxs deps.txt | |
41 | virt-viewer-$(WIXL_ARCH)-$(VERSION).msi: virt-viewer.wxs buildenv.txt | |
42 | 42 | $(AM_V_GEN)DESTDIR=`mktemp -d` && \ |
43 | 43 | make -C $(top_builddir) install DESTDIR=$$DESTDIR >/dev/null && \ |
44 | 44 | find $$DESTDIR | wixl-heat -p $$DESTDIR$(prefix)/ \ |
58 | 58 | msi: virt-viewer-$(WIXL_ARCH)-$(VERSION).msi |
59 | 59 | |
60 | 60 | CLEANFILES += \ |
61 | deps.txt \ | |
61 | buildenv.txt \ | |
62 | 62 | virt-viewer-$(WIXL_ARCH)-$(VERSION).msi \ |
63 | 63 | $(NULL) |
64 | 64 |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
88 | 88 | build_triplet = @build@ |
89 | 89 | host_triplet = @host@ |
90 | 90 | @OS_WIN32_TRUE@am__append_1 = \ |
91 | @OS_WIN32_TRUE@ deps.txt \ | |
91 | @OS_WIN32_TRUE@ buildenv.txt \ | |
92 | 92 | @OS_WIN32_TRUE@ virt-viewer-$(WIXL_ARCH)-$(VERSION).msi \ |
93 | 93 | @OS_WIN32_TRUE@ $(NULL) |
94 | 94 | |
96 | 96 | @OS_WIN32_FALSE@am__append_3 = $(MIMEFILES) $(DESKTOPFILES) $(APPDATAFILES) |
97 | 97 | subdir = data |
98 | 98 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
99 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
100 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
101 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
102 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
103 | $(top_srcdir)/configure.ac | |
99 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
100 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
101 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
102 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
104 | 103 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
105 | 104 | $(ACLOCAL_M4) |
106 | 105 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
270 | 269 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
271 | 270 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
272 | 271 | RANLIB = @RANLIB@ |
272 | REST_REQUIRED = @REST_REQUIRED@ | |
273 | 273 | SED = @SED@ |
274 | 274 | SET_MAKE = @SET_MAKE@ |
275 | 275 | SHELL = @SHELL@ |
283 | 283 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
284 | 284 | USE_NLS = @USE_NLS@ |
285 | 285 | VERSION = @VERSION@ |
286 | VTE_CFLAGS = @VTE_CFLAGS@ | |
287 | VTE_LIBS = @VTE_LIBS@ | |
286 | 288 | WARN_CFLAGS = @WARN_CFLAGS@ |
287 | 289 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
288 | 290 | WINDRES = @WINDRES@ |
383 | 385 | *config.status*) \ |
384 | 386 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
385 | 387 | *) \ |
386 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
387 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
388 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
389 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
388 | 390 | esac; |
389 | 391 | |
390 | 392 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
473 | 475 | cscope cscopelist: |
474 | 476 | |
475 | 477 | |
476 | distdir: $(DISTFILES) | |
478 | distdir: $(BUILT_SOURCES) | |
479 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
480 | ||
481 | distdir-am: $(DISTFILES) | |
477 | 482 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
478 | 483 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
479 | 484 | list='$(DISTFILES)'; \ |
637 | 642 | # (in maintainer-mode) |
638 | 643 | all-local: virt-viewer.wxs |
639 | 644 | |
640 | @OS_WIN32_TRUE@deps.txt: | |
641 | @OS_WIN32_TRUE@ $(AM_V_GEN)rpm -qa | grep $(host_os) | sort | unix2dos > $@ | |
642 | ||
643 | @OS_WIN32_TRUE@virt-viewer-$(WIXL_ARCH)-$(VERSION).msi: virt-viewer.wxs deps.txt | |
645 | @OS_WIN32_TRUE@buildenv.txt: | |
646 | @OS_WIN32_TRUE@ $(AM_V_GEN)rpm -qa | sort | unix2dos > $@ | |
647 | ||
648 | @OS_WIN32_TRUE@virt-viewer-$(WIXL_ARCH)-$(VERSION).msi: virt-viewer.wxs buildenv.txt | |
644 | 649 | @OS_WIN32_TRUE@ $(AM_V_GEN)DESTDIR=`mktemp -d` && \ |
645 | 650 | @OS_WIN32_TRUE@ make -C $(top_builddir) install DESTDIR=$$DESTDIR >/dev/null && \ |
646 | 651 | @OS_WIN32_TRUE@ find $$DESTDIR | wixl-heat -p $$DESTDIR$(prefix)/ \ |
3 | 3 | Exec=remote-viewer %u |
4 | 4 | Type=Application |
5 | 5 | Terminal=false |
6 | MimeType=x-scheme-handler/spice;application/x-virt-viewer; | |
6 | MimeType=x-scheme-handler/spice;x-scheme-handler/spice+unix;x-scheme-handler/spice+tls;application/x-virt-viewer; | |
7 | 7 | StartupNotify=true |
8 | 8 | Categories=GNOME;GTK;Network;RemoteAccess; |
9 | 9 | Icon=virt-viewer |
67 | 67 | <Directory Id="TARGETDIR" Name="SourceDir"> |
68 | 68 | <Directory Id="$(var.ArchProgramFilesFolder)"> |
69 | 69 | <Directory Id="INSTALLDIR" Name="VirtViewer v@VERSION@@BUILDID@"> |
70 | <Component Id="CDepsFile" Guid="*"> | |
71 | <File Id="filA1E799D196006E6DF67DACE15B8C6193" KeyPath="yes" Source="deps.txt"/> | |
70 | <Component Id="CBuildEnvFile" Guid="*"> | |
71 | <File Id="filA1E799D196006E6DF67DACE15B8C6193" KeyPath="yes" Source="buildenv.txt"/> | |
72 | 72 | </Component> |
73 | 73 | </Directory> |
74 | 74 | </Directory> |
116 | 116 | <?endif?> |
117 | 117 | <ComponentGroupRef Id="CG.libxml2"/> |
118 | 118 | <ComponentGroupRef Id="CG.virt-viewer"/> |
119 | <ComponentRef Id="CDepsFile"/> | |
119 | <ComponentRef Id="CBuildEnvFile"/> | |
120 | 120 | <ComponentRef Id="CShortcut"/> |
121 | 121 | <ComponentRef Id="CProgIds"/> |
122 | 122 | <ComponentRef Id="CHwdataUSB"/> |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
89 | 89 | host_triplet = @host@ |
90 | 90 | subdir = icons/16x16 |
91 | 91 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
93 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
94 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
95 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
96 | $(top_srcdir)/configure.ac | |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
93 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
94 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
95 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
97 | 96 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
98 | 97 | $(ACLOCAL_M4) |
99 | 98 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
262 | 261 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
263 | 262 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
264 | 263 | RANLIB = @RANLIB@ |
264 | REST_REQUIRED = @REST_REQUIRED@ | |
265 | 265 | SED = @SED@ |
266 | 266 | SET_MAKE = @SET_MAKE@ |
267 | 267 | SHELL = @SHELL@ |
275 | 275 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
276 | 276 | USE_NLS = @USE_NLS@ |
277 | 277 | VERSION = @VERSION@ |
278 | VTE_CFLAGS = @VTE_CFLAGS@ | |
279 | VTE_LIBS = @VTE_LIBS@ | |
278 | 280 | WARN_CFLAGS = @WARN_CFLAGS@ |
279 | 281 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
280 | 282 | WINDRES = @WINDRES@ |
358 | 360 | *config.status*) \ |
359 | 361 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
360 | 362 | *) \ |
361 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
362 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
363 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
364 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
363 | 365 | esac; |
364 | 366 | |
365 | 367 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
404 | 406 | cscope cscopelist: |
405 | 407 | |
406 | 408 | |
407 | distdir: $(DISTFILES) | |
409 | distdir: $(BUILT_SOURCES) | |
410 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
411 | ||
412 | distdir-am: $(DISTFILES) | |
408 | 413 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
409 | 414 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
410 | 415 | list='$(DISTFILES)'; \ |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
89 | 89 | host_triplet = @host@ |
90 | 90 | subdir = icons/22x22 |
91 | 91 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
93 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
94 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
95 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
96 | $(top_srcdir)/configure.ac | |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
93 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
94 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
95 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
97 | 96 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
98 | 97 | $(ACLOCAL_M4) |
99 | 98 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
262 | 261 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
263 | 262 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
264 | 263 | RANLIB = @RANLIB@ |
264 | REST_REQUIRED = @REST_REQUIRED@ | |
265 | 265 | SED = @SED@ |
266 | 266 | SET_MAKE = @SET_MAKE@ |
267 | 267 | SHELL = @SHELL@ |
275 | 275 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
276 | 276 | USE_NLS = @USE_NLS@ |
277 | 277 | VERSION = @VERSION@ |
278 | VTE_CFLAGS = @VTE_CFLAGS@ | |
279 | VTE_LIBS = @VTE_LIBS@ | |
278 | 280 | WARN_CFLAGS = @WARN_CFLAGS@ |
279 | 281 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
280 | 282 | WINDRES = @WINDRES@ |
358 | 360 | *config.status*) \ |
359 | 361 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
360 | 362 | *) \ |
361 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
362 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
363 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
364 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
363 | 365 | esac; |
364 | 366 | |
365 | 367 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
404 | 406 | cscope cscopelist: |
405 | 407 | |
406 | 408 | |
407 | distdir: $(DISTFILES) | |
409 | distdir: $(BUILT_SOURCES) | |
410 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
411 | ||
412 | distdir-am: $(DISTFILES) | |
408 | 413 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
409 | 414 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
410 | 415 | list='$(DISTFILES)'; \ |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
89 | 89 | host_triplet = @host@ |
90 | 90 | subdir = icons/24x24 |
91 | 91 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
93 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
94 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
95 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
96 | $(top_srcdir)/configure.ac | |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
93 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
94 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
95 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
97 | 96 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
98 | 97 | $(ACLOCAL_M4) |
99 | 98 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
263 | 262 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
264 | 263 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
265 | 264 | RANLIB = @RANLIB@ |
265 | REST_REQUIRED = @REST_REQUIRED@ | |
266 | 266 | SED = @SED@ |
267 | 267 | SET_MAKE = @SET_MAKE@ |
268 | 268 | SHELL = @SHELL@ |
276 | 276 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
277 | 277 | USE_NLS = @USE_NLS@ |
278 | 278 | VERSION = @VERSION@ |
279 | VTE_CFLAGS = @VTE_CFLAGS@ | |
280 | VTE_LIBS = @VTE_LIBS@ | |
279 | 281 | WARN_CFLAGS = @WARN_CFLAGS@ |
280 | 282 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
281 | 283 | WINDRES = @WINDRES@ |
361 | 363 | *config.status*) \ |
362 | 364 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
363 | 365 | *) \ |
364 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
365 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
366 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
367 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
366 | 368 | esac; |
367 | 369 | |
368 | 370 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
428 | 430 | cscope cscopelist: |
429 | 431 | |
430 | 432 | |
431 | distdir: $(DISTFILES) | |
433 | distdir: $(BUILT_SOURCES) | |
434 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
435 | ||
436 | distdir-am: $(DISTFILES) | |
432 | 437 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
433 | 438 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
434 | 439 | list='$(DISTFILES)'; \ |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
89 | 89 | host_triplet = @host@ |
90 | 90 | subdir = icons/256x256 |
91 | 91 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
93 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
94 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
95 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
96 | $(top_srcdir)/configure.ac | |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
93 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
94 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
95 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
97 | 96 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
98 | 97 | $(ACLOCAL_M4) |
99 | 98 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
262 | 261 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
263 | 262 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
264 | 263 | RANLIB = @RANLIB@ |
264 | REST_REQUIRED = @REST_REQUIRED@ | |
265 | 265 | SED = @SED@ |
266 | 266 | SET_MAKE = @SET_MAKE@ |
267 | 267 | SHELL = @SHELL@ |
275 | 275 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
276 | 276 | USE_NLS = @USE_NLS@ |
277 | 277 | VERSION = @VERSION@ |
278 | VTE_CFLAGS = @VTE_CFLAGS@ | |
279 | VTE_LIBS = @VTE_LIBS@ | |
278 | 280 | WARN_CFLAGS = @WARN_CFLAGS@ |
279 | 281 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
280 | 282 | WINDRES = @WINDRES@ |
358 | 360 | *config.status*) \ |
359 | 361 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
360 | 362 | *) \ |
361 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
362 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
363 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
364 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
363 | 365 | esac; |
364 | 366 | |
365 | 367 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
404 | 406 | cscope cscopelist: |
405 | 407 | |
406 | 408 | |
407 | distdir: $(DISTFILES) | |
409 | distdir: $(BUILT_SOURCES) | |
410 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
411 | ||
412 | distdir-am: $(DISTFILES) | |
408 | 413 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
409 | 414 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
410 | 415 | list='$(DISTFILES)'; \ |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
89 | 89 | host_triplet = @host@ |
90 | 90 | subdir = icons/32x32 |
91 | 91 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
93 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
94 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
95 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
96 | $(top_srcdir)/configure.ac | |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
93 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
94 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
95 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
97 | 96 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
98 | 97 | $(ACLOCAL_M4) |
99 | 98 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
262 | 261 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
263 | 262 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
264 | 263 | RANLIB = @RANLIB@ |
264 | REST_REQUIRED = @REST_REQUIRED@ | |
265 | 265 | SED = @SED@ |
266 | 266 | SET_MAKE = @SET_MAKE@ |
267 | 267 | SHELL = @SHELL@ |
275 | 275 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
276 | 276 | USE_NLS = @USE_NLS@ |
277 | 277 | VERSION = @VERSION@ |
278 | VTE_CFLAGS = @VTE_CFLAGS@ | |
279 | VTE_LIBS = @VTE_LIBS@ | |
278 | 280 | WARN_CFLAGS = @WARN_CFLAGS@ |
279 | 281 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
280 | 282 | WINDRES = @WINDRES@ |
358 | 360 | *config.status*) \ |
359 | 361 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
360 | 362 | *) \ |
361 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
362 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
363 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
364 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
363 | 365 | esac; |
364 | 366 | |
365 | 367 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
404 | 406 | cscope cscopelist: |
405 | 407 | |
406 | 408 | |
407 | distdir: $(DISTFILES) | |
409 | distdir: $(BUILT_SOURCES) | |
410 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
411 | ||
412 | distdir-am: $(DISTFILES) | |
408 | 413 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
409 | 414 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
410 | 415 | list='$(DISTFILES)'; \ |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
89 | 89 | host_triplet = @host@ |
90 | 90 | subdir = icons/48x48 |
91 | 91 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
93 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
94 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
95 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
96 | $(top_srcdir)/configure.ac | |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
93 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
94 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
95 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
97 | 96 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
98 | 97 | $(ACLOCAL_M4) |
99 | 98 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
262 | 261 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
263 | 262 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
264 | 263 | RANLIB = @RANLIB@ |
264 | REST_REQUIRED = @REST_REQUIRED@ | |
265 | 265 | SED = @SED@ |
266 | 266 | SET_MAKE = @SET_MAKE@ |
267 | 267 | SHELL = @SHELL@ |
275 | 275 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
276 | 276 | USE_NLS = @USE_NLS@ |
277 | 277 | VERSION = @VERSION@ |
278 | VTE_CFLAGS = @VTE_CFLAGS@ | |
279 | VTE_LIBS = @VTE_LIBS@ | |
278 | 280 | WARN_CFLAGS = @WARN_CFLAGS@ |
279 | 281 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
280 | 282 | WINDRES = @WINDRES@ |
358 | 360 | *config.status*) \ |
359 | 361 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
360 | 362 | *) \ |
361 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
362 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
363 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
364 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
363 | 365 | esac; |
364 | 366 | |
365 | 367 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
404 | 406 | cscope cscopelist: |
405 | 407 | |
406 | 408 | |
407 | distdir: $(DISTFILES) | |
409 | distdir: $(BUILT_SOURCES) | |
410 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
411 | ||
412 | distdir-am: $(DISTFILES) | |
408 | 413 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
409 | 414 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
410 | 415 | list='$(DISTFILES)'; \ |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
89 | 89 | host_triplet = @host@ |
90 | 90 | subdir = icons |
91 | 91 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
93 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
94 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
95 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
96 | $(top_srcdir)/configure.ac | |
92 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
93 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
94 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
95 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
97 | 96 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
98 | 97 | $(ACLOCAL_M4) |
99 | 98 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
136 | 135 | $(RECURSIVE_CLEAN_TARGETS) \ |
137 | 136 | $(am__extra_recursive_targets) |
138 | 137 | AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ |
139 | distdir | |
138 | distdir distdir-am | |
140 | 139 | am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
141 | 140 | # Read a list of newline-separated strings from the standard input, |
142 | 141 | # and print each of them once, without duplicates. Input order is |
294 | 293 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
295 | 294 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
296 | 295 | RANLIB = @RANLIB@ |
296 | REST_REQUIRED = @REST_REQUIRED@ | |
297 | 297 | SED = @SED@ |
298 | 298 | SET_MAKE = @SET_MAKE@ |
299 | 299 | SHELL = @SHELL@ |
307 | 307 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
308 | 308 | USE_NLS = @USE_NLS@ |
309 | 309 | VERSION = @VERSION@ |
310 | VTE_CFLAGS = @VTE_CFLAGS@ | |
311 | VTE_LIBS = @VTE_LIBS@ | |
310 | 312 | WARN_CFLAGS = @WARN_CFLAGS@ |
311 | 313 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
312 | 314 | WINDRES = @WINDRES@ |
392 | 394 | *config.status*) \ |
393 | 395 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
394 | 396 | *) \ |
395 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
396 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
397 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
398 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
397 | 399 | esac; |
398 | 400 | |
399 | 401 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
510 | 512 | distclean-tags: |
511 | 513 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
512 | 514 | |
513 | distdir: $(DISTFILES) | |
515 | distdir: $(BUILT_SOURCES) | |
516 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
517 | ||
518 | distdir-am: $(DISTFILES) | |
514 | 519 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
515 | 520 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
516 | 521 | list='$(DISTFILES)'; \ |
0 | ## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- | |
1 | ## Copyright (C) 2001 Eazel, Inc. | |
2 | ## Author: Maciej Stachowiak <mjs@noisehavoc.org> | |
3 | ## Kenneth Christiansen <kenneth@gnu.org> | |
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, but | |
11 | ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | ## General Public License for more details. | |
14 | ## | |
15 | ## You should have received a copy of the GNU General Public License | |
16 | ## along with this program; if not, write to the Free Software | |
17 | ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | ## | |
19 | ## As a special exception to the GNU General Public License, if you | |
20 | ## distribute this file as part of a program that contains a | |
21 | ## configuration script generated by Autoconf, you may include it under | |
22 | ## the same distribution terms that you use for the rest of that program. | |
23 | ||
24 | dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) | |
25 | # serial 42 IT_PROG_INTLTOOL | |
26 | AC_DEFUN([IT_PROG_INTLTOOL], [ | |
27 | AC_PREREQ([2.50])dnl | |
28 | AC_REQUIRE([AM_NLS])dnl | |
29 | ||
30 | case "$am__api_version" in | |
31 | 1.[01234]) | |
32 | AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) | |
33 | ;; | |
34 | *) | |
35 | ;; | |
36 | esac | |
37 | ||
38 | INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` | |
39 | INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` | |
40 | INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` | |
41 | if test -n "$1"; then | |
42 | AC_MSG_CHECKING([for intltool >= $1]) | |
43 | AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) | |
44 | test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || | |
45 | AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) | |
46 | fi | |
47 | ||
48 | AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) | |
49 | AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) | |
50 | AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) | |
51 | if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then | |
52 | AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) | |
53 | fi | |
54 | ||
55 | if test -z "$AM_DEFAULT_VERBOSITY"; then | |
56 | AM_DEFAULT_VERBOSITY=1 | |
57 | fi | |
58 | AC_SUBST([AM_DEFAULT_VERBOSITY]) | |
59 | ||
60 | INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' | |
61 | INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' | |
62 | INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' | |
63 | AC_SUBST(INTLTOOL_V_MERGE) | |
64 | AC_SUBST(INTLTOOL__v_MERGE_) | |
65 | AC_SUBST(INTLTOOL__v_MERGE_0) | |
66 | ||
67 | INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' | |
68 | intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' | |
69 | intltool__v_merge_options_0='-q' | |
70 | AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) | |
71 | AC_SUBST(intltool__v_merge_options_) | |
72 | AC_SUBST(intltool__v_merge_options_0) | |
73 | ||
74 | INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
75 | INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
76 | INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
77 | INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
78 | INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' | |
79 | INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
80 | INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
81 | INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
82 | INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
83 | INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
84 | INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
85 | if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then | |
86 | INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' | |
87 | else | |
88 | INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' | |
89 | fi | |
90 | INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
91 | INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
92 | INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
93 | INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
94 | INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
95 | INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
96 | INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' | |
97 | ||
98 | _IT_SUBST(INTLTOOL_DESKTOP_RULE) | |
99 | _IT_SUBST(INTLTOOL_DIRECTORY_RULE) | |
100 | _IT_SUBST(INTLTOOL_KEYS_RULE) | |
101 | _IT_SUBST(INTLTOOL_PROP_RULE) | |
102 | _IT_SUBST(INTLTOOL_OAF_RULE) | |
103 | _IT_SUBST(INTLTOOL_PONG_RULE) | |
104 | _IT_SUBST(INTLTOOL_SERVER_RULE) | |
105 | _IT_SUBST(INTLTOOL_SHEET_RULE) | |
106 | _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) | |
107 | _IT_SUBST(INTLTOOL_UI_RULE) | |
108 | _IT_SUBST(INTLTOOL_XAM_RULE) | |
109 | _IT_SUBST(INTLTOOL_KBD_RULE) | |
110 | _IT_SUBST(INTLTOOL_XML_RULE) | |
111 | _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) | |
112 | _IT_SUBST(INTLTOOL_CAVES_RULE) | |
113 | _IT_SUBST(INTLTOOL_SCHEMAS_RULE) | |
114 | _IT_SUBST(INTLTOOL_THEME_RULE) | |
115 | _IT_SUBST(INTLTOOL_SERVICE_RULE) | |
116 | _IT_SUBST(INTLTOOL_POLICY_RULE) | |
117 | ||
118 | # Check the gettext tools to make sure they are GNU | |
119 | AC_PATH_PROG(XGETTEXT, xgettext) | |
120 | AC_PATH_PROG(MSGMERGE, msgmerge) | |
121 | AC_PATH_PROG(MSGFMT, msgfmt) | |
122 | AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) | |
123 | if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then | |
124 | AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) | |
125 | fi | |
126 | xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" | |
127 | mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" | |
128 | mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" | |
129 | if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then | |
130 | AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) | |
131 | fi | |
132 | ||
133 | AC_PATH_PROG(INTLTOOL_PERL, perl) | |
134 | if test -z "$INTLTOOL_PERL"; then | |
135 | AC_MSG_ERROR([perl not found]) | |
136 | fi | |
137 | AC_MSG_CHECKING([for perl >= 5.8.1]) | |
138 | $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 | |
139 | if test $? -ne 0; then | |
140 | AC_MSG_ERROR([perl 5.8.1 is required for intltool]) | |
141 | else | |
142 | IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` | |
143 | AC_MSG_RESULT([$IT_PERL_VERSION]) | |
144 | fi | |
145 | if test "x$2" != "xno-xml"; then | |
146 | AC_MSG_CHECKING([for XML::Parser]) | |
147 | if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then | |
148 | AC_MSG_RESULT([ok]) | |
149 | else | |
150 | AC_MSG_ERROR([XML::Parser perl module is required for intltool]) | |
151 | fi | |
152 | fi | |
153 | ||
154 | # Substitute ALL_LINGUAS so we can use it in po/Makefile | |
155 | AC_SUBST(ALL_LINGUAS) | |
156 | ||
157 | IT_PO_SUBDIR([po]) | |
158 | ||
159 | ]) | |
160 | ||
161 | ||
162 | # IT_PO_SUBDIR(DIRNAME) | |
163 | # --------------------- | |
164 | # All po subdirs have to be declared with this macro; the subdir "po" is | |
165 | # declared by IT_PROG_INTLTOOL. | |
166 | # | |
167 | AC_DEFUN([IT_PO_SUBDIR], | |
168 | [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. | |
169 | dnl | |
170 | dnl The following CONFIG_COMMANDS should be executed at the very end | |
171 | dnl of config.status. | |
172 | AC_CONFIG_COMMANDS_PRE([ | |
173 | AC_CONFIG_COMMANDS([$1/stamp-it], [ | |
174 | if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then | |
175 | AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) | |
176 | fi | |
177 | rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" | |
178 | >"$1/stamp-it.tmp" | |
179 | [sed '/^#/d | |
180 | s/^[[].*] *// | |
181 | /^[ ]*$/d | |
182 | '"s|^| $ac_top_srcdir/|" \ | |
183 | "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" | |
184 | ] | |
185 | [sed '/^POTFILES =/,/[^\\]$/ { | |
186 | /^POTFILES =/!d | |
187 | r $1/POTFILES | |
188 | } | |
189 | ' "$1/Makefile.in" >"$1/Makefile"] | |
190 | rm -f "$1/Makefile.tmp" | |
191 | mv "$1/stamp-it.tmp" "$1/stamp-it" | |
192 | ]) | |
193 | ])dnl | |
194 | ]) | |
195 | ||
196 | # _IT_SUBST(VARIABLE) | |
197 | # ------------------- | |
198 | # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST | |
199 | # | |
200 | AC_DEFUN([_IT_SUBST], | |
201 | [ | |
202 | AC_SUBST([$1]) | |
203 | m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) | |
204 | ] | |
205 | ) | |
206 | ||
207 | # deprecated macros | |
208 | AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) | |
209 | # A hint is needed for aclocal from Automake <= 1.9.4: | |
210 | # AC_DEFUN([AC_PROG_INTLTOOL], ...) | |
211 |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
88 | 88 | host_triplet = @host@ |
89 | 89 | subdir = man |
90 | 90 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
91 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
92 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
93 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
94 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
95 | $(top_srcdir)/configure.ac | |
91 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
92 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
93 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
94 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
96 | 95 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
97 | 96 | $(ACLOCAL_M4) |
98 | 97 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
263 | 262 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
264 | 263 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
265 | 264 | RANLIB = @RANLIB@ |
265 | REST_REQUIRED = @REST_REQUIRED@ | |
266 | 266 | SED = @SED@ |
267 | 267 | SET_MAKE = @SET_MAKE@ |
268 | 268 | SHELL = @SHELL@ |
276 | 276 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
277 | 277 | USE_NLS = @USE_NLS@ |
278 | 278 | VERSION = @VERSION@ |
279 | VTE_CFLAGS = @VTE_CFLAGS@ | |
280 | VTE_LIBS = @VTE_LIBS@ | |
279 | 281 | WARN_CFLAGS = @WARN_CFLAGS@ |
280 | 282 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
281 | 283 | WINDRES = @WINDRES@ |
367 | 369 | *config.status*) \ |
368 | 370 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
369 | 371 | *) \ |
370 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
371 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
372 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
373 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
372 | 374 | esac; |
373 | 375 | |
374 | 376 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
435 | 437 | cscope cscopelist: |
436 | 438 | |
437 | 439 | |
438 | distdir: $(DISTFILES) | |
440 | distdir: $(BUILT_SOURCES) | |
441 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
442 | ||
443 | distdir-am: $(DISTFILES) | |
439 | 444 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
440 | 445 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
441 | 446 | list='$(DISTFILES)'; \ |
132 | 132 | .\" ======================================================================== |
133 | 133 | .\" |
134 | 134 | .IX Title "REMOTE-VIEWER 1" |
135 | .TH REMOTE-VIEWER 1 "2018-07-27" "perl v5.26.2" "Virtualization Support" | |
135 | .TH REMOTE-VIEWER 1 "2018-12-21" "perl v5.28.1" "Virtualization Support" | |
136 | 136 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
137 | 137 | .\" way too many mistakes in technical documents. |
138 | 138 | .if n .ad l |
280 | 280 | .el .IP "\f(CWtype\fR (string, mandatory)" 4 |
281 | 281 | .IX Item "type (string, mandatory)" |
282 | 282 | The session type, either \*(L"spice\*(R", \*(L"vnc\*(R" or \*(L"ovirt\*(R". |
283 | .ie n .IP """host"" (string, mandatory)" 4 | |
284 | .el .IP "\f(CWhost\fR (string, mandatory)" 4 | |
285 | .IX Item "host (string, mandatory)" | |
283 | .ie n .IP """unix\-path"" (string)" 4 | |
284 | .el .IP "\f(CWunix\-path\fR (string)" 4 | |
285 | .IX Item "unix-path (string)" | |
286 | The server to connect to, using a Unix socket path. (supported with spice, since 8.0) | |
287 | .Sp | |
288 | This option is incompatible with \f(CW\*(C`host\*(C'\fR, \f(CW\*(C`port\*(C'\fR and \f(CW\*(C`tls\-port\*(C'\fR. | |
289 | .ie n .IP """host"" (string)" 4 | |
290 | .el .IP "\f(CWhost\fR (string)" 4 | |
291 | .IX Item "host (string)" | |
286 | 292 | The server host to connect to. |
287 | 293 | .ie n .IP """port"" (integer)" 4 |
288 | 294 | .el .IP "\f(CWport\fR (integer)" 4 |
161 | 161 | |
162 | 162 | The session type, either "spice", "vnc" or "ovirt". |
163 | 163 | |
164 | =item C<host> (string, mandatory) | |
164 | =item C<unix-path> (string) | |
165 | ||
166 | The server to connect to, using a Unix socket path. (supported with spice, since 8.0) | |
167 | ||
168 | This option is incompatible with C<host>, C<port> and C<tls-port>. | |
169 | ||
170 | =item C<host> (string) | |
165 | 171 | |
166 | 172 | The server host to connect to. |
167 | 173 |
132 | 132 | .\" ======================================================================== |
133 | 133 | .\" |
134 | 134 | .IX Title "VIRT-VIEWER 1" |
135 | .TH VIRT-VIEWER 1 "2018-07-27" "perl v5.26.2" "Virtualization Support" | |
135 | .TH VIRT-VIEWER 1 "2018-07-27" "perl v5.28.1" "Virtualization Support" | |
136 | 136 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
137 | 137 | .\" way too many mistakes in technical documents. |
138 | 138 | .if n .ad l |
2 | 2 | %define relver 1%{?dist} |
3 | 3 | |
4 | 4 | # We want the 1st part of the release number, and |
5 | # the 3rd part (or 0 if not present). We want to | |
6 | # avoid the autobuild magic 'extra_release' too | |
7 | # which is not purely numeric and larger than 255. | |
5 | # the 3rd part (or 0 if not present). | |
8 | 6 | # This scheme lets us cope with RHEL-style z-stream |
9 | 7 | # versioning when creating Win product versions |
10 | 8 | %define rel0 %(echo %{relver} | cut -d. -f1) |
13 | 11 | |
14 | 12 | Name: mingw-virt-viewer |
15 | 13 | Version: @VERSION@ |
16 | Release: %{relver}%{?extra_release} | |
14 | Release: %{relver} | |
17 | 15 | Summary: MinGW Windows virt-viewer console application |
18 | 16 | |
19 | 17 | License: GPLv2+ |
35 | 33 | BuildRequires: mingw64-gstreamer1-plugins-good |
36 | 34 | BuildRequires: mingw32-gtk3 >= @GTK_REQUIRED@ |
37 | 35 | BuildRequires: mingw64-gtk3 >= @GTK_REQUIRED@ |
36 | BuildRequires: mingw32-hicolor-icon-theme | |
37 | BuildRequires: mingw64-hicolor-icon-theme | |
38 | 38 | BuildRequires: mingw32-libgovirt |
39 | 39 | BuildRequires: mingw64-libgovirt |
40 | 40 | BuildRequires: mingw32-libusbx |
62 | 62 | BuildRequires: intltool |
63 | 63 | BuildRequires: icoutils |
64 | 64 | BuildRequires: dos2unix |
65 | BuildRequires: hicolor-icon-theme | |
66 | 65 | BuildRequires: hwdata |
67 | 66 | BuildRequires: msitools >= 0.95-5 |
67 | BuildRequires: glib2-devel | |
68 | 68 | |
69 | 69 | BuildArch: noarch |
70 | 70 |
10 | 10 | src/virt-viewer-auth.c |
11 | 11 | [type: gettext/glade] src/resources/ui/virt-viewer-auth.ui |
12 | 12 | src/virt-viewer-display-vnc.c |
13 | src/virt-viewer-display-vte.c | |
13 | 14 | src/virt-viewer-file-transfer-dialog.c |
14 | 15 | src/virt-viewer-main.c |
15 | 16 | src/virt-viewer-session-spice.c |
71 | 71 | virt-viewer-window.c \ |
72 | 72 | virt-viewer-vm-connection.h \ |
73 | 73 | virt-viewer-vm-connection.c \ |
74 | virt-viewer-display-vte.h \ | |
75 | virt-viewer-display-vte.c \ | |
74 | 76 | virt-viewer-timed-revealer.c \ |
75 | 77 | virt-viewer-timed-revealer.h \ |
76 | 78 | $(NULL) |
109 | 111 | $(GLIB2_LIBS) \ |
110 | 112 | $(GTK_LIBS) \ |
111 | 113 | $(GTK_VNC_LIBS) \ |
114 | $(VTE_LIBS) \ | |
112 | 115 | $(SPICE_GTK_LIBS) \ |
113 | 116 | $(LIBXML2_LIBS) \ |
114 | 117 | $(OVIRT_LIBS) \ |
120 | 123 | $(GLIB2_CFLAGS) \ |
121 | 124 | $(GTK_CFLAGS) \ |
122 | 125 | $(GTK_VNC_CFLAGS) \ |
126 | $(VTE_CFLAGS) \ | |
123 | 127 | $(SPICE_GTK_CFLAGS) \ |
124 | 128 | $(LIBXML2_CFLAGS) \ |
125 | 129 | $(OVIRT_CFLAGS) \ |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
120 | 120 | @OS_WIN32_TRUE@am__append_8 = virt-viewer_rc.$(OBJEXT) |
121 | 121 | subdir = src |
122 | 122 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
123 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
124 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
125 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
126 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
127 | $(top_srcdir)/configure.ac | |
123 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
124 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
125 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
126 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
128 | 127 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
129 | 128 | $(ACLOCAL_M4) |
130 | 129 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
132 | 131 | CONFIG_HEADER = $(top_builddir)/config.h |
133 | 132 | CONFIG_CLEAN_FILES = virt-viewer.rc |
134 | 133 | CONFIG_CLEAN_VPATH_FILES = |
134 | @HAVE_LIBVIRT_TRUE@am__EXEEXT_1 = virt-viewer$(EXEEXT) | |
135 | @OS_WIN32_TRUE@am__EXEEXT_2 = windows-cmdline-wrapper$(EXEEXT) | |
136 | am__installdirs = "$(DESTDIR)$(bindir)" | |
137 | PROGRAMS = $(bin_PROGRAMS) | |
135 | 138 | LTLIBRARIES = $(noinst_LTLIBRARIES) |
136 | 139 | am__DEPENDENCIES_1 = |
137 | 140 | libvirt_viewer_util_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ |
152 | 155 | am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ |
153 | 156 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ |
154 | 157 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ |
155 | $(am__DEPENDENCIES_1) | |
158 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) | |
156 | 159 | libvirt_viewer_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ |
157 | 160 | $(am__DEPENDENCIES_1) |
158 | 161 | am__libvirt_viewer_la_SOURCES_DIST = virt-viewer-resources.h \ |
165 | 168 | virt-viewer-notebook.h virt-viewer-notebook.c \ |
166 | 169 | virt-viewer-window.h virt-viewer-window.c \ |
167 | 170 | virt-viewer-vm-connection.h virt-viewer-vm-connection.c \ |
171 | virt-viewer-display-vte.h virt-viewer-display-vte.c \ | |
168 | 172 | virt-viewer-timed-revealer.c virt-viewer-timed-revealer.h \ |
169 | 173 | virt-viewer-session-vnc.h virt-viewer-session-vnc.c \ |
170 | 174 | virt-viewer-display-vnc.h virt-viewer-display-vnc.c \ |
197 | 201 | libvirt_viewer_la-virt-viewer-notebook.lo \ |
198 | 202 | libvirt_viewer_la-virt-viewer-window.lo \ |
199 | 203 | libvirt_viewer_la-virt-viewer-vm-connection.lo \ |
204 | libvirt_viewer_la-virt-viewer-display-vte.lo \ | |
200 | 205 | libvirt_viewer_la-virt-viewer-timed-revealer.lo \ |
201 | 206 | $(am__objects_1) $(am__objects_3) $(am__objects_4) \ |
202 | 207 | $(am__objects_5) |
205 | 210 | $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ |
206 | 211 | $(libvirt_viewer_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ |
207 | 212 | -o $@ |
208 | @HAVE_LIBVIRT_TRUE@am__EXEEXT_1 = virt-viewer$(EXEEXT) | |
209 | @OS_WIN32_TRUE@am__EXEEXT_2 = windows-cmdline-wrapper$(EXEEXT) | |
210 | am__installdirs = "$(DESTDIR)$(bindir)" | |
211 | PROGRAMS = $(bin_PROGRAMS) | |
212 | 213 | am_remote_viewer_OBJECTS = remote_viewer-remote-viewer.$(OBJEXT) \ |
213 | 214 | remote_viewer-remote-viewer-connect.$(OBJEXT) \ |
214 | 215 | remote_viewer-remote-viewer-main.$(OBJEXT) $(am__objects_1) |
255 | 256 | am__v_at_1 = |
256 | 257 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) |
257 | 258 | depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp |
258 | am__depfiles_maybe = depfiles | |
259 | am__maybe_remake_depfiles = depfiles | |
260 | am__depfiles_remade = ./$(DEPDIR)/libvirt_viewer_la-glib-compat.Plo \ | |
261 | ./$(DEPDIR)/libvirt_viewer_la-ovirt-foreign-menu.Plo \ | |
262 | ./$(DEPDIR)/libvirt_viewer_la-remote-viewer-iso-list-dialog.Plo \ | |
263 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-app.Plo \ | |
264 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-auth.Plo \ | |
265 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-spice.Plo \ | |
266 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vnc.Plo \ | |
267 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vte.Plo \ | |
268 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display.Plo \ | |
269 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-enums.Plo \ | |
270 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file-transfer-dialog.Plo \ | |
271 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file.Plo \ | |
272 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-notebook.Plo \ | |
273 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-resources.Plo \ | |
274 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-spice.Plo \ | |
275 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-vnc.Plo \ | |
276 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session.Plo \ | |
277 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-timed-revealer.Plo \ | |
278 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-vm-connection.Plo \ | |
279 | ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-window.Plo \ | |
280 | ./$(DEPDIR)/libvirt_viewer_util_la-virt-viewer-util.Plo \ | |
281 | ./$(DEPDIR)/remote_viewer-remote-viewer-connect.Po \ | |
282 | ./$(DEPDIR)/remote_viewer-remote-viewer-main.Po \ | |
283 | ./$(DEPDIR)/remote_viewer-remote-viewer.Po \ | |
284 | ./$(DEPDIR)/virt_viewer-virt-viewer-main.Po \ | |
285 | ./$(DEPDIR)/virt_viewer-virt-viewer.Po \ | |
286 | ./$(DEPDIR)/windows-cmdline-wrapper.Po | |
259 | 287 | am__mv = mv -f |
260 | 288 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
261 | 289 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
420 | 448 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
421 | 449 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
422 | 450 | RANLIB = @RANLIB@ |
451 | REST_REQUIRED = @REST_REQUIRED@ | |
423 | 452 | SED = @SED@ |
424 | 453 | SET_MAKE = @SET_MAKE@ |
425 | 454 | SHELL = @SHELL@ |
433 | 462 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
434 | 463 | USE_NLS = @USE_NLS@ |
435 | 464 | VERSION = @VERSION@ |
465 | VTE_CFLAGS = @VTE_CFLAGS@ | |
466 | VTE_LIBS = @VTE_LIBS@ | |
436 | 467 | WARN_CFLAGS = @WARN_CFLAGS@ |
437 | 468 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
438 | 469 | WINDRES = @WINDRES@ |
539 | 570 | virt-viewer-notebook.h virt-viewer-notebook.c \ |
540 | 571 | virt-viewer-window.h virt-viewer-window.c \ |
541 | 572 | virt-viewer-vm-connection.h virt-viewer-vm-connection.c \ |
573 | virt-viewer-display-vte.h virt-viewer-display-vte.c \ | |
542 | 574 | virt-viewer-timed-revealer.c virt-viewer-timed-revealer.h \ |
543 | 575 | $(NULL) $(am__append_1) $(am__append_2) $(am__append_3) |
544 | 576 | COMMON_LIBS = \ |
546 | 578 | $(GLIB2_LIBS) \ |
547 | 579 | $(GTK_LIBS) \ |
548 | 580 | $(GTK_VNC_LIBS) \ |
581 | $(VTE_LIBS) \ | |
549 | 582 | $(SPICE_GTK_LIBS) \ |
550 | 583 | $(LIBXML2_LIBS) \ |
551 | 584 | $(OVIRT_LIBS) \ |
557 | 590 | $(GLIB2_CFLAGS) \ |
558 | 591 | $(GTK_CFLAGS) \ |
559 | 592 | $(GTK_VNC_CFLAGS) \ |
593 | $(VTE_CFLAGS) \ | |
560 | 594 | $(SPICE_GTK_CFLAGS) \ |
561 | 595 | $(LIBXML2_CFLAGS) \ |
562 | 596 | $(OVIRT_CFLAGS) \ |
650 | 684 | *config.status*) \ |
651 | 685 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
652 | 686 | *) \ |
653 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
654 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
687 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
688 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
655 | 689 | esac; |
656 | 690 | |
657 | 691 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
664 | 698 | $(am__aclocal_m4_deps): |
665 | 699 | virt-viewer.rc: $(top_builddir)/config.status $(srcdir)/virt-viewer.rc.in |
666 | 700 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ |
667 | ||
668 | clean-noinstLTLIBRARIES: | |
669 | -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) | |
670 | @list='$(noinst_LTLIBRARIES)'; \ | |
671 | locs=`for p in $$list; do echo $$p; done | \ | |
672 | sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ | |
673 | sort -u`; \ | |
674 | test -z "$$locs" || { \ | |
675 | echo rm -f $${locs}; \ | |
676 | rm -f $${locs}; \ | |
677 | } | |
678 | ||
679 | libvirt-viewer-util.la: $(libvirt_viewer_util_la_OBJECTS) $(libvirt_viewer_util_la_DEPENDENCIES) $(EXTRA_libvirt_viewer_util_la_DEPENDENCIES) | |
680 | $(AM_V_CCLD)$(libvirt_viewer_util_la_LINK) $(libvirt_viewer_util_la_OBJECTS) $(libvirt_viewer_util_la_LIBADD) $(LIBS) | |
681 | ||
682 | libvirt-viewer.la: $(libvirt_viewer_la_OBJECTS) $(libvirt_viewer_la_DEPENDENCIES) $(EXTRA_libvirt_viewer_la_DEPENDENCIES) | |
683 | $(AM_V_CCLD)$(libvirt_viewer_la_LINK) $(libvirt_viewer_la_OBJECTS) $(libvirt_viewer_la_LIBADD) $(LIBS) | |
684 | 701 | install-binPROGRAMS: $(bin_PROGRAMS) |
685 | 702 | @$(NORMAL_INSTALL) |
686 | 703 | @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ |
731 | 748 | echo " rm -f" $$list; \ |
732 | 749 | rm -f $$list |
733 | 750 | |
751 | clean-noinstLTLIBRARIES: | |
752 | -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) | |
753 | @list='$(noinst_LTLIBRARIES)'; \ | |
754 | locs=`for p in $$list; do echo $$p; done | \ | |
755 | sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ | |
756 | sort -u`; \ | |
757 | test -z "$$locs" || { \ | |
758 | echo rm -f $${locs}; \ | |
759 | rm -f $${locs}; \ | |
760 | } | |
761 | ||
762 | libvirt-viewer-util.la: $(libvirt_viewer_util_la_OBJECTS) $(libvirt_viewer_util_la_DEPENDENCIES) $(EXTRA_libvirt_viewer_util_la_DEPENDENCIES) | |
763 | $(AM_V_CCLD)$(libvirt_viewer_util_la_LINK) $(libvirt_viewer_util_la_OBJECTS) $(libvirt_viewer_util_la_LIBADD) $(LIBS) | |
764 | ||
765 | libvirt-viewer.la: $(libvirt_viewer_la_OBJECTS) $(libvirt_viewer_la_DEPENDENCIES) $(EXTRA_libvirt_viewer_la_DEPENDENCIES) | |
766 | $(AM_V_CCLD)$(libvirt_viewer_la_LINK) $(libvirt_viewer_la_OBJECTS) $(libvirt_viewer_la_LIBADD) $(LIBS) | |
767 | ||
734 | 768 | remote-viewer$(EXEEXT): $(remote_viewer_OBJECTS) $(remote_viewer_DEPENDENCIES) $(EXTRA_remote_viewer_DEPENDENCIES) |
735 | 769 | @rm -f remote-viewer$(EXEEXT) |
736 | 770 | $(AM_V_CCLD)$(remote_viewer_LINK) $(remote_viewer_OBJECTS) $(remote_viewer_LDADD) $(LIBS) |
749 | 783 | distclean-compile: |
750 | 784 | -rm -f *.tab.c |
751 | 785 | |
752 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-glib-compat.Plo@am__quote@ | |
753 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-ovirt-foreign-menu.Plo@am__quote@ | |
754 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-remote-viewer-iso-list-dialog.Plo@am__quote@ | |
755 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-app.Plo@am__quote@ | |
756 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-auth.Plo@am__quote@ | |
757 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-spice.Plo@am__quote@ | |
758 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vnc.Plo@am__quote@ | |
759 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display.Plo@am__quote@ | |
760 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-enums.Plo@am__quote@ | |
761 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file-transfer-dialog.Plo@am__quote@ | |
762 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file.Plo@am__quote@ | |
763 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-notebook.Plo@am__quote@ | |
764 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-resources.Plo@am__quote@ | |
765 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-spice.Plo@am__quote@ | |
766 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-vnc.Plo@am__quote@ | |
767 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session.Plo@am__quote@ | |
768 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-timed-revealer.Plo@am__quote@ | |
769 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-vm-connection.Plo@am__quote@ | |
770 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-window.Plo@am__quote@ | |
771 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_util_la-virt-viewer-util.Plo@am__quote@ | |
772 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer-connect.Po@am__quote@ | |
773 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer-main.Po@am__quote@ | |
774 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer.Po@am__quote@ | |
775 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-main.Po@am__quote@ | |
776 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer.Po@am__quote@ | |
777 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-cmdline-wrapper.Po@am__quote@ | |
786 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-glib-compat.Plo@am__quote@ # am--include-marker | |
787 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-ovirt-foreign-menu.Plo@am__quote@ # am--include-marker | |
788 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-remote-viewer-iso-list-dialog.Plo@am__quote@ # am--include-marker | |
789 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-app.Plo@am__quote@ # am--include-marker | |
790 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-auth.Plo@am__quote@ # am--include-marker | |
791 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-spice.Plo@am__quote@ # am--include-marker | |
792 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vnc.Plo@am__quote@ # am--include-marker | |
793 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vte.Plo@am__quote@ # am--include-marker | |
794 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display.Plo@am__quote@ # am--include-marker | |
795 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-enums.Plo@am__quote@ # am--include-marker | |
796 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file-transfer-dialog.Plo@am__quote@ # am--include-marker | |
797 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file.Plo@am__quote@ # am--include-marker | |
798 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-notebook.Plo@am__quote@ # am--include-marker | |
799 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-resources.Plo@am__quote@ # am--include-marker | |
800 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-spice.Plo@am__quote@ # am--include-marker | |
801 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-vnc.Plo@am__quote@ # am--include-marker | |
802 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session.Plo@am__quote@ # am--include-marker | |
803 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-timed-revealer.Plo@am__quote@ # am--include-marker | |
804 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-vm-connection.Plo@am__quote@ # am--include-marker | |
805 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_la-virt-viewer-window.Plo@am__quote@ # am--include-marker | |
806 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_viewer_util_la-virt-viewer-util.Plo@am__quote@ # am--include-marker | |
807 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer-connect.Po@am__quote@ # am--include-marker | |
808 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer-main.Po@am__quote@ # am--include-marker | |
809 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer.Po@am__quote@ # am--include-marker | |
810 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-main.Po@am__quote@ # am--include-marker | |
811 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer.Po@am__quote@ # am--include-marker | |
812 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-cmdline-wrapper.Po@am__quote@ # am--include-marker | |
813 | ||
814 | $(am__depfiles_remade): | |
815 | @$(MKDIR_P) $(@D) | |
816 | @echo '# dummy' >$@-t && $(am__mv) $@-t $@ | |
817 | ||
818 | am--depfiles: $(am__depfiles_remade) | |
778 | 819 | |
779 | 820 | .c.o: |
780 | 821 | @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ |
883 | 924 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-vm-connection.c' object='libvirt_viewer_la-virt-viewer-vm-connection.lo' libtool=yes @AMDEPBACKSLASH@ |
884 | 925 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
885 | 926 | @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-virt-viewer-vm-connection.lo `test -f 'virt-viewer-vm-connection.c' || echo '$(srcdir)/'`virt-viewer-vm-connection.c |
927 | ||
928 | libvirt_viewer_la-virt-viewer-display-vte.lo: virt-viewer-display-vte.c | |
929 | @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-virt-viewer-display-vte.lo -MD -MP -MF $(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vte.Tpo -c -o libvirt_viewer_la-virt-viewer-display-vte.lo `test -f 'virt-viewer-display-vte.c' || echo '$(srcdir)/'`virt-viewer-display-vte.c | |
930 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vte.Tpo $(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vte.Plo | |
931 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display-vte.c' object='libvirt_viewer_la-virt-viewer-display-vte.lo' libtool=yes @AMDEPBACKSLASH@ | |
932 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | |
933 | @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-virt-viewer-display-vte.lo `test -f 'virt-viewer-display-vte.c' || echo '$(srcdir)/'`virt-viewer-display-vte.c | |
886 | 934 | |
887 | 935 | libvirt_viewer_la-virt-viewer-timed-revealer.lo: virt-viewer-timed-revealer.c |
888 | 936 | @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-virt-viewer-timed-revealer.lo -MD -MP -MF $(DEPDIR)/libvirt_viewer_la-virt-viewer-timed-revealer.Tpo -c -o libvirt_viewer_la-virt-viewer-timed-revealer.lo `test -f 'virt-viewer-timed-revealer.c' || echo '$(srcdir)/'`virt-viewer-timed-revealer.c |
1068 | 1116 | distclean-tags: |
1069 | 1117 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
1070 | 1118 | |
1071 | distdir: $(DISTFILES) | |
1119 | distdir: $(BUILT_SOURCES) | |
1120 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
1121 | ||
1122 | distdir-am: $(DISTFILES) | |
1072 | 1123 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
1073 | 1124 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
1074 | 1125 | list='$(DISTFILES)'; \ |
1101 | 1152 | check-am: all-am |
1102 | 1153 | check: $(BUILT_SOURCES) |
1103 | 1154 | $(MAKE) $(AM_MAKEFLAGS) check-am |
1104 | all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) | |
1155 | all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(DATA) | |
1105 | 1156 | installdirs: |
1106 | 1157 | for dir in "$(DESTDIR)$(bindir)"; do \ |
1107 | 1158 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \ |
1146 | 1197 | clean-noinstLTLIBRARIES mostlyclean-am |
1147 | 1198 | |
1148 | 1199 | distclean: distclean-am |
1149 | -rm -rf ./$(DEPDIR) | |
1200 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-glib-compat.Plo | |
1201 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-ovirt-foreign-menu.Plo | |
1202 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-remote-viewer-iso-list-dialog.Plo | |
1203 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-app.Plo | |
1204 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-auth.Plo | |
1205 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-spice.Plo | |
1206 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vnc.Plo | |
1207 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vte.Plo | |
1208 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display.Plo | |
1209 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-enums.Plo | |
1210 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file-transfer-dialog.Plo | |
1211 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file.Plo | |
1212 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-notebook.Plo | |
1213 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-resources.Plo | |
1214 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-spice.Plo | |
1215 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-vnc.Plo | |
1216 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session.Plo | |
1217 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-timed-revealer.Plo | |
1218 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-vm-connection.Plo | |
1219 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-window.Plo | |
1220 | -rm -f ./$(DEPDIR)/libvirt_viewer_util_la-virt-viewer-util.Plo | |
1221 | -rm -f ./$(DEPDIR)/remote_viewer-remote-viewer-connect.Po | |
1222 | -rm -f ./$(DEPDIR)/remote_viewer-remote-viewer-main.Po | |
1223 | -rm -f ./$(DEPDIR)/remote_viewer-remote-viewer.Po | |
1224 | -rm -f ./$(DEPDIR)/virt_viewer-virt-viewer-main.Po | |
1225 | -rm -f ./$(DEPDIR)/virt_viewer-virt-viewer.Po | |
1226 | -rm -f ./$(DEPDIR)/windows-cmdline-wrapper.Po | |
1150 | 1227 | -rm -f Makefile |
1151 | 1228 | distclean-am: clean-am distclean-compile distclean-generic \ |
1152 | 1229 | distclean-tags |
1192 | 1269 | installcheck-am: |
1193 | 1270 | |
1194 | 1271 | maintainer-clean: maintainer-clean-am |
1195 | -rm -rf ./$(DEPDIR) | |
1272 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-glib-compat.Plo | |
1273 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-ovirt-foreign-menu.Plo | |
1274 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-remote-viewer-iso-list-dialog.Plo | |
1275 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-app.Plo | |
1276 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-auth.Plo | |
1277 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-spice.Plo | |
1278 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vnc.Plo | |
1279 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display-vte.Plo | |
1280 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-display.Plo | |
1281 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-enums.Plo | |
1282 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file-transfer-dialog.Plo | |
1283 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-file.Plo | |
1284 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-notebook.Plo | |
1285 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-resources.Plo | |
1286 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-spice.Plo | |
1287 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session-vnc.Plo | |
1288 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-session.Plo | |
1289 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-timed-revealer.Plo | |
1290 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-vm-connection.Plo | |
1291 | -rm -f ./$(DEPDIR)/libvirt_viewer_la-virt-viewer-window.Plo | |
1292 | -rm -f ./$(DEPDIR)/libvirt_viewer_util_la-virt-viewer-util.Plo | |
1293 | -rm -f ./$(DEPDIR)/remote_viewer-remote-viewer-connect.Po | |
1294 | -rm -f ./$(DEPDIR)/remote_viewer-remote-viewer-main.Po | |
1295 | -rm -f ./$(DEPDIR)/remote_viewer-remote-viewer.Po | |
1296 | -rm -f ./$(DEPDIR)/virt_viewer-virt-viewer-main.Po | |
1297 | -rm -f ./$(DEPDIR)/virt_viewer-virt-viewer.Po | |
1298 | -rm -f ./$(DEPDIR)/windows-cmdline-wrapper.Po | |
1196 | 1299 | -rm -f Makefile |
1197 | 1300 | maintainer-clean-am: distclean-am maintainer-clean-generic |
1198 | 1301 | |
1213 | 1316 | |
1214 | 1317 | .MAKE: all check install install-am install-strip |
1215 | 1318 | |
1216 | .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ | |
1319 | .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ | |
1217 | 1320 | clean-binPROGRAMS clean-generic clean-libtool \ |
1218 | 1321 | clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ |
1219 | 1322 | distclean-compile distclean-generic distclean-libtool \ |
58 | 58 | static void ovirt_foreign_menu_refresh_cdrom_file_async(OvirtForeignMenu *menu, GTask *task); |
59 | 59 | static void ovirt_foreign_menu_fetch_iso_list_async(OvirtForeignMenu *menu, GTask *task); |
60 | 60 | |
61 | G_DEFINE_TYPE (OvirtForeignMenu, ovirt_foreign_menu, G_TYPE_OBJECT) | |
62 | ||
63 | 61 | |
64 | 62 | struct _OvirtForeignMenuPrivate { |
65 | 63 | OvirtProxy *proxy; |
86 | 84 | }; |
87 | 85 | |
88 | 86 | |
89 | #define OVIRT_FOREIGN_MENU_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), OVIRT_TYPE_FOREIGN_MENU, OvirtForeignMenuPrivate)) | |
87 | G_DEFINE_TYPE_WITH_PRIVATE (OvirtForeignMenu, ovirt_foreign_menu, G_TYPE_OBJECT) | |
90 | 88 | |
91 | 89 | |
92 | 90 | enum { |
98 | 96 | PROP_FILES, |
99 | 97 | PROP_VM_GUID, |
100 | 98 | }; |
101 | ||
102 | 99 | |
103 | 100 | gchar * |
104 | 101 | ovirt_foreign_menu_get_current_iso_name(OvirtForeignMenu *foreign_menu) |
228 | 225 | oclass->get_property = ovirt_foreign_menu_get_property; |
229 | 226 | oclass->set_property = ovirt_foreign_menu_set_property; |
230 | 227 | oclass->dispose = ovirt_foreign_menu_dispose; |
231 | ||
232 | g_type_class_add_private(klass, sizeof(OvirtForeignMenuPrivate)); | |
233 | 228 | |
234 | 229 | g_object_class_install_property(oclass, |
235 | 230 | PROP_PROXY, |
286 | 281 | static void |
287 | 282 | ovirt_foreign_menu_init(OvirtForeignMenu *self) |
288 | 283 | { |
289 | self->priv = OVIRT_FOREIGN_MENU_GET_PRIVATE(self); | |
284 | self->priv = ovirt_foreign_menu_get_instance_private(self); | |
290 | 285 | } |
291 | 286 | |
292 | 287 | |
367 | 362 | default: |
368 | 363 | g_warn_if_reached(); |
369 | 364 | g_task_return_new_error(task, OVIRT_ERROR, OVIRT_ERROR_FAILED, |
370 | "Invalid state: %d", current_state); | |
365 | "Invalid state: %u", current_state); | |
371 | 366 | g_object_unref(task); |
372 | 367 | } |
373 | 368 | } |
489 | 484 | * associated with file resources , but as of 3.2, this node |
490 | 485 | * is not present, so we do an extension check instead |
491 | 486 | * to differentiate between ISOs and floppy images */ |
492 | if (g_str_has_suffix(name, ".vfd")) { | |
487 | if (!g_str_has_suffix(name, ".iso")) { | |
488 | g_debug("Ignoring %s which does not have a .iso extension", name); | |
493 | 489 | g_free(name); |
494 | 490 | continue; |
495 | 491 | } |
622 | 618 | } |
623 | 619 | |
624 | 620 | #ifdef HAVE_OVIRT_DATA_CENTER |
621 | static gboolean strv_contains(const gchar * const *strv, const gchar *str) | |
622 | { | |
623 | G_GNUC_BEGIN_IGNORE_DEPRECATIONS | |
624 | return g_strv_contains (strv, str); | |
625 | G_GNUC_END_IGNORE_DEPRECATIONS | |
626 | } | |
627 | ||
625 | 628 | static gboolean storage_domain_attached_to_data_center(OvirtStorageDomain *domain, |
626 | 629 | OvirtDataCenter *data_center) |
627 | 630 | { |
631 | 634 | |
632 | 635 | g_object_get(domain, "data-center-ids", &data_center_ids, NULL); |
633 | 636 | g_object_get(data_center, "guid", &data_center_guid, NULL); |
634 | match = g_strv_contains((const gchar * const *) data_center_ids, data_center_guid); | |
637 | match = strv_contains((const gchar * const *) data_center_ids, data_center_guid); | |
635 | 638 | g_strfreev(data_center_ids); |
636 | 639 | g_free(data_center_guid); |
637 | 640 | |
639 | 642 | } |
640 | 643 | #endif |
641 | 644 | |
645 | static gboolean storage_domain_validate(OvirtForeignMenu *menu G_GNUC_UNUSED, | |
646 | OvirtStorageDomain *domain) | |
647 | { | |
648 | char *name; | |
649 | int type, state; | |
650 | gboolean ret = TRUE; | |
651 | ||
652 | g_object_get(domain, "name", &name, "type", &type, "state", &state, NULL); | |
653 | ||
654 | if (type != OVIRT_STORAGE_DOMAIN_TYPE_ISO) { | |
655 | g_debug("Storage domain '%s' type is not ISO", name); | |
656 | ret = FALSE; | |
657 | } | |
658 | ||
659 | if (state != OVIRT_STORAGE_DOMAIN_STATE_ACTIVE) { | |
660 | g_debug("Storage domain '%s' state is not active", name); | |
661 | ret = FALSE; | |
662 | } | |
663 | ||
664 | #ifdef HAVE_OVIRT_DATA_CENTER | |
665 | if (!storage_domain_attached_to_data_center(domain, menu->priv->data_center)) { | |
666 | g_debug("Storage domain '%s' is not attached to data center", name); | |
667 | ret = FALSE; | |
668 | } | |
669 | #endif | |
670 | ||
671 | g_free(name); | |
672 | return ret; | |
673 | } | |
642 | 674 | |
643 | 675 | static void storage_domains_fetched_cb(GObject *source_object, |
644 | 676 | GAsyncResult *result, |
662 | 694 | g_hash_table_iter_init(&iter, ovirt_collection_get_resources(collection)); |
663 | 695 | while (g_hash_table_iter_next(&iter, NULL, (gpointer *)&domain)) { |
664 | 696 | OvirtCollection *file_collection; |
665 | int type; | |
666 | int state; | |
667 | ||
668 | g_object_get(domain, "type", &type, "state", &state, NULL); | |
669 | if (type != OVIRT_STORAGE_DOMAIN_TYPE_ISO) { | |
697 | ||
698 | if (!storage_domain_validate(menu, domain)) | |
670 | 699 | continue; |
671 | } | |
672 | ||
673 | if (state != OVIRT_STORAGE_DOMAIN_STATE_ACTIVE) { | |
674 | continue; | |
675 | } | |
676 | ||
677 | #ifdef HAVE_OVIRT_DATA_CENTER | |
678 | if (!storage_domain_attached_to_data_center(domain, menu->priv->data_center)) { | |
679 | continue; | |
680 | } | |
681 | #endif | |
682 | 700 | |
683 | 701 | file_collection = ovirt_storage_domain_get_files(domain); |
684 | 702 | if (file_collection != NULL) { |
28 | 28 | static void ovirt_foreign_menu_iso_name_changed(OvirtForeignMenu *foreign_menu, GAsyncResult *result, RemoteViewerISOListDialog *self); |
29 | 29 | static void remote_viewer_iso_list_dialog_show_error(RemoteViewerISOListDialog *self, const gchar *message); |
30 | 30 | |
31 | G_DEFINE_TYPE(RemoteViewerISOListDialog, remote_viewer_iso_list_dialog, GTK_TYPE_DIALOG) | |
32 | ||
33 | #define DIALOG_PRIVATE(o) \ | |
34 | (G_TYPE_INSTANCE_GET_PRIVATE((o), REMOTE_VIEWER_TYPE_ISO_LIST_DIALOG, RemoteViewerISOListDialogPrivate)) | |
35 | ||
36 | struct _RemoteViewerISOListDialogPrivate | |
37 | { | |
31 | struct _RemoteViewerISOListDialog | |
32 | { | |
33 | GtkDialog parent; | |
38 | 34 | GtkListStore *list_store; |
39 | 35 | GtkWidget *status; |
40 | 36 | GtkWidget *spinner; |
44 | 40 | GCancellable *cancellable; |
45 | 41 | }; |
46 | 42 | |
43 | struct _RemoteViewerISOListDialogClass | |
44 | { | |
45 | GtkDialogClass parent_class; | |
46 | }; | |
47 | ||
48 | G_DEFINE_TYPE(RemoteViewerISOListDialog, remote_viewer_iso_list_dialog, GTK_TYPE_DIALOG) | |
49 | ||
47 | 50 | enum RemoteViewerISOListDialogModel |
48 | 51 | { |
49 | 52 | ISO_IS_ACTIVE = 0, |
64 | 67 | remote_viewer_iso_list_dialog_dispose(GObject *object) |
65 | 68 | { |
66 | 69 | RemoteViewerISOListDialog *self = REMOTE_VIEWER_ISO_LIST_DIALOG(object); |
67 | RemoteViewerISOListDialogPrivate *priv = self->priv; | |
68 | ||
69 | g_clear_object(&priv->cancellable); | |
70 | ||
71 | if (priv->foreign_menu) { | |
72 | g_signal_handlers_disconnect_by_data(priv->foreign_menu, object); | |
73 | g_clear_object(&priv->foreign_menu); | |
70 | ||
71 | g_clear_object(&self->cancellable); | |
72 | ||
73 | if (self->foreign_menu) { | |
74 | g_signal_handlers_disconnect_by_data(self->foreign_menu, object); | |
75 | g_clear_object(&self->foreign_menu); | |
74 | 76 | } |
75 | 77 | G_OBJECT_CLASS(remote_viewer_iso_list_dialog_parent_class)->dispose(object); |
76 | 78 | } |
80 | 82 | const GValue *value, GParamSpec *pspec) |
81 | 83 | { |
82 | 84 | RemoteViewerISOListDialog *self = REMOTE_VIEWER_ISO_LIST_DIALOG(object); |
83 | RemoteViewerISOListDialogPrivate *priv = self->priv; | |
84 | 85 | |
85 | 86 | switch (property_id) { |
86 | 87 | case PROP_FOREIGN_MENU: |
87 | priv->foreign_menu = g_value_dup_object(value); | |
88 | self->foreign_menu = g_value_dup_object(value); | |
88 | 89 | break; |
89 | 90 | default: |
90 | 91 | G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); |
95 | 96 | remote_viewer_iso_list_dialog_class_init(RemoteViewerISOListDialogClass *klass) |
96 | 97 | { |
97 | 98 | GObjectClass *object_class = G_OBJECT_CLASS(klass); |
98 | ||
99 | g_type_class_add_private(klass, sizeof(RemoteViewerISOListDialogPrivate)); | |
100 | 99 | |
101 | 100 | object_class->dispose = remote_viewer_iso_list_dialog_dispose; |
102 | 101 | object_class->set_property = remote_viewer_iso_list_dialog_set_property; |
113 | 112 | static void |
114 | 113 | remote_viewer_iso_list_dialog_show_files(RemoteViewerISOListDialog *self) |
115 | 114 | { |
116 | self->priv = DIALOG_PRIVATE(self); | |
117 | gtk_stack_set_visible_child_full(GTK_STACK(self->priv->stack), "iso-list", | |
115 | gtk_stack_set_visible_child_full(GTK_STACK(self->stack), "iso-list", | |
118 | 116 | GTK_STACK_TRANSITION_TYPE_NONE); |
119 | 117 | gtk_dialog_set_response_sensitive(GTK_DIALOG(self), GTK_RESPONSE_NONE, TRUE); |
120 | 118 | } |
122 | 120 | static void |
123 | 121 | remote_viewer_iso_list_dialog_foreach(char *name, RemoteViewerISOListDialog *self) |
124 | 122 | { |
125 | RemoteViewerISOListDialogPrivate *priv = self->priv; | |
126 | gchar *current_iso = ovirt_foreign_menu_get_current_iso_name(self->priv->foreign_menu); | |
123 | gchar *current_iso = ovirt_foreign_menu_get_current_iso_name(self->foreign_menu); | |
127 | 124 | gboolean active = (g_strcmp0(current_iso, name) == 0); |
128 | 125 | gint weight = active ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL; |
129 | 126 | GtkTreeIter iter; |
130 | 127 | |
131 | gtk_list_store_append(priv->list_store, &iter); | |
132 | gtk_list_store_set(priv->list_store, &iter, | |
128 | gtk_list_store_append(self->list_store, &iter); | |
129 | gtk_list_store_set(self->list_store, &iter, | |
133 | 130 | ISO_IS_ACTIVE, active, |
134 | 131 | ISO_NAME, name, |
135 | 132 | FONT_WEIGHT, weight, -1); |
136 | 133 | |
137 | 134 | if (active) { |
138 | GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(priv->list_store), &iter); | |
139 | gtk_tree_view_set_cursor(GTK_TREE_VIEW(priv->tree_view), path, NULL, FALSE); | |
140 | gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(priv->tree_view), path, NULL, TRUE, 0.5, 0.5); | |
135 | GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(self->list_store), &iter); | |
136 | gtk_tree_view_set_cursor(GTK_TREE_VIEW(self->tree_view), path, NULL, FALSE); | |
137 | gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(self->tree_view), path, NULL, TRUE, 0.5, 0.5); | |
141 | 138 | gtk_tree_path_free(path); |
142 | 139 | } |
143 | 140 | |
149 | 146 | GAsyncResult *result, |
150 | 147 | RemoteViewerISOListDialog *self) |
151 | 148 | { |
152 | RemoteViewerISOListDialogPrivate *priv = self->priv; | |
153 | 149 | GError *error = NULL; |
154 | 150 | GList *iso_list; |
155 | 151 | |
163 | 159 | if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) |
164 | 160 | goto end; |
165 | 161 | |
166 | gtk_label_set_markup(GTK_LABEL(priv->status), markup); | |
167 | gtk_spinner_stop(GTK_SPINNER(priv->spinner)); | |
162 | gtk_label_set_markup(GTK_LABEL(self->status), markup); | |
163 | gtk_spinner_stop(GTK_SPINNER(self->spinner)); | |
168 | 164 | remote_viewer_iso_list_dialog_show_error(self, msg); |
169 | 165 | gtk_dialog_set_response_sensitive(GTK_DIALOG(self), GTK_RESPONSE_NONE, TRUE); |
170 | 166 | g_free(markup); |
171 | 167 | goto end; |
172 | 168 | } |
173 | 169 | |
174 | g_clear_object(&priv->cancellable); | |
170 | g_clear_object(&self->cancellable); | |
175 | 171 | g_list_foreach(iso_list, (GFunc) remote_viewer_iso_list_dialog_foreach, self); |
176 | 172 | remote_viewer_iso_list_dialog_show_files(self); |
177 | 173 | |
183 | 179 | static void |
184 | 180 | remote_viewer_iso_list_dialog_refresh_iso_list(RemoteViewerISOListDialog *self) |
185 | 181 | { |
186 | RemoteViewerISOListDialogPrivate *priv = self->priv; | |
187 | ||
188 | gtk_list_store_clear(priv->list_store); | |
189 | ||
190 | priv->cancellable = g_cancellable_new(); | |
191 | ovirt_foreign_menu_fetch_iso_names_async(priv->foreign_menu, | |
192 | priv->cancellable, | |
182 | gtk_list_store_clear(self->list_store); | |
183 | ||
184 | self->cancellable = g_cancellable_new(); | |
185 | ovirt_foreign_menu_fetch_iso_names_async(self->foreign_menu, | |
186 | self->cancellable, | |
193 | 187 | (GAsyncReadyCallback) fetch_iso_names_cb, |
194 | 188 | self); |
195 | 189 | } |
200 | 194 | gpointer user_data G_GNUC_UNUSED) |
201 | 195 | { |
202 | 196 | RemoteViewerISOListDialog *self = REMOTE_VIEWER_ISO_LIST_DIALOG(dialog); |
203 | RemoteViewerISOListDialogPrivate *priv = self->priv; | |
204 | 197 | |
205 | 198 | if (response_id != GTK_RESPONSE_NONE) { |
206 | g_cancellable_cancel(priv->cancellable); | |
199 | g_cancellable_cancel(self->cancellable); | |
207 | 200 | return; |
208 | 201 | } |
209 | 202 | |
210 | gtk_spinner_start(GTK_SPINNER(priv->spinner)); | |
211 | gtk_label_set_markup(GTK_LABEL(priv->status), _("<b>Loading...</b>")); | |
212 | gtk_stack_set_visible_child_full(GTK_STACK(priv->stack), "status", | |
203 | gtk_spinner_start(GTK_SPINNER(self->spinner)); | |
204 | gtk_label_set_markup(GTK_LABEL(self->status), _("<b>Loading...</b>")); | |
205 | gtk_stack_set_visible_child_full(GTK_STACK(self->stack), "status", | |
213 | 206 | GTK_STACK_TRANSITION_TYPE_NONE); |
214 | 207 | gtk_dialog_set_response_sensitive(GTK_DIALOG(self), GTK_RESPONSE_NONE, FALSE); |
215 | 208 | remote_viewer_iso_list_dialog_refresh_iso_list(self); |
216 | 209 | } |
217 | 210 | |
218 | void | |
211 | G_MODULE_EXPORT void | |
219 | 212 | remote_viewer_iso_list_dialog_toggled(GtkCellRendererToggle *cell_renderer G_GNUC_UNUSED, |
220 | 213 | gchar *path, |
221 | 214 | gpointer user_data) |
222 | 215 | { |
223 | 216 | RemoteViewerISOListDialog *self = REMOTE_VIEWER_ISO_LIST_DIALOG(user_data); |
224 | RemoteViewerISOListDialogPrivate *priv = self->priv; | |
225 | GtkTreeModel *model = GTK_TREE_MODEL(priv->list_store); | |
217 | GtkTreeModel *model = GTK_TREE_MODEL(self->list_store); | |
226 | 218 | GtkTreePath *tree_path = gtk_tree_path_new_from_string(path); |
227 | 219 | GtkTreeIter iter; |
228 | 220 | gboolean active; |
229 | 221 | gchar *name; |
230 | 222 | |
231 | gtk_tree_view_set_cursor(GTK_TREE_VIEW(priv->tree_view), tree_path, NULL, FALSE); | |
223 | gtk_tree_view_set_cursor(GTK_TREE_VIEW(self->tree_view), tree_path, NULL, FALSE); | |
232 | 224 | gtk_tree_model_get_iter(model, &iter, tree_path); |
233 | 225 | gtk_tree_model_get(model, &iter, |
234 | 226 | ISO_IS_ACTIVE, &active, |
235 | 227 | ISO_NAME, &name, -1); |
236 | 228 | |
237 | 229 | gtk_dialog_set_response_sensitive(GTK_DIALOG(self), GTK_RESPONSE_NONE, FALSE); |
238 | gtk_widget_set_sensitive(priv->tree_view, FALSE); | |
239 | ||
240 | priv->cancellable = g_cancellable_new(); | |
241 | ovirt_foreign_menu_set_current_iso_name_async(priv->foreign_menu, active ? NULL : name, | |
242 | priv->cancellable, | |
230 | gtk_widget_set_sensitive(self->tree_view, FALSE); | |
231 | ||
232 | self->cancellable = g_cancellable_new(); | |
233 | ovirt_foreign_menu_set_current_iso_name_async(self->foreign_menu, active ? NULL : name, | |
234 | self->cancellable, | |
243 | 235 | (GAsyncReadyCallback)ovirt_foreign_menu_iso_name_changed, |
244 | 236 | self); |
245 | 237 | gtk_tree_path_free(tree_path); |
246 | 238 | g_free(name); |
247 | 239 | } |
248 | 240 | |
249 | void | |
241 | G_MODULE_EXPORT void | |
250 | 242 | remote_viewer_iso_list_dialog_row_activated(GtkTreeView *view G_GNUC_UNUSED, |
251 | 243 | GtkTreePath *path, |
252 | 244 | GtkTreeViewColumn *col G_GNUC_UNUSED, |
261 | 253 | remote_viewer_iso_list_dialog_init(RemoteViewerISOListDialog *self) |
262 | 254 | { |
263 | 255 | GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(self)); |
264 | RemoteViewerISOListDialogPrivate *priv = self->priv = DIALOG_PRIVATE(self); | |
265 | 256 | GtkBuilder *builder = virt_viewer_util_load_ui("remote-viewer-iso-list.ui"); |
266 | 257 | GtkCellRendererToggle *cell_renderer; |
267 | 258 | |
268 | 259 | gtk_builder_connect_signals(builder, self); |
269 | 260 | |
270 | priv->status = GTK_WIDGET(gtk_builder_get_object(builder, "status")); | |
271 | priv->spinner = GTK_WIDGET(gtk_builder_get_object(builder, "spinner")); | |
272 | priv->stack = GTK_WIDGET(gtk_builder_get_object(builder, "stack")); | |
273 | gtk_box_pack_start(GTK_BOX(content), priv->stack, TRUE, TRUE, 0); | |
274 | ||
275 | priv->list_store = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore")); | |
276 | priv->tree_view = GTK_WIDGET(gtk_builder_get_object(builder, "view")); | |
261 | self->status = GTK_WIDGET(gtk_builder_get_object(builder, "status")); | |
262 | self->spinner = GTK_WIDGET(gtk_builder_get_object(builder, "spinner")); | |
263 | self->stack = GTK_WIDGET(gtk_builder_get_object(builder, "stack")); | |
264 | gtk_box_pack_start(GTK_BOX(content), self->stack, TRUE, TRUE, 0); | |
265 | ||
266 | self->list_store = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore")); | |
267 | self->tree_view = GTK_WIDGET(gtk_builder_get_object(builder, "view")); | |
277 | 268 | cell_renderer = GTK_CELL_RENDERER_TOGGLE(gtk_builder_get_object(builder, "cellrenderertoggle")); |
278 | 269 | gtk_cell_renderer_toggle_set_radio(cell_renderer, TRUE); |
279 | 270 | gtk_cell_renderer_set_padding(GTK_CELL_RENDERER(cell_renderer), 6, 6); |
312 | 303 | GAsyncResult *result, |
313 | 304 | RemoteViewerISOListDialog *self) |
314 | 305 | { |
315 | RemoteViewerISOListDialogPrivate *priv = self->priv; | |
316 | GtkTreeModel *model = GTK_TREE_MODEL(priv->list_store); | |
306 | GtkTreeModel *model = GTK_TREE_MODEL(self->list_store); | |
317 | 307 | gchar *current_iso; |
318 | 308 | GtkTreeIter iter; |
319 | 309 | gchar *name; |
333 | 323 | remote_viewer_iso_list_dialog_show_error(self, msg); |
334 | 324 | } |
335 | 325 | |
336 | g_clear_object(&priv->cancellable); | |
326 | g_clear_object(&self->cancellable); | |
337 | 327 | if (!gtk_tree_model_get_iter_first(model, &iter)) |
338 | 328 | goto end; |
339 | 329 | |
347 | 337 | |
348 | 338 | /* iso is not active anymore */ |
349 | 339 | if (active && !match) { |
350 | gtk_list_store_set(priv->list_store, &iter, | |
340 | gtk_list_store_set(self->list_store, &iter, | |
351 | 341 | ISO_IS_ACTIVE, FALSE, |
352 | 342 | FONT_WEIGHT, PANGO_WEIGHT_NORMAL, -1); |
353 | 343 | } else if (match) { |
354 | gtk_list_store_set(priv->list_store, &iter, | |
344 | gtk_list_store_set(self->list_store, &iter, | |
355 | 345 | ISO_IS_ACTIVE, TRUE, |
356 | 346 | FONT_WEIGHT, PANGO_WEIGHT_BOLD, -1); |
357 | 347 | } |
360 | 350 | } while (gtk_tree_model_iter_next(model, &iter)); |
361 | 351 | |
362 | 352 | gtk_dialog_set_response_sensitive(GTK_DIALOG(self), GTK_RESPONSE_NONE, TRUE); |
363 | gtk_widget_set_sensitive(priv->tree_view, TRUE); | |
353 | gtk_widget_set_sensitive(self->tree_view, TRUE); | |
364 | 354 | g_free(current_iso); |
365 | 355 | |
366 | 356 | end: |
34 | 34 | |
35 | 35 | typedef struct _RemoteViewerISOListDialog RemoteViewerISOListDialog; |
36 | 36 | typedef struct _RemoteViewerISOListDialogClass RemoteViewerISOListDialogClass; |
37 | typedef struct _RemoteViewerISOListDialogPrivate RemoteViewerISOListDialogPrivate; | |
38 | ||
39 | struct _RemoteViewerISOListDialog | |
40 | { | |
41 | GtkDialog parent; | |
42 | ||
43 | RemoteViewerISOListDialogPrivate *priv; | |
44 | }; | |
45 | ||
46 | struct _RemoteViewerISOListDialogClass | |
47 | { | |
48 | GtkDialogClass parent_class; | |
49 | }; | |
50 | 37 | |
51 | 38 | GType remote_viewer_iso_list_dialog_get_type(void) G_GNUC_CONST; |
52 | 39 |
53 | 53 | gboolean open_recent_dialog; |
54 | 54 | }; |
55 | 55 | |
56 | G_DEFINE_TYPE (RemoteViewer, remote_viewer, VIRT_VIEWER_TYPE_APP) | |
57 | #define GET_PRIVATE(o) \ | |
58 | (G_TYPE_INSTANCE_GET_PRIVATE ((o), REMOTE_VIEWER_TYPE, RemoteViewerPrivate)) | |
56 | G_DEFINE_TYPE_WITH_PRIVATE (RemoteViewer, remote_viewer, VIRT_VIEWER_TYPE_APP) | |
59 | 57 | |
60 | 58 | enum RemoteViewerProperties { |
61 | 59 | PROP_0, |
195 | 193 | VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass); |
196 | 194 | GApplicationClass *g_app_class = G_APPLICATION_CLASS(klass); |
197 | 195 | |
198 | g_type_class_add_private (klass, sizeof (RemoteViewerPrivate)); | |
199 | ||
200 | 196 | object_class->get_property = remote_viewer_get_property; |
201 | 197 | object_class->dispose = remote_viewer_dispose; |
202 | 198 | |
220 | 216 | static void |
221 | 217 | remote_viewer_init(RemoteViewer *self) |
222 | 218 | { |
223 | self->priv = GET_PRIVATE(self); | |
219 | self->priv = remote_viewer_get_instance_private(self); | |
224 | 220 | } |
225 | 221 | |
226 | 222 | RemoteViewer * |
344 | 340 | "username", username, |
345 | 341 | "password", password, |
346 | 342 | NULL); |
347 | #ifdef HAVE_OVIRT_CANCEL | |
348 | 343 | } else { |
349 | 344 | rest_proxy_auth_cancel(auth); |
350 | #endif | |
351 | 345 | } |
352 | 346 | |
353 | 347 | g_free(username); |
446 | 440 | api = ovirt_proxy_fetch_api(proxy, &error); |
447 | 441 | if (error != NULL) { |
448 | 442 | g_debug("failed to get oVirt 'api' collection: %s", error->message); |
449 | #ifdef HAVE_OVIRT_CANCEL | |
450 | 443 | if (g_error_matches(error, OVIRT_REST_CALL_ERROR, OVIRT_REST_CALL_ERROR_CANCELLED)) { |
451 | 444 | g_clear_error(&error); |
452 | 445 | g_set_error_literal(&error, |
453 | 446 | VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_CANCELLED, |
454 | 447 | _("Authentication was cancelled")); |
455 | 448 | } |
456 | #endif | |
457 | 449 | goto error; |
458 | 450 | } |
459 | 451 | vms = ovirt_api_get_vms(api); |
508 | 500 | "proxy-url", &proxy_url, |
509 | 501 | NULL); |
510 | 502 | if (port != 0) { |
511 | gport = g_strdup_printf("%d", port); | |
503 | gport = g_strdup_printf("%u", port); | |
512 | 504 | } |
513 | 505 | if (secure_port != 0) { |
514 | gtlsport = g_strdup_printf("%d", secure_port); | |
506 | gtlsport = g_strdup_printf("%u", secure_port); | |
515 | 507 | } |
516 | 508 | |
517 | 509 | if (ghost == NULL) { |
527 | 519 | session_type = "vnc"; |
528 | 520 | } else { |
529 | 521 | g_set_error(&error, VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED, |
530 | _("oVirt VM %s has unknown display type: %d"), vm_name, type); | |
522 | _("oVirt VM %s has unknown display type: %u"), vm_name, type); | |
531 | 523 | g_debug("%s", error->message); |
532 | 524 | goto error; |
533 | 525 | } |
687 | 679 | { |
688 | 680 | VirtViewerApp *app = VIRT_VIEWER_APP(self); |
689 | 681 | |
690 | if (!virt_viewer_app_create_session(app, type, error)) | |
691 | return FALSE; | |
692 | ||
682 | #ifdef HAVE_OVIRT | |
683 | if (g_strcmp0(type, "ovirt") == 0) { | |
684 | if (!create_ovirt_session(app, guri, error)) { | |
685 | g_prefix_error(error, _("Couldn't open oVirt session: ")); | |
686 | return FALSE; | |
687 | } | |
688 | } else | |
689 | #endif | |
690 | { | |
691 | if (!virt_viewer_app_create_session(app, type, error)) | |
692 | return FALSE; | |
693 | } | |
693 | 694 | |
694 | 695 | g_signal_connect(virt_viewer_app_get_session(app), "session-connected", |
695 | 696 | G_CALLBACK(remote_viewer_session_connected), g_strdup(guri)); |
785 | 786 | _("Cannot determine the connection type from URI")); |
786 | 787 | goto cleanup; |
787 | 788 | } |
788 | #ifdef HAVE_OVIRT | |
789 | if (g_strcmp0(type, "ovirt") == 0) { | |
790 | if (!create_ovirt_session(app, guri, &error)) { | |
791 | g_prefix_error(&error, _("Couldn't open oVirt session: ")); | |
792 | goto cleanup; | |
793 | } | |
794 | } else | |
795 | #endif | |
796 | { | |
797 | if (!remote_viewer_initial_connect(self, type, guri, vvfile, &error)) | |
798 | goto cleanup; | |
799 | } | |
789 | if (!remote_viewer_initial_connect(self, type, guri, vvfile, &error)) | |
790 | goto cleanup; | |
800 | 791 | } |
801 | 792 | |
802 | 793 | ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->start(app, &error); |
33 | 33 | <property name="accel_group">accelgroup</property> |
34 | 34 | <child> |
35 | 35 | <object class="GtkMenuItem" id="menu-file-screenshot"> |
36 | <property name="sensitive">False</property> | |
36 | 37 | <property name="visible">True</property> |
37 | 38 | <property name="can_focus">False</property> |
38 | 39 | <property name="use_action_appearance">False</property> |
82 | 83 | </child> |
83 | 84 | <child> |
84 | 85 | <object class="GtkMenuItem" id="menu-preferences"> |
86 | <property name="sensitive">False</property> | |
85 | 87 | <property name="visible">True</property> |
86 | 88 | <property name="can_focus">False</property> |
87 | 89 | <property name="label" translatable="yes">_Preferences</property> |
104 | 106 | <property name="use_underline">True</property> |
105 | 107 | <accelerator key="q" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/> |
106 | 108 | <signal name="activate" handler="virt_viewer_window_menu_file_quit" swapped="no"/> |
109 | </object> | |
110 | </child> | |
111 | </object> | |
112 | </child> | |
113 | </object> | |
114 | </child> | |
115 | <child> | |
116 | <object class="GtkMenuItem" id="menu-machine"> | |
117 | <property name="can_focus">False</property> | |
118 | <property name="label" translatable="yes">_Machine</property> | |
119 | <property name="use_underline">True</property> | |
120 | <child type="submenu"> | |
121 | <object class="GtkMenu"> | |
122 | <property name="visible">True</property> | |
123 | <property name="can_focus">False</property> | |
124 | <child> | |
125 | <object class="GtkCheckMenuItem" id="menu-vm-pause"> | |
126 | <property name="visible">True</property> | |
127 | <property name="can_focus">False</property> | |
128 | <property name="label" translatable="yes">_Pause</property> | |
129 | <property name="use_underline">True</property> | |
130 | <signal name="toggled" handler="virt_viewer_window_menu_machine_pause" swapped="no"/> | |
131 | </object> | |
132 | </child> | |
133 | <child> | |
134 | <object class="GtkSeparatorMenuItem"> | |
135 | <property name="visible">True</property> | |
136 | <property name="can_focus">False</property> | |
137 | </object> | |
138 | </child> | |
139 | <child> | |
140 | <object class="GtkMenuItem" id="menu-vm-reset"> | |
141 | <property name="visible">True</property> | |
142 | <property name="can_focus">False</property> | |
143 | <property name="label" translatable="yes">_Reset</property> | |
144 | <property name="use_underline">True</property> | |
145 | <signal name="activate" handler="virt_viewer_window_menu_machine_reset" swapped="no"/> | |
146 | </object> | |
147 | </child> | |
148 | <child> | |
149 | <object class="GtkMenuItem" id="menu-vm-powerdown"> | |
150 | <property name="visible">True</property> | |
151 | <property name="can_focus">False</property> | |
152 | <property name="label" translatable="yes">_Power down</property> | |
153 | <property name="use_underline">True</property> | |
154 | <signal name="activate" handler="virt_viewer_window_menu_machine_powerdown" swapped="no"/> | |
107 | 155 | </object> |
108 | 156 | </child> |
109 | 157 | </object> |
135 | 183 | </child> |
136 | 184 | <child> |
137 | 185 | <object class="GtkMenuItem" id="menu-view-zoom"> |
186 | <property name="sensitive">False</property> | |
138 | 187 | <property name="visible">True</property> |
139 | 188 | <property name="can_focus">False</property> |
140 | 189 | <property name="use_action_appearance">False</property> |
213 | 262 | </child> |
214 | 263 | <child> |
215 | 264 | <object class="GtkMenuItem" id="menu-send"> |
265 | <property name="sensitive">False</property> | |
216 | 266 | <property name="visible">True</property> |
217 | 267 | <property name="can_focus">False</property> |
218 | 268 | <property name="use_action_appearance">False</property> |
61 | 61 | #include "virt-viewer-session-spice.h" |
62 | 62 | #endif |
63 | 63 | |
64 | #include "virt-viewer-display-vte.h" | |
65 | ||
64 | 66 | gboolean doDebug = FALSE; |
65 | 67 | |
66 | 68 | /* Signal handlers for about dialog */ |
109 | 111 | VirtViewerWindow *main_window; |
110 | 112 | GtkWidget *main_notebook; |
111 | 113 | GList *windows; |
112 | GHashTable *displays; | |
114 | GHashTable *displays; /* !vte */ | |
113 | 115 | GHashTable *initial_display_map; |
114 | 116 | gchar *clipboard; |
115 | 117 | GtkWidget *preferences; |
124 | 126 | gboolean attach; |
125 | 127 | gboolean quitting; |
126 | 128 | gboolean kiosk; |
129 | gboolean vm_ui; | |
130 | gboolean vm_running; | |
127 | 131 | |
128 | 132 | VirtViewerSession *session; |
129 | 133 | gboolean active; |
144 | 148 | char *title; |
145 | 149 | char *uuid; |
146 | 150 | |
147 | gint focused; | |
148 | 151 | GKeyFile *config; |
149 | 152 | gchar *config_file; |
150 | 153 | |
156 | 159 | }; |
157 | 160 | |
158 | 161 | |
159 | G_DEFINE_ABSTRACT_TYPE(VirtViewerApp, virt_viewer_app, GTK_TYPE_APPLICATION) | |
160 | #define GET_PRIVATE(o) \ | |
161 | (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_APP, VirtViewerAppPrivate)) | |
162 | G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(VirtViewerApp, virt_viewer_app, GTK_TYPE_APPLICATION) | |
162 | 163 | |
163 | 164 | enum { |
164 | 165 | PROP_0, |
169 | 170 | PROP_FULLSCREEN, |
170 | 171 | PROP_TITLE, |
171 | 172 | PROP_ENABLE_ACCEL, |
172 | PROP_HAS_FOCUS, | |
173 | 173 | PROP_KIOSK, |
174 | 174 | PROP_QUIT_ON_DISCONNECT, |
175 | 175 | PROP_UUID, |
176 | PROP_VM_UI, | |
177 | PROP_VM_RUNNING, | |
176 | 178 | }; |
177 | 179 | |
178 | 180 | void |
257 | 259 | if (error) { |
258 | 260 | g_debug("Unable to get comment from key file: %s", error->message); |
259 | 261 | g_clear_error(&error); |
260 | } else { | |
261 | if (!comment || *comment == '\0') | |
262 | g_key_file_set_comment(priv->config, priv->uuid, NULL, priv->guest_name, NULL); | |
262 | } | |
263 | ||
264 | if (comment == NULL || | |
265 | (comment != NULL && g_strstr_len(comment, -1, priv->guest_name) == NULL)) { | |
266 | /* Note that this function appends the guest's name string as last | |
267 | * comment in case there were comments there already */ | |
268 | g_key_file_set_comment(priv->config, priv->uuid, NULL, priv->guest_name, NULL); | |
263 | 269 | } |
264 | 270 | g_free(comment); |
265 | 271 | } |
280 | 286 | VirtViewerAppPrivate *priv = self->priv; |
281 | 287 | |
282 | 288 | virt_viewer_app_save_config(self); |
289 | ||
290 | if (priv->vm_ui) { | |
291 | virt_viewer_session_vm_action(VIRT_VIEWER_SESSION(priv->session), | |
292 | VIRT_VIEWER_SESSION_VM_ACTION_QUIT); | |
293 | } | |
283 | 294 | |
284 | 295 | if (priv->session) { |
285 | 296 | virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session)); |
293 | 304 | } |
294 | 305 | |
295 | 306 | static gint |
296 | get_n_client_monitors() | |
307 | get_n_client_monitors(void) | |
297 | 308 | { |
298 | 309 | return gdk_screen_get_n_monitors(gdk_screen_get_default()); |
299 | 310 | } |
499 | 510 | guint n = 0; |
500 | 511 | g_list_foreach(self->priv->windows, count_window_visible, &n); |
501 | 512 | return n; |
502 | } | |
503 | ||
504 | gboolean | |
505 | virt_viewer_app_window_set_visible(VirtViewerApp *self, | |
506 | VirtViewerWindow *window, | |
507 | gboolean visible) | |
508 | { | |
509 | g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); | |
510 | g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(window), FALSE); | |
511 | ||
512 | if (visible) { | |
513 | virt_viewer_window_show(window); | |
514 | return TRUE; | |
515 | } else { | |
516 | if (virt_viewer_app_get_n_windows_visible(self) > 1) { | |
517 | virt_viewer_window_hide(window); | |
518 | return FALSE; | |
519 | } | |
520 | ||
521 | virt_viewer_app_maybe_quit(self, window); | |
522 | } | |
523 | ||
524 | return FALSE; | |
525 | 513 | } |
526 | 514 | |
527 | 515 | static void hide_one_window(gpointer value, |
723 | 711 | const gchar *title = virt_viewer_app_get_title(app); |
724 | 712 | |
725 | 713 | if (title != NULL) { |
714 | VirtViewerDisplay *display = virt_viewer_window_get_display(window); | |
726 | 715 | gchar *d = strstr(title, "%d"); |
716 | gchar *desc = NULL; | |
717 | ||
718 | if (display && VIRT_VIEWER_IS_DISPLAY_VTE(display)) { | |
719 | g_object_get(display, "name", &desc, NULL); | |
720 | } else { | |
721 | desc = g_strdup_printf("%d", nth + 1); | |
722 | } | |
723 | ||
727 | 724 | if (d != NULL) { |
728 | 725 | *d = '\0'; |
729 | subtitle = g_strdup_printf("%s%d%s", title, nth + 1, d + 2); | |
726 | subtitle = g_strdup_printf("%s%s%s", title, desc, d + 2); | |
730 | 727 | *d = '%'; |
731 | 728 | } else |
732 | subtitle = g_strdup_printf("%s (%d)", title, nth + 1); | |
729 | subtitle = g_strdup_printf("%s (%s)", title, desc); | |
730 | g_free(desc); | |
733 | 731 | } |
734 | 732 | |
735 | 733 | g_object_set(window, "subtitle", subtitle, NULL); |
737 | 735 | } |
738 | 736 | |
739 | 737 | static void |
740 | set_title(gpointer value, | |
741 | gpointer user_data) | |
738 | set_subtitle(gpointer value, | |
739 | gpointer user_data) | |
742 | 740 | { |
743 | 741 | VirtViewerApp *app = user_data; |
744 | 742 | VirtViewerWindow *window = value; |
754 | 752 | static void |
755 | 753 | virt_viewer_app_set_all_window_subtitles(VirtViewerApp *app) |
756 | 754 | { |
757 | g_list_foreach(app->priv->windows, set_title, app); | |
755 | g_list_foreach(app->priv->windows, set_subtitle, app); | |
758 | 756 | } |
759 | 757 | |
760 | 758 | static void update_title(gpointer value, |
800 | 798 | virt_viewer_app_get_nth_window(VirtViewerApp *self, gint nth) |
801 | 799 | { |
802 | 800 | GList *l; |
801 | ||
802 | if (nth < 0) | |
803 | return NULL; | |
804 | ||
803 | 805 | for (l = self->priv->windows; l; l = l->next) { |
804 | 806 | VirtViewerDisplay *display = virt_viewer_window_get_display(l->data); |
805 | 807 | if (display |
818 | 820 | } |
819 | 821 | |
820 | 822 | static gboolean |
821 | viewer_window_focus_in_cb(GtkWindow *window G_GNUC_UNUSED, | |
822 | GdkEvent *event G_GNUC_UNUSED, | |
823 | VirtViewerApp *self) | |
824 | { | |
825 | self->priv->focused += 1; | |
826 | ||
827 | if (self->priv->focused == 1) | |
828 | g_object_notify(G_OBJECT(self), "has-focus"); | |
829 | ||
830 | return FALSE; | |
831 | } | |
832 | ||
833 | static gboolean | |
834 | viewer_window_focus_out_cb(GtkWindow *window G_GNUC_UNUSED, | |
835 | GdkEvent *event G_GNUC_UNUSED, | |
836 | VirtViewerApp *self) | |
837 | { | |
838 | self->priv->focused -= 1; | |
839 | g_warn_if_fail(self->priv->focused >= 0); | |
840 | ||
841 | if (self->priv->focused <= 0) | |
842 | g_object_notify(G_OBJECT(self), "has-focus"); | |
843 | ||
844 | return FALSE; | |
845 | } | |
846 | ||
847 | static gboolean | |
848 | 823 | virt_viewer_app_has_usbredir(VirtViewerApp *self) |
849 | 824 | { |
850 | 825 | return virt_viewer_app_has_session(self) && |
880 | 855 | |
881 | 856 | g_signal_connect(w, "hide", G_CALLBACK(viewer_window_visible_cb), self); |
882 | 857 | g_signal_connect(w, "show", G_CALLBACK(viewer_window_visible_cb), self); |
883 | g_signal_connect(w, "focus-in-event", G_CALLBACK(viewer_window_focus_in_cb), self); | |
884 | g_signal_connect(w, "focus-out-event", G_CALLBACK(viewer_window_focus_out_cb), self); | |
885 | 858 | return window; |
859 | } | |
860 | ||
861 | static void | |
862 | window_weak_notify(gpointer data, GObject *where_was G_GNUC_UNUSED) | |
863 | { | |
864 | VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(data); | |
865 | ||
866 | g_object_set_data(G_OBJECT(display), "virt-viewer-window", NULL); | |
886 | 867 | } |
887 | 868 | |
888 | 869 | static VirtViewerWindow * |
890 | 871 | { |
891 | 872 | gint nth = virt_viewer_display_get_nth(display); |
892 | 873 | VirtViewerWindow *win = virt_viewer_app_get_nth_window(self, nth); |
874 | ||
875 | if (VIRT_VIEWER_IS_DISPLAY_VTE(display)) { | |
876 | win = g_object_get_data(G_OBJECT(display), "virt-viewer-window"); | |
877 | } | |
878 | ||
893 | 879 | if (win == NULL) { |
894 | 880 | GList *l = self->priv->windows; |
895 | 881 | |
911 | 897 | } |
912 | 898 | |
913 | 899 | virt_viewer_window_set_display(win, display); |
900 | if (VIRT_VIEWER_IS_DISPLAY_VTE(display)) { | |
901 | g_object_set_data(G_OBJECT(display), "virt-viewer-window", win); | |
902 | g_object_weak_ref(G_OBJECT(win), window_weak_notify, display); | |
903 | } | |
914 | 904 | } |
915 | 905 | virt_viewer_app_set_window_subtitle(self, win, nth); |
916 | 906 | |
907 | return win; | |
908 | } | |
909 | ||
910 | static VirtViewerWindow * | |
911 | display_show_notebook_get_window(VirtViewerApp *self, VirtViewerDisplay *display) | |
912 | { | |
913 | VirtViewerWindow *win = ensure_window_for_display(self, display); | |
914 | VirtViewerNotebook *nb = virt_viewer_window_get_notebook(win); | |
915 | ||
916 | virt_viewer_notebook_show_display(nb); | |
917 | 917 | return win; |
918 | 918 | } |
919 | 919 | |
944 | 944 | virt_viewer_window_hide(win); |
945 | 945 | } else { |
946 | 946 | if (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_READY) { |
947 | win = ensure_window_for_display(self, display); | |
948 | nb = virt_viewer_window_get_notebook(win); | |
949 | virt_viewer_notebook_show_display(nb); | |
947 | win = display_show_notebook_get_window(self, display); | |
950 | 948 | virt_viewer_window_show(win); |
951 | 949 | } else { |
952 | 950 | if (!self->priv->kiosk && win) { |
966 | 964 | gint nth; |
967 | 965 | |
968 | 966 | g_object_get(display, "nth-display", &nth, NULL); |
969 | ||
970 | 967 | g_debug("Insert display %d %p", nth, display); |
968 | ||
969 | if (VIRT_VIEWER_IS_DISPLAY_VTE(display)) { | |
970 | VirtViewerWindow *win = display_show_notebook_get_window(self, display); | |
971 | virt_viewer_window_hide(win); | |
972 | virt_viewer_app_update_menu_displays(self); | |
973 | return; | |
974 | } | |
975 | ||
971 | 976 | g_hash_table_insert(self->priv->displays, GINT_TO_POINTER(nth), g_object_ref(display)); |
972 | 977 | |
973 | 978 | g_signal_connect(display, "notify::show-hint", |
974 | 979 | G_CALLBACK(display_show_hint), NULL); |
975 | 980 | g_object_notify(G_OBJECT(display), "show-hint"); /* call display_show_hint */ |
976 | 981 | } |
977 | ||
978 | 982 | |
979 | 983 | static void virt_viewer_app_remove_nth_window(VirtViewerApp *self, |
980 | 984 | gint nth) |
1563 | 1567 | g_value_set_boolean(value, virt_viewer_app_get_enable_accel(self)); |
1564 | 1568 | break; |
1565 | 1569 | |
1566 | case PROP_HAS_FOCUS: | |
1567 | g_value_set_boolean(value, priv->focused > 0); | |
1568 | break; | |
1569 | ||
1570 | 1570 | case PROP_KIOSK: |
1571 | 1571 | g_value_set_boolean(value, priv->kiosk); |
1572 | 1572 | break; |
1577 | 1577 | |
1578 | 1578 | case PROP_UUID: |
1579 | 1579 | g_value_set_string(value, priv->uuid); |
1580 | break; | |
1581 | ||
1582 | case PROP_VM_UI: | |
1583 | g_value_set_boolean(value, priv->vm_ui); | |
1584 | break; | |
1585 | ||
1586 | case PROP_VM_RUNNING: | |
1587 | g_value_set_boolean(value, priv->vm_running); | |
1580 | 1588 | break; |
1581 | 1589 | |
1582 | 1590 | default: |
1631 | 1639 | |
1632 | 1640 | case PROP_UUID: |
1633 | 1641 | virt_viewer_app_set_uuid_string(self, g_value_get_string(value)); |
1642 | break; | |
1643 | ||
1644 | case PROP_VM_UI: | |
1645 | priv->vm_ui = g_value_get_boolean(value); | |
1646 | break; | |
1647 | ||
1648 | case PROP_VM_RUNNING: | |
1649 | priv->vm_running = g_value_get_boolean(value); | |
1634 | 1650 | break; |
1635 | 1651 | |
1636 | 1652 | default: |
1730 | 1746 | virt_viewer_app_init(VirtViewerApp *self) |
1731 | 1747 | { |
1732 | 1748 | GError *error = NULL; |
1733 | self->priv = GET_PRIVATE(self); | |
1749 | self->priv = virt_viewer_app_get_instance_private(self); | |
1734 | 1750 | |
1735 | 1751 | gtk_window_set_default_icon_name("virt-viewer"); |
1736 | 1752 | |
1789 | 1805 | sw_smartcard = FALSE; |
1790 | 1806 | } |
1791 | 1807 | if (sw_smartcard) { |
1808 | gboolean r; | |
1792 | 1809 | g_debug("enabling smartcard shortcuts"); |
1793 | gtk_accel_map_change_entry("<virt-viewer>/file/smartcard-insert", | |
1794 | priv->insert_smartcard_accel_key, | |
1795 | priv->insert_smartcard_accel_mods, | |
1796 | TRUE); | |
1797 | gtk_accel_map_change_entry("<virt-viewer>/file/smartcard-remove", | |
1798 | priv->remove_smartcard_accel_key, | |
1799 | priv->remove_smartcard_accel_mods, | |
1800 | TRUE); | |
1810 | r = gtk_accel_map_change_entry("<virt-viewer>/file/smartcard-insert", | |
1811 | priv->insert_smartcard_accel_key, | |
1812 | priv->insert_smartcard_accel_mods, | |
1813 | TRUE); | |
1814 | if (!r) | |
1815 | g_warning("Unable to set hotkey for 'smartcard-insert' due to a conflict in GTK"); | |
1816 | r = gtk_accel_map_change_entry("<virt-viewer>/file/smartcard-remove", | |
1817 | priv->remove_smartcard_accel_key, | |
1818 | priv->remove_smartcard_accel_mods, | |
1819 | TRUE); | |
1820 | if (!r) | |
1821 | g_warning("Unable to set hotkey for 'smartcard-remove' due to a conflict in GTK"); | |
1801 | 1822 | } else { |
1802 | 1823 | g_debug("disabling smartcard shortcuts"); |
1803 | 1824 | gtk_accel_map_change_entry("<virt-viewer>/file/smartcard-insert", 0, 0, TRUE); |
1862 | 1883 | { |
1863 | 1884 | VirtViewerApp *self = VIRT_VIEWER_APP(gapp); |
1864 | 1885 | gboolean ret = FALSE; |
1865 | gint argc = g_strv_length(*args); | |
1866 | 1886 | GError *error = NULL; |
1867 | 1887 | GOptionContext *context = g_option_context_new(NULL); |
1868 | 1888 | GOptionGroup *group = g_option_group_new("virt-viewer", NULL, NULL, gapp, NULL); |
1881 | 1901 | g_option_context_add_group(context, spice_get_option_group()); |
1882 | 1902 | #endif |
1883 | 1903 | |
1884 | if (!g_option_context_parse(context, &argc, args, &error)) { | |
1904 | if (!g_option_context_parse_strv(context, args, &error)) { | |
1885 | 1905 | if (error != NULL) { |
1886 | 1906 | g_printerr(_("%s\n"), error->message); |
1887 | 1907 | g_error_free(error); |
1911 | 1931 | { |
1912 | 1932 | GObjectClass *object_class = G_OBJECT_CLASS (klass); |
1913 | 1933 | GApplicationClass *g_app_class = G_APPLICATION_CLASS(klass); |
1914 | ||
1915 | g_type_class_add_private (klass, sizeof (VirtViewerAppPrivate)); | |
1916 | 1934 | |
1917 | 1935 | object_class->get_property = virt_viewer_app_get_property; |
1918 | 1936 | object_class->set_property = virt_viewer_app_set_property; |
1997 | 2015 | G_PARAM_STATIC_STRINGS)); |
1998 | 2016 | |
1999 | 2017 | g_object_class_install_property(object_class, |
2000 | PROP_HAS_FOCUS, | |
2001 | g_param_spec_boolean("has-focus", | |
2002 | "Has Focus", | |
2003 | "Application has focus", | |
2004 | FALSE, | |
2005 | G_PARAM_READABLE | | |
2006 | G_PARAM_STATIC_STRINGS)); | |
2007 | ||
2008 | g_object_class_install_property(object_class, | |
2009 | 2018 | PROP_KIOSK, |
2010 | 2019 | g_param_spec_boolean("kiosk", |
2011 | 2020 | "Kiosk", |
2033 | 2042 | G_PARAM_READABLE | |
2034 | 2043 | G_PARAM_WRITABLE | |
2035 | 2044 | G_PARAM_STATIC_STRINGS)); |
2045 | ||
2046 | g_object_class_install_property(object_class, | |
2047 | PROP_VM_UI, | |
2048 | g_param_spec_boolean("vm-ui", | |
2049 | "VM UI", | |
2050 | "QEMU UI & behaviour", | |
2051 | FALSE, | |
2052 | G_PARAM_READWRITE | | |
2053 | G_PARAM_STATIC_STRINGS)); | |
2054 | ||
2055 | g_object_class_install_property(object_class, | |
2056 | PROP_VM_RUNNING, | |
2057 | g_param_spec_boolean("vm-running", | |
2058 | "VM running", | |
2059 | "VM running", | |
2060 | FALSE, | |
2061 | G_PARAM_READWRITE | | |
2062 | G_PARAM_STATIC_STRINGS)); | |
2036 | 2063 | } |
2037 | 2064 | |
2038 | 2065 | void |
2108 | 2135 | continue; |
2109 | 2136 | } |
2110 | 2137 | |
2138 | gboolean status = TRUE; | |
2111 | 2139 | if (g_str_equal(*hotkey, "toggle-fullscreen")) { |
2112 | gtk_accel_map_change_entry("<virt-viewer>/view/toggle-fullscreen", accel_key, accel_mods, TRUE); | |
2140 | status = gtk_accel_map_change_entry("<virt-viewer>/view/toggle-fullscreen", accel_key, accel_mods, TRUE); | |
2113 | 2141 | } else if (g_str_equal(*hotkey, "release-cursor")) { |
2114 | gtk_accel_map_change_entry("<virt-viewer>/view/release-cursor", accel_key, accel_mods, TRUE); | |
2142 | status = gtk_accel_map_change_entry("<virt-viewer>/view/release-cursor", accel_key, accel_mods, TRUE); | |
2115 | 2143 | } else if (g_str_equal(*hotkey, "secure-attention")) { |
2116 | gtk_accel_map_change_entry("<virt-viewer>/send/secure-attention", accel_key, accel_mods, TRUE); | |
2144 | status = gtk_accel_map_change_entry("<virt-viewer>/send/secure-attention", accel_key, accel_mods, TRUE); | |
2117 | 2145 | } else if (g_str_equal(*hotkey, "smartcard-insert")) { |
2118 | 2146 | virt_viewer_set_insert_smartcard_accel(self, accel_key, accel_mods); |
2119 | 2147 | } else if (g_str_equal(*hotkey, "smartcard-remove")) { |
2121 | 2149 | } else { |
2122 | 2150 | g_warning("Unknown hotkey command %s", *hotkey); |
2123 | 2151 | } |
2152 | if (!status) | |
2153 | g_warning("Unable to set hotkey for '%s' due to a conflict in GTK", *hotkey); | |
2124 | 2154 | } |
2125 | 2155 | g_strfreev(hotkeys); |
2126 | 2156 | |
2231 | 2261 | { |
2232 | 2262 | VirtViewerApp *self = virt_viewer_session_get_app(virt_viewer_display_get_session(display)); |
2233 | 2263 | gboolean visible = gtk_check_menu_item_get_active(checkmenuitem); |
2234 | static gboolean reentering = FALSE; | |
2235 | 2264 | VirtViewerWindow *vwin; |
2236 | 2265 | |
2237 | if (reentering) /* do not reenter if I switch you back */ | |
2238 | return; | |
2239 | ||
2240 | reentering = TRUE; | |
2241 | ||
2242 | 2266 | vwin = ensure_window_for_display(self, display); |
2243 | visible = virt_viewer_app_window_set_visible(self, vwin, visible); | |
2244 | ||
2245 | gtk_check_menu_item_set_active(checkmenuitem, /* will be toggled again */ !visible); | |
2246 | reentering = FALSE; | |
2267 | ||
2268 | if (visible) { | |
2269 | virt_viewer_window_show(vwin); | |
2270 | } else { | |
2271 | if (virt_viewer_app_get_n_windows_visible(self) > 1) { | |
2272 | virt_viewer_window_hide(vwin); | |
2273 | } else { | |
2274 | virt_viewer_app_maybe_quit(self, vwin); | |
2275 | /* the last item remains active, doesn't matter if we quit */ | |
2276 | gtk_check_menu_item_set_active(checkmenuitem, TRUE); | |
2277 | } | |
2278 | } | |
2247 | 2279 | |
2248 | 2280 | virt_viewer_session_update_displays_geometry(virt_viewer_display_get_session(display)); |
2249 | 2281 | } |
2340 | 2372 | G_CALLBACK(menu_display_visible_toggled_cb), display, 0); |
2341 | 2373 | gtk_menu_shell_append(submenu, item); |
2342 | 2374 | tmp = tmp->next; |
2375 | } | |
2376 | ||
2377 | for (tmp = self->priv->windows; tmp; tmp = tmp->next) { | |
2378 | VirtViewerWindow *win = VIRT_VIEWER_WINDOW(tmp->data); | |
2379 | VirtViewerDisplay *display = virt_viewer_window_get_display(win); | |
2380 | ||
2381 | if (VIRT_VIEWER_IS_DISPLAY_VTE(display)) { | |
2382 | gchar *name = NULL; | |
2383 | GtkWidget *item; | |
2384 | ||
2385 | g_object_get(display, "name", &name, NULL); | |
2386 | item = gtk_check_menu_item_new_with_label(name); | |
2387 | g_free(name); | |
2388 | ||
2389 | virt_viewer_signal_connect_object(G_OBJECT(item), "toggled", | |
2390 | G_CALLBACK(menu_display_visible_toggled_cb), display, 0); | |
2391 | gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), | |
2392 | gtk_widget_get_visible(GTK_WIDGET(virt_viewer_window_get_window(win)))); | |
2393 | gtk_menu_shell_append(submenu, item); | |
2394 | } | |
2343 | 2395 | } |
2344 | 2396 | |
2345 | 2397 | gtk_widget_show_all(GTK_WIDGET(submenu)); |
83 | 83 | const gchar *user, |
84 | 84 | gint port, |
85 | 85 | const gchar *guri); |
86 | gboolean virt_viewer_app_window_set_visible(VirtViewerApp *self, VirtViewerWindow *window, gboolean visible); | |
86 | ||
87 | 87 | void virt_viewer_app_show_status(VirtViewerApp *self, const gchar *fmt, ...); |
88 | 88 | void virt_viewer_app_show_display(VirtViewerApp *self); |
89 | 89 | GList* virt_viewer_app_get_windows(VirtViewerApp *self); |
31 | 31 | #include "virt-viewer-util.h" |
32 | 32 | #include "virt-viewer-display-spice.h" |
33 | 33 | #include "virt-viewer-auth.h" |
34 | ||
35 | G_DEFINE_TYPE (VirtViewerDisplaySpice, virt_viewer_display_spice, VIRT_VIEWER_TYPE_DISPLAY) | |
36 | 34 | |
37 | 35 | typedef enum { |
38 | 36 | AUTO_RESIZE_ALWAYS, |
48 | 46 | guint y; |
49 | 47 | }; |
50 | 48 | |
51 | #define VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpicePrivate)) | |
49 | G_DEFINE_TYPE_WITH_PRIVATE (VirtViewerDisplaySpice, virt_viewer_display_spice, VIRT_VIEWER_TYPE_DISPLAY) | |
52 | 50 | |
53 | 51 | static void virt_viewer_display_spice_send_keys(VirtViewerDisplay *display, |
54 | 52 | const guint *keyvals, |
55 | 53 | int nkeyvals); |
56 | 54 | static GdkPixbuf *virt_viewer_display_spice_get_pixbuf(VirtViewerDisplay *display); |
57 | 55 | static void virt_viewer_display_spice_release_cursor(VirtViewerDisplay *display); |
58 | static void virt_viewer_display_spice_close(VirtViewerDisplay *display G_GNUC_UNUSED); | |
59 | 56 | static gboolean virt_viewer_display_spice_selectable(VirtViewerDisplay *display); |
60 | 57 | static void virt_viewer_display_spice_enable(VirtViewerDisplay *display); |
61 | 58 | static void virt_viewer_display_spice_disable(VirtViewerDisplay *display); |
68 | 65 | dclass->send_keys = virt_viewer_display_spice_send_keys; |
69 | 66 | dclass->get_pixbuf = virt_viewer_display_spice_get_pixbuf; |
70 | 67 | dclass->release_cursor = virt_viewer_display_spice_release_cursor; |
71 | dclass->close = virt_viewer_display_spice_close; | |
72 | 68 | dclass->selectable = virt_viewer_display_spice_selectable; |
73 | 69 | dclass->enable = virt_viewer_display_spice_enable; |
74 | 70 | dclass->disable = virt_viewer_display_spice_disable; |
75 | ||
76 | g_type_class_add_private(klass, sizeof(VirtViewerDisplaySpicePrivate)); | |
77 | 71 | } |
78 | 72 | |
79 | 73 | static SpiceMainChannel* |
127 | 121 | static void |
128 | 122 | virt_viewer_display_spice_init(VirtViewerDisplaySpice *self G_GNUC_UNUSED) |
129 | 123 | { |
130 | self->priv = VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(self); | |
124 | self->priv = virt_viewer_display_spice_get_instance_private(self); | |
131 | 125 | self->priv->auto_resize = AUTO_RESIZE_ALWAYS; |
132 | 126 | |
133 | 127 | g_signal_connect(self, "notify::show-hint", G_CALLBACK(show_hint_changed), NULL); |
347 | 341 | spice_display_mouse_ungrab(self->priv->display); |
348 | 342 | } |
349 | 343 | |
350 | ||
351 | static void | |
352 | virt_viewer_display_spice_close(VirtViewerDisplay *display G_GNUC_UNUSED) | |
353 | { | |
354 | } | |
355 | ||
356 | 344 | static gboolean |
357 | 345 | virt_viewer_display_spice_selectable(VirtViewerDisplay *self) |
358 | 346 | { |
29 | 29 | |
30 | 30 | #include <glib/gi18n.h> |
31 | 31 | |
32 | G_DEFINE_TYPE(VirtViewerDisplayVnc, virt_viewer_display_vnc, VIRT_VIEWER_TYPE_DISPLAY) | |
33 | ||
34 | 32 | struct _VirtViewerDisplayVncPrivate { |
35 | 33 | VncDisplay *vnc; |
36 | 34 | }; |
37 | 35 | |
38 | #define VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncPrivate)) | |
36 | G_DEFINE_TYPE_WITH_PRIVATE(VirtViewerDisplayVnc, virt_viewer_display_vnc, VIRT_VIEWER_TYPE_DISPLAY) | |
39 | 37 | |
40 | 38 | static void virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display, const guint *keyvals, int nkeyvals); |
41 | 39 | static GdkPixbuf *virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display); |
72 | 70 | dclass->get_pixbuf = virt_viewer_display_vnc_get_pixbuf; |
73 | 71 | dclass->close = virt_viewer_display_vnc_close; |
74 | 72 | dclass->release_cursor = virt_viewer_display_vnc_release_cursor; |
75 | ||
76 | g_type_class_add_private(klass, sizeof(VirtViewerDisplayVncPrivate)); | |
77 | 73 | } |
78 | 74 | |
79 | 75 | static void |
80 | 76 | virt_viewer_display_vnc_init(VirtViewerDisplayVnc *self G_GNUC_UNUSED) |
81 | 77 | { |
82 | self->priv = VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(self); | |
78 | self->priv = virt_viewer_display_vnc_get_instance_private(self); | |
83 | 79 | } |
84 | 80 | |
85 | 81 |
0 | /* | |
1 | * Virt Viewer: A virtual machine console viewer | |
2 | * | |
3 | * Copyright (C) 2018 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 | |
16 | * along with this program; if not, write to the Free Software | |
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | * | |
19 | * Author: Marc-André Lureau <marcandre.lureau@redhat.com> | |
20 | */ | |
21 | ||
22 | #include <config.h> | |
23 | #include <glib/gi18n.h> | |
24 | ||
25 | #ifdef HAVE_VTE | |
26 | #include <vte/vte.h> | |
27 | #endif | |
28 | ||
29 | #include "virt-viewer-auth.h" | |
30 | #include "virt-viewer-display-vte.h" | |
31 | #include "virt-viewer-util.h" | |
32 | ||
33 | struct _VirtViewerDisplayVtePrivate { | |
34 | #ifdef HAVE_VTE | |
35 | VteTerminal *vte; | |
36 | #endif | |
37 | GtkWidget *scroll; | |
38 | gchar *name; | |
39 | }; | |
40 | ||
41 | G_DEFINE_TYPE_WITH_PRIVATE(VirtViewerDisplayVte, virt_viewer_display_vte, VIRT_VIEWER_TYPE_DISPLAY) | |
42 | ||
43 | enum { | |
44 | PROP_0, | |
45 | ||
46 | PROP_NAME, | |
47 | }; | |
48 | ||
49 | static void | |
50 | virt_viewer_display_vte_finalize(GObject *obj) | |
51 | { | |
52 | G_OBJECT_CLASS(virt_viewer_display_vte_parent_class)->finalize(obj); | |
53 | } | |
54 | ||
55 | static void | |
56 | virt_viewer_display_vte_set_property(GObject *object, | |
57 | guint prop_id, | |
58 | const GValue *value, | |
59 | GParamSpec *pspec) | |
60 | { | |
61 | VirtViewerDisplayVte *self = VIRT_VIEWER_DISPLAY_VTE(object); | |
62 | ||
63 | switch (prop_id) { | |
64 | case PROP_NAME: | |
65 | g_free(self->priv->name); | |
66 | self->priv->name = g_value_dup_string(value); | |
67 | break; | |
68 | default: | |
69 | G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); | |
70 | break; | |
71 | } | |
72 | } | |
73 | ||
74 | static void | |
75 | virt_viewer_display_vte_get_property(GObject *object, | |
76 | guint prop_id, | |
77 | GValue *value, | |
78 | GParamSpec *pspec) | |
79 | { | |
80 | VirtViewerDisplayVte *self = VIRT_VIEWER_DISPLAY_VTE(object); | |
81 | ||
82 | switch (prop_id) { | |
83 | case PROP_NAME: | |
84 | g_value_set_string(value, self->priv->name); | |
85 | break; | |
86 | default: | |
87 | G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); | |
88 | break; | |
89 | } | |
90 | } | |
91 | ||
92 | static void | |
93 | virt_viewer_display_vte_size_allocate(GtkWidget *widget G_GNUC_UNUSED, | |
94 | GtkAllocation *allocation G_GNUC_UNUSED) | |
95 | { | |
96 | GtkWidget *child = gtk_bin_get_child(GTK_BIN(widget)); | |
97 | ||
98 | if (child && gtk_widget_get_visible(child)) | |
99 | gtk_widget_size_allocate(child, allocation); | |
100 | } | |
101 | ||
102 | static void | |
103 | virt_viewer_display_vte_class_init(VirtViewerDisplayVteClass *klass) | |
104 | { | |
105 | GObjectClass *oclass = G_OBJECT_CLASS(klass); | |
106 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); | |
107 | ||
108 | oclass->set_property = virt_viewer_display_vte_set_property; | |
109 | oclass->get_property = virt_viewer_display_vte_get_property; | |
110 | oclass->finalize = virt_viewer_display_vte_finalize; | |
111 | /* override display desktop aspect-ratio behaviour */ | |
112 | widget_class->size_allocate = virt_viewer_display_vte_size_allocate; | |
113 | ||
114 | g_object_class_install_property(oclass, | |
115 | PROP_NAME, | |
116 | g_param_spec_string("name", | |
117 | "Name", | |
118 | "Console name", | |
119 | NULL, | |
120 | G_PARAM_READWRITE| | |
121 | G_PARAM_CONSTRUCT_ONLY| | |
122 | G_PARAM_STATIC_STRINGS)); | |
123 | g_signal_new("commit", | |
124 | G_OBJECT_CLASS_TYPE(oclass), | |
125 | G_SIGNAL_RUN_FIRST, | |
126 | 0, | |
127 | NULL, NULL, | |
128 | NULL, | |
129 | G_TYPE_NONE, | |
130 | 2, | |
131 | G_TYPE_POINTER, G_TYPE_INT); | |
132 | } | |
133 | ||
134 | static void | |
135 | virt_viewer_display_vte_init(VirtViewerDisplayVte *self G_GNUC_UNUSED) | |
136 | { | |
137 | self->priv = virt_viewer_display_vte_get_instance_private(self); | |
138 | } | |
139 | ||
140 | #ifdef HAVE_VTE | |
141 | static void | |
142 | virt_viewer_display_vte_commit(VirtViewerDisplayVte *self, | |
143 | const gchar *text, | |
144 | guint size, | |
145 | gpointer user_data G_GNUC_UNUSED) | |
146 | { | |
147 | g_signal_emit_by_name(self, "commit", text, size); | |
148 | } | |
149 | #endif | |
150 | ||
151 | static void | |
152 | virt_viewer_display_vte_adj_changed(VirtViewerDisplayVte *self, | |
153 | GtkAdjustment *adjustment) | |
154 | { | |
155 | gtk_widget_set_visible(self->priv->scroll, | |
156 | gtk_adjustment_get_upper(adjustment) > gtk_adjustment_get_page_size(adjustment)); | |
157 | } | |
158 | ||
159 | GtkWidget * | |
160 | virt_viewer_display_vte_new(VirtViewerSession *session, const char *name) | |
161 | { | |
162 | VirtViewerDisplayVte *self; | |
163 | GtkWidget *grid, *scroll = NULL, *vte; | |
164 | ||
165 | self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VTE, | |
166 | "session", session, | |
167 | "nth-display", -1, | |
168 | "name", name, | |
169 | NULL); | |
170 | #ifdef HAVE_VTE | |
171 | vte = vte_terminal_new(); | |
172 | self->priv->vte = VTE_TERMINAL(g_object_ref(vte)); | |
173 | virt_viewer_signal_connect_object(vte, "commit", | |
174 | G_CALLBACK(virt_viewer_display_vte_commit), | |
175 | self, G_CONNECT_SWAPPED); | |
176 | scroll = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, | |
177 | gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(vte))); | |
178 | self->priv->scroll = scroll; | |
179 | #else | |
180 | vte = gtk_label_new(_("Console support is compiled out!")); | |
181 | #endif | |
182 | g_object_set(vte, "hexpand", TRUE, "vexpand", TRUE, NULL); | |
183 | ||
184 | grid = gtk_grid_new(); | |
185 | ||
186 | gtk_container_add(GTK_CONTAINER(grid), vte); | |
187 | if (scroll) { | |
188 | gtk_container_add(GTK_CONTAINER(grid), scroll); | |
189 | gtk_widget_hide(scroll); | |
190 | virt_viewer_signal_connect_object(gtk_range_get_adjustment(GTK_RANGE(scroll)), | |
191 | "changed", G_CALLBACK(virt_viewer_display_vte_adj_changed), | |
192 | self, G_CONNECT_SWAPPED); | |
193 | } | |
194 | ||
195 | gtk_container_add(GTK_CONTAINER(self), grid); | |
196 | ||
197 | return GTK_WIDGET(self); | |
198 | } | |
199 | ||
200 | /* adapted from gnome-terminal */ | |
201 | /* Allow scales a bit smaller and a bit larger than the usual pango ranges */ | |
202 | #define TERMINAL_SCALE_XXX_SMALL (PANGO_SCALE_XX_SMALL/1.2) | |
203 | #define TERMINAL_SCALE_XXXX_SMALL (TERMINAL_SCALE_XXX_SMALL/1.2) | |
204 | #define TERMINAL_SCALE_XXXXX_SMALL (TERMINAL_SCALE_XXXX_SMALL/1.2) | |
205 | #define TERMINAL_SCALE_XXX_LARGE (PANGO_SCALE_XX_LARGE*1.2) | |
206 | #define TERMINAL_SCALE_XXXX_LARGE (TERMINAL_SCALE_XXX_LARGE*1.2) | |
207 | #define TERMINAL_SCALE_XXXXX_LARGE (TERMINAL_SCALE_XXXX_LARGE*1.2) | |
208 | #define TERMINAL_SCALE_MINIMUM (TERMINAL_SCALE_XXXXX_SMALL/1.2) | |
209 | #define TERMINAL_SCALE_MAXIMUM (TERMINAL_SCALE_XXXXX_LARGE*1.2) | |
210 | ||
211 | #ifdef HAVE_VTE | |
212 | static const double zoom_factors[] = { | |
213 | TERMINAL_SCALE_MINIMUM, | |
214 | TERMINAL_SCALE_XXXXX_SMALL, | |
215 | TERMINAL_SCALE_XXXX_SMALL, | |
216 | TERMINAL_SCALE_XXX_SMALL, | |
217 | PANGO_SCALE_XX_SMALL, | |
218 | PANGO_SCALE_X_SMALL, | |
219 | PANGO_SCALE_SMALL, | |
220 | PANGO_SCALE_MEDIUM, | |
221 | PANGO_SCALE_LARGE, | |
222 | PANGO_SCALE_X_LARGE, | |
223 | PANGO_SCALE_XX_LARGE, | |
224 | TERMINAL_SCALE_XXX_LARGE, | |
225 | TERMINAL_SCALE_XXXX_LARGE, | |
226 | TERMINAL_SCALE_XXXXX_LARGE, | |
227 | TERMINAL_SCALE_MAXIMUM | |
228 | }; | |
229 | ||
230 | static gboolean | |
231 | find_larger_zoom_factor (double *zoom) | |
232 | { | |
233 | double current = *zoom; | |
234 | guint i; | |
235 | ||
236 | for (i = 0; i < G_N_ELEMENTS (zoom_factors); ++i) | |
237 | { | |
238 | /* Find a font that's larger than this one */ | |
239 | if ((zoom_factors[i] - current) > 1e-6) | |
240 | { | |
241 | *zoom = zoom_factors[i]; | |
242 | return TRUE; | |
243 | } | |
244 | } | |
245 | ||
246 | return FALSE; | |
247 | } | |
248 | ||
249 | static gboolean | |
250 | find_smaller_zoom_factor (double *zoom) | |
251 | { | |
252 | double current = *zoom; | |
253 | int i; | |
254 | ||
255 | i = (int) G_N_ELEMENTS (zoom_factors) - 1; | |
256 | while (i >= 0) | |
257 | { | |
258 | /* Find a font that's smaller than this one */ | |
259 | if ((current - zoom_factors[i]) > 1e-6) | |
260 | { | |
261 | *zoom = zoom_factors[i]; | |
262 | return TRUE; | |
263 | } | |
264 | ||
265 | --i; | |
266 | } | |
267 | ||
268 | return FALSE; | |
269 | } | |
270 | ||
271 | void virt_viewer_display_vte_feed(VirtViewerDisplayVte *display, gpointer data, int size) | |
272 | { | |
273 | vte_terminal_feed(display->priv->vte, data, size); | |
274 | } | |
275 | ||
276 | void virt_viewer_display_vte_zoom_in(VirtViewerDisplayVte *self) | |
277 | { | |
278 | double zoom = vte_terminal_get_font_scale(self->priv->vte); | |
279 | ||
280 | if (!find_larger_zoom_factor(&zoom)) | |
281 | return; | |
282 | ||
283 | vte_terminal_set_font_scale(self->priv->vte, zoom); | |
284 | } | |
285 | ||
286 | void virt_viewer_display_vte_zoom_out(VirtViewerDisplayVte *self) | |
287 | { | |
288 | double zoom = vte_terminal_get_font_scale(self->priv->vte); | |
289 | ||
290 | if (!find_smaller_zoom_factor(&zoom)) | |
291 | return; | |
292 | ||
293 | vte_terminal_set_font_scale(self->priv->vte, zoom); | |
294 | } | |
295 | ||
296 | void virt_viewer_display_vte_zoom_reset(VirtViewerDisplayVte *self) | |
297 | { | |
298 | vte_terminal_set_font_scale(self->priv->vte, PANGO_SCALE_MEDIUM); | |
299 | } | |
300 | #else | |
301 | void virt_viewer_display_vte_feed(VirtViewerDisplayVte *self G_GNUC_UNUSED, | |
302 | gpointer data G_GNUC_UNUSED, int size G_GNUC_UNUSED) | |
303 | { | |
304 | } | |
305 | void virt_viewer_display_vte_zoom_in(VirtViewerDisplayVte *self G_GNUC_UNUSED) | |
306 | { | |
307 | } | |
308 | void virt_viewer_display_vte_zoom_out(VirtViewerDisplayVte *self G_GNUC_UNUSED) | |
309 | { | |
310 | } | |
311 | void virt_viewer_display_vte_zoom_reset(VirtViewerDisplayVte *self G_GNUC_UNUSED) | |
312 | { | |
313 | } | |
314 | #endif |
0 | /* | |
1 | * Virt Viewer: A virtual machine console viewer | |
2 | * | |
3 | * Copyright (C) 2018 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 | |
16 | * along with this program; if not, write to the Free Software | |
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | * | |
19 | * Author: Marc-André Lureau <marcandre.lureau@redhat.com> | |
20 | */ | |
21 | #ifndef _VIRT_VIEWER_DISPLAY_VTE_H | |
22 | #define _VIRT_VIEWER_DISPLAY_VTE_H | |
23 | ||
24 | #include <glib-object.h> | |
25 | ||
26 | #include "virt-viewer-display.h" | |
27 | ||
28 | G_BEGIN_DECLS | |
29 | ||
30 | #define VIRT_VIEWER_TYPE_DISPLAY_VTE virt_viewer_display_vte_get_type() | |
31 | ||
32 | #define VIRT_VIEWER_DISPLAY_VTE(obj) \ | |
33 | (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_VTE, VirtViewerDisplayVte)) | |
34 | ||
35 | #define VIRT_VIEWER_DISPLAY_VTE_CLASS(klass) \ | |
36 | (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_VTE, VirtViewerDisplayVteClass)) | |
37 | ||
38 | #define VIRT_VIEWER_IS_DISPLAY_VTE(obj) \ | |
39 | (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_VTE)) | |
40 | ||
41 | #define VIRT_VIEWER_IS_DISPLAY_VTE_CLASS(klass) \ | |
42 | (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_VTE)) | |
43 | ||
44 | #define VIRT_VIEWER_DISPLAY_VTE_GET_CLASS(obj) \ | |
45 | (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_VTE, VirtViewerDisplayVteClass)) | |
46 | ||
47 | typedef struct _VirtViewerDisplayVte VirtViewerDisplayVte; | |
48 | typedef struct _VirtViewerDisplayVteClass VirtViewerDisplayVteClass; | |
49 | typedef struct _VirtViewerDisplayVtePrivate VirtViewerDisplayVtePrivate; | |
50 | ||
51 | struct _VirtViewerDisplayVte { | |
52 | VirtViewerDisplay parent; | |
53 | ||
54 | VirtViewerDisplayVtePrivate *priv; | |
55 | }; | |
56 | ||
57 | struct _VirtViewerDisplayVteClass { | |
58 | VirtViewerDisplayClass parent_class; | |
59 | }; | |
60 | ||
61 | GType virt_viewer_display_vte_get_type(void); | |
62 | ||
63 | GtkWidget* virt_viewer_display_vte_new(VirtViewerSession *session, const char *name); | |
64 | ||
65 | void virt_viewer_display_vte_feed(VirtViewerDisplayVte *vte, gpointer data, int size); | |
66 | ||
67 | void virt_viewer_display_vte_zoom_reset(VirtViewerDisplayVte *vte); | |
68 | void virt_viewer_display_vte_zoom_in(VirtViewerDisplayVte *vte); | |
69 | void virt_viewer_display_vte_zoom_out(VirtViewerDisplayVte *vte); | |
70 | ||
71 | G_END_DECLS | |
72 | ||
73 | #endif /* _VIRT_VIEWER_DISPLAY_VTE_H */ | |
74 | /* | |
75 | * Local variables: | |
76 | * c-indent-level: 4 | |
77 | * c-basic-offset: 4 | |
78 | * indent-tabs-mode: nil | |
79 | * End: | |
80 | */ |
30 | 30 | #include "virt-viewer-display.h" |
31 | 31 | #include "virt-viewer-util.h" |
32 | 32 | |
33 | #define VIRT_VIEWER_DISPLAY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayPrivate)) | |
34 | ||
35 | 33 | struct _VirtViewerDisplayPrivate |
36 | 34 | { |
37 | 35 | guint desktopWidth; |
62 | 60 | GParamSpec *pspec); |
63 | 61 | static void virt_viewer_display_grab_focus(GtkWidget *widget); |
64 | 62 | |
65 | G_DEFINE_ABSTRACT_TYPE(VirtViewerDisplay, virt_viewer_display, GTK_TYPE_BIN) | |
63 | G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(VirtViewerDisplay, virt_viewer_display, GTK_TYPE_BIN) | |
66 | 64 | |
67 | 65 | enum { |
68 | 66 | PROP_0, |
128 | 126 | g_param_spec_int("nth-display", |
129 | 127 | "Nth display", |
130 | 128 | "Nth display", |
131 | 0, | |
129 | -1, | |
132 | 130 | G_MAXINT32, |
133 | 131 | 0, |
134 | 132 | G_PARAM_READWRITE | |
182 | 180 | g_signal_new("display-pointer-grab", |
183 | 181 | G_OBJECT_CLASS_TYPE(object_class), |
184 | 182 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
185 | G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_grab), | |
183 | 0, | |
186 | 184 | NULL, |
187 | 185 | NULL, |
188 | 186 | g_cclosure_marshal_VOID__VOID, |
192 | 190 | g_signal_new("display-pointer-ungrab", |
193 | 191 | G_OBJECT_CLASS_TYPE(object_class), |
194 | 192 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
195 | G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_ungrab), | |
193 | 0, | |
196 | 194 | NULL, |
197 | 195 | NULL, |
198 | 196 | g_cclosure_marshal_VOID__VOID, |
202 | 200 | g_signal_new("display-keyboard-grab", |
203 | 201 | G_OBJECT_CLASS_TYPE(object_class), |
204 | 202 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
205 | G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_grab), | |
203 | 0, | |
206 | 204 | NULL, |
207 | 205 | NULL, |
208 | 206 | g_cclosure_marshal_VOID__VOID, |
212 | 210 | g_signal_new("display-keyboard-ungrab", |
213 | 211 | G_OBJECT_CLASS_TYPE(object_class), |
214 | 212 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
215 | G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_ungrab), | |
213 | 0, | |
216 | 214 | NULL, |
217 | 215 | NULL, |
218 | 216 | g_cclosure_marshal_VOID__VOID, |
222 | 220 | g_signal_new("display-desktop-resize", |
223 | 221 | G_OBJECT_CLASS_TYPE(object_class), |
224 | 222 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
225 | G_STRUCT_OFFSET(VirtViewerDisplayClass, display_desktop_resize), | |
223 | 0, | |
226 | 224 | NULL, |
227 | 225 | NULL, |
228 | 226 | g_cclosure_marshal_VOID__VOID, |
238 | 236 | g_cclosure_marshal_VOID__VOID, |
239 | 237 | G_TYPE_NONE, |
240 | 238 | 0); |
241 | ||
242 | g_type_class_add_private(class, sizeof(VirtViewerDisplayPrivate)); | |
243 | 239 | } |
244 | 240 | |
245 | 241 | static void |
248 | 244 | gtk_widget_set_has_window(GTK_WIDGET(display), FALSE); |
249 | 245 | gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE); |
250 | 246 | |
251 | display->priv = VIRT_VIEWER_DISPLAY_GET_PRIVATE(display); | |
247 | display->priv = virt_viewer_display_get_instance_private(display); | |
252 | 248 | |
253 | 249 | display->priv->desktopWidth = MIN_DISPLAY_WIDTH; |
254 | 250 | display->priv->desktopHeight = MIN_DISPLAY_HEIGHT; |
656 | 652 | g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self)); |
657 | 653 | |
658 | 654 | klass = VIRT_VIEWER_DISPLAY_GET_CLASS(self); |
659 | g_return_if_fail(klass->close != NULL); | |
660 | ||
661 | klass->close(self); | |
655 | if (klass->close) | |
656 | klass->close(self); | |
662 | 657 | } |
663 | 658 | |
664 | 659 | void virt_viewer_display_set_fullscreen(VirtViewerDisplay *self, gboolean fullscreen) |
687 | 682 | |
688 | 683 | g_return_if_fail(preferred != NULL); |
689 | 684 | |
690 | if (!virt_viewer_display_get_enabled(self)) { | |
685 | top = gtk_widget_get_toplevel(GTK_WIDGET(self)); | |
686 | if (!virt_viewer_display_get_enabled(self) || | |
687 | !GTK_IS_WINDOW(top)) { | |
691 | 688 | preferred->width = 0; |
692 | 689 | preferred->height = 0; |
693 | 690 | preferred->x = 0; |
695 | 692 | return; |
696 | 693 | } |
697 | 694 | |
698 | top = gtk_widget_get_toplevel(GTK_WIDGET(self)); | |
699 | 695 | gtk_window_get_position(GTK_WINDOW(top), &topx, &topy); |
700 | 696 | topx = MAX(topx, 0); |
701 | 697 | topy = MAX(topy, 0); |
81 | 81 | |
82 | 82 | void (*close)(VirtViewerDisplay *display); |
83 | 83 | gboolean (*selectable)(VirtViewerDisplay *display); |
84 | ||
85 | /* signals */ | |
86 | void (*display_pointer_grab)(VirtViewerDisplay *display); | |
87 | void (*display_pointer_ungrab)(VirtViewerDisplay *display); | |
88 | void (*display_keyboard_grab)(VirtViewerDisplay *display); | |
89 | void (*display_keyboard_ungrab)(VirtViewerDisplay *display); | |
90 | ||
91 | void (*display_desktop_resize)(VirtViewerDisplay *display); | |
92 | 84 | void (*enable)(VirtViewerDisplay *display); |
93 | 85 | void (*disable)(VirtViewerDisplay *display); |
94 | 86 | }; |
87 | ||
88 | #define VIRT_VIEWER_DISPLAY_CAN_SCREENSHOT(display) \ | |
89 | (display && (VIRT_VIEWER_DISPLAY_GET_CLASS(display)->get_pixbuf != NULL)) | |
90 | ||
91 | #define VIRT_VIEWER_DISPLAY_CAN_SEND_KEYS(display) \ | |
92 | (display && (VIRT_VIEWER_DISPLAY_GET_CLASS(display)->send_keys != NULL)) | |
95 | 93 | |
96 | 94 | GType virt_viewer_display_get_type(void); |
97 | 95 |
38 | 38 | |
39 | 39 | G_DEFINE_TYPE_WITH_PRIVATE(VirtViewerFileTransferDialog, virt_viewer_file_transfer_dialog, GTK_TYPE_DIALOG) |
40 | 40 | |
41 | #define FILE_TRANSFER_DIALOG_PRIVATE(o) \ | |
42 | (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_FILE_TRANSFER_DIALOG, VirtViewerFileTransferDialogPrivate)) | |
43 | ||
44 | ||
45 | 41 | static void |
46 | 42 | virt_viewer_file_transfer_dialog_dispose(GObject *object) |
47 | 43 | { |
114 | 110 | { |
115 | 111 | gtk_widget_init_template(GTK_WIDGET(self)); |
116 | 112 | |
117 | self->priv = FILE_TRANSFER_DIALOG_PRIVATE(self); | |
113 | self->priv = virt_viewer_file_transfer_dialog_get_instance_private(self); | |
118 | 114 | |
119 | 115 | g_signal_connect(self, "response", G_CALLBACK(dialog_response), NULL); |
120 | 116 | g_signal_connect(self, "delete-event", G_CALLBACK(delete_event), NULL); |
152 | 148 | if (self->priv->num_files == 1) { |
153 | 149 | message = g_strdup(_("Transferring 1 file...")); |
154 | 150 | } else { |
155 | message = g_strdup_printf(ngettext("Transferring %d file of %d...", | |
156 | "Transferring %d files of %d...", n_files), | |
151 | message = g_strdup_printf(ngettext("Transferring %u file of %u...", | |
152 | "Transferring %u files of %u...", n_files), | |
157 | 153 | n_files, self->priv->num_files); |
158 | 154 | } |
159 | 155 | gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(self->priv->progressbar), fraction); |
42 | 42 | * - newer-version-url: string specifying an URL to display when the minimum |
43 | 43 | * version check fails |
44 | 44 | * - type: string, mandatory, values: "spice" (later "vnc" etc..) |
45 | * - unix-path: string | |
45 | 46 | * - host: string |
46 | 47 | * - port: int |
47 | 48 | * - tls-port: int |
93 | 94 | GKeyFile* keyfile; |
94 | 95 | }; |
95 | 96 | |
96 | G_DEFINE_TYPE(VirtViewerFile, virt_viewer_file, G_TYPE_OBJECT); | |
97 | ||
98 | #define VIRT_VIEWER_FILE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_FILE, VirtViewerFilePrivate)) | |
97 | G_DEFINE_TYPE_WITH_PRIVATE(VirtViewerFile, virt_viewer_file, G_TYPE_OBJECT); | |
99 | 98 | |
100 | 99 | #define MAIN_GROUP "virt-viewer" |
101 | 100 | #define OVIRT_GROUP "ovirt" |
103 | 102 | enum { |
104 | 103 | PROP_DUMMY_PROPERTY, |
105 | 104 | PROP_TYPE, |
105 | PROP_UNIX_PATH, | |
106 | 106 | PROP_HOST, |
107 | 107 | PROP_PORT, |
108 | 108 | PROP_TLS_PORT, |
326 | 326 | } |
327 | 327 | |
328 | 328 | gchar* |
329 | virt_viewer_file_get_unix_path(VirtViewerFile* self) | |
330 | { | |
331 | return virt_viewer_file_get_string(self, MAIN_GROUP, "unix-path"); | |
332 | } | |
333 | ||
334 | void | |
335 | virt_viewer_file_set_unix_path(VirtViewerFile* self, const gchar* value) | |
336 | { | |
337 | virt_viewer_file_set_string(self, MAIN_GROUP, "unix-path", value); | |
338 | g_object_notify(G_OBJECT(self), "unix-path"); | |
339 | } | |
340 | ||
341 | gchar* | |
329 | 342 | virt_viewer_file_get_file_type(VirtViewerFile* self) |
330 | 343 | { |
331 | 344 | return virt_viewer_file_get_string(self, MAIN_GROUP, "type"); |
938 | 951 | case PROP_TYPE: |
939 | 952 | virt_viewer_file_set_type(self, g_value_get_string(value)); |
940 | 953 | break; |
954 | case PROP_UNIX_PATH: | |
955 | virt_viewer_file_set_unix_path(self, g_value_get_string(value)); | |
956 | break; | |
941 | 957 | case PROP_HOST: |
942 | 958 | virt_viewer_file_set_host(self, g_value_get_string(value)); |
943 | 959 | break; |
1053 | 1069 | case PROP_TYPE: |
1054 | 1070 | g_value_take_string(value, virt_viewer_file_get_file_type(self)); |
1055 | 1071 | break; |
1072 | case PROP_UNIX_PATH: | |
1073 | g_value_take_string(value, virt_viewer_file_get_unix_path(self)); | |
1074 | break; | |
1056 | 1075 | case PROP_HOST: |
1057 | 1076 | g_value_take_string(value, virt_viewer_file_get_host(self)); |
1058 | 1077 | break; |
1169 | 1188 | static void |
1170 | 1189 | virt_viewer_file_init(VirtViewerFile* self) |
1171 | 1190 | { |
1172 | self->priv = VIRT_VIEWER_FILE_GET_PRIVATE(self); | |
1191 | self->priv = virt_viewer_file_get_instance_private(self); | |
1173 | 1192 | |
1174 | 1193 | self->priv->keyfile = g_key_file_new(); |
1175 | 1194 | } |
1178 | 1197 | virt_viewer_file_class_init(VirtViewerFileClass* klass) |
1179 | 1198 | { |
1180 | 1199 | virt_viewer_file_parent_class = g_type_class_peek_parent(klass); |
1181 | g_type_class_add_private(klass, sizeof(VirtViewerFilePrivate)); | |
1182 | 1200 | |
1183 | 1201 | G_OBJECT_CLASS(klass)->get_property = virt_viewer_file_get_property; |
1184 | 1202 | G_OBJECT_CLASS(klass)->set_property = virt_viewer_file_set_property; |
53 | 53 | GError** error); |
54 | 54 | gboolean virt_viewer_file_is_set(VirtViewerFile* self, const gchar* key); |
55 | 55 | |
56 | gchar* virt_viewer_file_get_unix_path(VirtViewerFile* self); | |
57 | void virt_viewer_file_set_unix_path(VirtViewerFile* self, const gchar* value); | |
56 | 58 | gchar* virt_viewer_file_get_ca(VirtViewerFile* self); |
57 | 59 | void virt_viewer_file_set_ca(VirtViewerFile* self, const gchar* value); |
58 | 60 | gchar* virt_viewer_file_get_host(VirtViewerFile* self); |
26 | 26 | #include "virt-viewer-notebook.h" |
27 | 27 | #include "virt-viewer-util.h" |
28 | 28 | |
29 | G_DEFINE_TYPE (VirtViewerNotebook, virt_viewer_notebook, GTK_TYPE_NOTEBOOK) | |
30 | ||
31 | #define GET_PRIVATE(o) \ | |
32 | (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookPrivate)) | |
33 | ||
34 | 29 | struct _VirtViewerNotebookPrivate { |
35 | 30 | GtkWidget *status; |
36 | 31 | }; |
32 | ||
33 | G_DEFINE_TYPE_WITH_PRIVATE (VirtViewerNotebook, virt_viewer_notebook, GTK_TYPE_NOTEBOOK) | |
37 | 34 | |
38 | 35 | static void |
39 | 36 | virt_viewer_notebook_get_property (GObject *object, guint property_id, |
60 | 57 | { |
61 | 58 | GObjectClass *object_class = G_OBJECT_CLASS (klass); |
62 | 59 | |
63 | g_type_class_add_private (klass, sizeof (VirtViewerNotebookPrivate)); | |
64 | ||
65 | 60 | object_class->get_property = virt_viewer_notebook_get_property; |
66 | 61 | object_class->set_property = virt_viewer_notebook_set_property; |
67 | 62 | } |
71 | 66 | { |
72 | 67 | VirtViewerNotebookPrivate *priv; |
73 | 68 | |
74 | self->priv = GET_PRIVATE(self); | |
69 | self->priv = virt_viewer_notebook_get_instance_private(self); | |
75 | 70 | priv = self->priv; |
76 | 71 | |
77 | 72 | priv->status = gtk_label_new(""); |
5 | 5 | # define SECTION |
6 | 6 | #endif |
7 | 7 | |
8 | static const SECTION union { const guint8 data[89144]; const double alignment; void * const ptr;} virt_viewer_resource_data = { { | |
8 | static const SECTION union { const guint8 data[92168]; const double alignment; void * const ptr;} virt_viewer_resource_data = { { | |
9 | 9 | 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, |
10 | 10 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
11 | 11 | 0x18, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, |
56 | 56 | 0x68, 0x93, 0x00, 0x00, 0x76, 0xab, 0x00, 0x00, |
57 | 57 | 0x17, 0x53, 0x0e, 0x8b, 0x17, 0x00, 0x00, 0x00, |
58 | 58 | 0x76, 0xab, 0x00, 0x00, 0x0e, 0x00, 0x76, 0x00, |
59 | 0x88, 0xab, 0x00, 0x00, 0x9d, 0xee, 0x00, 0x00, | |
59 | 0x88, 0xab, 0x00, 0x00, 0x6d, 0xfa, 0x00, 0x00, | |
60 | 60 | 0x7f, 0x72, 0x6e, 0x6f, 0x17, 0x00, 0x00, 0x00, |
61 | 0x9d, 0xee, 0x00, 0x00, 0x1c, 0x00, 0x76, 0x00, | |
62 | 0xc0, 0xee, 0x00, 0x00, 0xe4, 0x03, 0x01, 0x00, | |
61 | 0x6d, 0xfa, 0x00, 0x00, 0x1c, 0x00, 0x76, 0x00, | |
62 | 0x90, 0xfa, 0x00, 0x00, 0xb4, 0x0f, 0x01, 0x00, | |
63 | 63 | 0xb4, 0x90, 0xee, 0x05, 0x0f, 0x00, 0x00, 0x00, |
64 | 0xe4, 0x03, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
65 | 0xec, 0x03, 0x01, 0x00, 0xf0, 0x03, 0x01, 0x00, | |
64 | 0xb4, 0x0f, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
65 | 0xbc, 0x0f, 0x01, 0x00, 0xc0, 0x0f, 0x01, 0x00, | |
66 | 66 | 0x44, 0x7e, 0x05, 0x0b, 0x0f, 0x00, 0x00, 0x00, |
67 | 0xf0, 0x03, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
68 | 0xf8, 0x03, 0x01, 0x00, 0xfc, 0x03, 0x01, 0x00, | |
67 | 0xc0, 0x0f, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
68 | 0xc8, 0x0f, 0x01, 0x00, 0xcc, 0x0f, 0x01, 0x00, | |
69 | 69 | 0xf8, 0xc1, 0x12, 0x06, 0x0f, 0x00, 0x00, 0x00, |
70 | 0xfc, 0x03, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
71 | 0x04, 0x04, 0x01, 0x00, 0x0c, 0x04, 0x01, 0x00, | |
70 | 0xcc, 0x0f, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
71 | 0xd4, 0x0f, 0x01, 0x00, 0xdc, 0x0f, 0x01, 0x00, | |
72 | 72 | 0x85, 0x5f, 0xf4, 0x8b, 0x14, 0x00, 0x00, 0x00, |
73 | 0x0c, 0x04, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
74 | 0x14, 0x04, 0x01, 0x00, 0x2c, 0x04, 0x01, 0x00, | |
73 | 0xdc, 0x0f, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
74 | 0xe4, 0x0f, 0x01, 0x00, 0xfc, 0x0f, 0x01, 0x00, | |
75 | 75 | 0x5f, 0x8c, 0xb5, 0x30, 0x17, 0x00, 0x00, 0x00, |
76 | 0x2c, 0x04, 0x01, 0x00, 0x14, 0x00, 0x76, 0x00, | |
77 | 0x40, 0x04, 0x01, 0x00, 0xcf, 0x10, 0x01, 0x00, | |
76 | 0xfc, 0x0f, 0x01, 0x00, 0x14, 0x00, 0x76, 0x00, | |
77 | 0x10, 0x10, 0x01, 0x00, 0x9f, 0x1c, 0x01, 0x00, | |
78 | 78 | 0x1b, 0xfe, 0x47, 0xed, 0x0d, 0x00, 0x00, 0x00, |
79 | 0xcf, 0x10, 0x01, 0x00, 0x0f, 0x00, 0x76, 0x00, | |
80 | 0xe0, 0x10, 0x01, 0x00, 0xde, 0x1a, 0x01, 0x00, | |
79 | 0x9f, 0x1c, 0x01, 0x00, 0x0f, 0x00, 0x76, 0x00, | |
80 | 0xb0, 0x1c, 0x01, 0x00, 0xae, 0x26, 0x01, 0x00, | |
81 | 81 | 0x4b, 0x50, 0x90, 0x0b, 0x13, 0x00, 0x00, 0x00, |
82 | 0xde, 0x1a, 0x01, 0x00, 0x04, 0x00, 0x4c, 0x00, | |
83 | 0xe4, 0x1a, 0x01, 0x00, 0xe8, 0x1a, 0x01, 0x00, | |
82 | 0xae, 0x26, 0x01, 0x00, 0x04, 0x00, 0x4c, 0x00, | |
83 | 0xb4, 0x26, 0x01, 0x00, 0xb8, 0x26, 0x01, 0x00, | |
84 | 84 | 0xd4, 0xb5, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, |
85 | 0xe8, 0x1a, 0x01, 0x00, 0x01, 0x00, 0x4c, 0x00, | |
86 | 0xec, 0x1a, 0x01, 0x00, 0xf0, 0x1a, 0x01, 0x00, | |
85 | 0xb8, 0x26, 0x01, 0x00, 0x01, 0x00, 0x4c, 0x00, | |
86 | 0xbc, 0x26, 0x01, 0x00, 0xc0, 0x26, 0x01, 0x00, | |
87 | 87 | 0x1a, 0x0f, 0x8f, 0x65, 0x03, 0x00, 0x00, 0x00, |
88 | 0xf0, 0x1a, 0x01, 0x00, 0x0c, 0x00, 0x4c, 0x00, | |
89 | 0xfc, 0x1a, 0x01, 0x00, 0x04, 0x1b, 0x01, 0x00, | |
88 | 0xc0, 0x26, 0x01, 0x00, 0x0c, 0x00, 0x4c, 0x00, | |
89 | 0xcc, 0x26, 0x01, 0x00, 0xd4, 0x26, 0x01, 0x00, | |
90 | 90 | 0x9f, 0xae, 0x96, 0xc9, 0x17, 0x00, 0x00, 0x00, |
91 | 0x04, 0x1b, 0x01, 0x00, 0x19, 0x00, 0x76, 0x00, | |
92 | 0x20, 0x1b, 0x01, 0x00, 0xa6, 0x34, 0x01, 0x00, | |
91 | 0xd4, 0x26, 0x01, 0x00, 0x19, 0x00, 0x76, 0x00, | |
92 | 0xf0, 0x26, 0x01, 0x00, 0x76, 0x40, 0x01, 0x00, | |
93 | 93 | 0x93, 0xff, 0xee, 0x3f, 0x17, 0x00, 0x00, 0x00, |
94 | 0xa6, 0x34, 0x01, 0x00, 0x23, 0x00, 0x76, 0x00, | |
95 | 0xd0, 0x34, 0x01, 0x00, 0x55, 0x43, 0x01, 0x00, | |
94 | 0x76, 0x40, 0x01, 0x00, 0x23, 0x00, 0x76, 0x00, | |
95 | 0xa0, 0x40, 0x01, 0x00, 0x25, 0x4f, 0x01, 0x00, | |
96 | 96 | 0x47, 0xf0, 0x78, 0xb7, 0x14, 0x00, 0x00, 0x00, |
97 | 0x55, 0x43, 0x01, 0x00, 0x03, 0x00, 0x4c, 0x00, | |
98 | 0x58, 0x43, 0x01, 0x00, 0x7c, 0x43, 0x01, 0x00, | |
97 | 0x25, 0x4f, 0x01, 0x00, 0x03, 0x00, 0x4c, 0x00, | |
98 | 0x28, 0x4f, 0x01, 0x00, 0x4c, 0x4f, 0x01, 0x00, | |
99 | 99 | 0x44, 0xd2, 0xec, 0x36, 0x17, 0x00, 0x00, 0x00, |
100 | 0x7c, 0x43, 0x01, 0x00, 0x1c, 0x00, 0x76, 0x00, | |
101 | 0x98, 0x43, 0x01, 0x00, 0xd5, 0x57, 0x01, 0x00, | |
100 | 0x4c, 0x4f, 0x01, 0x00, 0x1c, 0x00, 0x76, 0x00, | |
101 | 0x68, 0x4f, 0x01, 0x00, 0xa5, 0x63, 0x01, 0x00, | |
102 | 102 | 0xc6, 0x62, 0xa8, 0x11, 0x0e, 0x00, 0x00, 0x00, |
103 | 0xd5, 0x57, 0x01, 0x00, 0x13, 0x00, 0x76, 0x00, | |
104 | 0xe8, 0x57, 0x01, 0x00, 0x1f, 0x5c, 0x01, 0x00, | |
103 | 0xa5, 0x63, 0x01, 0x00, 0x13, 0x00, 0x76, 0x00, | |
104 | 0xb8, 0x63, 0x01, 0x00, 0xef, 0x67, 0x01, 0x00, | |
105 | 105 | 0x96, 0xbd, 0x43, 0x08, 0x0f, 0x00, 0x00, 0x00, |
106 | 0x1f, 0x5c, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
107 | 0x28, 0x5c, 0x01, 0x00, 0x2c, 0x5c, 0x01, 0x00, | |
106 | 0xef, 0x67, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
107 | 0xf8, 0x67, 0x01, 0x00, 0xfc, 0x67, 0x01, 0x00, | |
108 | 108 | 0x5a, 0xc6, 0xe1, 0x03, 0x0f, 0x00, 0x00, 0x00, |
109 | 0x2c, 0x5c, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
110 | 0x34, 0x5c, 0x01, 0x00, 0x38, 0x5c, 0x01, 0x00, | |
109 | 0xfc, 0x67, 0x01, 0x00, 0x06, 0x00, 0x4c, 0x00, | |
110 | 0x04, 0x68, 0x01, 0x00, 0x08, 0x68, 0x01, 0x00, | |
111 | 111 | 0x76, 0x69, 0x72, 0x74, 0x2d, 0x76, 0x69, 0x65, |
112 | 112 | 0x77, 0x65, 0x72, 0x2e, 0x70, 0x6e, 0x67, 0x00, |
113 | 113 | 0xc1, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
5495 | 5495 | 0x28, 0x75, 0x75, 0x61, 0x79, 0x29, 0x76, 0x69, |
5496 | 5496 | 0x72, 0x74, 0x2d, 0x76, 0x69, 0x65, 0x77, 0x65, |
5497 | 5497 | 0x72, 0x2e, 0x75, 0x69, 0x00, 0x00, 0x00, 0x00, |
5498 | 0x05, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
5498 | 0xd5, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
5499 | 5499 | 0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65, |
5500 | 5500 | 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x31, |
5501 | 5501 | 0x2e, 0x30, 0x22, 0x20, 0x65, 0x6e, 0x63, 0x6f, |
5733 | 5733 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
5734 | 5734 | 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, |
5735 | 5735 | 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, |
5736 | 0x22, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, | |
5737 | 0x76, 0x65, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, | |
5738 | 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, | |
5739 | 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, | |
5740 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
5741 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
5742 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
5743 | 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
5744 | 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, | |
5736 | 5745 | 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, |
5737 | 5746 | 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, |
5738 | 5747 | 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, |
6173 | 6182 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
6174 | 6183 | 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, |
6175 | 6184 | 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, |
6185 | 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, | |
6186 | 0x65, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, | |
6187 | 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
6188 | 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, | |
6189 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6190 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6191 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6192 | 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, | |
6193 | 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, | |
6176 | 6194 | 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, |
6177 | 6195 | 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, |
6178 | 6196 | 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, |
6393 | 6411 | 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, |
6394 | 6412 | 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, |
6395 | 6413 | 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6d, 0x65, |
6414 | 0x6e, 0x75, 0x2d, 0x6d, 0x61, 0x63, 0x68, 0x69, | |
6415 | 0x6e, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, | |
6416 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6417 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6418 | 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
6419 | 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, | |
6420 | 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, | |
6421 | 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, | |
6422 | 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, | |
6423 | 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, | |
6424 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6425 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6426 | 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
6427 | 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, | |
6428 | 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, | |
6429 | 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, | |
6430 | 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, | |
6431 | 0x73, 0x22, 0x3e, 0x5f, 0x4d, 0x61, 0x63, 0x68, | |
6432 | 0x69, 0x6e, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, | |
6433 | 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, | |
6434 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6435 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6436 | 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, | |
6437 | 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, | |
6438 | 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, | |
6439 | 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, | |
6440 | 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, | |
6441 | 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, | |
6442 | 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6443 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6444 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x63, | |
6445 | 0x68, 0x69, 0x6c, 0x64, 0x20, 0x74, 0x79, 0x70, | |
6446 | 0x65, 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x65, | |
6447 | 0x6e, 0x75, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, | |
6448 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6449 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6450 | 0x20, 0x20, 0x20, 0x3c, 0x6f, 0x62, 0x6a, 0x65, | |
6451 | 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, | |
6452 | 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e, | |
6453 | 0x75, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, | |
6454 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6455 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6456 | 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, 0x6f, | |
6457 | 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, | |
6458 | 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, | |
6459 | 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, | |
6460 | 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, | |
6461 | 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, | |
6462 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6463 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6464 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, | |
6465 | 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, | |
6466 | 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, | |
6467 | 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, | |
6468 | 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, | |
6469 | 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, | |
6470 | 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6471 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6472 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6473 | 0x20, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, | |
6474 | 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6475 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6476 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6477 | 0x20, 0x20, 0x20, 0x3c, 0x6f, 0x62, 0x6a, 0x65, | |
6478 | 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, | |
6479 | 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x43, 0x68, 0x65, | |
6480 | 0x63, 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, | |
6481 | 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, | |
6482 | 0x6d, 0x65, 0x6e, 0x75, 0x2d, 0x76, 0x6d, 0x2d, | |
6483 | 0x70, 0x61, 0x75, 0x73, 0x65, 0x22, 0x3e, 0x0a, | |
6484 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6485 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6486 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6487 | 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, 0x6f, | |
6488 | 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, | |
6489 | 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, | |
6490 | 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, | |
6491 | 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, | |
6492 | 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, | |
6493 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6494 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6495 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6496 | 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
6497 | 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, | |
6498 | 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, | |
6499 | 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, | |
6500 | 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, | |
6501 | 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, | |
6502 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6503 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6504 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6505 | 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
6506 | 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, | |
6507 | 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, | |
6508 | 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, | |
6509 | 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, | |
6510 | 0x73, 0x22, 0x3e, 0x5f, 0x50, 0x61, 0x75, 0x73, | |
6511 | 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, | |
6512 | 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, | |
6513 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6514 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6515 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6516 | 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
6517 | 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, | |
6518 | 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, | |
6519 | 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, | |
6520 | 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, | |
6521 | 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x0a, | |
6522 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6523 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6524 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6525 | 0x20, 0x20, 0x20, 0x20, 0x3c, 0x73, 0x69, 0x67, | |
6526 | 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, | |
6527 | 0x3d, 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, | |
6528 | 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, | |
6529 | 0x65, 0x72, 0x3d, 0x22, 0x76, 0x69, 0x72, 0x74, | |
6530 | 0x5f, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x5f, | |
6531 | 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x6d, | |
6532 | 0x65, 0x6e, 0x75, 0x5f, 0x6d, 0x61, 0x63, 0x68, | |
6533 | 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x61, 0x75, 0x73, | |
6534 | 0x65, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, | |
6535 | 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, | |
6536 | 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6537 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6538 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6539 | 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x6f, 0x62, | |
6540 | 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x0a, 0x20, 0x20, | |
6541 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6542 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6543 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, | |
6544 | 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x0a, 0x20, | |
6545 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6546 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6547 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, | |
6548 | 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x0a, 0x20, | |
6549 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6550 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6551 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6552 | 0x20, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, | |
6553 | 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, | |
6554 | 0x47, 0x74, 0x6b, 0x53, 0x65, 0x70, 0x61, 0x72, | |
6555 | 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x6e, 0x75, | |
6556 | 0x49, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x0a, 0x20, | |
6557 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6558 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6559 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6560 | 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, | |
6561 | 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, | |
6562 | 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, | |
6563 | 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, | |
6564 | 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
6565 | 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, | |
6566 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6567 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6568 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6569 | 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, | |
6570 | 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, | |
6571 | 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, | |
6572 | 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, | |
6573 | 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
6574 | 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, | |
6575 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6576 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6577 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, | |
6578 | 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x0a, | |
6579 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6580 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6581 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6582 | 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, | |
6583 | 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6584 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6585 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6586 | 0x20, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, | |
6587 | 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6588 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6589 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6590 | 0x20, 0x20, 0x20, 0x3c, 0x6f, 0x62, 0x6a, 0x65, | |
6591 | 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, | |
6592 | 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e, | |
6593 | 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, | |
6594 | 0x64, 0x3d, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x2d, | |
6595 | 0x76, 0x6d, 0x2d, 0x72, 0x65, 0x73, 0x65, 0x74, | |
6596 | 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6597 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6598 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6599 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, | |
6600 | 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, | |
6601 | 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, | |
6602 | 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, | |
6603 | 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, | |
6604 | 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x0a, | |
6605 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6606 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6607 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6608 | 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, 0x6f, | |
6609 | 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, | |
6610 | 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, | |
6611 | 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, | |
6612 | 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, | |
6613 | 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x0a, | |
6614 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6615 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6616 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6617 | 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, 0x6f, | |
6618 | 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, | |
6619 | 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, | |
6620 | 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, | |
6621 | 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, | |
6622 | 0x22, 0x79, 0x65, 0x73, 0x22, 0x3e, 0x5f, 0x52, | |
6623 | 0x65, 0x73, 0x65, 0x74, 0x3c, 0x2f, 0x70, 0x72, | |
6624 | 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x0a, | |
6625 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6626 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6627 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6628 | 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, 0x6f, | |
6629 | 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, | |
6630 | 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, | |
6631 | 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, | |
6632 | 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, | |
6633 | 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, | |
6634 | 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6635 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6636 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6637 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, | |
6638 | 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, | |
6639 | 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, | |
6640 | 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20, 0x68, | |
6641 | 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, | |
6642 | 0x76, 0x69, 0x72, 0x74, 0x5f, 0x76, 0x69, 0x65, | |
6643 | 0x77, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x6e, 0x64, | |
6644 | 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x5f, | |
6645 | 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, | |
6646 | 0x72, 0x65, 0x73, 0x65, 0x74, 0x22, 0x20, 0x73, | |
6647 | 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, | |
6648 | 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, | |
6649 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6650 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6651 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6652 | 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, | |
6653 | 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6654 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6655 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6656 | 0x20, 0x20, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, | |
6657 | 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6658 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6659 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6660 | 0x20, 0x20, 0x20, 0x3c, 0x63, 0x68, 0x69, 0x6c, | |
6661 | 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6662 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6663 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6664 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6f, 0x62, | |
6665 | 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, | |
6666 | 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, | |
6667 | 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, | |
6668 | 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6d, 0x65, 0x6e, | |
6669 | 0x75, 0x2d, 0x76, 0x6d, 0x2d, 0x70, 0x6f, 0x77, | |
6670 | 0x65, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x3e, | |
6671 | 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6672 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6673 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6674 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, | |
6675 | 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, | |
6676 | 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, | |
6677 | 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, | |
6678 | 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, | |
6679 | 0x65, 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, | |
6680 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6681 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6682 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6683 | 0x20, 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, | |
6684 | 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, | |
6685 | 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, | |
6686 | 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, | |
6687 | 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, | |
6688 | 0x65, 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, | |
6689 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6690 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6691 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6692 | 0x20, 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, | |
6693 | 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, | |
6694 | 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, | |
6695 | 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, | |
6696 | 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, | |
6697 | 0x65, 0x73, 0x22, 0x3e, 0x5f, 0x50, 0x6f, 0x77, | |
6698 | 0x65, 0x72, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x3c, | |
6699 | 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, | |
6700 | 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6701 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6702 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6703 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, | |
6704 | 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, | |
6705 | 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, | |
6706 | 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, | |
6707 | 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, | |
6708 | 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, | |
6709 | 0x65, 0x72, 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, | |
6710 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6711 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6712 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6713 | 0x20, 0x20, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, | |
6714 | 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, | |
6715 | 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, | |
6716 | 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, | |
6717 | 0x72, 0x3d, 0x22, 0x76, 0x69, 0x72, 0x74, 0x5f, | |
6718 | 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x77, | |
6719 | 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x6d, 0x65, | |
6720 | 0x6e, 0x75, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, | |
6721 | 0x6e, 0x65, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, | |
6722 | 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x20, 0x73, 0x77, | |
6723 | 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, | |
6724 | 0x6f, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, | |
6725 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6726 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6727 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, | |
6728 | 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, | |
6729 | 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6730 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6731 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6732 | 0x20, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, | |
6733 | 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6734 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6735 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6736 | 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, | |
6737 | 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6738 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6739 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, | |
6740 | 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x0a, 0x20, | |
6741 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6742 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6743 | 0x20, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, | |
6744 | 0x74, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6745 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6746 | 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x63, 0x68, 0x69, | |
6747 | 0x6c, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, | |
6748 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6749 | 0x20, 0x20, 0x20, 0x20, 0x3c, 0x63, 0x68, 0x69, | |
6750 | 0x6c, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, | |
6751 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6752 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6f, | |
6753 | 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, | |
6754 | 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, | |
6755 | 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, | |
6756 | 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6d, 0x65, | |
6396 | 6757 | 0x6e, 0x75, 0x2d, 0x76, 0x69, 0x65, 0x77, 0x22, |
6397 | 6758 | 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
6398 | 6759 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
6596 | 6957 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
6597 | 6958 | 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, |
6598 | 6959 | 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, |
6960 | 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, | |
6961 | 0x65, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, | |
6962 | 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, | |
6963 | 0x74, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, | |
6964 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6965 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6966 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
6967 | 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, | |
6968 | 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, | |
6599 | 6969 | 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, |
6600 | 6970 | 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, |
6601 | 6971 | 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, |
7265 | 7635 | 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, |
7266 | 7636 | 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6d, 0x65, 0x6e, |
7267 | 7637 | 0x75, 0x2d, 0x73, 0x65, 0x6e, 0x64, 0x22, 0x3e, |
7638 | 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
7639 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
7640 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, | |
7641 | 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, | |
7642 | 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x65, 0x6e, | |
7643 | 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x22, 0x3e, | |
7644 | 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, | |
7645 | 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, | |
7268 | 7646 | 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
7269 | 7647 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
7270 | 7648 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72, |
33 | 33 | #include "virt-viewer-util.h" |
34 | 34 | #include "virt-viewer-session-spice.h" |
35 | 35 | #include "virt-viewer-display-spice.h" |
36 | #include "virt-viewer-display-vte.h" | |
36 | 37 | #include "virt-viewer-auth.h" |
37 | 38 | |
38 | G_DEFINE_TYPE (VirtViewerSessionSpice, virt_viewer_session_spice, VIRT_VIEWER_TYPE_SESSION) | |
39 | #if SPICE_GTK_CHECK_VERSION(0,36,0) | |
40 | #define WITH_QMP_PORT 1 | |
41 | #endif | |
39 | 42 | |
40 | 43 | struct _VirtViewerSessionSpicePrivate { |
41 | 44 | GtkWindow *main_window; |
49 | 52 | guint pass_try; |
50 | 53 | gboolean did_auto_conf; |
51 | 54 | VirtViewerFileTransferDialog *file_transfer_dialog; |
52 | ||
55 | GError *disconnect_error; | |
56 | #ifdef WITH_QMP_PORT | |
57 | SpiceQmpPort *qmp; | |
58 | #endif | |
53 | 59 | }; |
54 | 60 | |
55 | #define VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpicePrivate)) | |
61 | G_DEFINE_TYPE_WITH_PRIVATE (VirtViewerSessionSpice, virt_viewer_session_spice, VIRT_VIEWER_TYPE_SESSION) | |
56 | 62 | |
57 | 63 | enum { |
58 | 64 | PROP_0, |
74 | 80 | static void virt_viewer_session_spice_channel_destroy(SpiceSession *s, |
75 | 81 | SpiceChannel *channel, |
76 | 82 | VirtViewerSession *session); |
83 | static void virt_viewer_session_spice_session_disconnected(SpiceSession *s, | |
84 | VirtViewerSessionSpice *session); | |
77 | 85 | static void virt_viewer_session_spice_smartcard_insert(VirtViewerSession *session); |
78 | 86 | static void virt_viewer_session_spice_smartcard_remove(VirtViewerSession *session); |
79 | 87 | static gboolean virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self); |
80 | 88 | static void virt_viewer_session_spice_apply_monitor_geometry(VirtViewerSession *self, GHashTable *monitors); |
89 | static void virt_viewer_session_spice_vm_action(VirtViewerSession *self, gint action); | |
81 | 90 | |
82 | 91 | static void virt_viewer_session_spice_clear_displays(VirtViewerSessionSpice *self) |
83 | 92 | { |
151 | 160 | gtk_widget_destroy(GTK_WIDGET(spice->priv->file_transfer_dialog)); |
152 | 161 | spice->priv->file_transfer_dialog = NULL; |
153 | 162 | } |
163 | g_clear_error(&spice->priv->disconnect_error); | |
154 | 164 | |
155 | 165 | G_OBJECT_CLASS(virt_viewer_session_spice_parent_class)->dispose(obj); |
156 | 166 | } |
257 | 267 | dclass->apply_monitor_geometry = virt_viewer_session_spice_apply_monitor_geometry; |
258 | 268 | dclass->can_share_folder = virt_viewer_session_spice_can_share_folder; |
259 | 269 | dclass->can_retry_auth = virt_viewer_session_spice_can_retry_auth; |
260 | ||
261 | g_type_class_add_private(klass, sizeof(VirtViewerSessionSpicePrivate)); | |
270 | dclass->vm_action = virt_viewer_session_spice_vm_action; | |
262 | 271 | |
263 | 272 | g_object_class_install_property(oclass, |
264 | 273 | PROP_SPICE_SESSION, |
284 | 293 | static void |
285 | 294 | virt_viewer_session_spice_init(VirtViewerSessionSpice *self G_GNUC_UNUSED) |
286 | 295 | { |
287 | self->priv = VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(self); | |
296 | self->priv = virt_viewer_session_spice_get_instance_private(self); | |
288 | 297 | } |
289 | 298 | |
290 | 299 | static void |
397 | 406 | G_CALLBACK(virt_viewer_session_spice_channel_new), self, 0); |
398 | 407 | virt_viewer_signal_connect_object(self->priv->session, "channel-destroy", |
399 | 408 | G_CALLBACK(virt_viewer_session_spice_channel_destroy), self, 0); |
409 | virt_viewer_signal_connect_object(self->priv->session, "disconnected", | |
410 | G_CALLBACK(virt_viewer_session_spice_session_disconnected), self, 0); | |
400 | 411 | |
401 | 412 | usb_manager = spice_usb_device_manager_get(self->priv->session, NULL); |
402 | 413 | if (usb_manager) { |
454 | 465 | |
455 | 466 | g_object_add_weak_pointer(G_OBJECT(self), (gpointer*)&self); |
456 | 467 | |
468 | #ifdef WITH_QMP_PORT | |
469 | g_clear_object(&self->priv->qmp); | |
470 | #endif | |
457 | 471 | virt_viewer_session_spice_clear_displays(self); |
458 | 472 | |
459 | 473 | if (self->priv->session) { |
499 | 513 | g_return_if_fail(VIRT_VIEWER_IS_FILE(file)); |
500 | 514 | g_return_if_fail(SPICE_IS_SESSION(session)); |
501 | 515 | |
502 | if (virt_viewer_file_is_set(file, "host")) { | |
503 | gchar *val = virt_viewer_file_get_host(file); | |
504 | g_object_set(G_OBJECT(session), "host", val, NULL); | |
516 | if (virt_viewer_file_is_set(file, "unix-path")) { | |
517 | gchar *val = virt_viewer_file_get_unix_path(file); | |
518 | g_object_set(G_OBJECT(session), "unix-path", val, NULL); | |
505 | 519 | g_free(val); |
506 | } | |
507 | ||
508 | if (virt_viewer_file_is_set(file, "port")) { | |
509 | gchar *port = g_strdup_printf("%d", virt_viewer_file_get_port(file)); | |
510 | g_object_set(G_OBJECT(session), "port", port, NULL); | |
511 | g_free(port); | |
512 | } | |
513 | if (virt_viewer_file_is_set(file, "tls-port")) { | |
514 | gchar *tls_port = g_strdup_printf("%d", virt_viewer_file_get_tls_port(file)); | |
515 | g_object_set(G_OBJECT(session), "tls-port", tls_port, NULL); | |
516 | g_free(tls_port); | |
520 | } else { | |
521 | if (virt_viewer_file_is_set(file, "host")) { | |
522 | gchar *val = virt_viewer_file_get_host(file); | |
523 | g_object_set(G_OBJECT(session), "host", val, NULL); | |
524 | g_free(val); | |
525 | } | |
526 | ||
527 | if (virt_viewer_file_is_set(file, "port")) { | |
528 | gchar *port = g_strdup_printf("%d", virt_viewer_file_get_port(file)); | |
529 | g_object_set(G_OBJECT(session), "port", port, NULL); | |
530 | g_free(port); | |
531 | } | |
532 | ||
533 | if (virt_viewer_file_is_set(file, "tls-port")) { | |
534 | gchar *tls_port = g_strdup_printf("%d", virt_viewer_file_get_tls_port(file)); | |
535 | g_object_set(G_OBJECT(session), "tls-port", tls_port, NULL); | |
536 | g_free(tls_port); | |
537 | } | |
517 | 538 | } |
518 | 539 | |
519 | 540 | if (virt_viewer_file_is_set(file, "username")) { |
773 | 794 | virt_viewer_session_spice_channel_destroy(NULL, channel, session); |
774 | 795 | break; |
775 | 796 | default: |
776 | g_warning("unhandled spice main channel event: %d", event); | |
797 | g_warning("unhandled spice main channel event: %u", event); | |
777 | 798 | break; |
778 | 799 | } |
779 | 800 | |
950 | 971 | } |
951 | 972 | |
952 | 973 | static void |
974 | spice_port_write_finished(GObject *source_object, | |
975 | GAsyncResult *res, | |
976 | gpointer dup) | |
977 | { | |
978 | SpicePortChannel *port = SPICE_PORT_CHANNEL(source_object); | |
979 | GError *err = NULL; | |
980 | ||
981 | spice_port_channel_write_finish(port, res, &err); | |
982 | if (err) { | |
983 | g_warning("Spice port write failed: %s", err->message); | |
984 | g_error_free(err); | |
985 | } | |
986 | g_free(dup); | |
987 | } | |
988 | ||
989 | static void | |
990 | spice_vte_commit(SpicePortChannel *port, const char *text, | |
991 | guint size, gpointer user_data G_GNUC_UNUSED) | |
992 | { | |
993 | void *dup = g_memdup(text, size); | |
994 | ||
995 | /* note: spice-gtk queues write */ | |
996 | spice_port_channel_write_async(port, dup, size, | |
997 | NULL, spice_port_write_finished, dup); | |
998 | } | |
999 | ||
1000 | static void | |
1001 | spice_port_data(VirtViewerDisplayVte *vte, gpointer data, int size, | |
1002 | SpicePortChannel *port G_GNUC_UNUSED) | |
1003 | { | |
1004 | virt_viewer_display_vte_feed(vte, data, size); | |
1005 | } | |
1006 | ||
1007 | static const char * | |
1008 | port_name_to_vte_name(const char *name) | |
1009 | { | |
1010 | if (g_str_equal(name, "org.qemu.console.serial.0")) | |
1011 | return _("Serial"); | |
1012 | else if (g_str_equal(name, "org.qemu.monitor.hmp.0")) | |
1013 | return _("QEMU human monitor"); | |
1014 | else if (g_str_equal(name, "org.qemu.console.debug.0")) | |
1015 | return _("QEMU debug console"); | |
1016 | ||
1017 | return NULL; | |
1018 | } | |
1019 | ||
1020 | static void | |
1021 | virt_viewer_session_spice_vm_action(VirtViewerSession *sess G_GNUC_UNUSED, | |
1022 | gint action G_GNUC_UNUSED) | |
1023 | { | |
1024 | #ifdef WITH_QMP_PORT | |
1025 | VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(sess); | |
1026 | ||
1027 | switch (action) { | |
1028 | case VIRT_VIEWER_SESSION_VM_ACTION_QUIT: | |
1029 | action = SPICE_QMP_PORT_VM_ACTION_QUIT; | |
1030 | break; | |
1031 | case VIRT_VIEWER_SESSION_VM_ACTION_RESET: | |
1032 | action = SPICE_QMP_PORT_VM_ACTION_RESET; | |
1033 | break; | |
1034 | case VIRT_VIEWER_SESSION_VM_ACTION_POWER_DOWN: | |
1035 | action = SPICE_QMP_PORT_VM_ACTION_POWER_DOWN; | |
1036 | break; | |
1037 | case VIRT_VIEWER_SESSION_VM_ACTION_PAUSE: | |
1038 | action = SPICE_QMP_PORT_VM_ACTION_PAUSE; | |
1039 | break; | |
1040 | case VIRT_VIEWER_SESSION_VM_ACTION_CONTINUE: | |
1041 | action = SPICE_QMP_PORT_VM_ACTION_CONTINUE; | |
1042 | break; | |
1043 | default: | |
1044 | g_return_if_reached(); | |
1045 | } | |
1046 | ||
1047 | spice_qmp_port_vm_action_async(self->priv->qmp, action, NULL, NULL, NULL); | |
1048 | #endif | |
1049 | } | |
1050 | ||
1051 | #ifdef WITH_QMP_PORT | |
1052 | static void | |
1053 | set_vm_running(VirtViewerSessionSpice *self, gboolean running) | |
1054 | { | |
1055 | g_object_set(virt_viewer_session_get_app(VIRT_VIEWER_SESSION(self)), | |
1056 | "vm-running", running, NULL); | |
1057 | } | |
1058 | ||
1059 | static void | |
1060 | query_status_cb(GObject *source_object G_GNUC_UNUSED, | |
1061 | GAsyncResult *res, gpointer user_data) | |
1062 | { | |
1063 | VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(user_data); | |
1064 | SpiceQmpStatus *status; | |
1065 | gboolean running = TRUE; | |
1066 | GError *error = NULL; | |
1067 | ||
1068 | status = spice_qmp_port_query_status_finish(self->priv->qmp, res, &error); | |
1069 | if (!status) { | |
1070 | g_warning("failed to query VM status: %s", error->message); | |
1071 | g_error_free(error); | |
1072 | return; | |
1073 | } | |
1074 | ||
1075 | if (g_str_equal(status->status, "paused")) { | |
1076 | running = FALSE; | |
1077 | } | |
1078 | ||
1079 | set_vm_running(self, running); | |
1080 | ||
1081 | spice_qmp_status_unref(status); | |
1082 | } | |
1083 | ||
1084 | static void qmp_ready_cb(VirtViewerSessionSpice *self, | |
1085 | GParamSpec *pspec G_GNUC_UNUSED, | |
1086 | GObject *object G_GNUC_UNUSED) | |
1087 | { | |
1088 | spice_qmp_port_query_status_async(self->priv->qmp, NULL, query_status_cb, self); | |
1089 | } | |
1090 | ||
1091 | static void qmp_event_cb(VirtViewerSessionSpice *self, const gchar *event, | |
1092 | void *data G_GNUC_UNUSED, GObject *object G_GNUC_UNUSED) | |
1093 | { | |
1094 | g_debug("QMP event %s", event); | |
1095 | ||
1096 | if (g_str_equal(event, "STOP")) { | |
1097 | set_vm_running(self, FALSE); | |
1098 | } else if (g_str_equal(event, "RESUME")) { | |
1099 | set_vm_running(self, TRUE); | |
1100 | } | |
1101 | } | |
1102 | #endif /* WITH_QMP_PORT */ | |
1103 | ||
1104 | static void | |
1105 | spice_port_opened(SpiceChannel *channel, GParamSpec *pspec G_GNUC_UNUSED, | |
1106 | VirtViewerSessionSpice *self) | |
1107 | { | |
1108 | SpicePortChannel *port = SPICE_PORT_CHANNEL(channel); | |
1109 | int id; | |
1110 | gchar *name = NULL; | |
1111 | gboolean opened = FALSE; | |
1112 | const char *vte_name; | |
1113 | GtkWidget *vte; | |
1114 | ||
1115 | g_object_get(G_OBJECT(port), | |
1116 | "channel-id", &id, | |
1117 | "port-name", &name, | |
1118 | "port-opened", &opened, | |
1119 | NULL); | |
1120 | ||
1121 | g_return_if_fail(name != NULL); | |
1122 | g_debug("port#%d %s: %s", id, name, opened ? "opened" : "closed"); | |
1123 | vte_name = port_name_to_vte_name(name); | |
1124 | ||
1125 | #ifdef WITH_QMP_PORT | |
1126 | if (g_str_equal(name, "org.qemu.monitor.qmp.0")) { | |
1127 | if (opened) { | |
1128 | g_return_if_fail(!self->priv->qmp); | |
1129 | ||
1130 | g_object_set(virt_viewer_session_get_app(VIRT_VIEWER_SESSION(self)), | |
1131 | "vm-ui", TRUE, NULL); | |
1132 | ||
1133 | self->priv->qmp = spice_qmp_port_get(port); | |
1134 | virt_viewer_signal_connect_object(self->priv->qmp, "notify::ready", | |
1135 | G_CALLBACK(qmp_ready_cb), self, G_CONNECT_SWAPPED); | |
1136 | virt_viewer_signal_connect_object(self->priv->qmp, "event", | |
1137 | G_CALLBACK(qmp_event_cb), self, G_CONNECT_SWAPPED); | |
1138 | } else { | |
1139 | g_clear_object(&self->priv->qmp); | |
1140 | } | |
1141 | g_free(name); | |
1142 | return; | |
1143 | } | |
1144 | #endif | |
1145 | ||
1146 | g_free(name); | |
1147 | vte = g_object_get_data(G_OBJECT(port), "virt-viewer-vte"); | |
1148 | if (vte) { | |
1149 | if (opened) | |
1150 | return; | |
1151 | ||
1152 | g_object_set_data(G_OBJECT(port), "virt-viewer-vte", NULL); | |
1153 | virt_viewer_session_remove_display(VIRT_VIEWER_SESSION(self), VIRT_VIEWER_DISPLAY(vte)); | |
1154 | g_object_unref(vte); | |
1155 | ||
1156 | } else if (opened) { | |
1157 | if (!vte_name) | |
1158 | return; | |
1159 | ||
1160 | vte = virt_viewer_display_vte_new(VIRT_VIEWER_SESSION(self), vte_name); | |
1161 | g_object_set_data(G_OBJECT(port), "virt-viewer-vte", g_object_ref_sink(vte)); | |
1162 | virt_viewer_session_add_display(VIRT_VIEWER_SESSION(self), VIRT_VIEWER_DISPLAY(vte)); | |
1163 | virt_viewer_signal_connect_object(vte, "commit", | |
1164 | G_CALLBACK(spice_vte_commit), port, G_CONNECT_SWAPPED); | |
1165 | virt_viewer_signal_connect_object(port, "port-data", | |
1166 | G_CALLBACK(spice_port_data), vte, G_CONNECT_SWAPPED); | |
1167 | } | |
1168 | } | |
1169 | ||
1170 | static void | |
953 | 1171 | virt_viewer_session_spice_channel_new(SpiceSession *s, |
954 | 1172 | SpiceChannel *channel, |
955 | 1173 | VirtViewerSession *session) |
956 | 1174 | { |
957 | 1175 | VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); |
958 | int id; | |
1176 | int id, type; | |
959 | 1177 | |
960 | 1178 | g_return_if_fail(self != NULL); |
961 | 1179 | |
962 | 1180 | virt_viewer_signal_connect_object(channel, "open-fd", |
963 | 1181 | G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self, 0); |
964 | 1182 | |
965 | g_object_get(channel, "channel-id", &id, NULL); | |
1183 | g_object_get(channel, | |
1184 | "channel-id", &id, | |
1185 | "channel-type", &type, | |
1186 | NULL); | |
966 | 1187 | |
967 | 1188 | g_debug("New spice channel %p %s %d", channel, g_type_name(G_OBJECT_TYPE(channel)), id); |
968 | 1189 | |
1009 | 1230 | self->priv->usbredir_channel_count++; |
1010 | 1231 | if (spice_usb_device_manager_get(self->priv->session, NULL)) |
1011 | 1232 | virt_viewer_session_set_has_usbredir(session, TRUE); |
1233 | } | |
1234 | ||
1235 | /* the port channel object is also sub-classed for webdav... */ | |
1236 | if (SPICE_IS_PORT_CHANNEL(channel) && type == SPICE_CHANNEL_PORT) { | |
1237 | virt_viewer_signal_connect_object(channel, "notify::port-opened", | |
1238 | G_CALLBACK(spice_port_opened), self, 0); | |
1239 | spice_channel_connect(channel); | |
1012 | 1240 | } |
1013 | 1241 | |
1014 | 1242 | self->priv->channel_count++; |
1061 | 1289 | displays = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free); |
1062 | 1290 | |
1063 | 1291 | for (l = initial_displays; l != NULL; l = l->next) { |
1064 | GdkRectangle* rect = g_new0(GdkRectangle, 1);; | |
1065 | 1292 | gint j = virt_viewer_app_get_initial_monitor_for_display(app, GPOINTER_TO_INT(l->data)); |
1066 | 1293 | if (j == -1) |
1067 | 1294 | continue; |
1068 | 1295 | |
1296 | GdkRectangle* rect = g_new0(GdkRectangle, 1);; | |
1069 | 1297 | gdk_screen_get_monitor_geometry(screen, j, rect); |
1070 | 1298 | g_hash_table_insert(displays, l->data, rect); |
1071 | 1299 | } |
1091 | 1319 | } |
1092 | 1320 | |
1093 | 1321 | static void |
1322 | virt_viewer_session_spice_session_disconnected(G_GNUC_UNUSED SpiceSession *s, | |
1323 | VirtViewerSessionSpice *self) | |
1324 | { | |
1325 | GError *error = self->priv->disconnect_error; | |
1326 | g_signal_emit_by_name(self, "session-disconnected", error ? error->message : NULL); | |
1327 | } | |
1328 | ||
1329 | static void | |
1094 | 1330 | virt_viewer_session_spice_channel_destroy(G_GNUC_UNUSED SpiceSession *s, |
1095 | 1331 | SpiceChannel *channel, |
1096 | 1332 | VirtViewerSession *session) |
1115 | 1351 | if (SPICE_IS_DISPLAY_CHANNEL(channel)) { |
1116 | 1352 | g_debug("zap display channel (#%d)", id); |
1117 | 1353 | g_object_set_data(G_OBJECT(channel), "virt-viewer-displays", NULL); |
1354 | } | |
1355 | ||
1356 | if (SPICE_IS_PORT_CHANNEL(channel)) { | |
1357 | VirtViewerDisplayVte *vte = g_object_get_data(G_OBJECT(channel), "virt-viewer-vte"); | |
1358 | g_debug("zap port channel (#%d)", id); | |
1359 | if (vte) { | |
1360 | g_object_set_data(G_OBJECT(channel), "virt-viewer-vte", NULL); | |
1361 | virt_viewer_session_remove_display(VIRT_VIEWER_SESSION(self), VIRT_VIEWER_DISPLAY(vte)); | |
1362 | g_object_unref(vte); | |
1363 | } | |
1364 | ||
1118 | 1365 | } |
1119 | 1366 | |
1120 | 1367 | if (SPICE_IS_PLAYBACK_CHANNEL(channel) && self->priv->audio) { |
1128 | 1375 | if (self->priv->usbredir_channel_count == 0) |
1129 | 1376 | virt_viewer_session_set_has_usbredir(session, FALSE); |
1130 | 1377 | } |
1131 | ||
1132 | self->priv->channel_count--; | |
1133 | if (self->priv->channel_count == 0) | |
1134 | g_signal_emit_by_name(self, "session-disconnected", error ? error->message : NULL); | |
1378 | if (error) { | |
1379 | g_warning("Channel error: %s", error->message); | |
1380 | if (self->priv->disconnect_error == NULL) { | |
1381 | self->priv->disconnect_error = g_error_copy(error); | |
1382 | } | |
1383 | } | |
1135 | 1384 | } |
1136 | 1385 | |
1137 | 1386 | VirtViewerSession * |
33 | 33 | #include <glib/gi18n.h> |
34 | 34 | #include <libxml/uri.h> |
35 | 35 | |
36 | G_DEFINE_TYPE(VirtViewerSessionVnc, virt_viewer_session_vnc, VIRT_VIEWER_TYPE_SESSION) | |
37 | ||
38 | 36 | struct _VirtViewerSessionVncPrivate { |
39 | 37 | GtkWindow *main_window; |
40 | 38 | /* XXX we should really just have a VncConnection */ |
42 | 40 | gboolean auth_dialog_cancelled; |
43 | 41 | }; |
44 | 42 | |
45 | #define VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncPrivate)) | |
43 | G_DEFINE_TYPE_WITH_PRIVATE(VirtViewerSessionVnc, virt_viewer_session_vnc, VIRT_VIEWER_TYPE_SESSION) | |
46 | 44 | |
47 | 45 | static void virt_viewer_session_vnc_close(VirtViewerSession* session); |
48 | 46 | static gboolean virt_viewer_session_vnc_open_fd(VirtViewerSession* session, int fd); |
87 | 85 | dclass->open_uri = virt_viewer_session_vnc_open_uri; |
88 | 86 | dclass->channel_open_fd = virt_viewer_session_vnc_channel_open_fd; |
89 | 87 | dclass->mime_type = virt_viewer_session_vnc_mime_type; |
90 | ||
91 | g_type_class_add_private(klass, sizeof(VirtViewerSessionVncPrivate)); | |
92 | 88 | } |
93 | 89 | |
94 | 90 | static void |
95 | 91 | virt_viewer_session_vnc_init(VirtViewerSessionVnc *self G_GNUC_UNUSED) |
96 | 92 | { |
97 | self->priv = VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(self); | |
93 | self->priv = virt_viewer_session_vnc_get_instance_private(self); | |
98 | 94 | } |
99 | 95 | |
100 | 96 | static void |
158 | 154 | unsigned int authType, |
159 | 155 | VirtViewerSession *session) |
160 | 156 | { |
161 | gchar *msg = g_strdup_printf(_("Unsupported authentication type %d"), | |
157 | gchar *msg = g_strdup_printf(_("Unsupported authentication type %u"), | |
162 | 158 | authType); |
163 | 159 | g_signal_emit_by_name(session, "session-auth-unsupported", msg); |
164 | 160 | g_free(msg); |
272 | 268 | VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session); |
273 | 269 | char *username = NULL, *password = NULL; |
274 | 270 | gboolean wantPassword = FALSE, wantUsername = FALSE; |
271 | VirtViewerFile *file = NULL; | |
275 | 272 | int i; |
276 | 273 | |
277 | g_debug("Got VNC credential request for %d credential(s)", credList->n_values); | |
274 | g_debug("Got VNC credential request for %u credential(s)", credList->n_values); | |
278 | 275 | |
279 | 276 | for (i = 0 ; i < credList->n_values ; i++) { |
280 | 277 | GValue *cred = g_value_array_get_nth(credList, i); |
294 | 291 | } |
295 | 292 | } |
296 | 293 | |
297 | VirtViewerFile *file = virt_viewer_session_get_file(VIRT_VIEWER_SESSION(self)); | |
294 | file = virt_viewer_session_get_file(VIRT_VIEWER_SESSION(self)); | |
298 | 295 | if (file != NULL) { |
299 | 296 | if (wantUsername) { |
300 | 297 | if (virt_viewer_file_is_set(file, "username")) { |
28 | 28 | |
29 | 29 | #include "virt-viewer-session.h" |
30 | 30 | #include "virt-viewer-util.h" |
31 | ||
32 | #define VIRT_VIEWER_SESSION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionPrivate)) | |
33 | ||
31 | #include "virt-viewer-display-vte.h" | |
34 | 32 | |
35 | 33 | struct _VirtViewerSessionPrivate |
36 | 34 | { |
45 | 43 | gboolean share_folder_ro; |
46 | 44 | }; |
47 | 45 | |
48 | G_DEFINE_ABSTRACT_TYPE(VirtViewerSession, virt_viewer_session, G_TYPE_OBJECT) | |
46 | G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(VirtViewerSession, virt_viewer_session, G_TYPE_OBJECT) | |
49 | 47 | |
50 | 48 | enum { |
51 | 49 | PROP_0, |
258 | 256 | g_signal_new("session-connected", |
259 | 257 | G_OBJECT_CLASS_TYPE(object_class), |
260 | 258 | G_SIGNAL_RUN_FIRST, |
261 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_connected), | |
259 | 0, | |
262 | 260 | NULL, NULL, |
263 | 261 | g_cclosure_marshal_VOID__VOID, |
264 | 262 | G_TYPE_NONE, |
267 | 265 | g_signal_new("session-initialized", |
268 | 266 | G_OBJECT_CLASS_TYPE(object_class), |
269 | 267 | G_SIGNAL_RUN_FIRST, |
270 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_initialized), | |
268 | 0, | |
271 | 269 | NULL, NULL, |
272 | 270 | g_cclosure_marshal_VOID__VOID, |
273 | 271 | G_TYPE_NONE, |
276 | 274 | g_signal_new("session-disconnected", |
277 | 275 | G_OBJECT_CLASS_TYPE(object_class), |
278 | 276 | G_SIGNAL_RUN_FIRST, |
279 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_disconnected), | |
277 | 0, | |
280 | 278 | NULL, NULL, |
281 | 279 | g_cclosure_marshal_VOID__STRING, |
282 | 280 | G_TYPE_NONE, |
286 | 284 | g_signal_new("session-channel-open", |
287 | 285 | G_OBJECT_CLASS_TYPE(object_class), |
288 | 286 | G_SIGNAL_RUN_FIRST, |
289 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_channel_open), | |
287 | 0, | |
290 | 288 | NULL, NULL, |
291 | 289 | g_cclosure_marshal_VOID__OBJECT, |
292 | 290 | G_TYPE_NONE, |
296 | 294 | g_signal_new("session-auth-refused", |
297 | 295 | G_OBJECT_CLASS_TYPE(object_class), |
298 | 296 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
299 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_refused), | |
297 | 0, | |
300 | 298 | NULL, |
301 | 299 | NULL, |
302 | 300 | g_cclosure_marshal_VOID__STRING, |
307 | 305 | g_signal_new("session-auth-unsupported", |
308 | 306 | G_OBJECT_CLASS_TYPE(object_class), |
309 | 307 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
310 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_unsupported), | |
308 | 0, | |
311 | 309 | NULL, |
312 | 310 | NULL, |
313 | 311 | g_cclosure_marshal_VOID__STRING, |
318 | 316 | g_signal_new("session-usb-failed", |
319 | 317 | G_OBJECT_CLASS_TYPE(object_class), |
320 | 318 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
321 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_usb_failed), | |
319 | 0, | |
322 | 320 | NULL, |
323 | 321 | NULL, |
324 | 322 | g_cclosure_marshal_VOID__STRING, |
329 | 327 | g_signal_new("session-display-added", |
330 | 328 | G_OBJECT_CLASS_TYPE(object_class), |
331 | 329 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
332 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_added), | |
330 | 0, | |
333 | 331 | NULL, |
334 | 332 | NULL, |
335 | 333 | g_cclosure_marshal_VOID__OBJECT, |
340 | 338 | g_signal_new("session-display-removed", |
341 | 339 | G_OBJECT_CLASS_TYPE(object_class), |
342 | 340 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
343 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_removed), | |
341 | 0, | |
344 | 342 | NULL, |
345 | 343 | NULL, |
346 | 344 | g_cclosure_marshal_VOID__OBJECT, |
351 | 349 | g_signal_new("session-display-updated", |
352 | 350 | G_OBJECT_CLASS_TYPE(object_class), |
353 | 351 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
354 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_updated), | |
352 | 0, | |
355 | 353 | NULL, |
356 | 354 | NULL, |
357 | 355 | g_cclosure_marshal_VOID__VOID, |
361 | 359 | g_signal_new("session-cut-text", |
362 | 360 | G_OBJECT_CLASS_TYPE(object_class), |
363 | 361 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
364 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_cut_text), | |
362 | 0, | |
365 | 363 | NULL, |
366 | 364 | NULL, |
367 | 365 | g_cclosure_marshal_VOID__STRING, |
372 | 370 | g_signal_new("session-bell", |
373 | 371 | G_OBJECT_CLASS_TYPE(object_class), |
374 | 372 | G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, |
375 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_bell), | |
373 | 0, | |
376 | 374 | NULL, |
377 | 375 | NULL, |
378 | 376 | g_cclosure_marshal_VOID__VOID, |
382 | 380 | g_signal_new("session-cancelled", |
383 | 381 | G_OBJECT_CLASS_TYPE(object_class), |
384 | 382 | G_SIGNAL_RUN_FIRST, |
385 | G_STRUCT_OFFSET(VirtViewerSessionClass, session_cancelled), | |
383 | 0, | |
386 | 384 | NULL, NULL, |
387 | 385 | g_cclosure_marshal_VOID__VOID, |
388 | 386 | G_TYPE_NONE, |
389 | 387 | 0); |
390 | ||
391 | g_type_class_add_private(class, sizeof(VirtViewerSessionPrivate)); | |
392 | 388 | } |
393 | 389 | |
394 | 390 | static void |
395 | 391 | virt_viewer_session_init(VirtViewerSession *session) |
396 | 392 | { |
397 | session->priv = VIRT_VIEWER_SESSION_GET_PRIVATE(session); | |
393 | session->priv = virt_viewer_session_get_instance_private(session); | |
398 | 394 | } |
399 | 395 | |
400 | 396 | static void |
405 | 401 | gboolean all_fullscreen = TRUE; |
406 | 402 | /* GHashTable<gint, GdkRectangle*> */ |
407 | 403 | GHashTable *monitors; |
404 | gint n_sized_monitors = 0; | |
408 | 405 | GList *l; |
409 | 406 | |
410 | 407 | klass = VIRT_VIEWER_SESSION_GET_CLASS(self); |
415 | 412 | |
416 | 413 | for (l = self->priv->displays; l; l = l->next) { |
417 | 414 | VirtViewerDisplay *d = VIRT_VIEWER_DISPLAY(l->data); |
415 | ||
416 | if (VIRT_VIEWER_IS_DISPLAY_VTE(d)) | |
417 | continue; | |
418 | ||
418 | 419 | guint nth = 0; |
419 | 420 | GdkRectangle *rect = g_new0(GdkRectangle, 1); |
420 | 421 | |
421 | 422 | g_object_get(d, "nth-display", &nth, NULL); |
422 | 423 | virt_viewer_display_get_preferred_monitor_geometry(d, rect); |
424 | if (rect->width > 0 && rect->height > 0) | |
425 | n_sized_monitors++; | |
423 | 426 | |
424 | 427 | if (virt_viewer_display_get_enabled(d) && |
425 | 428 | !virt_viewer_display_get_fullscreen(d)) |
427 | 430 | g_hash_table_insert(monitors, GINT_TO_POINTER(nth), rect); |
428 | 431 | } |
429 | 432 | |
433 | if (n_sized_monitors == 0) { | |
434 | goto cleanup; | |
435 | } | |
436 | ||
430 | 437 | if (!all_fullscreen) |
431 | 438 | virt_viewer_align_monitors_linear(monitors); |
432 | 439 | |
433 | 440 | virt_viewer_shift_monitors_to_origin(monitors); |
434 | 441 | |
435 | 442 | klass->apply_monitor_geometry(self, monitors); |
443 | ||
444 | cleanup: | |
436 | 445 | g_hash_table_unref(monitors); |
437 | 446 | } |
438 | 447 | |
676 | 685 | return klass->can_retry_auth ? klass->can_retry_auth(self) : FALSE; |
677 | 686 | } |
678 | 687 | |
688 | void virt_viewer_session_vm_action(VirtViewerSession *self, gint action) | |
689 | { | |
690 | VirtViewerSessionClass *klass; | |
691 | ||
692 | g_return_if_fail(VIRT_VIEWER_IS_SESSION(self)); | |
693 | ||
694 | klass = VIRT_VIEWER_SESSION_GET_CLASS(self); | |
695 | ||
696 | if (klass->vm_action) | |
697 | klass->vm_action(self, action); | |
698 | } | |
679 | 699 | /* |
680 | 700 | * Local variables: |
681 | 701 | * c-indent-level: 4 |
52 | 52 | |
53 | 53 | typedef struct _VirtViewerSessionChannel VirtViewerSessionChannel; |
54 | 54 | |
55 | enum { | |
56 | VIRT_VIEWER_SESSION_VM_ACTION_QUIT, | |
57 | VIRT_VIEWER_SESSION_VM_ACTION_RESET, | |
58 | VIRT_VIEWER_SESSION_VM_ACTION_POWER_DOWN, | |
59 | VIRT_VIEWER_SESSION_VM_ACTION_PAUSE, | |
60 | VIRT_VIEWER_SESSION_VM_ACTION_CONTINUE, | |
61 | }; | |
62 | ||
55 | 63 | |
56 | 64 | /* perhaps this become an interface, and be pushed in gtkvnc and spice? */ |
57 | 65 | struct _VirtViewerSession { |
74 | 82 | void (* smartcard_remove) (VirtViewerSession* session); |
75 | 83 | const gchar* (* mime_type) (VirtViewerSession* session); |
76 | 84 | |
77 | /* signals */ | |
78 | void (*session_connected)(VirtViewerSession *session); | |
79 | void (*session_initialized)(VirtViewerSession *session); | |
80 | void (*session_disconnected)(VirtViewerSession *session, const gchar *msg); | |
81 | void (*session_auth_refused)(VirtViewerSession *session, const gchar *msg); | |
82 | void (*session_auth_unsupported)(VirtViewerSession *session, const gchar *msg); | |
83 | void (*session_usb_failed)(VirtViewerSession *session, const gchar *msg); | |
84 | ||
85 | void (*session_channel_open)(VirtViewerSession *session, VirtViewerSessionChannel *channel); | |
86 | ||
87 | void (*session_display_added)(VirtViewerSession *session, | |
88 | VirtViewerDisplay *display); | |
89 | void (*session_display_removed)(VirtViewerSession *session, | |
90 | VirtViewerDisplay *display); | |
91 | void (*session_display_updated)(VirtViewerSession *session); | |
92 | ||
93 | void (*session_cut_text)(VirtViewerSession *session, const gchar *str); | |
94 | void (*session_bell)(VirtViewerSession *session); | |
95 | void (*session_cancelled)(VirtViewerSession *session); | |
96 | 85 | /* monitors = GHashTable<int, GdkRectangle*> */ |
97 | 86 | void (*apply_monitor_geometry)(VirtViewerSession *session, GHashTable* monitors); |
98 | 87 | gboolean (*can_share_folder)(VirtViewerSession *session); |
99 | 88 | gboolean (*can_retry_auth)(VirtViewerSession *session); |
89 | void (*vm_action)(VirtViewerSession *session, gint action); | |
100 | 90 | }; |
101 | 91 | |
102 | 92 | GType virt_viewer_session_get_type(void); |
134 | 124 | gboolean virt_viewer_session_can_share_folder(VirtViewerSession *self); |
135 | 125 | gboolean virt_viewer_session_can_retry_auth(VirtViewerSession *self); |
136 | 126 | |
127 | void virt_viewer_session_vm_action(VirtViewerSession *self, gint action); | |
128 | ||
137 | 129 | G_END_DECLS |
138 | 130 | |
139 | 131 | #endif /* _VIRT_VIEWER_SESSION_H */ |
24 | 24 | |
25 | 25 | #include "virt-viewer-timed-revealer.h" |
26 | 26 | |
27 | G_DEFINE_TYPE (VirtViewerTimedRevealer, virt_viewer_timed_revealer, GTK_TYPE_EVENT_BOX) | |
28 | ||
29 | #define VIRT_VIEWER_TIMED_REVEALER_GET_PRIVATE(obj) \ | |
30 | (G_TYPE_INSTANCE_GET_PRIVATE ((obj), VIRT_VIEWER_TYPE_TIMED_REVEALER, VirtViewerTimedRevealerPrivate)) | |
31 | ||
32 | 27 | struct _VirtViewerTimedRevealerPrivate |
33 | 28 | { |
34 | 29 | gboolean fullscreen; |
36 | 31 | |
37 | 32 | GtkWidget *revealer; |
38 | 33 | }; |
34 | ||
35 | G_DEFINE_TYPE_WITH_PRIVATE (VirtViewerTimedRevealer, virt_viewer_timed_revealer, GTK_TYPE_EVENT_BOX) | |
39 | 36 | |
40 | 37 | static void |
41 | 38 | virt_viewer_timed_revealer_unregister_timeout(VirtViewerTimedRevealer *self) |
123 | 120 | static void |
124 | 121 | virt_viewer_timed_revealer_init(VirtViewerTimedRevealer *self) |
125 | 122 | { |
126 | self->priv = VIRT_VIEWER_TIMED_REVEALER_GET_PRIVATE(self); | |
123 | self->priv = virt_viewer_timed_revealer_get_instance_private(self); | |
127 | 124 | } |
128 | 125 | |
129 | 126 | static void |
147 | 144 | virt_viewer_timed_revealer_class_init(VirtViewerTimedRevealerClass *klass) |
148 | 145 | { |
149 | 146 | GObjectClass *object_class = G_OBJECT_CLASS(klass); |
150 | ||
151 | g_type_class_add_private (klass, sizeof (VirtViewerTimedRevealerPrivate)); | |
152 | 147 | |
153 | 148 | object_class->dispose = virt_viewer_timed_revealer_dispose; |
154 | 149 | } |
41 | 41 | #include "virt-viewer-app.h" |
42 | 42 | #include "virt-viewer-util.h" |
43 | 43 | #include "virt-viewer-timed-revealer.h" |
44 | #include "virt-viewer-display-vte.h" | |
44 | 45 | |
45 | 46 | #include "remote-viewer-iso-list-dialog.h" |
46 | 47 | |
50 | 51 | void virt_viewer_window_menu_view_zoom_out(GtkWidget *menu, VirtViewerWindow *self); |
51 | 52 | void virt_viewer_window_menu_view_zoom_in(GtkWidget *menu, VirtViewerWindow *self); |
52 | 53 | void virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu, VirtViewerWindow *self); |
54 | void virt_viewer_window_menu_machine_reset(GtkWidget *menu, VirtViewerWindow *self); | |
55 | void virt_viewer_window_menu_machine_powerdown(GtkWidget *menu, VirtViewerWindow *self); | |
56 | void virt_viewer_window_menu_machine_pause(GtkWidget *menu, VirtViewerWindow *self); | |
53 | 57 | gboolean virt_viewer_window_delete(GtkWidget *src, void *dummy, VirtViewerWindow *self); |
54 | 58 | void virt_viewer_window_menu_file_quit(GtkWidget *src, VirtViewerWindow *self); |
55 | 59 | void virt_viewer_window_guest_details_response(GtkDialog *dialog, gint response_id, gpointer user_data); |
75 | 79 | static void virt_viewer_window_get_minimal_dimensions(VirtViewerWindow *self, guint *width, guint *height); |
76 | 80 | static gint virt_viewer_window_get_minimal_zoom_level(VirtViewerWindow *self); |
77 | 81 | |
78 | G_DEFINE_TYPE (VirtViewerWindow, virt_viewer_window, G_TYPE_OBJECT) | |
79 | ||
80 | #define GET_PRIVATE(o) \ | |
81 | (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowPrivate)) | |
82 | ||
83 | 82 | enum { |
84 | 83 | PROP_0, |
85 | 84 | PROP_WINDOW, |
116 | 115 | gboolean initial_zoom_set; |
117 | 116 | }; |
118 | 117 | |
118 | G_DEFINE_TYPE_WITH_PRIVATE (VirtViewerWindow, virt_viewer_window, G_TYPE_OBJECT) | |
119 | ||
119 | 120 | static void |
120 | 121 | virt_viewer_window_get_property (GObject *object, guint property_id, |
121 | 122 | GValue *value, GParamSpec *pspec) |
218 | 219 | menu = GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")); |
219 | 220 | gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu), |
220 | 221 | GTK_WIDGET(virt_viewer_window_get_keycombo_menu(self))); |
221 | gtk_widget_set_sensitive(menu, (self->priv->display != NULL)); | |
222 | } | |
223 | ||
224 | static void | |
225 | vm_ui_changed(GObject *gobject G_GNUC_UNUSED, | |
226 | GParamSpec *pspec G_GNUC_UNUSED, | |
227 | gpointer user_data) | |
228 | { | |
229 | VirtViewerWindow *self = user_data; | |
230 | gboolean vm_ui; | |
231 | ||
232 | g_object_get(G_OBJECT(self->priv->app), "vm-ui", &vm_ui, NULL); | |
233 | gtk_widget_set_visible(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-machine")), vm_ui); | |
234 | } | |
235 | ||
236 | static void | |
237 | vm_running_changed(GObject *gobject G_GNUC_UNUSED, | |
238 | GParamSpec *pspec G_GNUC_UNUSED, | |
239 | gpointer user_data) | |
240 | { | |
241 | VirtViewerWindow *self = user_data; | |
242 | GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(self->priv->builder, "menu-vm-pause")); | |
243 | gboolean running; | |
244 | ||
245 | g_object_get(G_OBJECT(self->priv->app), "vm-running", &running, NULL); | |
246 | ||
247 | gtk_check_menu_item_set_active(check, !running); | |
222 | 248 | } |
223 | 249 | |
224 | 250 | static void |
231 | 257 | |
232 | 258 | g_signal_connect(priv->app, "notify::enable-accel", |
233 | 259 | G_CALLBACK(rebuild_combo_menu), object); |
260 | g_signal_connect(priv->app, "notify::vm-ui", | |
261 | G_CALLBACK(vm_ui_changed), object); | |
262 | g_signal_connect(priv->app, "notify::vm-running", | |
263 | G_CALLBACK(vm_running_changed), object); | |
234 | 264 | rebuild_combo_menu(NULL, NULL, object); |
235 | 265 | } |
236 | 266 | |
238 | 268 | virt_viewer_window_class_init (VirtViewerWindowClass *klass) |
239 | 269 | { |
240 | 270 | GObjectClass *object_class = G_OBJECT_CLASS (klass); |
241 | ||
242 | g_type_class_add_private (klass, sizeof (VirtViewerWindowPrivate)); | |
243 | 271 | |
244 | 272 | object_class->get_property = virt_viewer_window_get_property; |
245 | 273 | object_class->set_property = virt_viewer_window_set_property; |
301 | 329 | GtkWidget *vbox; |
302 | 330 | GSList *accels; |
303 | 331 | |
304 | self->priv = GET_PRIVATE(self); | |
332 | self->priv = virt_viewer_window_get_instance_private(self); | |
305 | 333 | priv = self->priv; |
306 | 334 | |
307 | 335 | priv->fullscreen_monitor = -1; |
311 | 339 | gtk_widget_show(GTK_WIDGET(priv->notebook)); |
312 | 340 | |
313 | 341 | priv->builder = virt_viewer_util_load_ui("virt-viewer.ui"); |
314 | ||
315 | gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")), FALSE); | |
316 | gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-view-zoom")), FALSE); | |
317 | gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-file-screenshot")), FALSE); | |
318 | gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-preferences")), FALSE); | |
319 | 342 | |
320 | 343 | gtk_builder_connect_signals(priv->builder, self); |
321 | 344 | |
385 | 408 | } |
386 | 409 | |
387 | 410 | G_MODULE_EXPORT void |
411 | virt_viewer_window_menu_machine_reset(GtkWidget *menu G_GNUC_UNUSED, | |
412 | VirtViewerWindow *self) | |
413 | { | |
414 | virt_viewer_session_vm_action(virt_viewer_app_get_session(self->priv->app), | |
415 | VIRT_VIEWER_SESSION_VM_ACTION_RESET); | |
416 | } | |
417 | ||
418 | G_MODULE_EXPORT void | |
419 | virt_viewer_window_menu_machine_powerdown(GtkWidget *menu G_GNUC_UNUSED, | |
420 | VirtViewerWindow *self) | |
421 | { | |
422 | virt_viewer_session_vm_action(virt_viewer_app_get_session(self->priv->app), | |
423 | VIRT_VIEWER_SESSION_VM_ACTION_POWER_DOWN); | |
424 | } | |
425 | ||
426 | G_MODULE_EXPORT void | |
427 | virt_viewer_window_menu_machine_pause(GtkWidget *menu G_GNUC_UNUSED, | |
428 | VirtViewerWindow *self) | |
429 | { | |
430 | gint action; | |
431 | ||
432 | if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu))) | |
433 | action = VIRT_VIEWER_SESSION_VM_ACTION_PAUSE; | |
434 | else | |
435 | action = VIRT_VIEWER_SESSION_VM_ACTION_CONTINUE; | |
436 | ||
437 | virt_viewer_session_vm_action(virt_viewer_app_get_session(self->priv->app), action); | |
438 | } | |
439 | ||
440 | G_MODULE_EXPORT void | |
388 | 441 | virt_viewer_window_menu_view_zoom_out(GtkWidget *menu G_GNUC_UNUSED, |
389 | 442 | VirtViewerWindow *self) |
390 | 443 | { |
391 | virt_viewer_window_set_zoom_level(self, | |
392 | virt_viewer_window_get_real_zoom_level(self) - ZOOM_STEP); | |
444 | if (VIRT_VIEWER_IS_DISPLAY_VTE(self->priv->display)) { | |
445 | virt_viewer_display_vte_zoom_out(VIRT_VIEWER_DISPLAY_VTE(self->priv->display)); | |
446 | } else { | |
447 | virt_viewer_window_set_zoom_level(self, | |
448 | virt_viewer_window_get_real_zoom_level(self) - ZOOM_STEP); | |
449 | } | |
393 | 450 | } |
394 | 451 | |
395 | 452 | G_MODULE_EXPORT void |
396 | 453 | virt_viewer_window_menu_view_zoom_in(GtkWidget *menu G_GNUC_UNUSED, |
397 | 454 | VirtViewerWindow *self) |
398 | 455 | { |
399 | virt_viewer_window_set_zoom_level(self, | |
400 | virt_viewer_window_get_real_zoom_level(self) + ZOOM_STEP); | |
456 | if (VIRT_VIEWER_IS_DISPLAY_VTE(self->priv->display)) { | |
457 | virt_viewer_display_vte_zoom_in(VIRT_VIEWER_DISPLAY_VTE(self->priv->display)); | |
458 | } else { | |
459 | virt_viewer_window_set_zoom_level(self, | |
460 | virt_viewer_window_get_real_zoom_level(self) + ZOOM_STEP); | |
461 | } | |
401 | 462 | } |
402 | 463 | |
403 | 464 | G_MODULE_EXPORT void |
404 | 465 | virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu G_GNUC_UNUSED, |
405 | 466 | VirtViewerWindow *self) |
406 | 467 | { |
407 | virt_viewer_window_set_zoom_level(self, NORMAL_ZOOM_LEVEL); | |
468 | if (VIRT_VIEWER_IS_DISPLAY_VTE(self->priv->display)) { | |
469 | virt_viewer_display_vte_zoom_reset(VIRT_VIEWER_DISPLAY_VTE(self->priv->display)); | |
470 | } else { | |
471 | virt_viewer_window_set_zoom_level(self, NORMAL_ZOOM_LEVEL); | |
472 | } | |
408 | 473 | } |
409 | 474 | |
410 | 475 | /* Kick GtkWindow to tell it to adjust to our new widget sizes */ |
529 | 594 | } |
530 | 595 | virt_viewer_window_move_to_monitor(self); |
531 | 596 | |
532 | gtk_window_fullscreen(GTK_WINDOW(priv->window)); | |
597 | #if GTK_CHECK_VERSION(3, 18, 0) | |
598 | if (monitor == -1) { | |
599 | // just go fullscreen on the current monitor | |
600 | gtk_window_fullscreen(GTK_WINDOW(priv->window)); | |
601 | } else { | |
602 | G_GNUC_BEGIN_IGNORE_DEPRECATIONS | |
603 | gtk_window_fullscreen_on_monitor(GTK_WINDOW(priv->window), | |
604 | gdk_screen_get_default(), monitor); | |
605 | G_GNUC_END_IGNORE_DEPRECATIONS | |
606 | } | |
607 | #else | |
608 | gtk_window_fullscreen(GTK_WINDOW(priv->window)); | |
609 | #endif /* GTK_CHECK_VERSION */ | |
533 | 610 | } |
534 | 611 | |
535 | 612 | #define MAX_KEY_COMBO 4 |
909 | 986 | } |
910 | 987 | } |
911 | 988 | |
912 | static GHashTable *init_image_formats(void) | |
989 | static GHashTable *init_image_formats(G_GNUC_UNUSED gpointer user_data) | |
913 | 990 | { |
914 | 991 | GHashTable *format_map; |
915 | 992 | GSList *formats = gdk_pixbuf_get_formats(); |
1130 | 1207 | } |
1131 | 1208 | #endif |
1132 | 1209 | |
1133 | void | |
1210 | G_MODULE_EXPORT void | |
1134 | 1211 | virt_viewer_window_menu_change_cd_activate(GtkWidget *menu G_GNUC_UNUSED, |
1135 | 1212 | VirtViewerWindow *self G_GNUC_UNUSED) |
1136 | 1213 | { |
1344 | 1421 | gtk_widget_set_sensitive(menu, sensitive); |
1345 | 1422 | |
1346 | 1423 | menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-file-screenshot")); |
1347 | gtk_widget_set_sensitive(menu, sensitive); | |
1424 | gtk_widget_set_sensitive(menu, sensitive && | |
1425 | VIRT_VIEWER_DISPLAY_CAN_SCREENSHOT(self->priv->display)); | |
1348 | 1426 | |
1349 | 1427 | menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-view-zoom")); |
1350 | 1428 | gtk_widget_set_sensitive(menu, sensitive); |
1351 | 1429 | |
1352 | menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-send")); | |
1430 | menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-machine")); | |
1353 | 1431 | gtk_widget_set_sensitive(menu, sensitive); |
1432 | ||
1433 | { | |
1434 | gboolean can_send = sensitive && | |
1435 | VIRT_VIEWER_DISPLAY_CAN_SEND_KEYS(self->priv->display); | |
1436 | ||
1437 | menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-send")); | |
1438 | gtk_widget_set_sensitive(menu, can_send); | |
1439 | ||
1440 | gtk_widget_set_sensitive(self->priv->toolbar_send_key, can_send); | |
1441 | } | |
1354 | 1442 | } |
1355 | 1443 | |
1356 | 1444 | static void |
1431 | 1519 | if (virt_viewer_display_get_enabled(display)) |
1432 | 1520 | virt_viewer_window_desktop_resize(display, self); |
1433 | 1521 | |
1434 | gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-preferences")), TRUE); | |
1435 | gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-view-zoom")), TRUE); | |
1436 | gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")), TRUE); | |
1437 | gtk_widget_set_sensitive(self->priv->toolbar_send_key, TRUE); | |
1522 | virt_viewer_window_set_menus_sensitive(self, TRUE); | |
1438 | 1523 | } |
1439 | 1524 | } |
1440 | 1525 | |
1521 | 1606 | |
1522 | 1607 | virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); |
1523 | 1608 | |
1524 | virt_viewer_window_queue_resize(self); | |
1609 | if (!VIRT_VIEWER_IS_DISPLAY_VTE(priv->display)) { | |
1610 | virt_viewer_window_queue_resize(self); | |
1611 | } | |
1525 | 1612 | } |
1526 | 1613 | |
1527 | 1614 | gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self) |
67 | 67 | guint reconnect_poll; /* source id */ |
68 | 68 | }; |
69 | 69 | |
70 | G_DEFINE_TYPE (VirtViewer, virt_viewer, VIRT_VIEWER_TYPE_APP) | |
71 | #define GET_PRIVATE(o) \ | |
72 | (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE, VirtViewerPrivate)) | |
70 | G_DEFINE_TYPE_WITH_PRIVATE (VirtViewer, virt_viewer, VIRT_VIEWER_TYPE_APP) | |
73 | 71 | |
74 | 72 | static gboolean virt_viewer_initial_connect(VirtViewerApp *self, GError **error); |
75 | 73 | static gboolean virt_viewer_open_connection(VirtViewerApp *self, int *fd); |
212 | 210 | VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass); |
213 | 211 | GApplicationClass *g_app_class = G_APPLICATION_CLASS(klass); |
214 | 212 | |
215 | g_type_class_add_private (klass, sizeof (VirtViewerPrivate)); | |
216 | ||
217 | 213 | object_class->dispose = virt_viewer_dispose; |
218 | 214 | |
219 | 215 | app_class->initial_connect = virt_viewer_initial_connect; |
228 | 224 | static void |
229 | 225 | virt_viewer_init(VirtViewer *self) |
230 | 226 | { |
231 | self->priv = GET_PRIVATE(self); | |
227 | self->priv = virt_viewer_get_instance_private(self); | |
232 | 228 | self->priv->domain_event = -1; |
233 | 229 | } |
234 | 230 | |
257 | 253 | { |
258 | 254 | VirtViewerPrivate *priv = self->priv; |
259 | 255 | |
260 | g_debug("reconnect_poll: %d", priv->reconnect_poll); | |
256 | g_debug("reconnect_poll: %u", priv->reconnect_poll); | |
261 | 257 | |
262 | 258 | if (priv->reconnect_poll != 0) |
263 | 259 | return; |
270 | 266 | { |
271 | 267 | VirtViewerPrivate *priv = self->priv; |
272 | 268 | |
273 | g_debug("reconnect_poll: %d", priv->reconnect_poll); | |
269 | g_debug("reconnect_poll: %u", priv->reconnect_poll); | |
274 | 270 | |
275 | 271 | if (priv->reconnect_poll == 0) |
276 | 272 | return; |
874 | 870 | VirtViewerPrivate *priv = self->priv; |
875 | 871 | char uuid_string[VIR_UUID_STRING_BUFLEN]; |
876 | 872 | const char *guest_name; |
873 | char *title; | |
877 | 874 | GError *err = NULL; |
878 | 875 | |
879 | 876 | g_debug("initial connect"); |
914 | 911 | g_object_set(app, "guest-name", guest_name, NULL); |
915 | 912 | } |
916 | 913 | |
914 | title = virDomainGetMetadata(dom, VIR_DOMAIN_METADATA_TITLE, NULL, 0); | |
915 | if (title != NULL) { | |
916 | g_object_set(app, "title", title, NULL); | |
917 | free(title); | |
918 | } | |
919 | ||
917 | 920 | virt_viewer_app_show_status(app, _("Checking guest domain status")); |
918 | 921 | if (virDomainGetInfo(dom, &info) < 0) { |
919 | 922 | g_set_error_literal(&err, VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED, |
967 | 970 | int i; |
968 | 971 | int ret = 0; |
969 | 972 | |
970 | g_debug("Got libvirt credential request for %d credential(s)", ncred); | |
973 | g_debug("Got libvirt credential request for %u credential(s)", ncred); | |
971 | 974 | |
972 | 975 | for (i = 0 ; i < ncred ; i++) { |
973 | 976 | switch (cred[i].type) { |
1001 | 1004 | } |
1002 | 1005 | } |
1003 | 1006 | |
1007 | static const char * const cred_type_to_str[] = { | |
1008 | [VIR_CRED_USERNAME] = "Identity to act as", | |
1009 | [VIR_CRED_AUTHNAME] = "Identify to authorize as", | |
1010 | [VIR_CRED_PASSPHRASE] = "Passphrase secret", | |
1011 | }; | |
1012 | ||
1004 | 1013 | for (i = 0 ; i < ncred ; i++) { |
1005 | const char *cred_type_to_str[] = { | |
1006 | [VIR_CRED_USERNAME] = "Identity to act as", | |
1007 | [VIR_CRED_AUTHNAME] = "Identify to authorize as", | |
1008 | [VIR_CRED_PASSPHRASE] = "Passphrase secret", | |
1009 | }; | |
1010 | 1014 | switch (cred[i].type) { |
1011 | 1015 | case VIR_CRED_AUTHNAME: |
1012 | 1016 | case VIR_CRED_USERNAME: |
8 | 8 | BEGIN |
9 | 9 | VALUE "CompanyName", "virt-manager.org" |
10 | 10 | VALUE "FileDescription", "VirtViewer desktop client" |
11 | VALUE "FileVersion", "7.0" | |
12 | VALUE "InternalName", "virt-viewer 7.0" | |
11 | VALUE "FileVersion", "8.0" | |
12 | VALUE "InternalName", "virt-viewer 8.0" | |
13 | 13 | VALUE "LegalCopyright", "Copyright (C) 2007-2013 Red Hat, Inc." |
14 | 14 | VALUE "OriginalFilename", "virt-viewer.exe" |
15 | 15 | VALUE "ProductName", "VirtViewer" |
16 | VALUE "ProductVersion", "7.0" | |
16 | VALUE "ProductVersion", "8.0" | |
17 | 17 | END |
18 | 18 | END |
19 | 19 |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
93 | 93 | @OS_WIN32_TRUE@am__append_1 = redirect-test |
94 | 94 | subdir = tests |
95 | 95 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
96 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
97 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
98 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
99 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
100 | $(top_srcdir)/configure.ac | |
96 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ | |
97 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | |
98 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | |
99 | $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac | |
101 | 100 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
102 | 101 | $(ACLOCAL_M4) |
103 | 102 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |
172 | 171 | am__v_at_1 = |
173 | 172 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) |
174 | 173 | depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp |
175 | am__depfiles_maybe = depfiles | |
174 | am__maybe_remake_depfiles = depfiles | |
175 | am__depfiles_remade = ./$(DEPDIR)/redirect_test-redirect-test.Po \ | |
176 | ./$(DEPDIR)/test-hotkeys.Po \ | |
177 | ./$(DEPDIR)/test-monitor-alignment.Po \ | |
178 | ./$(DEPDIR)/test-monitor-mapping.Po \ | |
179 | ./$(DEPDIR)/test-version-compare.Po | |
176 | 180 | am__mv = mv -f |
177 | 181 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
178 | 182 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
542 | 546 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ |
543 | 547 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ |
544 | 548 | RANLIB = @RANLIB@ |
549 | REST_REQUIRED = @REST_REQUIRED@ | |
545 | 550 | SED = @SED@ |
546 | 551 | SET_MAKE = @SET_MAKE@ |
547 | 552 | SHELL = @SHELL@ |
555 | 560 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
556 | 561 | USE_NLS = @USE_NLS@ |
557 | 562 | VERSION = @VERSION@ |
563 | VTE_CFLAGS = @VTE_CFLAGS@ | |
564 | VTE_LIBS = @VTE_LIBS@ | |
558 | 565 | WARN_CFLAGS = @WARN_CFLAGS@ |
559 | 566 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
560 | 567 | WINDRES = @WINDRES@ |
678 | 685 | *config.status*) \ |
679 | 686 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
680 | 687 | *) \ |
681 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
682 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
688 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
689 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
683 | 690 | esac; |
684 | 691 | |
685 | 692 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
726 | 733 | distclean-compile: |
727 | 734 | -rm -f *.tab.c |
728 | 735 | |
729 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/redirect_test-redirect-test.Po@am__quote@ | |
730 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-hotkeys.Po@am__quote@ | |
731 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-monitor-alignment.Po@am__quote@ | |
732 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-monitor-mapping.Po@am__quote@ | |
733 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version-compare.Po@am__quote@ | |
736 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/redirect_test-redirect-test.Po@am__quote@ # am--include-marker | |
737 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-hotkeys.Po@am__quote@ # am--include-marker | |
738 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-monitor-alignment.Po@am__quote@ # am--include-marker | |
739 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-monitor-mapping.Po@am__quote@ # am--include-marker | |
740 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version-compare.Po@am__quote@ # am--include-marker | |
741 | ||
742 | $(am__depfiles_remade): | |
743 | @$(MKDIR_P) $(@D) | |
744 | @echo '# dummy' >$@-t && $(am__mv) $@-t $@ | |
745 | ||
746 | am--depfiles: $(am__depfiles_remade) | |
734 | 747 | |
735 | 748 | .c.o: |
736 | 749 | @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ |
948 | 961 | fi; \ |
949 | 962 | $$success || exit 1 |
950 | 963 | |
951 | check-TESTS: | |
964 | check-TESTS: $(check_PROGRAMS) | |
952 | 965 | @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list |
953 | 966 | @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list |
954 | 967 | @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) |
1019 | 1032 | @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ |
1020 | 1033 | @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) |
1021 | 1034 | |
1022 | distdir: $(DISTFILES) | |
1035 | distdir: $(BUILT_SOURCES) | |
1036 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
1037 | ||
1038 | distdir-am: $(DISTFILES) | |
1023 | 1039 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
1024 | 1040 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
1025 | 1041 | list='$(DISTFILES)'; \ |
1094 | 1110 | mostlyclean-am |
1095 | 1111 | |
1096 | 1112 | distclean: distclean-am |
1097 | -rm -rf ./$(DEPDIR) | |
1113 | -rm -f ./$(DEPDIR)/redirect_test-redirect-test.Po | |
1114 | -rm -f ./$(DEPDIR)/test-hotkeys.Po | |
1115 | -rm -f ./$(DEPDIR)/test-monitor-alignment.Po | |
1116 | -rm -f ./$(DEPDIR)/test-monitor-mapping.Po | |
1117 | -rm -f ./$(DEPDIR)/test-version-compare.Po | |
1098 | 1118 | -rm -f Makefile |
1099 | 1119 | distclean-am: clean-am distclean-compile distclean-generic \ |
1100 | 1120 | distclean-tags |
1140 | 1160 | installcheck-am: |
1141 | 1161 | |
1142 | 1162 | maintainer-clean: maintainer-clean-am |
1143 | -rm -rf ./$(DEPDIR) | |
1163 | -rm -f ./$(DEPDIR)/redirect_test-redirect-test.Po | |
1164 | -rm -f ./$(DEPDIR)/test-hotkeys.Po | |
1165 | -rm -f ./$(DEPDIR)/test-monitor-alignment.Po | |
1166 | -rm -f ./$(DEPDIR)/test-monitor-mapping.Po | |
1167 | -rm -f ./$(DEPDIR)/test-version-compare.Po | |
1144 | 1168 | -rm -f Makefile |
1145 | 1169 | maintainer-clean-am: distclean-am maintainer-clean-generic |
1146 | 1170 | |
1161 | 1185 | |
1162 | 1186 | .MAKE: check-am install-am install-strip |
1163 | 1187 | |
1164 | .PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ | |
1165 | clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ | |
1166 | ctags ctags-am distclean distclean-compile distclean-generic \ | |
1167 | distclean-libtool distclean-tags distdir dvi dvi-am html \ | |
1168 | html-am info info-am install install-am install-data \ | |
1169 | install-data-am install-dvi install-dvi-am install-exec \ | |
1170 | install-exec-am install-html install-html-am install-info \ | |
1171 | install-info-am install-man install-pdf install-pdf-am \ | |
1172 | install-ps install-ps-am install-strip installcheck \ | |
1173 | installcheck-am installdirs maintainer-clean \ | |
1188 | .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ | |
1189 | check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ | |
1190 | cscopelist-am ctags ctags-am distclean distclean-compile \ | |
1191 | distclean-generic distclean-libtool distclean-tags distdir dvi \ | |
1192 | dvi-am html html-am info info-am install install-am \ | |
1193 | install-data install-data-am install-dvi install-dvi-am \ | |
1194 | install-exec install-exec-am install-html install-html-am \ | |
1195 | install-info install-info-am install-man install-pdf \ | |
1196 | install-pdf-am install-ps install-ps-am install-strip \ | |
1197 | installcheck installcheck-am installdirs maintainer-clean \ | |
1174 | 1198 | maintainer-clean-generic mostlyclean mostlyclean-compile \ |
1175 | 1199 | mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
1176 | 1200 | recheck tags tags-am uninstall uninstall-am |
15 | 15 | %endif |
16 | 16 | |
17 | 17 | Name: virt-viewer |
18 | Version: 7.0 | |
19 | Release: 1%{?dist}%{?extra_release} | |
18 | Version: 8.0 | |
19 | Release: 1%{?dist} | |
20 | 20 | Summary: Virtual Machine Viewer |
21 | 21 | Group: Applications/System |
22 | 22 | License: GPLv2+ |
23 | 23 | URL: http://virt-manager.org/ |
24 | 24 | Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz |
25 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | |
26 | 25 | Requires: openssh-clients |
27 | 26 | Requires(post): %{_sbindir}/update-alternatives |
28 | 27 | Requires(postun): %{_sbindir}/update-alternatives |
36 | 35 | BuildRequires: libtool |
37 | 36 | %endif |
38 | 37 | |
39 | BuildRequires: pkgconfig(glib-2.0) >= 2.38 | |
38 | BuildRequires: gcc | |
39 | BuildRequires: pkgconfig(glib-2.0) >= 2.40 | |
40 | 40 | BuildRequires: pkgconfig(gtk+-3.0) >= 3.12 |
41 | 41 | BuildRequires: pkgconfig(libvirt) >= 0.10.0 |
42 | 42 | BuildRequires: pkgconfig(libvirt-glib-1.0) >= 0.1.8 |
49 | 49 | BuildRequires: /usr/bin/pod2man |
50 | 50 | BuildRequires: intltool |
51 | 51 | %if %{with_govirt} |
52 | BuildRequires: pkgconfig(govirt-1.0) >= 0.3.2 | |
52 | BuildRequires: pkgconfig(govirt-1.0) >= 0.3.3 | |
53 | 53 | %endif |
54 | 54 | |
55 | 55 | %if 0%{?fedora} >= 20 |
90 | 90 | %__make install DESTDIR=$RPM_BUILD_ROOT |
91 | 91 | %find_lang %{name} |
92 | 92 | |
93 | %clean | |
94 | rm -rf $RPM_BUILD_ROOT | |
95 | ||
96 | %post | |
97 | %{_bindir}/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : | |
98 | %{_bindir}/touch --no-create %{_datadir}/mime/packages &> /dev/null || : | |
99 | %{_bindir}/update-desktop-database -q %{_datadir}/applications | |
100 | ||
101 | %postun | |
102 | if [ $1 -eq 0 ] ; then | |
103 | %{_bindir}/touch --no-create %{_datadir}/icons/hicolor &>/dev/null | |
104 | %{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : | |
105 | %{_bindir}/update-mime-database %{_datadir}/mime &> /dev/null | |
106 | fi | |
107 | %{_bindir}/update-desktop-database -q %{_datadir}/applications | |
108 | ||
109 | %posttrans | |
110 | %{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : | |
111 | %{_bindir}/update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : | |
112 | 93 | |
113 | 94 | %files -f %{name}.lang |
114 | %defattr(-,root,root,-) | |
115 | 95 | %doc README.md COPYING AUTHORS ChangeLog NEWS |
116 | 96 | %{_bindir}/%{name} |
117 | 97 | %{_bindir}/remote-viewer |
16 | 16 | |
17 | 17 | Name: @PACKAGE@ |
18 | 18 | Version: @VERSION@ |
19 | Release: 1%{?dist}%{?extra_release} | |
19 | Release: 1%{?dist} | |
20 | 20 | Summary: Virtual Machine Viewer |
21 | 21 | Group: Applications/System |
22 | 22 | License: GPLv2+ |
23 | 23 | URL: http://virt-manager.org/ |
24 | 24 | Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz |
25 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | |
26 | 25 | Requires: openssh-clients |
27 | 26 | Requires(post): %{_sbindir}/update-alternatives |
28 | 27 | Requires(postun): %{_sbindir}/update-alternatives |
36 | 35 | BuildRequires: libtool |
37 | 36 | %endif |
38 | 37 | |
38 | BuildRequires: gcc | |
39 | 39 | BuildRequires: pkgconfig(glib-2.0) >= @GLIB2_REQUIRED@ |
40 | 40 | BuildRequires: pkgconfig(gtk+-3.0) >= @GTK_REQUIRED@ |
41 | 41 | BuildRequires: pkgconfig(libvirt) >= @LIBVIRT_REQUIRED@ |
90 | 90 | %__make install DESTDIR=$RPM_BUILD_ROOT |
91 | 91 | %find_lang %{name} |
92 | 92 | |
93 | %clean | |
94 | rm -rf $RPM_BUILD_ROOT | |
95 | ||
96 | %post | |
97 | %{_bindir}/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : | |
98 | %{_bindir}/touch --no-create %{_datadir}/mime/packages &> /dev/null || : | |
99 | %{_bindir}/update-desktop-database -q %{_datadir}/applications | |
100 | ||
101 | %postun | |
102 | if [ $1 -eq 0 ] ; then | |
103 | %{_bindir}/touch --no-create %{_datadir}/icons/hicolor &>/dev/null | |
104 | %{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : | |
105 | %{_bindir}/update-mime-database %{_datadir}/mime &> /dev/null | |
106 | fi | |
107 | %{_bindir}/update-desktop-database -q %{_datadir}/applications | |
108 | ||
109 | %posttrans | |
110 | %{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : | |
111 | %{_bindir}/update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : | |
112 | 93 | |
113 | 94 | %files -f %{name}.lang |
114 | %defattr(-,root,root,-) | |
115 | 95 | %doc README.md COPYING AUTHORS ChangeLog NEWS |
116 | 96 | %{_bindir}/%{name} |
117 | 97 | %{_bindir}/remote-viewer |