Codebase list virt-viewer / 5c475be
New upstream version 8.0 Guido Günther 5 years ago
65 changed file(s) with 3717 addition(s) and 1697 deletion(s). Raw diff Collapse all Expand all
1010
1111 With additional patches & translations from:
1212
13 Andrea Bolognani <abologna@redhat.com>
14 Ben Mathews <beniam@yahoo.com>
1315 Charles Arnold <carnold@suse.com>
1416 Christophe Fergeau <cfergeau@redhat.com>
1517 Christophe de Dinechin <cdupontd@redhat.com>
3133 Marc-André Lureau <marcandre.lureau@redhat.com>
3234 Martin Kletzander <mkletzan@redhat.com>
3335 Michal Privoznik <mprivozn@redhat.com>
36 Paul Donohue <virt-tools@PaulSD.com>
3437 Pavel Grunt <pgrunt@redhat.com>
3538 Pavel Hrdina <phrdina@redhat.com>
3639 Pavel Raiskup <praiskup@redhat.com>
40 Qiu Wenbo <qiuwenbo@kylinos.com.cn>
3741 Rex Dieter <rdieter@math.unl.edu>
3842 Richard W.M. Jones <rjones@redhat.com>
3943 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
0532 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
1537
2538 Add NEWS for 7.0 release
3539
0 # Makefile.in generated by automake 1.15.1 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8888 host_triplet = @host@
8989 subdir = .
9090 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
9695 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9796 $(ACLOCAL_M4)
9897 DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
137136 $(RECURSIVE_CLEAN_TARGETS) \
138137 $(am__extra_recursive_targets)
139138 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
141140 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
142141 $(LISP)config.h.in
143142 # Read a list of newline-separated strings from the standard input,
322321 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
323322 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
324323 RANLIB = @RANLIB@
324 REST_REQUIRED = @REST_REQUIRED@
325325 SED = @SED@
326326 SET_MAKE = @SET_MAKE@
327327 SHELL = @SHELL@
335335 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
336336 USE_NLS = @USE_NLS@
337337 VERSION = @VERSION@
338 VTE_CFLAGS = @VTE_CFLAGS@
339 VTE_LIBS = @VTE_LIBS@
338340 WARN_CFLAGS = @WARN_CFLAGS@
339341 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
340342 WINDRES = @WINDRES@
455457 echo ' $(SHELL) ./config.status'; \
456458 $(SHELL) ./config.status;; \
457459 *) \
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);; \
460462 esac;
461463
462464 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
602604 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
603605 -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
604606
605 distdir: $(DISTFILES)
607 distdir: $(BUILT_SOURCES)
608 $(MAKE) $(AM_MAKEFLAGS) distdir-am
609
610 distdir-am: $(DISTFILES)
606611 $(am__remove_distdir)
607612 test -d "$(distdir)" || mkdir "$(distdir)"
608613 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
00 Virt Viewer News
11 ================
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
218
319 7.0: Jul 27, 2018
420 -----------------
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.
33
44 # This file is free software; the Free Software Foundation
55 # gives unlimited permission to copy and/or distribute it,
506506 fi])
507507
508508
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
509699 # nls.m4 serial 5 (gettext-0.18)
510700 dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software
511701 dnl Foundation, Inc.
8831073 [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
8841074 ])dnl PKG_HAVE_DEFINE_WITH_MODULES
8851075
886 # Copyright (C) 2002-2017 Free Software Foundation, Inc.
1076 # Copyright (C) 2002-2018 Free Software Foundation, Inc.
8871077 #
8881078 # This file is free software; the Free Software Foundation
8891079 # gives unlimited permission to copy and/or distribute it,
8951085 # generated from the m4 files accompanying Automake X.Y.
8961086 # (This private macro should not be called outside this file.)
8971087 AC_DEFUN([AM_AUTOMAKE_VERSION],
898 [am__api_version='1.15'
1088 [am__api_version='1.16'
8991089 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
9001090 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], [],
9021092 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
9031093 ])
9041094
9141104 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
9151105 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
9161106 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
917 [AM_AUTOMAKE_VERSION([1.15.1])dnl
1107 [AM_AUTOMAKE_VERSION([1.16.1])dnl
9181108 m4_ifndef([AC_AUTOCONF_VERSION],
9191109 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
9201110 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
9211111
9221112 # AM_AUX_DIR_EXPAND -*- Autoconf -*-
9231113
924 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
1114 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
9251115 #
9261116 # This file is free software; the Free Software Foundation
9271117 # gives unlimited permission to copy and/or distribute it,
9731163
9741164 # AM_CONDITIONAL -*- Autoconf -*-
9751165
976 # Copyright (C) 1997-2017 Free Software Foundation, Inc.
1166 # Copyright (C) 1997-2018 Free Software Foundation, Inc.
9771167 #
9781168 # This file is free software; the Free Software Foundation
9791169 # gives unlimited permission to copy and/or distribute it,
10041194 Usually this means the macro was only invoked conditionally.]])
10051195 fi])])
10061196
1007 # Copyright (C) 1999-2017 Free Software Foundation, Inc.
1197 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
10081198 #
10091199 # This file is free software; the Free Software Foundation
10101200 # gives unlimited permission to copy and/or distribute it,
11951385
11961386 # Generate code to set up dependency tracking. -*- Autoconf -*-
11971387
1198 # Copyright (C) 1999-2017 Free Software Foundation, Inc.
1388 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
11991389 #
12001390 # This file is free software; the Free Software Foundation
12011391 # gives unlimited permission to copy and/or distribute it,
12021392 # with or without modifications, as long as this notice is preserved.
1203
12041393
12051394 # _AM_OUTPUT_DEPENDENCY_COMMANDS
12061395 # ------------------------------
12091398 # Older Autoconf quotes --file arguments for eval, but not when files
12101399 # are listed without --file. Let's play safe and only enable the eval
12111400 # 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])
12161406 shift
1217 for mf
1407 # Used to flag and report bootstrapping failures.
1408 am_rc=0
1409 for am_mf
12181410 do
12191411 # 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
12271416 # 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=$?
12541424 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
12551436 }
12561437 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
12571438
12601441 # -----------------------------
12611442 # This macro should only be invoked once -- use via AC_REQUIRE.
12621443 #
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.
12661447 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
12671448 [AC_CONFIG_COMMANDS([depfiles],
12681449 [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}"])])
12711451
12721452 # Do all the work for Automake. -*- Autoconf -*-
12731453
1274 # Copyright (C) 1996-2017 Free Software Foundation, Inc.
1454 # Copyright (C) 1996-2018 Free Software Foundation, Inc.
12751455 #
12761456 # This file is free software; the Free Software Foundation
12771457 # gives unlimited permission to copy and/or distribute it,
13581538 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
13591539 # For better backward compatibility. To be removed once Automake 1.9.x
13601540 # 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>
13631543 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
13641544 # We need awk for the "check" target (and possibly the TAP driver). The
13651545 # system "awk" is bad on some platforms.
14261606 Aborting the configuration process, to ensure you take notice of the issue.
14271607
14281608 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/>.
14301610
14311611 If you want to complete the configuration process using your problematic
14321612 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
14681648 done
14691649 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
14701650
1471 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
1651 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
14721652 #
14731653 # This file is free software; the Free Software Foundation
14741654 # gives unlimited permission to copy and/or distribute it,
14891669 fi
14901670 AC_SUBST([install_sh])])
14911671
1492 # Copyright (C) 2003-2017 Free Software Foundation, Inc.
1672 # Copyright (C) 2003-2018 Free Software Foundation, Inc.
14931673 #
14941674 # This file is free software; the Free Software Foundation
14951675 # gives unlimited permission to copy and/or distribute it,
15101690
15111691 # Check to see how 'make' treats includes. -*- Autoconf -*-
15121692
1513 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
1693 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
15141694 #
15151695 # This file is free software; the Free Software Foundation
15161696 # gives unlimited permission to copy and/or distribute it,
15181698
15191699 # AM_MAKE_INCLUDE()
15201700 # -----------------
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.
15221703 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'
15251706 am__doit:
1526 @echo this is the am__doit target
1707 @echo this is the am__doit target >confinc.out
15271708 .PHONY: am__doit
15281709 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])
15311710 am__include="#"
15321711 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])])
15601733
15611734 # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
15621735
1563 # Copyright (C) 1997-2017 Free Software Foundation, Inc.
1736 # Copyright (C) 1997-2018 Free Software Foundation, Inc.
15641737 #
15651738 # This file is free software; the Free Software Foundation
15661739 # gives unlimited permission to copy and/or distribute it,
15991772
16001773 # Helper functions for option handling. -*- Autoconf -*-
16011774
1602 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
1775 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
16031776 #
16041777 # This file is free software; the Free Software Foundation
16051778 # gives unlimited permission to copy and/or distribute it,
16281801 AC_DEFUN([_AM_IF_OPTION],
16291802 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
16301803
1631 # Copyright (C) 1999-2017 Free Software Foundation, Inc.
1804 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
16321805 #
16331806 # This file is free software; the Free Software Foundation
16341807 # gives unlimited permission to copy and/or distribute it,
16751848 # For backward compatibility.
16761849 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
16771850
1678 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
1851 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
16791852 #
16801853 # This file is free software; the Free Software Foundation
16811854 # gives unlimited permission to copy and/or distribute it,
16941867
16951868 # Check to make sure that the build environment is sane. -*- Autoconf -*-
16961869
1697 # Copyright (C) 1996-2017 Free Software Foundation, Inc.
1870 # Copyright (C) 1996-2018 Free Software Foundation, Inc.
16981871 #
16991872 # This file is free software; the Free Software Foundation
17001873 # gives unlimited permission to copy and/or distribute it,
17751948 rm -f conftest.file
17761949 ])
17771950
1778 # Copyright (C) 2009-2017 Free Software Foundation, Inc.
1951 # Copyright (C) 2009-2018 Free Software Foundation, Inc.
17791952 #
17801953 # This file is free software; the Free Software Foundation
17811954 # gives unlimited permission to copy and/or distribute it,
18352008 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
18362009 ])
18372010
1838 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
2011 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
18392012 #
18402013 # This file is free software; the Free Software Foundation
18412014 # gives unlimited permission to copy and/or distribute it,
18632036 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
18642037 AC_SUBST([INSTALL_STRIP_PROGRAM])])
18652038
1866 # Copyright (C) 2006-2017 Free Software Foundation, Inc.
2039 # Copyright (C) 2006-2018 Free Software Foundation, Inc.
18672040 #
18682041 # This file is free software; the Free Software Foundation
18692042 # gives unlimited permission to copy and/or distribute it,
18822055
18832056 # Check how to create a tarball. -*- Autoconf -*-
18842057
1885 # Copyright (C) 2004-2017 Free Software Foundation, Inc.
2058 # Copyright (C) 2004-2018 Free Software Foundation, Inc.
18862059 #
18872060 # This file is free software; the Free Software Foundation
18882061 # gives unlimited permission to copy and/or distribute it,
20132186 AC_SUBST([am__untar])
20142187 ]) # _AM_PROG_TAR
20152188
2016 m4_include([m4/intltool.m4])
20172189 m4_include([m4/libtool.m4])
20182190 m4_include([m4/ltoptions.m4])
20192191 m4_include([m4/ltsugar.m4])
0 #!/bin/sh
0 #! /bin/sh
11 # Wrapper for compilers which do not understand '-c -o'.
22
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.
66 # Written by Tom Tromey <tromey@cygnus.com>.
77 #
88 # This program is free software; you can redistribute it and/or modify
1616 # GNU General Public License for more details.
1717 #
1818 # 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/>.
2020
2121 # As a special exception to the GNU General Public License, if you
2222 # distribute this file as part of a program that contains a
339339 # Local Variables:
340340 # mode: shell-script
341341 # sh-indentation: 2
342 # eval: (add-hook 'write-file-hooks 'time-stamp)
342 # eval: (add-hook 'before-save-hook 'time-stamp)
343343 # time-stamp-start: "scriptversion="
344344 # time-stamp-format: "%:y-%02m-%02d.%02H"
345345 # time-stamp-time-zone: "UTC0"
0 #!/bin/sh
0 #! /bin/sh
11 # 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'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
1414 # General Public License for more details.
1515 #
1616 # 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/>.
1818 #
1919 # As a special exception to the GNU General Public License, if you
2020 # distribute this file as part of a program that contains a
2626 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
2727 #
2828 # You can get the latest version of this script from:
29 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
29 # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
3030 #
3131 # Please send patches to <config-patches@gnu.org>.
3232
3838
3939 Output the configuration name of the system \`$me' is run on.
4040
41 Operation modes:
41 Options:
4242 -h, --help print this help, then exit
4343 -t, --time-stamp print date of last modification, then exit
4444 -v, --version print version number, then exit
4949 GNU config.guess ($timestamp)
5050
5151 Originally written by Per Bothner.
52 Copyright 1992-2017 Free Software Foundation, Inc.
52 Copyright 1992-2018 Free Software Foundation, Inc.
5353
5454 This is free software; see the source for copying conditions. There is NO
5555 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
106106 dummy=$tmp/dummy ;
107107 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
108108 case $CC_FOR_BUILD,$HOST_CC,$CC in
109 ,,) echo "int x;" > $dummy.c ;
109 ,,) echo "int x;" > "$dummy.c" ;
110110 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
112112 CC_FOR_BUILD="$c"; break ;
113113 fi ;
114114 done ;
131131 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
132132 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
133133
134 case "${UNAME_SYSTEM}" in
134 case "$UNAME_SYSTEM" in
135135 Linux|GNU|GNU/*)
136136 # If the system lacks a compiler, then just pick glibc.
137137 # We could probably try harder.
138138 LIBC=gnu
139139
140 eval $set_cc_for_build
141 cat <<-EOF > $dummy.c
140 eval "$set_cc_for_build"
141 cat <<-EOF > "$dummy.c"
142142 #include <features.h>
143143 #if defined(__UCLIBC__)
144144 LIBC=uclibc
148148 LIBC=gnu
149149 #endif
150150 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
152159 ;;
153160 esac
154161
155162 # Note: order is significant - the case branches are not exclusive.
156163
157 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
164 case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
158165 *:NetBSD:*:*)
159166 # NetBSD (nbsd) targets should (where applicable) match one or
160167 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
168175 # portion of the name. We always set it to "unknown".
169176 sysctl="sysctl -n hw.machine_arch"
170177 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 || \
173180 echo unknown)`
174 case "${UNAME_MACHINE_ARCH}" in
181 case "$UNAME_MACHINE_ARCH" in
175182 armeb) machine=armeb-unknown ;;
176183 arm*) machine=arm-unknown ;;
177184 sh3el) machine=shl-unknown ;;
178185 sh3eb) machine=sh-unknown ;;
179186 sh5el) machine=sh5le-unknown ;;
180187 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
184191 ;;
185 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
192 *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
186193 esac
187194 # The Operating System including object format, if it has switched
188195 # to ELF recently (or will in the future) and ABI.
189 case "${UNAME_MACHINE_ARCH}" in
196 case "$UNAME_MACHINE_ARCH" in
190197 earm*)
191198 os=netbsdelf
192199 ;;
193200 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
194 eval $set_cc_for_build
201 eval "$set_cc_for_build"
195202 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
196203 | grep -q __ELF__
197204 then
207214 ;;
208215 esac
209216 # Determine ABI tags.
210 case "${UNAME_MACHINE_ARCH}" in
217 case "$UNAME_MACHINE_ARCH" in
211218 earm*)
212219 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"`
214221 ;;
215222 esac
216223 # The OS release
218225 # thus, need a distinct triplet. However, they do not need
219226 # kernel version information, so it can be replaced with a
220227 # suitable tag, in the style of linux-gnu.
221 case "${UNAME_VERSION}" in
228 case "$UNAME_VERSION" in
222229 Debian*)
223230 release='-gnu'
224231 ;;
225232 *)
226 release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
233 release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
227234 ;;
228235 esac
229236 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
230237 # contains redundant information, the shorter form:
231238 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
232 echo "${machine}-${os}${release}${abi}"
239 echo "$machine-${os}${release}${abi}"
233240 exit ;;
234241 *:Bitrig:*:*)
235242 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"
237244 exit ;;
238245 *:OpenBSD:*:*)
239246 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"
241248 exit ;;
242249 *:LibertyBSD:*:*)
243250 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"
245255 exit ;;
246256 *:ekkoBSD:*:*)
247 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
257 echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
248258 exit ;;
249259 *:SolidBSD:*:*)
250 echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
260 echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
251261 exit ;;
252262 macppc:MirBSD:*:*)
253 echo powerpc-unknown-mirbsd${UNAME_RELEASE}
263 echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
254264 exit ;;
255265 *:MirBSD:*:*)
256 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
266 echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
257267 exit ;;
258268 *:Sortix:*:*)
259 echo ${UNAME_MACHINE}-unknown-sortix
269 echo "$UNAME_MACHINE"-unknown-sortix
260270 exit ;;
261271 *: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 ;;
264277 alpha:OSF1:*:*)
265278 case $UNAME_RELEASE in
266279 *4.0)
312325 # A Tn.n version is a released field test version.
313326 # A Xn.n version is an unreleased experimental baselevel.
314327 # 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`"
316329 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
317330 exitcode=$?
318331 trap '' 0
319332 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 ;;
329333 Amiga*:UNIX_System_V:4.0:*)
330334 echo m68k-unknown-sysv4
331335 exit ;;
332336 *:[Aa]miga[Oo][Ss]:*:*)
333 echo ${UNAME_MACHINE}-unknown-amigaos
337 echo "$UNAME_MACHINE"-unknown-amigaos
334338 exit ;;
335339 *:[Mm]orph[Oo][Ss]:*:*)
336 echo ${UNAME_MACHINE}-unknown-morphos
340 echo "$UNAME_MACHINE"-unknown-morphos
337341 exit ;;
338342 *:OS/390:*:*)
339343 echo i370-ibm-openedition
345349 echo powerpc-ibm-os400
346350 exit ;;
347351 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
348 echo arm-acorn-riscix${UNAME_RELEASE}
352 echo arm-acorn-riscix"$UNAME_RELEASE"
349353 exit ;;
350354 arm*:riscos:*:*|arm*:RISCOS:*:*)
351355 echo arm-unknown-riscos
372376 sparc) echo sparc-icl-nx7; exit ;;
373377 esac ;;
374378 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/[^.]*//'`"
376380 exit ;;
377381 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/[^.]*//'`"
379383 exit ;;
380384 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/[^.]*//'`"
382386 exit ;;
383387 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
384 echo i386-pc-auroraux${UNAME_RELEASE}
388 echo i386-pc-auroraux"$UNAME_RELEASE"
385389 exit ;;
386390 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
387 eval $set_cc_for_build
391 eval "$set_cc_for_build"
388392 SUN_ARCH=i386
389393 # If there is a compiler, see if it is configured for 64-bit objects.
390394 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
397401 SUN_ARCH=x86_64
398402 fi
399403 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/[^.]*//'`"
401405 exit ;;
402406 sun4*:SunOS:6*:*)
403407 # According to config.sub, this is the proper way to canonicalize
404408 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
405409 # 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/[^.]*//'`"
407411 exit ;;
408412 sun4*:SunOS:*:*)
409413 case "`/usr/bin/arch -k`" in
412416 ;;
413417 esac
414418 # 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/-/_/'`"
416420 exit ;;
417421 sun3*:SunOS:*:*)
418 echo m68k-sun-sunos${UNAME_RELEASE}
422 echo m68k-sun-sunos"$UNAME_RELEASE"
419423 exit ;;
420424 sun*:*:4.2BSD:*)
421425 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
423427 case "`/bin/arch`" in
424428 sun3)
425 echo m68k-sun-sunos${UNAME_RELEASE}
429 echo m68k-sun-sunos"$UNAME_RELEASE"
426430 ;;
427431 sun4)
428 echo sparc-sun-sunos${UNAME_RELEASE}
432 echo sparc-sun-sunos"$UNAME_RELEASE"
429433 ;;
430434 esac
431435 exit ;;
432436 aushp:SunOS:*:*)
433 echo sparc-auspex-sunos${UNAME_RELEASE}
437 echo sparc-auspex-sunos"$UNAME_RELEASE"
434438 exit ;;
435439 # The situation for MiNT is a little confusing. The machine name
436440 # can be virtually everything (everything which is not
441445 # MiNT. But MiNT is downward compatible to TOS, so this should
442446 # be no problem.
443447 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
444 echo m68k-atari-mint${UNAME_RELEASE}
448 echo m68k-atari-mint"$UNAME_RELEASE"
445449 exit ;;
446450 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
447 echo m68k-atari-mint${UNAME_RELEASE}
451 echo m68k-atari-mint"$UNAME_RELEASE"
448452 exit ;;
449453 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
450 echo m68k-atari-mint${UNAME_RELEASE}
454 echo m68k-atari-mint"$UNAME_RELEASE"
451455 exit ;;
452456 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
453 echo m68k-milan-mint${UNAME_RELEASE}
457 echo m68k-milan-mint"$UNAME_RELEASE"
454458 exit ;;
455459 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
456 echo m68k-hades-mint${UNAME_RELEASE}
460 echo m68k-hades-mint"$UNAME_RELEASE"
457461 exit ;;
458462 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
459 echo m68k-unknown-mint${UNAME_RELEASE}
463 echo m68k-unknown-mint"$UNAME_RELEASE"
460464 exit ;;
461465 m68k:machten:*:*)
462 echo m68k-apple-machten${UNAME_RELEASE}
466 echo m68k-apple-machten"$UNAME_RELEASE"
463467 exit ;;
464468 powerpc:machten:*:*)
465 echo powerpc-apple-machten${UNAME_RELEASE}
469 echo powerpc-apple-machten"$UNAME_RELEASE"
466470 exit ;;
467471 RISC*:Mach:*:*)
468472 echo mips-dec-mach_bsd4.3
469473 exit ;;
470474 RISC*:ULTRIX:*:*)
471 echo mips-dec-ultrix${UNAME_RELEASE}
475 echo mips-dec-ultrix"$UNAME_RELEASE"
472476 exit ;;
473477 VAX*:ULTRIX*:*:*)
474 echo vax-dec-ultrix${UNAME_RELEASE}
478 echo vax-dec-ultrix"$UNAME_RELEASE"
475479 exit ;;
476480 2020:CLIX:*:* | 2430:CLIX:*:*)
477 echo clipper-intergraph-clix${UNAME_RELEASE}
481 echo clipper-intergraph-clix"$UNAME_RELEASE"
478482 exit ;;
479483 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"
482486 #ifdef __cplusplus
483487 #include <stdio.h> /* for printf() prototype */
484488 int main (int argc, char *argv[]) {
487491 #endif
488492 #if defined (host_mips) && defined (MIPSEB)
489493 #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);
491495 #endif
492496 #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);
494498 #endif
495499 #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);
497501 #endif
498502 #endif
499503 exit (-1);
500504 }
501505 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"` &&
505509 { echo "$SYSTEM_NAME"; exit; }
506 echo mips-mips-riscos${UNAME_RELEASE}
510 echo mips-mips-riscos"$UNAME_RELEASE"
507511 exit ;;
508512 Motorola:PowerMAX_OS:*:*)
509513 echo powerpc-motorola-powermax
529533 AViiON:dgux:*:*)
530534 # DG/UX returns AViiON for all architectures
531535 UNAME_PROCESSOR=`/usr/bin/uname -p`
532 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
536 if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
533537 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 ]
536540 then
537 echo m88k-dg-dgux${UNAME_RELEASE}
541 echo m88k-dg-dgux"$UNAME_RELEASE"
538542 else
539 echo m88k-dg-dguxbcs${UNAME_RELEASE}
543 echo m88k-dg-dguxbcs"$UNAME_RELEASE"
540544 fi
541545 else
542 echo i586-dg-dgux${UNAME_RELEASE}
546 echo i586-dg-dgux"$UNAME_RELEASE"
543547 fi
544548 exit ;;
545549 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
556560 echo m68k-tektronix-bsd
557561 exit ;;
558562 *: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'`"
560564 exit ;;
561565 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
562566 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
568572 if [ -x /usr/bin/oslevel ] ; then
569573 IBM_REV=`/usr/bin/oslevel`
570574 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"
574578 exit ;;
575579 *:AIX:2:3)
576580 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"
579583 #include <sys/systemcfg.h>
580584
581585 main()
586590 exit(0);
587591 }
588592 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"`
590594 then
591595 echo "$SYSTEM_NAME"
592596 else
600604 exit ;;
601605 *:AIX:*:[4567])
602606 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
604608 IBM_ARCH=rs6000
605609 else
606610 IBM_ARCH=powerpc
609613 IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
610614 awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
611615 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"
615619 exit ;;
616620 *:AIX:*:*)
617621 echo rs6000-ibm-aix
618622 exit ;;
619 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
623 ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
620624 echo romp-ibm-bsd4.4
621625 exit ;;
622626 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
624628 exit ;; # report: romp-ibm BSD 4.3
625629 *:BOSX:*:*)
626630 echo rs6000-bull-bosx
635639 echo m68k-hp-bsd4.4
636640 exit ;;
637641 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 ;;
642646 9000/[678][0-9][0-9])
643647 if [ -x /usr/bin/getconf ]; then
644648 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
645649 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
646 case "${sc_cpu_version}" in
650 case "$sc_cpu_version" in
647651 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
648652 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
649653 532) # CPU_PA_RISC2_0
650 case "${sc_kernel_bits}" in
654 case "$sc_kernel_bits" in
651655 32) HP_ARCH=hppa2.0n ;;
652656 64) HP_ARCH=hppa2.0w ;;
653657 '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
654658 esac ;;
655659 esac
656660 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"
660664
661665 #define _HPUX_SOURCE
662666 #include <stdlib.h>
689693 exit (0);
690694 }
691695 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"`
693697 test -z "$HP_ARCH" && HP_ARCH=hppa
694698 fi ;;
695699 esac
696 if [ ${HP_ARCH} = hppa2.0w ]
700 if [ "$HP_ARCH" = hppa2.0w ]
697701 then
698 eval $set_cc_for_build
702 eval "$set_cc_for_build"
699703
700704 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
701705 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
714718 HP_ARCH=hppa64
715719 fi
716720 fi
717 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
721 echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
718722 exit ;;
719723 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"
722726 exit ;;
723727 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"
726730 #include <unistd.h>
727731 int
728732 main ()
747751 exit (0);
748752 }
749753 EOF
750 $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
754 $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
751755 { echo "$SYSTEM_NAME"; exit; }
752756 echo unknown-hitachi-hiuxwe2
753757 exit ;;
754 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
758 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
755759 echo hppa1.1-hp-bsd
756760 exit ;;
757761 9000/8??:4.3bsd:*:*)
760764 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
761765 echo hppa1.0-hp-mpeix
762766 exit ;;
763 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
767 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
764768 echo hppa1.1-hp-osf
765769 exit ;;
766770 hp8??:OSF1:*:*)
768772 exit ;;
769773 i*86:OSF1:*:*)
770774 if [ -x /usr/sbin/sysversion ] ; then
771 echo ${UNAME_MACHINE}-unknown-osf1mk
775 echo "$UNAME_MACHINE"-unknown-osf1mk
772776 else
773 echo ${UNAME_MACHINE}-unknown-osf1
777 echo "$UNAME_MACHINE"-unknown-osf1
774778 fi
775779 exit ;;
776780 parisc*:Lites*:*:*)
795799 echo c4-convex-bsd
796800 exit ;;
797801 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/'
799803 exit ;;
800804 CRAY*[A-Z]90:*:*:*)
801 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
805 echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
802806 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
803807 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
804808 -e 's/\.[^.]*$/.X/'
805809 exit ;;
806810 CRAY*TS:*:*:*)
807 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
811 echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
808812 exit ;;
809813 CRAY*T3E:*:*:*)
810 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
814 echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
811815 exit ;;
812816 CRAY*SV1:*:*:*)
813 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
817 echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
814818 exit ;;
815819 *:UNICOS/mp:*:*)
816 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
820 echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
817821 exit ;;
818822 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
819823 FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
820824 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/ /_/'`
822826 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
823827 exit ;;
824828 5000:UNIX_System_V:4.*:*)
825829 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/ /_/'`
827831 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
828832 exit ;;
829833 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"
831835 exit ;;
832836 sparc*:BSD/OS:*:*)
833 echo sparc-unknown-bsdi${UNAME_RELEASE}
837 echo sparc-unknown-bsdi"$UNAME_RELEASE"
834838 exit ;;
835839 *:BSD/OS:*:*)
836 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
840 echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
837841 exit ;;
838842 *:FreeBSD:*:*)
839843 UNAME_PROCESSOR=`/usr/bin/uname -p`
840 case ${UNAME_PROCESSOR} in
844 case "$UNAME_PROCESSOR" in
841845 amd64)
842846 UNAME_PROCESSOR=x86_64 ;;
843847 i386)
844848 UNAME_PROCESSOR=i586 ;;
845849 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/[-(].*//'`"
847851 exit ;;
848852 i*:CYGWIN*:*)
849 echo ${UNAME_MACHINE}-pc-cygwin
853 echo "$UNAME_MACHINE"-pc-cygwin
850854 exit ;;
851855 *:MINGW64*:*)
852 echo ${UNAME_MACHINE}-pc-mingw64
856 echo "$UNAME_MACHINE"-pc-mingw64
853857 exit ;;
854858 *:MINGW*:*)
855 echo ${UNAME_MACHINE}-pc-mingw32
859 echo "$UNAME_MACHINE"-pc-mingw32
856860 exit ;;
857861 *: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
863863 exit ;;
864864 i*:PW*:*)
865 echo ${UNAME_MACHINE}-pc-pw32
865 echo "$UNAME_MACHINE"-pc-pw32
866866 exit ;;
867867 *:Interix*:*)
868 case ${UNAME_MACHINE} in
868 case "$UNAME_MACHINE" in
869869 x86)
870 echo i586-pc-interix${UNAME_RELEASE}
870 echo i586-pc-interix"$UNAME_RELEASE"
871871 exit ;;
872872 authenticamd | genuineintel | EM64T)
873 echo x86_64-unknown-interix${UNAME_RELEASE}
873 echo x86_64-unknown-interix"$UNAME_RELEASE"
874874 exit ;;
875875 IA64)
876 echo ia64-unknown-interix${UNAME_RELEASE}
876 echo ia64-unknown-interix"$UNAME_RELEASE"
877877 exit ;;
878878 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 ;;
891879 i*:UWIN*:*)
892 echo ${UNAME_MACHINE}-pc-uwin
880 echo "$UNAME_MACHINE"-pc-uwin
893881 exit ;;
894882 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
895883 echo x86_64-unknown-cygwin
896884 exit ;;
897 p*:CYGWIN*:*)
898 echo powerpcle-unknown-cygwin
899 exit ;;
900885 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/[^.]*//'`"
902887 exit ;;
903888 *:GNU:*:*)
904889 # 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,/.*$,,'`"
906891 exit ;;
907892 *:GNU/*:*:*)
908893 # 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"
910895 exit ;;
911896 i*86:Minix:*:*)
912 echo ${UNAME_MACHINE}-pc-minix
897 echo "$UNAME_MACHINE"-pc-minix
913898 exit ;;
914899 aarch64:Linux:*:*)
915 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
900 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
916901 exit ;;
917902 aarch64_be:Linux:*:*)
918903 UNAME_MACHINE=aarch64_be
919 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
904 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
920905 exit ;;
921906 alpha:Linux:*:*)
922907 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
930915 esac
931916 objdump --private-headers /bin/sh | grep -q ld.so.1
932917 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
933 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
918 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
934919 exit ;;
935920 arc:Linux:*:* | arceb:Linux:*:*)
936 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
921 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
937922 exit ;;
938923 arm*:Linux:*:*)
939 eval $set_cc_for_build
924 eval "$set_cc_for_build"
940925 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
941926 | grep -q __ARM_EABI__
942927 then
943 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
928 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
944929 else
945930 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
946931 | grep -q __ARM_PCS_VFP
947932 then
948 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
933 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
949934 else
950 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
935 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
951936 fi
952937 fi
953938 exit ;;
954939 avr32*:Linux:*:*)
955 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
940 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
956941 exit ;;
957942 cris:Linux:*:*)
958 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
943 echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
959944 exit ;;
960945 crisv32:Linux:*:*)
961 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
946 echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
962947 exit ;;
963948 e2k:Linux:*:*)
964 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
949 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
965950 exit ;;
966951 frv:Linux:*:*)
967 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
952 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
968953 exit ;;
969954 hexagon:Linux:*:*)
970 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
955 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
971956 exit ;;
972957 i*86:Linux:*:*)
973 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
958 echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
974959 exit ;;
975960 ia64:Linux:*:*)
976 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
961 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
977962 exit ;;
978963 k1om:Linux:*:*)
979 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
964 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
980965 exit ;;
981966 m32r*:Linux:*:*)
982 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
967 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
983968 exit ;;
984969 m68*:Linux:*:*)
985 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
970 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
986971 exit ;;
987972 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"
990975 #undef CPU
991976 #undef ${UNAME_MACHINE}
992977 #undef ${UNAME_MACHINE}el
1000985 #endif
1001986 #endif
1002987 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; }
1005990 ;;
1006991 mips64el:Linux:*:*)
1007 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
992 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1008993 exit ;;
1009994 openrisc*:Linux:*:*)
1010 echo or1k-unknown-linux-${LIBC}
995 echo or1k-unknown-linux-"$LIBC"
1011996 exit ;;
1012997 or32:Linux:*:* | or1k*:Linux:*:*)
1013 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
998 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1014999 exit ;;
10151000 padre:Linux:*:*)
1016 echo sparc-unknown-linux-${LIBC}
1001 echo sparc-unknown-linux-"$LIBC"
10171002 exit ;;
10181003 parisc64:Linux:*:* | hppa64:Linux:*:*)
1019 echo hppa64-unknown-linux-${LIBC}
1004 echo hppa64-unknown-linux-"$LIBC"
10201005 exit ;;
10211006 parisc:Linux:*:* | hppa:Linux:*:*)
10221007 # Look for CPU level
10231008 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" ;;
10271012 esac
10281013 exit ;;
10291014 ppc64:Linux:*:*)
1030 echo powerpc64-unknown-linux-${LIBC}
1015 echo powerpc64-unknown-linux-"$LIBC"
10311016 exit ;;
10321017 ppc:Linux:*:*)
1033 echo powerpc-unknown-linux-${LIBC}
1018 echo powerpc-unknown-linux-"$LIBC"
10341019 exit ;;
10351020 ppc64le:Linux:*:*)
1036 echo powerpc64le-unknown-linux-${LIBC}
1021 echo powerpc64le-unknown-linux-"$LIBC"
10371022 exit ;;
10381023 ppcle:Linux:*:*)
1039 echo powerpcle-unknown-linux-${LIBC}
1024 echo powerpcle-unknown-linux-"$LIBC"
10401025 exit ;;
10411026 riscv32:Linux:*:* | riscv64:Linux:*:*)
1042 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1027 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10431028 exit ;;
10441029 s390:Linux:*:* | s390x:Linux:*:*)
1045 echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
1030 echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
10461031 exit ;;
10471032 sh64*:Linux:*:*)
1048 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1033 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10491034 exit ;;
10501035 sh*:Linux:*:*)
1051 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1036 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10521037 exit ;;
10531038 sparc:Linux:*:* | sparc64:Linux:*:*)
1054 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1039 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10551040 exit ;;
10561041 tile*:Linux:*:*)
1057 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1042 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10581043 exit ;;
10591044 vax:Linux:*:*)
1060 echo ${UNAME_MACHINE}-dec-linux-${LIBC}
1045 echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
10611046 exit ;;
10621047 x86_64:Linux:*:*)
1063 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
1048 echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
10641049 exit ;;
10651050 xtensa*:Linux:*:*)
1066 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1051 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10671052 exit ;;
10681053 i*86:DYNIX/ptx:4*:*)
10691054 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
10771062 # I am not positive that other SVR4 systems won't match this,
10781063 # I just have to hope. -- rms.
10791064 # 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"
10811066 exit ;;
10821067 i*86:OS/2:*:*)
10831068 # If we were able to find `uname', then EMX Unix compatibility
10841069 # is probably installed.
1085 echo ${UNAME_MACHINE}-pc-os2-emx
1070 echo "$UNAME_MACHINE"-pc-os2-emx
10861071 exit ;;
10871072 i*86:XTS-300:*:STOP)
1088 echo ${UNAME_MACHINE}-unknown-stop
1073 echo "$UNAME_MACHINE"-unknown-stop
10891074 exit ;;
10901075 i*86:atheos:*:*)
1091 echo ${UNAME_MACHINE}-unknown-atheos
1076 echo "$UNAME_MACHINE"-unknown-atheos
10921077 exit ;;
10931078 i*86:syllable:*:*)
1094 echo ${UNAME_MACHINE}-pc-syllable
1079 echo "$UNAME_MACHINE"-pc-syllable
10951080 exit ;;
10961081 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"
10981083 exit ;;
10991084 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$//'`
11041089 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"
11061091 else
1107 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1092 echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
11081093 fi
11091094 exit ;;
11101095 i*86:*:5:[678]*)
11141099 *Pentium) UNAME_MACHINE=i586 ;;
11151100 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
11161101 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}"
11181103 exit ;;
11191104 i*86:*:3.2:*)
11201105 if test -f /usr/options/cb.name; then
11211106 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"
11231108 elif /bin/uname -X 2>/dev/null >/dev/null ; then
11241109 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
11251110 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
11291114 && UNAME_MACHINE=i686
11301115 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
11311116 && UNAME_MACHINE=i686
1132 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1117 echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
11331118 else
1134 echo ${UNAME_MACHINE}-pc-sysv32
1119 echo "$UNAME_MACHINE"-pc-sysv32
11351120 fi
11361121 exit ;;
11371122 pc:*:*:*)
11511136 exit ;;
11521137 i860:*:4.*:*) # i860-SVR4
11531138 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
11551140 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
11571142 fi
11581143 exit ;;
11591144 mini*:CTIX:SYS*5:*)
11731158 test -r /etc/.relid \
11741159 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
11751160 /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; }
11771162 /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; } ;;
11791164 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
11801165 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
11811166 && { echo i486-ncr-sysv4; exit; } ;;
11841169 test -r /etc/.relid \
11851170 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
11861171 /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; }
11881173 /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; }
11901175 /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; } ;;
11921177 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1193 echo m68k-unknown-lynxos${UNAME_RELEASE}
1178 echo m68k-unknown-lynxos"$UNAME_RELEASE"
11941179 exit ;;
11951180 mc68030:UNIX_System_V:4.*:*)
11961181 echo m68k-atari-sysv4
11971182 exit ;;
11981183 TSUNAMI:LynxOS:2.*:*)
1199 echo sparc-unknown-lynxos${UNAME_RELEASE}
1184 echo sparc-unknown-lynxos"$UNAME_RELEASE"
12001185 exit ;;
12011186 rs6000:LynxOS:2.*:*)
1202 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1187 echo rs6000-unknown-lynxos"$UNAME_RELEASE"
12031188 exit ;;
12041189 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"
12061191 exit ;;
12071192 SM[BE]S:UNIX_SV:*:*)
1208 echo mips-dde-sysv${UNAME_RELEASE}
1193 echo mips-dde-sysv"$UNAME_RELEASE"
12091194 exit ;;
12101195 RM*:ReliantUNIX-*:*:*)
12111196 echo mips-sni-sysv4
12161201 *:SINIX-*:*:*)
12171202 if uname -p 2>/dev/null >/dev/null ; then
12181203 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1219 echo ${UNAME_MACHINE}-sni-sysv4
1204 echo "$UNAME_MACHINE"-sni-sysv4
12201205 else
12211206 echo ns32k-sni-sysv
12221207 fi
12361221 exit ;;
12371222 i*86:VOS:*:*)
12381223 # From Paul.Green@stratus.com.
1239 echo ${UNAME_MACHINE}-stratus-vos
1224 echo "$UNAME_MACHINE"-stratus-vos
12401225 exit ;;
12411226 *:VOS:*:*)
12421227 # From Paul.Green@stratus.com.
12431228 echo hppa1.1-stratus-vos
12441229 exit ;;
12451230 mc68*:A/UX:*:*)
1246 echo m68k-apple-aux${UNAME_RELEASE}
1231 echo m68k-apple-aux"$UNAME_RELEASE"
12471232 exit ;;
12481233 news*:NEWS-OS:6*:*)
12491234 echo mips-sony-newsos6
12501235 exit ;;
12511236 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
12521237 if [ -d /usr/nec ]; then
1253 echo mips-nec-sysv${UNAME_RELEASE}
1238 echo mips-nec-sysv"$UNAME_RELEASE"
12541239 else
1255 echo mips-unknown-sysv${UNAME_RELEASE}
1240 echo mips-unknown-sysv"$UNAME_RELEASE"
12561241 fi
12571242 exit ;;
12581243 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
12711256 echo x86_64-unknown-haiku
12721257 exit ;;
12731258 SX-4:SUPER-UX:*:*)
1274 echo sx4-nec-superux${UNAME_RELEASE}
1259 echo sx4-nec-superux"$UNAME_RELEASE"
12751260 exit ;;
12761261 SX-5:SUPER-UX:*:*)
1277 echo sx5-nec-superux${UNAME_RELEASE}
1262 echo sx5-nec-superux"$UNAME_RELEASE"
12781263 exit ;;
12791264 SX-6:SUPER-UX:*:*)
1280 echo sx6-nec-superux${UNAME_RELEASE}
1265 echo sx6-nec-superux"$UNAME_RELEASE"
12811266 exit ;;
12821267 SX-7:SUPER-UX:*:*)
1283 echo sx7-nec-superux${UNAME_RELEASE}
1268 echo sx7-nec-superux"$UNAME_RELEASE"
12841269 exit ;;
12851270 SX-8:SUPER-UX:*:*)
1286 echo sx8-nec-superux${UNAME_RELEASE}
1271 echo sx8-nec-superux"$UNAME_RELEASE"
12871272 exit ;;
12881273 SX-8R:SUPER-UX:*:*)
1289 echo sx8r-nec-superux${UNAME_RELEASE}
1274 echo sx8r-nec-superux"$UNAME_RELEASE"
12901275 exit ;;
12911276 SX-ACE:SUPER-UX:*:*)
1292 echo sxace-nec-superux${UNAME_RELEASE}
1277 echo sxace-nec-superux"$UNAME_RELEASE"
12931278 exit ;;
12941279 Power*:Rhapsody:*:*)
1295 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1280 echo powerpc-apple-rhapsody"$UNAME_RELEASE"
12961281 exit ;;
12971282 *:Rhapsody:*:*)
1298 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1283 echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
12991284 exit ;;
13001285 *:Darwin:*:*)
13011286 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1302 eval $set_cc_for_build
1287 eval "$set_cc_for_build"
13031288 if test "$UNAME_PROCESSOR" = unknown ; then
13041289 UNAME_PROCESSOR=powerpc
13051290 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
13071292 if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
13081293 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
13091294 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
13311316 # that Apple uses in portable devices.
13321317 UNAME_PROCESSOR=x86_64
13331318 fi
1334 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1319 echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
13351320 exit ;;
13361321 *:procnto*:*:* | *:QNX:[0123456789]*:*)
13371322 UNAME_PROCESSOR=`uname -p`
13391324 UNAME_PROCESSOR=i386
13401325 UNAME_MACHINE=pc
13411326 fi
1342 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1327 echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
13431328 exit ;;
13441329 *:QNX:*:4*)
13451330 echo i386-pc-qnx
13461331 exit ;;
13471332 NEO-*:NONSTOP_KERNEL:*:*)
1348 echo neo-tandem-nsk${UNAME_RELEASE}
1333 echo neo-tandem-nsk"$UNAME_RELEASE"
13491334 exit ;;
13501335 NSE-*:NONSTOP_KERNEL:*:*)
1351 echo nse-tandem-nsk${UNAME_RELEASE}
1336 echo nse-tandem-nsk"$UNAME_RELEASE"
13521337 exit ;;
13531338 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"
13551343 exit ;;
13561344 NSX-*:NONSTOP_KERNEL:*:*)
1357 echo nsx-tandem-nsk${UNAME_RELEASE}
1345 echo nsx-tandem-nsk"$UNAME_RELEASE"
13581346 exit ;;
13591347 *:NonStop-UX:*:*)
13601348 echo mips-compaq-nonstopux
13631351 echo bs2000-siemens-sysv
13641352 exit ;;
13651353 DS/*:UNIX_System_V:*:*)
1366 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1354 echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
13671355 exit ;;
13681356 *:Plan9:*:*)
13691357 # "uname -m" is not consistent, so use $cputype instead. 386
13741362 else
13751363 UNAME_MACHINE="$cputype"
13761364 fi
1377 echo ${UNAME_MACHINE}-unknown-plan9
1365 echo "$UNAME_MACHINE"-unknown-plan9
13781366 exit ;;
13791367 *:TOPS-10:*:*)
13801368 echo pdp10-unknown-tops10
13951383 echo pdp10-unknown-its
13961384 exit ;;
13971385 SEI:*:*:SEIUX)
1398 echo mips-sei-seiux${UNAME_RELEASE}
1386 echo mips-sei-seiux"$UNAME_RELEASE"
13991387 exit ;;
14001388 *: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/[-(].*//'`"
14021390 exit ;;
14031391 *:*VMS:*:*)
14041392 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1405 case "${UNAME_MACHINE}" in
1393 case "$UNAME_MACHINE" in
14061394 A*) echo alpha-dec-vms ; exit ;;
14071395 I*) echo ia64-dec-vms ; exit ;;
14081396 V*) echo vax-dec-vms ; exit ;;
14111399 echo i386-pc-xenix
14121400 exit ;;
14131401 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/ .*$//'`"
14151403 exit ;;
14161404 i*86:rdos:*:*)
1417 echo ${UNAME_MACHINE}-pc-rdos
1405 echo "$UNAME_MACHINE"-pc-rdos
14181406 exit ;;
14191407 i*86:AROS:*:*)
1420 echo ${UNAME_MACHINE}-pc-aros
1408 echo "$UNAME_MACHINE"-pc-aros
14211409 exit ;;
14221410 x86_64:VMkernel:*:*)
1423 echo ${UNAME_MACHINE}-unknown-esx
1411 echo "$UNAME_MACHINE"-unknown-esx
14241412 exit ;;
14251413 amd64:Isilon\ OneFS:*:*)
14261414 echo x86_64-unknown-onefs
14271415 exit ;;
14281416 esac
14291417
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
14301431 cat >&2 <<EOF
1431 $0: unable to guess system type
14321432
14331433 This script (version $timestamp), has failed to recognize the
14341434 operating system you are using. If your script is old, overwrite *all*
14351435 copies of config.guess and config.sub with the latest versions from:
14361436
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
14381438 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
14401440
14411441 If $0 has already been updated, send the following data and any
14421442 information you think might be pertinent to config-patches@gnu.org to
14591459 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
14601460 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
14611461
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"
14661466 EOF
14671467
14681468 exit 1
14691469
14701470 # Local variables:
1471 # eval: (add-hook 'write-file-hooks 'time-stamp)
1471 # eval: (add-hook 'before-save-hook 'time-stamp)
14721472 # time-stamp-start: "timestamp='"
14731473 # time-stamp-format: "%:y-%02m-%02d"
14741474 # time-stamp-end: "'"
0 #!/bin/sh
0 #! /bin/sh
11 # 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'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
1414 # General Public License for more details.
1515 #
1616 # 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/>.
1818 #
1919 # As a special exception to the GNU General Public License, if you
2020 # distribute this file as part of a program that contains a
3232 # Otherwise, we print the canonical config type on stdout and succeed.
3333
3434 # You can get the latest version of this script from:
35 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
35 # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
3636
3737 # This file is supposed to be the same for all GNU packages
3838 # and recognize all the CPU types, system types and aliases
5656
5757 Canonicalize a configuration name.
5858
59 Operation modes:
59 Options:
6060 -h, --help print this help, then exit
6161 -t, --time-stamp print date of last modification, then exit
6262 -v, --version print version number, then exit
6666 version="\
6767 GNU config.sub ($timestamp)
6868
69 Copyright 1992-2017 Free Software Foundation, Inc.
69 Copyright 1992-2018 Free Software Foundation, Inc.
7070
7171 This is free software; see the source for copying conditions. There is NO
7272 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
9393
9494 *local*)
9595 # First pass through any local machine types.
96 echo $1
96 echo "$1"
9797 exit ;;
9898
9999 * )
109109 exit 1;;
110110 esac
111111
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 ;;
134154 esac
135155
136156 ### Let's recognize common machines as not being operating systems so
177197 ;;
178198 -sco6)
179199 os=-sco5v6
180 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
200 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
181201 ;;
182202 -sco5)
183203 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/'`
185205 ;;
186206 -sco4)
187207 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/'`
189209 ;;
190210 -sco3.2.[4-9]*)
191211 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/'`
193213 ;;
194214 -sco3.2v[4-9]*)
195215 # 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/'`
197217 ;;
198218 -sco5v6*)
199219 # 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/'`
201221 ;;
202222 -sco*)
203223 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/'`
205225 ;;
206226 -udk*)
207 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
227 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
208228 ;;
209229 -isc)
210230 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/'`
212232 ;;
213233 -clix*)
214234 basic_machine=clipper-intergraph
215235 ;;
216236 -isc*)
217 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
237 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
218238 ;;
219239 -lynx*178)
220240 os=-lynxos178
226246 os=-lynxos
227247 ;;
228248 -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/'`
233250 ;;
234251 -psos*)
235252 os=-psos
251268 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
252269 | am33_2.0 \
253270 | 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] \
255272 | avr | avr32 \
256273 | ba \
257274 | be32 | be64 \
258275 | bfin \
259 | c4x | c8051 | clipper \
276 | c4x | c8051 | clipper | csky \
260277 | d10v | d30v | dlx | dsp16xx \
261278 | e2k | epiphany \
262279 | fido | fr30 | frv | ft32 \
295312 | mt \
296313 | msp430 \
297314 | nds32 | nds32le | nds32be \
315 | nfp \
298316 | nios | nios2 | nios2eb | nios2el \
299317 | ns16k | ns32k \
300318 | open8 | or1k | or1knd | or32 \
301 | pdp10 | pdp11 | pj | pjl \
319 | pdp10 | pj | pjl \
302320 | powerpc | powerpc64 | powerpc64le | powerpcle \
303321 | pru \
304322 | pyramid \
315333 | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
316334 | visium \
317335 | wasm32 \
318 | we32k \
319336 | x86 | xc16x | xstormy16 | xtensa \
320337 | z8k | z80)
321338 basic_machine=$basic_machine-unknown
336353 basic_machine=$basic_machine-unknown
337354 os=-none
338355 ;;
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
340361 ;;
341362 ms1)
342363 basic_machine=mt-unknown
365386 ;;
366387 # Object if more than one company name word.
367388 *-*-*)
368 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
389 echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
369390 exit 1
370391 ;;
371392 # Recognize the basic CPU types with company name.
381402 | be32-* | be64-* \
382403 | bfin-* | bs2000-* \
383404 | c[123]* | c30-* | [cjt]90-* | c4x-* \
384 | c8051-* | clipper-* | craynv-* | cydra-* \
405 | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
385406 | d10v-* | d30v-* | dlx-* \
386407 | e2k-* | elxsi-* \
387408 | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
422443 | mt-* \
423444 | msp430-* \
424445 | nds32-* | nds32le-* | nds32be-* \
446 | nfp-* \
425447 | nios-* | nios2-* | nios2eb-* | nios2el-* \
426448 | none-* | np1-* | ns16k-* | ns32k-* \
427449 | open8-* \
460482 # Recognize the various machine names and aliases which stand
461483 # for a CPU type and a company and sometimes even an OS.
462484 386bsd)
463 basic_machine=i386-unknown
485 basic_machine=i386-pc
464486 os=-bsd
465487 ;;
466488 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
494516 basic_machine=x86_64-pc
495517 ;;
496518 amd64-*)
497 basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
519 basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
498520 ;;
499521 amdahl)
500522 basic_machine=580-amdahl
539561 os=-linux
540562 ;;
541563 blackfin-*)
542 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
564 basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
543565 os=-linux
544566 ;;
545567 bluegene*)
547569 os=-cnk
548570 ;;
549571 c54x-*)
550 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
572 basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
551573 ;;
552574 c55x-*)
553 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
575 basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
554576 ;;
555577 c6x-*)
556 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
578 basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
557579 ;;
558580 c90)
559581 basic_machine=c90-cray
642664 basic_machine=rs6000-bull
643665 os=-bosx
644666 ;;
645 dpx2* | dpx2*-bull)
667 dpx2*)
646668 basic_machine=m68k-bull
647669 os=-sysv3
648670 ;;
651673 os=$os"spe"
652674 ;;
653675 e500v[12]-*)
654 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
676 basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
655677 os=$os"spe"
656678 ;;
657679 ebmon29k)
743765 hp9k8[0-9][0-9] | hp8[0-9][0-9])
744766 basic_machine=hppa1.0-hp
745767 ;;
746 hppa-next)
747 os=-nextstep3
748 ;;
749768 hppaosf)
750769 basic_machine=hppa1.1-hp
751770 os=-osf
758777 basic_machine=i370-ibm
759778 ;;
760779 i*86v32)
761 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
780 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
762781 os=-sysv32
763782 ;;
764783 i*86v4*)
765 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
784 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
766785 os=-sysv4
767786 ;;
768787 i*86v)
769 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
788 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
770789 os=-sysv
771790 ;;
772791 i*86sol2)
773 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
792 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
774793 os=-solaris2
775794 ;;
776795 i386mach)
777796 basic_machine=i386-mach
778797 os=-mach
779798 ;;
780 i386-vsta | vsta)
799 vsta)
781800 basic_machine=i386-unknown
782801 os=-vsta
783802 ;;
796815 os=-sysv
797816 ;;
798817 leon-*|leon[3-9]-*)
799 basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
818 basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
800819 ;;
801820 m68knommu)
802821 basic_machine=m68k-unknown
803822 os=-linux
804823 ;;
805824 m68knommu-*)
806 basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
825 basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
807826 os=-linux
808 ;;
809 m88k-omron*)
810 basic_machine=m88k-omron
811827 ;;
812828 magnum | m3230)
813829 basic_machine=mips-mips
840856 os=-mint
841857 ;;
842858 mips3*-*)
843 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
859 basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
844860 ;;
845861 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
847863 ;;
848864 monitor)
849865 basic_machine=m68k-rom68k
862878 os=-msdos
863879 ;;
864880 ms1-*)
865 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
881 basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
866882 ;;
867883 msys)
868884 basic_machine=i686-pc
904920 basic_machine=v70-nec
905921 os=-sysv
906922 ;;
907 next | m*-next )
923 next | m*-next)
908924 basic_machine=m68k-next
909925 case $os in
910926 -nextstep* )
949965 nsr-tandem)
950966 basic_machine=nsr-tandem
951967 ;;
968 nsv-tandem)
969 basic_machine=nsv-tandem
970 ;;
952971 nsx-tandem)
953972 basic_machine=nsx-tandem
954973 ;;
9841003 os=-linux
9851004 ;;
9861005 parisc-*)
987 basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
1006 basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
9881007 os=-linux
9891008 ;;
9901009 pbd)
10001019 basic_machine=i386-pc
10011020 ;;
10021021 pc98-*)
1003 basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
1022 basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10041023 ;;
10051024 pentium | p5 | k5 | k6 | nexgen | viac3)
10061025 basic_machine=i586-pc
10151034 basic_machine=i786-pc
10161035 ;;
10171036 pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1018 basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
1037 basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10191038 ;;
10201039 pentiumpro-* | p6-* | 6x86-* | athlon-*)
1021 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1040 basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10221041 ;;
10231042 pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1024 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1043 basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10251044 ;;
10261045 pentium4-*)
1027 basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
1046 basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10281047 ;;
10291048 pn)
10301049 basic_machine=pn-gould
10341053 ppc | ppcbe) basic_machine=powerpc-unknown
10351054 ;;
10361055 ppc-* | ppcbe-*)
1037 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1056 basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10381057 ;;
10391058 ppcle | powerpclittle)
10401059 basic_machine=powerpcle-unknown
10411060 ;;
10421061 ppcle-* | powerpclittle-*)
1043 basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
1062 basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10441063 ;;
10451064 ppc64) basic_machine=powerpc64-unknown
10461065 ;;
1047 ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1066 ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10481067 ;;
10491068 ppc64le | powerpc64little)
10501069 basic_machine=powerpc64le-unknown
10511070 ;;
10521071 ppc64le-* | powerpc64little-*)
1053 basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1072 basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10541073 ;;
10551074 ps2)
10561075 basic_machine=i386-ibm
11041123 sequent)
11051124 basic_machine=i386-sequent
11061125 ;;
1107 sh)
1108 basic_machine=sh-hitachi
1109 os=-hms
1110 ;;
11111126 sh5el)
11121127 basic_machine=sh5le-unknown
11131128 ;;
1114 sh64)
1115 basic_machine=sh64-unknown
1116 ;;
1117 sparclite-wrs | simso-wrs)
1129 simso-wrs)
11181130 basic_machine=sparclite-wrs
11191131 os=-vxworks
11201132 ;;
11331145 os=-sysv4
11341146 ;;
11351147 strongarm-* | thumb-*)
1136 basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1148 basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
11371149 ;;
11381150 sun2)
11391151 basic_machine=m68000-sun
12471259 basic_machine=a29k-wrs
12481260 os=-vxworks
12491261 ;;
1250 wasm32)
1251 basic_machine=wasm32-unknown
1252 ;;
12531262 w65*)
12541263 basic_machine=w65-wdc
12551264 os=-none
12581267 basic_machine=hppa1.1-winbond
12591268 os=-proelf
12601269 ;;
1270 x64)
1271 basic_machine=x86_64-pc
1272 ;;
12611273 xbox)
12621274 basic_machine=i686-pc
12631275 os=-mingw32
12661278 basic_machine=xps100-honeywell
12671279 ;;
12681280 xscale-* | xscalee[bl]-*)
1269 basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1281 basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
12701282 ;;
12711283 ymp)
12721284 basic_machine=ymp-cray
12731285 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
12821286 ;;
12831287 none)
12841288 basic_machine=none-none
13081312 vax)
13091313 basic_machine=vax-dec
13101314 ;;
1311 pdp10)
1312 # there are many clones, so DEC is not a safe bet
1313 basic_machine=pdp10-unknown
1314 ;;
13151315 pdp11)
13161316 basic_machine=pdp11-dec
13171317 ;;
13211321 sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
13221322 basic_machine=sh-unknown
13231323 ;;
1324 sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1325 basic_machine=sparc-sun
1326 ;;
13271324 cydra)
13281325 basic_machine=cydra-cydrome
13291326 ;;
13431340 # Make sure to match an already-canonicalized machine name.
13441341 ;;
13451342 *)
1346 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1343 echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
13471344 exit 1
13481345 ;;
13491346 esac
13511348 # Here we canonicalize certain aliases for manufacturers.
13521349 case $basic_machine in
13531350 *-digital*)
1354 basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1351 basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
13551352 ;;
13561353 *-commodore*)
1357 basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1354 basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
13581355 ;;
13591356 *)
13601357 ;;
13621359
13631360 # Decode manufacturer-specific aliases for certain operating systems.
13641361
1365 if [ x"$os" != x"" ]
1362 if [ x$os != x ]
13661363 then
13671364 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.
13701367 # -solaris* is a basic system type, with this one exception.
13711368 -auroraux)
13721369 os=-auroraux
13771374 -solaris)
13781375 os=-solaris2
13791376 ;;
1380 -svr4*)
1381 os=-sysv4
1382 ;;
13831377 -unixware*)
13841378 os=-sysv4.2uw
13851379 ;;
13861380 -gnu/linux*)
13871381 os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
13881382 ;;
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.
13901388 # 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.
13921390 # -sysv* is not here because it comes later, after sysvr4.
13931391 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
13941392 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
13981396 | -aos* | -aros* | -cloudabi* | -sortix* \
13991397 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
14001398 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1401 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1399 | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
14021400 | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
14031401 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
14041402 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
14051403 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1406 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1404 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
14071405 | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
14081406 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
14091407 | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
14101408 | -linux-newlib* | -linux-musl* | -linux-uclibc* \
14111409 | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1412 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1410 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
14131411 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
14141412 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
14151413 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1416 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1414 | -morphos* | -superux* | -rtmk* | -windiss* \
14171415 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
14181416 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1419 | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
1417 | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
1418 | -midnightbsd*)
14201419 # Remember, each alternative MUST END IN *, to match a version number.
14211420 ;;
14221421 -qnx*)
14331432 -nto*)
14341433 os=`echo $os | sed -e 's|nto|nto-qnx|'`
14351434 ;;
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* \
14381437 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
14391438 ;;
14401439 -mac*)
1441 os=`echo $os | sed -e 's|mac|macos|'`
1440 os=`echo "$os" | sed -e 's|mac|macos|'`
14421441 ;;
14431442 -linux-dietlibc)
14441443 os=-linux-dietlibc
14471446 os=`echo $os | sed -e 's|linux|linux-gnu|'`
14481447 ;;
14491448 -sunos5*)
1450 os=`echo $os | sed -e 's|sunos5|solaris2|'`
1449 os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14511450 ;;
14521451 -sunos6*)
1453 os=`echo $os | sed -e 's|sunos6|solaris3|'`
1452 os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14541453 ;;
14551454 -opened*)
14561455 os=-openedition
14611460 -wince*)
14621461 os=-wince
14631462 ;;
1464 -osfrose*)
1465 os=-osfrose
1466 ;;
1467 -osf*)
1468 os=-osf
1469 ;;
14701463 -utek*)
14711464 os=-bsd
14721465 ;;
14911484 -nova*)
14921485 os=-rtmk-nova
14931486 ;;
1494 -ns2 )
1487 -ns2)
14951488 os=-nextstep2
14961489 ;;
14971490 -nsk*)
15131506 -oss*)
15141507 os=-sysv3
15151508 ;;
1516 -svr4)
1509 -svr4*)
15171510 os=-sysv4
15181511 ;;
15191512 -svr3)
15281521 -ose*)
15291522 os=-ose
15301523 ;;
1531 -es1800*)
1532 os=-ose
1533 ;;
1534 -xenix)
1535 os=-xenix
1536 ;;
15371524 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
15381525 os=-mint
15391526 ;;
1540 -aros*)
1541 os=-aros
1542 ;;
15431527 -zvmoe)
15441528 os=-zvmoe
15451529 ;;
15461530 -dicos*)
15471531 os=-dicos
15481532 ;;
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 ;;
15491546 -nacl*)
15501547 ;;
15511548 -ios)
15521549 ;;
15531550 -none)
1551 ;;
1552 -*-eabi)
1553 case $basic_machine in
1554 arm*)
1555 ;;
1556 esac
15541557 ;;
15551558 *)
15561559 # Get rid of the `-' at the beginning of $os.
15571560 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
15591562 exit 1
15601563 ;;
15611564 esac
16511654 *-be)
16521655 os=-beos
16531656 ;;
1654 *-haiku)
1655 os=-haiku
1656 ;;
16571657 *-ibm)
16581658 os=-aix
16591659 ;;
16931693 m88k-omron*)
16941694 os=-luna
16951695 ;;
1696 *-next )
1696 *-next)
16971697 os=-nextstep
16981698 ;;
16991699 *-sequent)
17071707 ;;
17081708 i370-*)
17091709 os=-mvs
1710 ;;
1711 *-next)
1712 os=-nextstep3
17131710 ;;
17141711 *-gould)
17151712 os=-sysv
18201817 vendor=stratus
18211818 ;;
18221819 esac
1823 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1820 basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
18241821 ;;
18251822 esac
18261823
1827 echo $basic_machine$os
1824 echo "$basic_machine$os"
18281825 exit
18291826
18301827 # Local variables:
1831 # eval: (add-hook 'write-file-hooks 'time-stamp)
1828 # eval: (add-hook 'before-save-hook 'time-stamp)
18321829 # time-stamp-start: "timestamp='"
18331830 # time-stamp-format: "%:y-%02m-%02d"
18341831 # time-stamp-end: "'"
0 #!/bin/sh
0 #! /bin/sh
11 # depcomp - compile a program generating dependencies as side-effects
22
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.
66
77 # This program is free software; you can redistribute it and/or modify
88 # it under the terms of the GNU General Public License as published by
1515 # GNU General Public License for more details.
1616
1717 # 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/>.
1919
2020 # As a special exception to the GNU General Public License, if you
2121 # distribute this file as part of a program that contains a
782782 # Local Variables:
783783 # mode: shell-script
784784 # sh-indentation: 2
785 # eval: (add-hook 'write-file-hooks 'time-stamp)
785 # eval: (add-hook 'before-save-hook 'time-stamp)
786786 # time-stamp-start: "scriptversion="
787787 # time-stamp-format: "%:y-%02m-%02d.%02H"
788788 # time-stamp-time-zone: "UTC0"
00 #!/bin/sh
11 # install - install a program, script, or datafile
22
3 scriptversion=2016-01-11.22; # UTC
3 scriptversion=2018-03-11.20; # UTC
44
55 # This originates from X11R5 (mit/util/scripts/install.sh), which was
66 # later released in X11R6 (xc/config/util/install.sh) with the
270270 fi
271271 dst=$dst_arg
272272
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.
275274 if test -d "$dst"; then
276275 if test "$is_target_a_directory" = never; then
277276 echo "$0: $dst_arg: Is a directory" >&2
278277 exit 1
279278 fi
280279 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
282285 dstdir_status=0
283286 else
284287 dstdir=`dirname "$dst"`
286289 dstdir_status=$?
287290 fi
288291 fi
292
293 case $dstdir in
294 */) dstdirslash=$dstdir;;
295 *) dstdirslash=$dstdir/;;
296 esac
289297
290298 obsolete_mkdir_used=false
291299
323331 # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
324332 ;;
325333 *)
334 # Note that $RANDOM variable is not portable (e.g. dash); Use it
335 # here however when possible just to lower collision chance.
326336 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.
329344 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
331347 then
332348 if test -z "$dir_arg" || {
333349 # Check for POSIX incompatibilities with -m.
334350 # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
335351 # other-writable bit of parent directory when it shouldn't.
336352 # 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"`
338355 case $ls_ld_tmpdir in
339356 d????-?r-*) different_mode=700;;
340357 d????-?--*) different_mode=755;;
341358 *) false;;
342359 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"`
345362 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
346363 }
347364 }
348365 then posix_mkdir=:
349366 fi
350 rmdir "$tmpdir/d" "$tmpdir"
367 rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
351368 else
352369 # 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
354371 fi
355372 trap '' 0;;
356373 esac;;
426443 else
427444
428445 # 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.$$_
431448
432449 # Trap to clean up those temp files at exit.
433450 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
492509 done
493510
494511 # Local variables:
495 # eval: (add-hook 'write-file-hooks 'time-stamp)
512 # eval: (add-hook 'before-save-hook 'time-stamp)
496513 # time-stamp-start: "scriptversion="
497514 # time-stamp-format: "%:y-%02m-%02d.%02H"
498515 # time-stamp-time-zone: "UTC0"
21232123 # a configuration failure hint, and exit.
21242124 func_fatal_configuration ()
21252125 {
2126 func__fatal_error ${1+"$@"} \
2126 func_fatal_error ${1+"$@"} \
21272127 "See the $PACKAGE documentation for more information." \
21282128 "Fatal configuration error."
21292129 }
0 #!/bin/sh
0 #! /bin/sh
11 # Common wrapper for a few potentially missing GNU programs.
22
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.
66 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
77
88 # This program is free software; you can redistribute it and/or modify
1616 # GNU General Public License for more details.
1717
1818 # 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/>.
2020
2121 # As a special exception to the GNU General Public License, if you
2222 # distribute this file as part of a program that contains a
100100 exit $st
101101 fi
102102
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
106106
107107 program_details ()
108108 {
206206 exit $st
207207
208208 # Local variables:
209 # eval: (add-hook 'write-file-hooks 'time-stamp)
209 # eval: (add-hook 'before-save-hook 'time-stamp)
210210 # time-stamp-start: "scriptversion="
211211 # time-stamp-format: "%:y-%02m-%02d.%02H"
212212 # time-stamp-time-zone: "UTC0"
0 #!/bin/sh
0 #! /bin/sh
11 # test-driver - basic testsuite driver script.
22
3 scriptversion=2016-01-11.22; # UTC
3 scriptversion=2018-03-07.03; # UTC
44
5 # Copyright (C) 2011-2017 Free Software Foundation, Inc.
5 # Copyright (C) 2011-2018 Free Software Foundation, Inc.
66 #
77 # This program is free software; you can redistribute it and/or modify
88 # it under the terms of the GNU General Public License as published by
1515 # GNU General Public License for more details.
1616 #
1717 # 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/>.
1919
2020 # As a special exception to the GNU General Public License, if you
2121 # distribute this file as part of a program that contains a
139139 # Local Variables:
140140 # mode: shell-script
141141 # sh-indentation: 2
142 # eval: (add-hook 'write-file-hooks 'time-stamp)
142 # eval: (add-hook 'before-save-hook 'time-stamp)
143143 # time-stamp-start: "scriptversion="
144144 # time-stamp-format: "%:y-%02m-%02d.%02H"
145145 # time-stamp-time-zone: "UTC0"
6161 /* Define to 1 if you have the `ovirt_api_search_vms' function. */
6262 #undef HAVE_OVIRT_API_SEARCH_VMS
6363
64 /* Have rest_proxy_auth_cancel and OVIRT_REST_CALL_ERROR_CANCELLED? */
65 #undef HAVE_OVIRT_CANCEL
66
6764 /* Define to 1 if you have the `ovirt_cluster_get_data_center' function. */
6865 #undef HAVE_OVIRT_CLUSTER_GET_DATA_CENTER
6966
112109 /* Have virDomainOpenGraphicsFD? */
113110 #undef HAVE_VIR_DOMAIN_OPEN_GRAPHICS_FD
114111
112 /* Have vte? */
113 #undef HAVE_VTE
114
115115 /* Define to 1 if you have the <windows.h> header file. */
116116 #undef HAVE_WINDOWS_H
117117
00 #! /bin/sh
11 # 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.
33 #
44 #
55 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
586586 # Identity of this package.
587587 PACKAGE_NAME='virt-viewer'
588588 PACKAGE_TARNAME='virt-viewer'
589 PACKAGE_VERSION='7.0'
590 PACKAGE_STRING='virt-viewer 7.0'
589 PACKAGE_VERSION='8.0'
590 PACKAGE_STRING='virt-viewer 8.0'
591591 PACKAGE_BUGREPORT=''
592592 PACKAGE_URL=''
593593
642642 HAVE_OVIRT_TRUE
643643 OVIRT_LIBS
644644 OVIRT_CFLAGS
645 HAVE_VTE_FALSE
646 HAVE_VTE_TRUE
647 VTE_LIBS
648 VTE_CFLAGS
645649 HAVE_SPICE_GTK_FALSE
646650 HAVE_SPICE_GTK_TRUE
647651 SPICE_PROTOCOL_LIBS
749753 AMDEPBACKSLASH
750754 AMDEP_FALSE
751755 AMDEP_TRUE
752 am__quote
753756 am__include
754757 DEPDIR
755758 OBJEXT
762765 OS_WIN32_FALSE
763766 OS_WIN32_TRUE
764767 WIXL_ARCH
768 REST_REQUIRED
765769 GOVIRT_REQUIRED
766770 SPICE_PROTOCOL_REQUIRED
767771 SPICE_GTK_REQUIRED
843847 PACKAGE_TARNAME
844848 PACKAGE_NAME
845849 PATH_SEPARATOR
846 SHELL'
850 SHELL
851 am__quote'
847852 ac_subst_files=''
848853 ac_user_opts='
849854 enable_option_checking
863868 with_libvirt
864869 with_gtk_vnc
865870 with_spice_gtk
871 with_vte
866872 with_ovirt
867873 with_osid
868874 with_buildid
896902 SPICE_GTK_LIBS
897903 SPICE_PROTOCOL_CFLAGS
898904 SPICE_PROTOCOL_LIBS
905 VTE_CFLAGS
906 VTE_LIBS
899907 OVIRT_CFLAGS
900908 OVIRT_LIBS'
901909
14381446 # Omit some internal or obsolete options to make the list less imposing.
14391447 # This message is too long to be a string in the A/UX 3.1 sh.
14401448 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.
14421450
14431451 Usage: $0 [OPTION]... [VAR=VALUE]...
14441452
15081516
15091517 if test -n "$ac_init_help"; then
15101518 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:";;
15121520 esac
15131521 cat <<\_ACEOF
15141522
15481556 --without-libvirt Ignore presence of libvirt and disable it
15491557 --without-gtk-vnc Ignore presence of gtk-vnc and disable it
15501558 --without-spice-gtk Ignore presence of spice-gtk and disable it
1559 --without-vte Ignore presence of vte and disable it
15511560 --without-ovirt Ignore presence of librest and disable oVirt support
15521561 --with-osid=id Set OS ID for use in .vv files
15531562 --with-buildid=id Set additional build version details
15951604 C compiler flags for SPICE_PROTOCOL, overriding pkg-config
15961605 SPICE_PROTOCOL_LIBS
15971606 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
15981609 OVIRT_CFLAGS
15991610 C compiler flags for OVIRT, overriding pkg-config
16001611 OVIRT_LIBS linker flags for OVIRT, overriding pkg-config
16651676 test -n "$ac_init_help" && exit $ac_status
16661677 if $ac_init_version; then
16671678 cat <<\_ACEOF
1668 virt-viewer configure 7.0
1679 virt-viewer configure 8.0
16691680 generated by GNU Autoconf 2.69
16701681
16711682 Copyright (C) 2012 Free Software Foundation, Inc.
20302041 This file contains any messages produced by compilers while
20312042 running configure, to aid debugging if configure makes a mistake.
20322043
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
20342045 generated by GNU Autoconf 2.69. Invocation command line was
20352046
20362047 $ $0 $@
24112422
24122423 ac_config_headers="$ac_config_headers config.h"
24132424
2414 am__api_version='1.15'
2425 am__api_version='1.16'
24152426
24162427 # Find a good install program. We prefer a C program (faster),
24172428 # so one script is as good as another. But avoid the broken or
28972908
28982909 # Define the identity of the package.
28992910 PACKAGE='virt-viewer'
2900 VERSION='7.0'
2911 VERSION='8.0'
29012912
29022913
29032914 cat >>confdefs.h <<_ACEOF
29272938
29282939 # For better backward compatibility. To be removed once Automake 1.9.x
29292940 # 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>
29322943 mkdir_p='$(MKDIR_P)'
29332944
29342945 # We need awk for the "check" target (and possibly the TAP driver). The
29792990 Aborting the configuration process, to ensure you take notice of the issue.
29802991
29812992 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/>.
29832994
29842995 If you want to complete the configuration process using your problematic
29852996 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
31053116
31063117
31073118 # 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"
31103121
31113122 # Keep these two definitions in agreement.
31123123 GTK_REQUIRED="3.12"
31183129 GTK_VNC_REQUIRED="0.4.0"
31193130 SPICE_GTK_REQUIRED="0.35"
31203131 SPICE_PROTOCOL_REQUIRED="0.12.7"
3121 GOVIRT_REQUIRED="0.3.2"
3132 GOVIRT_REQUIRED="0.3.3"
3133 REST_REQUIRED="0.8"
3134
31223135
31233136
31243137
40114024
40124025 ac_config_commands="$ac_config_commands depfiles"
40134026
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'
40174030 am__doit:
4018 @echo this is the am__doit target
4031 @echo this is the am__doit target >confinc.out
40194032 .PHONY: am__doit
40204033 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; }
40244034 am__include="#"
40254035 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 ;;
40364057 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; }
40534066
40544067 # Check whether --enable-dependency-tracking was given.
40554068 if test "${enable_dependency_tracking+set}" = set; then :
1478214795
1478314796
1478414797
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
1478514924 # Check whether --with-ovirt was given.
1478614925 if test "${with_ovirt+set}" = set; then :
1478714926 withval=$with_ovirt;
1481114950 pkg_cv_OVIRT_CFLAGS="$OVIRT_CFLAGS"
1481214951 elif test -n "$PKG_CONFIG"; then
1481314952 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
1481614955 ac_status=$?
1481714956 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1481814957 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`
1482014959 test "x$?" != "x0" && pkg_failed=yes
1482114960 else
1482214961 pkg_failed=yes
1482814967 pkg_cv_OVIRT_LIBS="$OVIRT_LIBS"
1482914968 elif test -n "$PKG_CONFIG"; then
1483014969 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
1483314972 ac_status=$?
1483414973 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1483514974 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`
1483714976 test "x$?" != "x0" && pkg_failed=yes
1483814977 else
1483914978 pkg_failed=yes
1485414993 _pkg_short_errors_supported=no
1485514994 fi
1485614995 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`
1485814997 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`
1486014999 fi
1486115000 # Put the nasty error message in config.log where it belongs
1486215001 echo "$OVIRT_PKG_ERRORS" >&5
1486315002
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:
1486515004
1486615005 $OVIRT_PKG_ERRORS
1486715006
1490015039 SAVED_LIBS="$LIBS"
1490115040 CFLAGS="$OVIRT_CFLAGS"
1490215041 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
1492115042 for ac_func in ovirt_api_search_vms ovirt_vm_get_host ovirt_host_get_cluster ovirt_cluster_get_data_center
1492215043 do :
1492315044 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
1523515356 as_fn_error $? "conditional \"HAVE_SPICE_GTK\" was never defined.
1523615357 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1523715358 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
1523815363 if test -z "${HAVE_OVIRT_TRUE}" && test -z "${HAVE_OVIRT_FALSE}"; then
1523915364 as_fn_error $? "conditional \"HAVE_OVIRT\" was never defined.
1524015365 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1564015765 # report actual input values of CONFIG_FILES etc. instead of their
1564115766 # values after options handling.
1564215767 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
1564415769 generated by GNU Autoconf 2.69. Invocation command line was
1564515770
1564615771 CONFIG_FILES = $CONFIG_FILES
1571015835 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1571115836 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1571215837 ac_cs_version="\\
15713 virt-viewer config.status 7.0
15838 virt-viewer config.status 8.0
1571415839 configured by $0, generated by GNU Autoconf 2.69,
1571515840 with options \\"\$ac_cs_config\\"
1571615841
1582915954 #
1583015955 # INIT-COMMANDS
1583115956 #
15832 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
15957 AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
1583315958
1583415959
1583515960 # The HP-UX ksh and POSIX shell print the target directory to stdout
1677816903 # Older Autoconf quotes --file arguments for eval, but not when files
1677916904 # are listed without --file. Let's play safe and only enable the eval
1678016905 # 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
1678516916 shift
16786 for mf
16917 # Used to flag and report bootstrapping failures.
16918 am_rc=0
16919 for am_mf
1678716920 do
1678816921 # 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
1679616926 # 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" |
1680416935 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
1680516936 s//\1/
1680616937 q
1681816949 q
1681916950 }
1682016951 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 '/^.*\/\([^/][^/]*\)\/*$/{
1684716958 s//\1/
1684816959 q
1684916960 }
16850 /^X\(\/\/\)[^/].*/{
16961 /^X\/\(\/\/\)$/{
1685116962 s//\1/
1685216963 q
1685316964 }
16854 /^X\(\/\/\)$/{
16855 s//\1/
16856 q
16857 }
16858 /^X\(\/\).*/{
16965 /^X\/\(\/\).*/{
1685916966 s//\1/
1686016967 q
1686116968 }
1686216969 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=$?
1686716979 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
1686816994 }
1686916995 ;;
1687016996 "libtool":C)
1750017626 $as_echo "$as_me: SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS" >&6;}
1750117627 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
1750217628 $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;}
1750317633 { $as_echo "$as_me:${as_lineno-$LINENO}: LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS" >&5
1750417634 $as_echo "$as_me: LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS" >&6;}
1750517635 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
00
1 AC_INIT([virt-viewer],[7.0])
1 AC_INIT([virt-viewer],[8.0])
22 AC_CONFIG_SRCDIR(src/virt-viewer-main.c)
33 AC_CONFIG_MACRO_DIR([m4])
44 AC_CONFIG_AUX_DIR([build-aux])
1212 AM_SILENT_RULES([yes])
1313
1414 # 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"
1717
1818 # Keep these two definitions in agreement.
1919 GTK_REQUIRED="3.12"
2525 GTK_VNC_REQUIRED="0.4.0"
2626 SPICE_GTK_REQUIRED="0.35"
2727 SPICE_PROTOCOL_REQUIRED="0.12.7"
28 GOVIRT_REQUIRED="0.3.2"
28 GOVIRT_REQUIRED="0.3.3"
29 REST_REQUIRED="0.8"
2930
3031 AC_SUBST([GLIB2_REQUIRED])
3132 AC_SUBST([LIBXML2_REQUIRED])
3637 AC_SUBST([SPICE_GTK_REQUIRED])
3738 AC_SUBST([SPICE_PROTOCOL_REQUIRED])
3839 AC_SUBST([GOVIRT_REQUIRED])
40 AC_SUBST([REST_REQUIRED])
3941
4042 AC_MSG_CHECKING([for native Win32])
4143 case "$host_os" in
169171 )
170172 AM_CONDITIONAL([HAVE_SPICE_GTK], [test "x$with_spice_gtk" = "xyes"])
171173
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
172186 AC_ARG_WITH([ovirt],
173187 AS_HELP_STRING([--without-ovirt], [Ignore presence of librest and disable oVirt support]))
174188
177191 [with_ovirt=yes], [with_ovirt=no])])
178192
179193 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])]
181195 [AC_DEFINE([HAVE_OVIRT], 1, [Have libgovirt?])]
182196 [SAVED_CFLAGS="$CFLAGS"
183197 SAVED_LIBS="$LIBS"
184198 CFLAGS="$OVIRT_CFLAGS"
185199 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 [])
191200 AC_CHECK_FUNCS([ovirt_api_search_vms ovirt_vm_get_host ovirt_host_get_cluster ovirt_cluster_get_data_center],
192201 [AC_DEFINE([HAVE_OVIRT_DATA_CENTER], 1, [Have support for data center])],
193202 []
273282 AC_MSG_NOTICE([])
274283 AC_MSG_NOTICE([ SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS])
275284 AC_MSG_NOTICE([])
285 AC_MSG_NOTICE([ VTE: $VTE_CFLAGS $VTE_LIBS])
286 AC_MSG_NOTICE([])
276287 AC_MSG_NOTICE([ LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS])
277288 AC_MSG_NOTICE([])
278289 AC_MSG_NOTICE([ LIBVIRT: $LIBVIRT_CFLAGS $LIBVIRT_LIBS])
3535 HaveGtkVnc = False
3636 endif
3737
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 > $@
4040
41 virt-viewer-$(WIXL_ARCH)-$(VERSION).msi: virt-viewer.wxs deps.txt
41 virt-viewer-$(WIXL_ARCH)-$(VERSION).msi: virt-viewer.wxs buildenv.txt
4242 $(AM_V_GEN)DESTDIR=`mktemp -d` && \
4343 make -C $(top_builddir) install DESTDIR=$$DESTDIR >/dev/null && \
4444 find $$DESTDIR | wixl-heat -p $$DESTDIR$(prefix)/ \
5858 msi: virt-viewer-$(WIXL_ARCH)-$(VERSION).msi
5959
6060 CLEANFILES += \
61 deps.txt \
61 buildenv.txt \
6262 virt-viewer-$(WIXL_ARCH)-$(VERSION).msi \
6363 $(NULL)
6464
0 # Makefile.in generated by automake 1.15.1 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8888 build_triplet = @build@
8989 host_triplet = @host@
9090 @OS_WIN32_TRUE@am__append_1 = \
91 @OS_WIN32_TRUE@ deps.txt \
91 @OS_WIN32_TRUE@ buildenv.txt \
9292 @OS_WIN32_TRUE@ virt-viewer-$(WIXL_ARCH)-$(VERSION).msi \
9393 @OS_WIN32_TRUE@ $(NULL)
9494
9696 @OS_WIN32_FALSE@am__append_3 = $(MIMEFILES) $(DESKTOPFILES) $(APPDATAFILES)
9797 subdir = data
9898 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
104103 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
105104 $(ACLOCAL_M4)
106105 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
270269 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
271270 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
272271 RANLIB = @RANLIB@
272 REST_REQUIRED = @REST_REQUIRED@
273273 SED = @SED@
274274 SET_MAKE = @SET_MAKE@
275275 SHELL = @SHELL@
283283 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
284284 USE_NLS = @USE_NLS@
285285 VERSION = @VERSION@
286 VTE_CFLAGS = @VTE_CFLAGS@
287 VTE_LIBS = @VTE_LIBS@
286288 WARN_CFLAGS = @WARN_CFLAGS@
287289 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
288290 WINDRES = @WINDRES@
383385 *config.status*) \
384386 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
385387 *) \
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);; \
388390 esac;
389391
390392 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
473475 cscope cscopelist:
474476
475477
476 distdir: $(DISTFILES)
478 distdir: $(BUILT_SOURCES)
479 $(MAKE) $(AM_MAKEFLAGS) distdir-am
480
481 distdir-am: $(DISTFILES)
477482 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
478483 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
479484 list='$(DISTFILES)'; \
637642 # (in maintainer-mode)
638643 all-local: virt-viewer.wxs
639644
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
644649 @OS_WIN32_TRUE@ $(AM_V_GEN)DESTDIR=`mktemp -d` && \
645650 @OS_WIN32_TRUE@ make -C $(top_builddir) install DESTDIR=$$DESTDIR >/dev/null && \
646651 @OS_WIN32_TRUE@ find $$DESTDIR | wixl-heat -p $$DESTDIR$(prefix)/ \
33 Exec=remote-viewer %u
44 Type=Application
55 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;
77 StartupNotify=true
88 Categories=GNOME;GTK;Network;RemoteAccess;
99 Icon=virt-viewer
6767 <Directory Id="TARGETDIR" Name="SourceDir">
6868 <Directory Id="$(var.ArchProgramFilesFolder)">
6969 <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"/>
7272 </Component>
7373 </Directory>
7474 </Directory>
116116 <?endif?>
117117 <ComponentGroupRef Id="CG.libxml2"/>
118118 <ComponentGroupRef Id="CG.virt-viewer"/>
119 <ComponentRef Id="CDepsFile"/>
119 <ComponentRef Id="CBuildEnvFile"/>
120120 <ComponentRef Id="CShortcut"/>
121121 <ComponentRef Id="CProgIds"/>
122122 <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.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8989 host_triplet = @host@
9090 subdir = icons/16x16
9191 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
9796 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9897 $(ACLOCAL_M4)
9998 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
262261 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
263262 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
264263 RANLIB = @RANLIB@
264 REST_REQUIRED = @REST_REQUIRED@
265265 SED = @SED@
266266 SET_MAKE = @SET_MAKE@
267267 SHELL = @SHELL@
275275 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
276276 USE_NLS = @USE_NLS@
277277 VERSION = @VERSION@
278 VTE_CFLAGS = @VTE_CFLAGS@
279 VTE_LIBS = @VTE_LIBS@
278280 WARN_CFLAGS = @WARN_CFLAGS@
279281 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
280282 WINDRES = @WINDRES@
358360 *config.status*) \
359361 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
360362 *) \
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);; \
363365 esac;
364366
365367 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
404406 cscope cscopelist:
405407
406408
407 distdir: $(DISTFILES)
409 distdir: $(BUILT_SOURCES)
410 $(MAKE) $(AM_MAKEFLAGS) distdir-am
411
412 distdir-am: $(DISTFILES)
408413 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
409414 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
410415 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.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8989 host_triplet = @host@
9090 subdir = icons/22x22
9191 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
9796 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9897 $(ACLOCAL_M4)
9998 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
262261 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
263262 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
264263 RANLIB = @RANLIB@
264 REST_REQUIRED = @REST_REQUIRED@
265265 SED = @SED@
266266 SET_MAKE = @SET_MAKE@
267267 SHELL = @SHELL@
275275 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
276276 USE_NLS = @USE_NLS@
277277 VERSION = @VERSION@
278 VTE_CFLAGS = @VTE_CFLAGS@
279 VTE_LIBS = @VTE_LIBS@
278280 WARN_CFLAGS = @WARN_CFLAGS@
279281 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
280282 WINDRES = @WINDRES@
358360 *config.status*) \
359361 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
360362 *) \
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);; \
363365 esac;
364366
365367 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
404406 cscope cscopelist:
405407
406408
407 distdir: $(DISTFILES)
409 distdir: $(BUILT_SOURCES)
410 $(MAKE) $(AM_MAKEFLAGS) distdir-am
411
412 distdir-am: $(DISTFILES)
408413 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
409414 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
410415 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.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8989 host_triplet = @host@
9090 subdir = icons/24x24
9191 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
9796 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9897 $(ACLOCAL_M4)
9998 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
263262 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
264263 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
265264 RANLIB = @RANLIB@
265 REST_REQUIRED = @REST_REQUIRED@
266266 SED = @SED@
267267 SET_MAKE = @SET_MAKE@
268268 SHELL = @SHELL@
276276 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
277277 USE_NLS = @USE_NLS@
278278 VERSION = @VERSION@
279 VTE_CFLAGS = @VTE_CFLAGS@
280 VTE_LIBS = @VTE_LIBS@
279281 WARN_CFLAGS = @WARN_CFLAGS@
280282 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
281283 WINDRES = @WINDRES@
361363 *config.status*) \
362364 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
363365 *) \
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);; \
366368 esac;
367369
368370 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
428430 cscope cscopelist:
429431
430432
431 distdir: $(DISTFILES)
433 distdir: $(BUILT_SOURCES)
434 $(MAKE) $(AM_MAKEFLAGS) distdir-am
435
436 distdir-am: $(DISTFILES)
432437 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
433438 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
434439 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.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8989 host_triplet = @host@
9090 subdir = icons/256x256
9191 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
9796 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9897 $(ACLOCAL_M4)
9998 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
262261 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
263262 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
264263 RANLIB = @RANLIB@
264 REST_REQUIRED = @REST_REQUIRED@
265265 SED = @SED@
266266 SET_MAKE = @SET_MAKE@
267267 SHELL = @SHELL@
275275 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
276276 USE_NLS = @USE_NLS@
277277 VERSION = @VERSION@
278 VTE_CFLAGS = @VTE_CFLAGS@
279 VTE_LIBS = @VTE_LIBS@
278280 WARN_CFLAGS = @WARN_CFLAGS@
279281 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
280282 WINDRES = @WINDRES@
358360 *config.status*) \
359361 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
360362 *) \
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);; \
363365 esac;
364366
365367 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
404406 cscope cscopelist:
405407
406408
407 distdir: $(DISTFILES)
409 distdir: $(BUILT_SOURCES)
410 $(MAKE) $(AM_MAKEFLAGS) distdir-am
411
412 distdir-am: $(DISTFILES)
408413 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
409414 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
410415 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.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8989 host_triplet = @host@
9090 subdir = icons/32x32
9191 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
9796 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9897 $(ACLOCAL_M4)
9998 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
262261 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
263262 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
264263 RANLIB = @RANLIB@
264 REST_REQUIRED = @REST_REQUIRED@
265265 SED = @SED@
266266 SET_MAKE = @SET_MAKE@
267267 SHELL = @SHELL@
275275 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
276276 USE_NLS = @USE_NLS@
277277 VERSION = @VERSION@
278 VTE_CFLAGS = @VTE_CFLAGS@
279 VTE_LIBS = @VTE_LIBS@
278280 WARN_CFLAGS = @WARN_CFLAGS@
279281 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
280282 WINDRES = @WINDRES@
358360 *config.status*) \
359361 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
360362 *) \
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);; \
363365 esac;
364366
365367 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
404406 cscope cscopelist:
405407
406408
407 distdir: $(DISTFILES)
409 distdir: $(BUILT_SOURCES)
410 $(MAKE) $(AM_MAKEFLAGS) distdir-am
411
412 distdir-am: $(DISTFILES)
408413 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
409414 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
410415 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.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8989 host_triplet = @host@
9090 subdir = icons/48x48
9191 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
9796 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9897 $(ACLOCAL_M4)
9998 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
262261 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
263262 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
264263 RANLIB = @RANLIB@
264 REST_REQUIRED = @REST_REQUIRED@
265265 SED = @SED@
266266 SET_MAKE = @SET_MAKE@
267267 SHELL = @SHELL@
275275 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
276276 USE_NLS = @USE_NLS@
277277 VERSION = @VERSION@
278 VTE_CFLAGS = @VTE_CFLAGS@
279 VTE_LIBS = @VTE_LIBS@
278280 WARN_CFLAGS = @WARN_CFLAGS@
279281 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
280282 WINDRES = @WINDRES@
358360 *config.status*) \
359361 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
360362 *) \
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);; \
363365 esac;
364366
365367 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
404406 cscope cscopelist:
405407
406408
407 distdir: $(DISTFILES)
409 distdir: $(BUILT_SOURCES)
410 $(MAKE) $(AM_MAKEFLAGS) distdir-am
411
412 distdir-am: $(DISTFILES)
408413 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
409414 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
410415 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.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8989 host_triplet = @host@
9090 subdir = icons
9191 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
9796 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9897 $(ACLOCAL_M4)
9998 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
136135 $(RECURSIVE_CLEAN_TARGETS) \
137136 $(am__extra_recursive_targets)
138137 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
139 distdir
138 distdir distdir-am
140139 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
141140 # Read a list of newline-separated strings from the standard input,
142141 # and print each of them once, without duplicates. Input order is
294293 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
295294 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
296295 RANLIB = @RANLIB@
296 REST_REQUIRED = @REST_REQUIRED@
297297 SED = @SED@
298298 SET_MAKE = @SET_MAKE@
299299 SHELL = @SHELL@
307307 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
308308 USE_NLS = @USE_NLS@
309309 VERSION = @VERSION@
310 VTE_CFLAGS = @VTE_CFLAGS@
311 VTE_LIBS = @VTE_LIBS@
310312 WARN_CFLAGS = @WARN_CFLAGS@
311313 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
312314 WINDRES = @WINDRES@
392394 *config.status*) \
393395 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
394396 *) \
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);; \
397399 esac;
398400
399401 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
510512 distclean-tags:
511513 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
512514
513 distdir: $(DISTFILES)
515 distdir: $(BUILT_SOURCES)
516 $(MAKE) $(AM_MAKEFLAGS) distdir-am
517
518 distdir-am: $(DISTFILES)
514519 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
515520 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
516521 list='$(DISTFILES)'; \
+0
-212
m4/intltool.m4 less more
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.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
8888 host_triplet = @host@
8989 subdir = man
9090 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
9695 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9796 $(ACLOCAL_M4)
9897 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
263262 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
264263 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
265264 RANLIB = @RANLIB@
265 REST_REQUIRED = @REST_REQUIRED@
266266 SED = @SED@
267267 SET_MAKE = @SET_MAKE@
268268 SHELL = @SHELL@
276276 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
277277 USE_NLS = @USE_NLS@
278278 VERSION = @VERSION@
279 VTE_CFLAGS = @VTE_CFLAGS@
280 VTE_LIBS = @VTE_LIBS@
279281 WARN_CFLAGS = @WARN_CFLAGS@
280282 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
281283 WINDRES = @WINDRES@
367369 *config.status*) \
368370 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
369371 *) \
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);; \
372374 esac;
373375
374376 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
435437 cscope cscopelist:
436438
437439
438 distdir: $(DISTFILES)
440 distdir: $(BUILT_SOURCES)
441 $(MAKE) $(AM_MAKEFLAGS) distdir-am
442
443 distdir-am: $(DISTFILES)
439444 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
440445 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
441446 list='$(DISTFILES)'; \
132132 .\" ========================================================================
133133 .\"
134134 .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"
136136 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
137137 .\" way too many mistakes in technical documents.
138138 .if n .ad l
280280 .el .IP "\f(CWtype\fR (string, mandatory)" 4
281281 .IX Item "type (string, mandatory)"
282282 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)"
286292 The server host to connect to.
287293 .ie n .IP """port"" (integer)" 4
288294 .el .IP "\f(CWport\fR (integer)" 4
161161
162162 The session type, either "spice", "vnc" or "ovirt".
163163
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)
165171
166172 The server host to connect to.
167173
132132 .\" ========================================================================
133133 .\"
134134 .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"
136136 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
137137 .\" way too many mistakes in technical documents.
138138 .if n .ad l
22 %define relver 1%{?dist}
33
44 # 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).
86 # This scheme lets us cope with RHEL-style z-stream
97 # versioning when creating Win product versions
108 %define rel0 %(echo %{relver} | cut -d. -f1)
1311
1412 Name: mingw-virt-viewer
1513 Version: @VERSION@
16 Release: %{relver}%{?extra_release}
14 Release: %{relver}
1715 Summary: MinGW Windows virt-viewer console application
1816
1917 License: GPLv2+
3533 BuildRequires: mingw64-gstreamer1-plugins-good
3634 BuildRequires: mingw32-gtk3 >= @GTK_REQUIRED@
3735 BuildRequires: mingw64-gtk3 >= @GTK_REQUIRED@
36 BuildRequires: mingw32-hicolor-icon-theme
37 BuildRequires: mingw64-hicolor-icon-theme
3838 BuildRequires: mingw32-libgovirt
3939 BuildRequires: mingw64-libgovirt
4040 BuildRequires: mingw32-libusbx
6262 BuildRequires: intltool
6363 BuildRequires: icoutils
6464 BuildRequires: dos2unix
65 BuildRequires: hicolor-icon-theme
6665 BuildRequires: hwdata
6766 BuildRequires: msitools >= 0.95-5
67 BuildRequires: glib2-devel
6868
6969 BuildArch: noarch
7070
1010 src/virt-viewer-auth.c
1111 [type: gettext/glade] src/resources/ui/virt-viewer-auth.ui
1212 src/virt-viewer-display-vnc.c
13 src/virt-viewer-display-vte.c
1314 src/virt-viewer-file-transfer-dialog.c
1415 src/virt-viewer-main.c
1516 src/virt-viewer-session-spice.c
7171 virt-viewer-window.c \
7272 virt-viewer-vm-connection.h \
7373 virt-viewer-vm-connection.c \
74 virt-viewer-display-vte.h \
75 virt-viewer-display-vte.c \
7476 virt-viewer-timed-revealer.c \
7577 virt-viewer-timed-revealer.h \
7678 $(NULL)
109111 $(GLIB2_LIBS) \
110112 $(GTK_LIBS) \
111113 $(GTK_VNC_LIBS) \
114 $(VTE_LIBS) \
112115 $(SPICE_GTK_LIBS) \
113116 $(LIBXML2_LIBS) \
114117 $(OVIRT_LIBS) \
120123 $(GLIB2_CFLAGS) \
121124 $(GTK_CFLAGS) \
122125 $(GTK_VNC_CFLAGS) \
126 $(VTE_CFLAGS) \
123127 $(SPICE_GTK_CFLAGS) \
124128 $(LIBXML2_CFLAGS) \
125129 $(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.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
120120 @OS_WIN32_TRUE@am__append_8 = virt-viewer_rc.$(OBJEXT)
121121 subdir = src
122122 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
128127 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
129128 $(ACLOCAL_M4)
130129 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
132131 CONFIG_HEADER = $(top_builddir)/config.h
133132 CONFIG_CLEAN_FILES = virt-viewer.rc
134133 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)
135138 LTLIBRARIES = $(noinst_LTLIBRARIES)
136139 am__DEPENDENCIES_1 =
137140 libvirt_viewer_util_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
152155 am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
153156 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
154157 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
155 $(am__DEPENDENCIES_1)
158 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
156159 libvirt_viewer_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \
157160 $(am__DEPENDENCIES_1)
158161 am__libvirt_viewer_la_SOURCES_DIST = virt-viewer-resources.h \
165168 virt-viewer-notebook.h virt-viewer-notebook.c \
166169 virt-viewer-window.h virt-viewer-window.c \
167170 virt-viewer-vm-connection.h virt-viewer-vm-connection.c \
171 virt-viewer-display-vte.h virt-viewer-display-vte.c \
168172 virt-viewer-timed-revealer.c virt-viewer-timed-revealer.h \
169173 virt-viewer-session-vnc.h virt-viewer-session-vnc.c \
170174 virt-viewer-display-vnc.h virt-viewer-display-vnc.c \
197201 libvirt_viewer_la-virt-viewer-notebook.lo \
198202 libvirt_viewer_la-virt-viewer-window.lo \
199203 libvirt_viewer_la-virt-viewer-vm-connection.lo \
204 libvirt_viewer_la-virt-viewer-display-vte.lo \
200205 libvirt_viewer_la-virt-viewer-timed-revealer.lo \
201206 $(am__objects_1) $(am__objects_3) $(am__objects_4) \
202207 $(am__objects_5)
205210 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
206211 $(libvirt_viewer_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
207212 -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)
212213 am_remote_viewer_OBJECTS = remote_viewer-remote-viewer.$(OBJEXT) \
213214 remote_viewer-remote-viewer-connect.$(OBJEXT) \
214215 remote_viewer-remote-viewer-main.$(OBJEXT) $(am__objects_1)
255256 am__v_at_1 =
256257 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
257258 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
259287 am__mv = mv -f
260288 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
261289 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
420448 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
421449 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
422450 RANLIB = @RANLIB@
451 REST_REQUIRED = @REST_REQUIRED@
423452 SED = @SED@
424453 SET_MAKE = @SET_MAKE@
425454 SHELL = @SHELL@
433462 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
434463 USE_NLS = @USE_NLS@
435464 VERSION = @VERSION@
465 VTE_CFLAGS = @VTE_CFLAGS@
466 VTE_LIBS = @VTE_LIBS@
436467 WARN_CFLAGS = @WARN_CFLAGS@
437468 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
438469 WINDRES = @WINDRES@
539570 virt-viewer-notebook.h virt-viewer-notebook.c \
540571 virt-viewer-window.h virt-viewer-window.c \
541572 virt-viewer-vm-connection.h virt-viewer-vm-connection.c \
573 virt-viewer-display-vte.h virt-viewer-display-vte.c \
542574 virt-viewer-timed-revealer.c virt-viewer-timed-revealer.h \
543575 $(NULL) $(am__append_1) $(am__append_2) $(am__append_3)
544576 COMMON_LIBS = \
546578 $(GLIB2_LIBS) \
547579 $(GTK_LIBS) \
548580 $(GTK_VNC_LIBS) \
581 $(VTE_LIBS) \
549582 $(SPICE_GTK_LIBS) \
550583 $(LIBXML2_LIBS) \
551584 $(OVIRT_LIBS) \
557590 $(GLIB2_CFLAGS) \
558591 $(GTK_CFLAGS) \
559592 $(GTK_VNC_CFLAGS) \
593 $(VTE_CFLAGS) \
560594 $(SPICE_GTK_CFLAGS) \
561595 $(LIBXML2_CFLAGS) \
562596 $(OVIRT_CFLAGS) \
650684 *config.status*) \
651685 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
652686 *) \
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);; \
655689 esac;
656690
657691 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
664698 $(am__aclocal_m4_deps):
665699 virt-viewer.rc: $(top_builddir)/config.status $(srcdir)/virt-viewer.rc.in
666700 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)
684701 install-binPROGRAMS: $(bin_PROGRAMS)
685702 @$(NORMAL_INSTALL)
686703 @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
731748 echo " rm -f" $$list; \
732749 rm -f $$list
733750
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
734768 remote-viewer$(EXEEXT): $(remote_viewer_OBJECTS) $(remote_viewer_DEPENDENCIES) $(EXTRA_remote_viewer_DEPENDENCIES)
735769 @rm -f remote-viewer$(EXEEXT)
736770 $(AM_V_CCLD)$(remote_viewer_LINK) $(remote_viewer_OBJECTS) $(remote_viewer_LDADD) $(LIBS)
749783 distclean-compile:
750784 -rm -f *.tab.c
751785
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)
778819
779820 .c.o:
780821 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
883924 @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@
884925 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
885926 @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
886934
887935 libvirt_viewer_la-virt-viewer-timed-revealer.lo: virt-viewer-timed-revealer.c
888936 @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
10681116 distclean-tags:
10691117 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
10701118
1071 distdir: $(DISTFILES)
1119 distdir: $(BUILT_SOURCES)
1120 $(MAKE) $(AM_MAKEFLAGS) distdir-am
1121
1122 distdir-am: $(DISTFILES)
10721123 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
10731124 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
10741125 list='$(DISTFILES)'; \
11011152 check-am: all-am
11021153 check: $(BUILT_SOURCES)
11031154 $(MAKE) $(AM_MAKEFLAGS) check-am
1104 all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA)
1155 all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(DATA)
11051156 installdirs:
11061157 for dir in "$(DESTDIR)$(bindir)"; do \
11071158 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
11461197 clean-noinstLTLIBRARIES mostlyclean-am
11471198
11481199 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
11501227 -rm -f Makefile
11511228 distclean-am: clean-am distclean-compile distclean-generic \
11521229 distclean-tags
11921269 installcheck-am:
11931270
11941271 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
11961299 -rm -f Makefile
11971300 maintainer-clean-am: distclean-am maintainer-clean-generic
11981301
12131316
12141317 .MAKE: all check install install-am install-strip
12151318
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 \
12171320 clean-binPROGRAMS clean-generic clean-libtool \
12181321 clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \
12191322 distclean-compile distclean-generic distclean-libtool \
5858 static void ovirt_foreign_menu_refresh_cdrom_file_async(OvirtForeignMenu *menu, GTask *task);
5959 static void ovirt_foreign_menu_fetch_iso_list_async(OvirtForeignMenu *menu, GTask *task);
6060
61 G_DEFINE_TYPE (OvirtForeignMenu, ovirt_foreign_menu, G_TYPE_OBJECT)
62
6361
6462 struct _OvirtForeignMenuPrivate {
6563 OvirtProxy *proxy;
8684 };
8785
8886
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)
9088
9189
9290 enum {
9896 PROP_FILES,
9997 PROP_VM_GUID,
10098 };
101
10299
103100 gchar *
104101 ovirt_foreign_menu_get_current_iso_name(OvirtForeignMenu *foreign_menu)
228225 oclass->get_property = ovirt_foreign_menu_get_property;
229226 oclass->set_property = ovirt_foreign_menu_set_property;
230227 oclass->dispose = ovirt_foreign_menu_dispose;
231
232 g_type_class_add_private(klass, sizeof(OvirtForeignMenuPrivate));
233228
234229 g_object_class_install_property(oclass,
235230 PROP_PROXY,
286281 static void
287282 ovirt_foreign_menu_init(OvirtForeignMenu *self)
288283 {
289 self->priv = OVIRT_FOREIGN_MENU_GET_PRIVATE(self);
284 self->priv = ovirt_foreign_menu_get_instance_private(self);
290285 }
291286
292287
367362 default:
368363 g_warn_if_reached();
369364 g_task_return_new_error(task, OVIRT_ERROR, OVIRT_ERROR_FAILED,
370 "Invalid state: %d", current_state);
365 "Invalid state: %u", current_state);
371366 g_object_unref(task);
372367 }
373368 }
489484 * associated with file resources , but as of 3.2, this node
490485 * is not present, so we do an extension check instead
491486 * 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);
493489 g_free(name);
494490 continue;
495491 }
622618 }
623619
624620 #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
625628 static gboolean storage_domain_attached_to_data_center(OvirtStorageDomain *domain,
626629 OvirtDataCenter *data_center)
627630 {
631634
632635 g_object_get(domain, "data-center-ids", &data_center_ids, NULL);
633636 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);
635638 g_strfreev(data_center_ids);
636639 g_free(data_center_guid);
637640
639642 }
640643 #endif
641644
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 }
642674
643675 static void storage_domains_fetched_cb(GObject *source_object,
644676 GAsyncResult *result,
662694 g_hash_table_iter_init(&iter, ovirt_collection_get_resources(collection));
663695 while (g_hash_table_iter_next(&iter, NULL, (gpointer *)&domain)) {
664696 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))
670699 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
682700
683701 file_collection = ovirt_storage_domain_get_files(domain);
684702 if (file_collection != NULL) {
2828 static void ovirt_foreign_menu_iso_name_changed(OvirtForeignMenu *foreign_menu, GAsyncResult *result, RemoteViewerISOListDialog *self);
2929 static void remote_viewer_iso_list_dialog_show_error(RemoteViewerISOListDialog *self, const gchar *message);
3030
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;
3834 GtkListStore *list_store;
3935 GtkWidget *status;
4036 GtkWidget *spinner;
4440 GCancellable *cancellable;
4541 };
4642
43 struct _RemoteViewerISOListDialogClass
44 {
45 GtkDialogClass parent_class;
46 };
47
48 G_DEFINE_TYPE(RemoteViewerISOListDialog, remote_viewer_iso_list_dialog, GTK_TYPE_DIALOG)
49
4750 enum RemoteViewerISOListDialogModel
4851 {
4952 ISO_IS_ACTIVE = 0,
6467 remote_viewer_iso_list_dialog_dispose(GObject *object)
6568 {
6669 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);
7476 }
7577 G_OBJECT_CLASS(remote_viewer_iso_list_dialog_parent_class)->dispose(object);
7678 }
8082 const GValue *value, GParamSpec *pspec)
8183 {
8284 RemoteViewerISOListDialog *self = REMOTE_VIEWER_ISO_LIST_DIALOG(object);
83 RemoteViewerISOListDialogPrivate *priv = self->priv;
8485
8586 switch (property_id) {
8687 case PROP_FOREIGN_MENU:
87 priv->foreign_menu = g_value_dup_object(value);
88 self->foreign_menu = g_value_dup_object(value);
8889 break;
8990 default:
9091 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
9596 remote_viewer_iso_list_dialog_class_init(RemoteViewerISOListDialogClass *klass)
9697 {
9798 GObjectClass *object_class = G_OBJECT_CLASS(klass);
98
99 g_type_class_add_private(klass, sizeof(RemoteViewerISOListDialogPrivate));
10099
101100 object_class->dispose = remote_viewer_iso_list_dialog_dispose;
102101 object_class->set_property = remote_viewer_iso_list_dialog_set_property;
113112 static void
114113 remote_viewer_iso_list_dialog_show_files(RemoteViewerISOListDialog *self)
115114 {
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",
118116 GTK_STACK_TRANSITION_TYPE_NONE);
119117 gtk_dialog_set_response_sensitive(GTK_DIALOG(self), GTK_RESPONSE_NONE, TRUE);
120118 }
122120 static void
123121 remote_viewer_iso_list_dialog_foreach(char *name, RemoteViewerISOListDialog *self)
124122 {
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);
127124 gboolean active = (g_strcmp0(current_iso, name) == 0);
128125 gint weight = active ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL;
129126 GtkTreeIter iter;
130127
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,
133130 ISO_IS_ACTIVE, active,
134131 ISO_NAME, name,
135132 FONT_WEIGHT, weight, -1);
136133
137134 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);
141138 gtk_tree_path_free(path);
142139 }
143140
149146 GAsyncResult *result,
150147 RemoteViewerISOListDialog *self)
151148 {
152 RemoteViewerISOListDialogPrivate *priv = self->priv;
153149 GError *error = NULL;
154150 GList *iso_list;
155151
163159 if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
164160 goto end;
165161
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));
168164 remote_viewer_iso_list_dialog_show_error(self, msg);
169165 gtk_dialog_set_response_sensitive(GTK_DIALOG(self), GTK_RESPONSE_NONE, TRUE);
170166 g_free(markup);
171167 goto end;
172168 }
173169
174 g_clear_object(&priv->cancellable);
170 g_clear_object(&self->cancellable);
175171 g_list_foreach(iso_list, (GFunc) remote_viewer_iso_list_dialog_foreach, self);
176172 remote_viewer_iso_list_dialog_show_files(self);
177173
183179 static void
184180 remote_viewer_iso_list_dialog_refresh_iso_list(RemoteViewerISOListDialog *self)
185181 {
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,
193187 (GAsyncReadyCallback) fetch_iso_names_cb,
194188 self);
195189 }
200194 gpointer user_data G_GNUC_UNUSED)
201195 {
202196 RemoteViewerISOListDialog *self = REMOTE_VIEWER_ISO_LIST_DIALOG(dialog);
203 RemoteViewerISOListDialogPrivate *priv = self->priv;
204197
205198 if (response_id != GTK_RESPONSE_NONE) {
206 g_cancellable_cancel(priv->cancellable);
199 g_cancellable_cancel(self->cancellable);
207200 return;
208201 }
209202
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",
213206 GTK_STACK_TRANSITION_TYPE_NONE);
214207 gtk_dialog_set_response_sensitive(GTK_DIALOG(self), GTK_RESPONSE_NONE, FALSE);
215208 remote_viewer_iso_list_dialog_refresh_iso_list(self);
216209 }
217210
218 void
211 G_MODULE_EXPORT void
219212 remote_viewer_iso_list_dialog_toggled(GtkCellRendererToggle *cell_renderer G_GNUC_UNUSED,
220213 gchar *path,
221214 gpointer user_data)
222215 {
223216 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);
226218 GtkTreePath *tree_path = gtk_tree_path_new_from_string(path);
227219 GtkTreeIter iter;
228220 gboolean active;
229221 gchar *name;
230222
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);
232224 gtk_tree_model_get_iter(model, &iter, tree_path);
233225 gtk_tree_model_get(model, &iter,
234226 ISO_IS_ACTIVE, &active,
235227 ISO_NAME, &name, -1);
236228
237229 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,
243235 (GAsyncReadyCallback)ovirt_foreign_menu_iso_name_changed,
244236 self);
245237 gtk_tree_path_free(tree_path);
246238 g_free(name);
247239 }
248240
249 void
241 G_MODULE_EXPORT void
250242 remote_viewer_iso_list_dialog_row_activated(GtkTreeView *view G_GNUC_UNUSED,
251243 GtkTreePath *path,
252244 GtkTreeViewColumn *col G_GNUC_UNUSED,
261253 remote_viewer_iso_list_dialog_init(RemoteViewerISOListDialog *self)
262254 {
263255 GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(self));
264 RemoteViewerISOListDialogPrivate *priv = self->priv = DIALOG_PRIVATE(self);
265256 GtkBuilder *builder = virt_viewer_util_load_ui("remote-viewer-iso-list.ui");
266257 GtkCellRendererToggle *cell_renderer;
267258
268259 gtk_builder_connect_signals(builder, self);
269260
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"));
277268 cell_renderer = GTK_CELL_RENDERER_TOGGLE(gtk_builder_get_object(builder, "cellrenderertoggle"));
278269 gtk_cell_renderer_toggle_set_radio(cell_renderer, TRUE);
279270 gtk_cell_renderer_set_padding(GTK_CELL_RENDERER(cell_renderer), 6, 6);
312303 GAsyncResult *result,
313304 RemoteViewerISOListDialog *self)
314305 {
315 RemoteViewerISOListDialogPrivate *priv = self->priv;
316 GtkTreeModel *model = GTK_TREE_MODEL(priv->list_store);
306 GtkTreeModel *model = GTK_TREE_MODEL(self->list_store);
317307 gchar *current_iso;
318308 GtkTreeIter iter;
319309 gchar *name;
333323 remote_viewer_iso_list_dialog_show_error(self, msg);
334324 }
335325
336 g_clear_object(&priv->cancellable);
326 g_clear_object(&self->cancellable);
337327 if (!gtk_tree_model_get_iter_first(model, &iter))
338328 goto end;
339329
347337
348338 /* iso is not active anymore */
349339 if (active && !match) {
350 gtk_list_store_set(priv->list_store, &iter,
340 gtk_list_store_set(self->list_store, &iter,
351341 ISO_IS_ACTIVE, FALSE,
352342 FONT_WEIGHT, PANGO_WEIGHT_NORMAL, -1);
353343 } else if (match) {
354 gtk_list_store_set(priv->list_store, &iter,
344 gtk_list_store_set(self->list_store, &iter,
355345 ISO_IS_ACTIVE, TRUE,
356346 FONT_WEIGHT, PANGO_WEIGHT_BOLD, -1);
357347 }
360350 } while (gtk_tree_model_iter_next(model, &iter));
361351
362352 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);
364354 g_free(current_iso);
365355
366356 end:
3434
3535 typedef struct _RemoteViewerISOListDialog RemoteViewerISOListDialog;
3636 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 };
5037
5138 GType remote_viewer_iso_list_dialog_get_type(void) G_GNUC_CONST;
5239
5353 gboolean open_recent_dialog;
5454 };
5555
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)
5957
6058 enum RemoteViewerProperties {
6159 PROP_0,
195193 VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass);
196194 GApplicationClass *g_app_class = G_APPLICATION_CLASS(klass);
197195
198 g_type_class_add_private (klass, sizeof (RemoteViewerPrivate));
199
200196 object_class->get_property = remote_viewer_get_property;
201197 object_class->dispose = remote_viewer_dispose;
202198
220216 static void
221217 remote_viewer_init(RemoteViewer *self)
222218 {
223 self->priv = GET_PRIVATE(self);
219 self->priv = remote_viewer_get_instance_private(self);
224220 }
225221
226222 RemoteViewer *
344340 "username", username,
345341 "password", password,
346342 NULL);
347 #ifdef HAVE_OVIRT_CANCEL
348343 } else {
349344 rest_proxy_auth_cancel(auth);
350 #endif
351345 }
352346
353347 g_free(username);
446440 api = ovirt_proxy_fetch_api(proxy, &error);
447441 if (error != NULL) {
448442 g_debug("failed to get oVirt 'api' collection: %s", error->message);
449 #ifdef HAVE_OVIRT_CANCEL
450443 if (g_error_matches(error, OVIRT_REST_CALL_ERROR, OVIRT_REST_CALL_ERROR_CANCELLED)) {
451444 g_clear_error(&error);
452445 g_set_error_literal(&error,
453446 VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_CANCELLED,
454447 _("Authentication was cancelled"));
455448 }
456 #endif
457449 goto error;
458450 }
459451 vms = ovirt_api_get_vms(api);
508500 "proxy-url", &proxy_url,
509501 NULL);
510502 if (port != 0) {
511 gport = g_strdup_printf("%d", port);
503 gport = g_strdup_printf("%u", port);
512504 }
513505 if (secure_port != 0) {
514 gtlsport = g_strdup_printf("%d", secure_port);
506 gtlsport = g_strdup_printf("%u", secure_port);
515507 }
516508
517509 if (ghost == NULL) {
527519 session_type = "vnc";
528520 } else {
529521 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);
531523 g_debug("%s", error->message);
532524 goto error;
533525 }
687679 {
688680 VirtViewerApp *app = VIRT_VIEWER_APP(self);
689681
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 }
693694
694695 g_signal_connect(virt_viewer_app_get_session(app), "session-connected",
695696 G_CALLBACK(remote_viewer_session_connected), g_strdup(guri));
785786 _("Cannot determine the connection type from URI"));
786787 goto cleanup;
787788 }
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;
800791 }
801792
802793 ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->start(app, &error);
3333 <property name="accel_group">accelgroup</property>
3434 <child>
3535 <object class="GtkMenuItem" id="menu-file-screenshot">
36 <property name="sensitive">False</property>
3637 <property name="visible">True</property>
3738 <property name="can_focus">False</property>
3839 <property name="use_action_appearance">False</property>
8283 </child>
8384 <child>
8485 <object class="GtkMenuItem" id="menu-preferences">
86 <property name="sensitive">False</property>
8587 <property name="visible">True</property>
8688 <property name="can_focus">False</property>
8789 <property name="label" translatable="yes">_Preferences</property>
104106 <property name="use_underline">True</property>
105107 <accelerator key="q" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
106108 <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"/>
107155 </object>
108156 </child>
109157 </object>
135183 </child>
136184 <child>
137185 <object class="GtkMenuItem" id="menu-view-zoom">
186 <property name="sensitive">False</property>
138187 <property name="visible">True</property>
139188 <property name="can_focus">False</property>
140189 <property name="use_action_appearance">False</property>
213262 </child>
214263 <child>
215264 <object class="GtkMenuItem" id="menu-send">
265 <property name="sensitive">False</property>
216266 <property name="visible">True</property>
217267 <property name="can_focus">False</property>
218268 <property name="use_action_appearance">False</property>
6161 #include "virt-viewer-session-spice.h"
6262 #endif
6363
64 #include "virt-viewer-display-vte.h"
65
6466 gboolean doDebug = FALSE;
6567
6668 /* Signal handlers for about dialog */
109111 VirtViewerWindow *main_window;
110112 GtkWidget *main_notebook;
111113 GList *windows;
112 GHashTable *displays;
114 GHashTable *displays; /* !vte */
113115 GHashTable *initial_display_map;
114116 gchar *clipboard;
115117 GtkWidget *preferences;
124126 gboolean attach;
125127 gboolean quitting;
126128 gboolean kiosk;
129 gboolean vm_ui;
130 gboolean vm_running;
127131
128132 VirtViewerSession *session;
129133 gboolean active;
144148 char *title;
145149 char *uuid;
146150
147 gint focused;
148151 GKeyFile *config;
149152 gchar *config_file;
150153
156159 };
157160
158161
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)
162163
163164 enum {
164165 PROP_0,
169170 PROP_FULLSCREEN,
170171 PROP_TITLE,
171172 PROP_ENABLE_ACCEL,
172 PROP_HAS_FOCUS,
173173 PROP_KIOSK,
174174 PROP_QUIT_ON_DISCONNECT,
175175 PROP_UUID,
176 PROP_VM_UI,
177 PROP_VM_RUNNING,
176178 };
177179
178180 void
257259 if (error) {
258260 g_debug("Unable to get comment from key file: %s", error->message);
259261 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);
263269 }
264270 g_free(comment);
265271 }
280286 VirtViewerAppPrivate *priv = self->priv;
281287
282288 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 }
283294
284295 if (priv->session) {
285296 virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
293304 }
294305
295306 static gint
296 get_n_client_monitors()
307 get_n_client_monitors(void)
297308 {
298309 return gdk_screen_get_n_monitors(gdk_screen_get_default());
299310 }
499510 guint n = 0;
500511 g_list_foreach(self->priv->windows, count_window_visible, &n);
501512 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;
525513 }
526514
527515 static void hide_one_window(gpointer value,
723711 const gchar *title = virt_viewer_app_get_title(app);
724712
725713 if (title != NULL) {
714 VirtViewerDisplay *display = virt_viewer_window_get_display(window);
726715 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
727724 if (d != NULL) {
728725 *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);
730727 *d = '%';
731728 } else
732 subtitle = g_strdup_printf("%s (%d)", title, nth + 1);
729 subtitle = g_strdup_printf("%s (%s)", title, desc);
730 g_free(desc);
733731 }
734732
735733 g_object_set(window, "subtitle", subtitle, NULL);
737735 }
738736
739737 static void
740 set_title(gpointer value,
741 gpointer user_data)
738 set_subtitle(gpointer value,
739 gpointer user_data)
742740 {
743741 VirtViewerApp *app = user_data;
744742 VirtViewerWindow *window = value;
754752 static void
755753 virt_viewer_app_set_all_window_subtitles(VirtViewerApp *app)
756754 {
757 g_list_foreach(app->priv->windows, set_title, app);
755 g_list_foreach(app->priv->windows, set_subtitle, app);
758756 }
759757
760758 static void update_title(gpointer value,
800798 virt_viewer_app_get_nth_window(VirtViewerApp *self, gint nth)
801799 {
802800 GList *l;
801
802 if (nth < 0)
803 return NULL;
804
803805 for (l = self->priv->windows; l; l = l->next) {
804806 VirtViewerDisplay *display = virt_viewer_window_get_display(l->data);
805807 if (display
818820 }
819821
820822 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
848823 virt_viewer_app_has_usbredir(VirtViewerApp *self)
849824 {
850825 return virt_viewer_app_has_session(self) &&
880855
881856 g_signal_connect(w, "hide", G_CALLBACK(viewer_window_visible_cb), self);
882857 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);
885858 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);
886867 }
887868
888869 static VirtViewerWindow *
890871 {
891872 gint nth = virt_viewer_display_get_nth(display);
892873 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
893879 if (win == NULL) {
894880 GList *l = self->priv->windows;
895881
911897 }
912898
913899 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 }
914904 }
915905 virt_viewer_app_set_window_subtitle(self, win, nth);
916906
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);
917917 return win;
918918 }
919919
944944 virt_viewer_window_hide(win);
945945 } else {
946946 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);
950948 virt_viewer_window_show(win);
951949 } else {
952950 if (!self->priv->kiosk && win) {
966964 gint nth;
967965
968966 g_object_get(display, "nth-display", &nth, NULL);
969
970967 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
971976 g_hash_table_insert(self->priv->displays, GINT_TO_POINTER(nth), g_object_ref(display));
972977
973978 g_signal_connect(display, "notify::show-hint",
974979 G_CALLBACK(display_show_hint), NULL);
975980 g_object_notify(G_OBJECT(display), "show-hint"); /* call display_show_hint */
976981 }
977
978982
979983 static void virt_viewer_app_remove_nth_window(VirtViewerApp *self,
980984 gint nth)
15631567 g_value_set_boolean(value, virt_viewer_app_get_enable_accel(self));
15641568 break;
15651569
1566 case PROP_HAS_FOCUS:
1567 g_value_set_boolean(value, priv->focused > 0);
1568 break;
1569
15701570 case PROP_KIOSK:
15711571 g_value_set_boolean(value, priv->kiosk);
15721572 break;
15771577
15781578 case PROP_UUID:
15791579 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);
15801588 break;
15811589
15821590 default:
16311639
16321640 case PROP_UUID:
16331641 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);
16341650 break;
16351651
16361652 default:
17301746 virt_viewer_app_init(VirtViewerApp *self)
17311747 {
17321748 GError *error = NULL;
1733 self->priv = GET_PRIVATE(self);
1749 self->priv = virt_viewer_app_get_instance_private(self);
17341750
17351751 gtk_window_set_default_icon_name("virt-viewer");
17361752
17891805 sw_smartcard = FALSE;
17901806 }
17911807 if (sw_smartcard) {
1808 gboolean r;
17921809 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");
18011822 } else {
18021823 g_debug("disabling smartcard shortcuts");
18031824 gtk_accel_map_change_entry("<virt-viewer>/file/smartcard-insert", 0, 0, TRUE);
18621883 {
18631884 VirtViewerApp *self = VIRT_VIEWER_APP(gapp);
18641885 gboolean ret = FALSE;
1865 gint argc = g_strv_length(*args);
18661886 GError *error = NULL;
18671887 GOptionContext *context = g_option_context_new(NULL);
18681888 GOptionGroup *group = g_option_group_new("virt-viewer", NULL, NULL, gapp, NULL);
18811901 g_option_context_add_group(context, spice_get_option_group());
18821902 #endif
18831903
1884 if (!g_option_context_parse(context, &argc, args, &error)) {
1904 if (!g_option_context_parse_strv(context, args, &error)) {
18851905 if (error != NULL) {
18861906 g_printerr(_("%s\n"), error->message);
18871907 g_error_free(error);
19111931 {
19121932 GObjectClass *object_class = G_OBJECT_CLASS (klass);
19131933 GApplicationClass *g_app_class = G_APPLICATION_CLASS(klass);
1914
1915 g_type_class_add_private (klass, sizeof (VirtViewerAppPrivate));
19161934
19171935 object_class->get_property = virt_viewer_app_get_property;
19181936 object_class->set_property = virt_viewer_app_set_property;
19972015 G_PARAM_STATIC_STRINGS));
19982016
19992017 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,
20092018 PROP_KIOSK,
20102019 g_param_spec_boolean("kiosk",
20112020 "Kiosk",
20332042 G_PARAM_READABLE |
20342043 G_PARAM_WRITABLE |
20352044 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));
20362063 }
20372064
20382065 void
21082135 continue;
21092136 }
21102137
2138 gboolean status = TRUE;
21112139 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);
21132141 } 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);
21152143 } 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);
21172145 } else if (g_str_equal(*hotkey, "smartcard-insert")) {
21182146 virt_viewer_set_insert_smartcard_accel(self, accel_key, accel_mods);
21192147 } else if (g_str_equal(*hotkey, "smartcard-remove")) {
21212149 } else {
21222150 g_warning("Unknown hotkey command %s", *hotkey);
21232151 }
2152 if (!status)
2153 g_warning("Unable to set hotkey for '%s' due to a conflict in GTK", *hotkey);
21242154 }
21252155 g_strfreev(hotkeys);
21262156
22312261 {
22322262 VirtViewerApp *self = virt_viewer_session_get_app(virt_viewer_display_get_session(display));
22332263 gboolean visible = gtk_check_menu_item_get_active(checkmenuitem);
2234 static gboolean reentering = FALSE;
22352264 VirtViewerWindow *vwin;
22362265
2237 if (reentering) /* do not reenter if I switch you back */
2238 return;
2239
2240 reentering = TRUE;
2241
22422266 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 }
22472279
22482280 virt_viewer_session_update_displays_geometry(virt_viewer_display_get_session(display));
22492281 }
23402372 G_CALLBACK(menu_display_visible_toggled_cb), display, 0);
23412373 gtk_menu_shell_append(submenu, item);
23422374 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 }
23432395 }
23442396
23452397 gtk_widget_show_all(GTK_WIDGET(submenu));
8383 const gchar *user,
8484 gint port,
8585 const gchar *guri);
86 gboolean virt_viewer_app_window_set_visible(VirtViewerApp *self, VirtViewerWindow *window, gboolean visible);
86
8787 void virt_viewer_app_show_status(VirtViewerApp *self, const gchar *fmt, ...);
8888 void virt_viewer_app_show_display(VirtViewerApp *self);
8989 GList* virt_viewer_app_get_windows(VirtViewerApp *self);
3131 #include "virt-viewer-util.h"
3232 #include "virt-viewer-display-spice.h"
3333 #include "virt-viewer-auth.h"
34
35 G_DEFINE_TYPE (VirtViewerDisplaySpice, virt_viewer_display_spice, VIRT_VIEWER_TYPE_DISPLAY)
3634
3735 typedef enum {
3836 AUTO_RESIZE_ALWAYS,
4846 guint y;
4947 };
5048
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)
5250
5351 static void virt_viewer_display_spice_send_keys(VirtViewerDisplay *display,
5452 const guint *keyvals,
5553 int nkeyvals);
5654 static GdkPixbuf *virt_viewer_display_spice_get_pixbuf(VirtViewerDisplay *display);
5755 static void virt_viewer_display_spice_release_cursor(VirtViewerDisplay *display);
58 static void virt_viewer_display_spice_close(VirtViewerDisplay *display G_GNUC_UNUSED);
5956 static gboolean virt_viewer_display_spice_selectable(VirtViewerDisplay *display);
6057 static void virt_viewer_display_spice_enable(VirtViewerDisplay *display);
6158 static void virt_viewer_display_spice_disable(VirtViewerDisplay *display);
6865 dclass->send_keys = virt_viewer_display_spice_send_keys;
6966 dclass->get_pixbuf = virt_viewer_display_spice_get_pixbuf;
7067 dclass->release_cursor = virt_viewer_display_spice_release_cursor;
71 dclass->close = virt_viewer_display_spice_close;
7268 dclass->selectable = virt_viewer_display_spice_selectable;
7369 dclass->enable = virt_viewer_display_spice_enable;
7470 dclass->disable = virt_viewer_display_spice_disable;
75
76 g_type_class_add_private(klass, sizeof(VirtViewerDisplaySpicePrivate));
7771 }
7872
7973 static SpiceMainChannel*
127121 static void
128122 virt_viewer_display_spice_init(VirtViewerDisplaySpice *self G_GNUC_UNUSED)
129123 {
130 self->priv = VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(self);
124 self->priv = virt_viewer_display_spice_get_instance_private(self);
131125 self->priv->auto_resize = AUTO_RESIZE_ALWAYS;
132126
133127 g_signal_connect(self, "notify::show-hint", G_CALLBACK(show_hint_changed), NULL);
347341 spice_display_mouse_ungrab(self->priv->display);
348342 }
349343
350
351 static void
352 virt_viewer_display_spice_close(VirtViewerDisplay *display G_GNUC_UNUSED)
353 {
354 }
355
356344 static gboolean
357345 virt_viewer_display_spice_selectable(VirtViewerDisplay *self)
358346 {
2929
3030 #include <glib/gi18n.h>
3131
32 G_DEFINE_TYPE(VirtViewerDisplayVnc, virt_viewer_display_vnc, VIRT_VIEWER_TYPE_DISPLAY)
33
3432 struct _VirtViewerDisplayVncPrivate {
3533 VncDisplay *vnc;
3634 };
3735
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)
3937
4038 static void virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display, const guint *keyvals, int nkeyvals);
4139 static GdkPixbuf *virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display);
7270 dclass->get_pixbuf = virt_viewer_display_vnc_get_pixbuf;
7371 dclass->close = virt_viewer_display_vnc_close;
7472 dclass->release_cursor = virt_viewer_display_vnc_release_cursor;
75
76 g_type_class_add_private(klass, sizeof(VirtViewerDisplayVncPrivate));
7773 }
7874
7975 static void
8076 virt_viewer_display_vnc_init(VirtViewerDisplayVnc *self G_GNUC_UNUSED)
8177 {
82 self->priv = VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(self);
78 self->priv = virt_viewer_display_vnc_get_instance_private(self);
8379 }
8480
8581
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 */
3030 #include "virt-viewer-display.h"
3131 #include "virt-viewer-util.h"
3232
33 #define VIRT_VIEWER_DISPLAY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayPrivate))
34
3533 struct _VirtViewerDisplayPrivate
3634 {
3735 guint desktopWidth;
6260 GParamSpec *pspec);
6361 static void virt_viewer_display_grab_focus(GtkWidget *widget);
6462
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)
6664
6765 enum {
6866 PROP_0,
128126 g_param_spec_int("nth-display",
129127 "Nth display",
130128 "Nth display",
131 0,
129 -1,
132130 G_MAXINT32,
133131 0,
134132 G_PARAM_READWRITE |
182180 g_signal_new("display-pointer-grab",
183181 G_OBJECT_CLASS_TYPE(object_class),
184182 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
185 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_grab),
183 0,
186184 NULL,
187185 NULL,
188186 g_cclosure_marshal_VOID__VOID,
192190 g_signal_new("display-pointer-ungrab",
193191 G_OBJECT_CLASS_TYPE(object_class),
194192 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
195 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_ungrab),
193 0,
196194 NULL,
197195 NULL,
198196 g_cclosure_marshal_VOID__VOID,
202200 g_signal_new("display-keyboard-grab",
203201 G_OBJECT_CLASS_TYPE(object_class),
204202 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
205 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_grab),
203 0,
206204 NULL,
207205 NULL,
208206 g_cclosure_marshal_VOID__VOID,
212210 g_signal_new("display-keyboard-ungrab",
213211 G_OBJECT_CLASS_TYPE(object_class),
214212 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
215 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_ungrab),
213 0,
216214 NULL,
217215 NULL,
218216 g_cclosure_marshal_VOID__VOID,
222220 g_signal_new("display-desktop-resize",
223221 G_OBJECT_CLASS_TYPE(object_class),
224222 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
225 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_desktop_resize),
223 0,
226224 NULL,
227225 NULL,
228226 g_cclosure_marshal_VOID__VOID,
238236 g_cclosure_marshal_VOID__VOID,
239237 G_TYPE_NONE,
240238 0);
241
242 g_type_class_add_private(class, sizeof(VirtViewerDisplayPrivate));
243239 }
244240
245241 static void
248244 gtk_widget_set_has_window(GTK_WIDGET(display), FALSE);
249245 gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE);
250246
251 display->priv = VIRT_VIEWER_DISPLAY_GET_PRIVATE(display);
247 display->priv = virt_viewer_display_get_instance_private(display);
252248
253249 display->priv->desktopWidth = MIN_DISPLAY_WIDTH;
254250 display->priv->desktopHeight = MIN_DISPLAY_HEIGHT;
656652 g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
657653
658654 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);
662657 }
663658
664659 void virt_viewer_display_set_fullscreen(VirtViewerDisplay *self, gboolean fullscreen)
687682
688683 g_return_if_fail(preferred != NULL);
689684
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)) {
691688 preferred->width = 0;
692689 preferred->height = 0;
693690 preferred->x = 0;
695692 return;
696693 }
697694
698 top = gtk_widget_get_toplevel(GTK_WIDGET(self));
699695 gtk_window_get_position(GTK_WINDOW(top), &topx, &topy);
700696 topx = MAX(topx, 0);
701697 topy = MAX(topy, 0);
8181
8282 void (*close)(VirtViewerDisplay *display);
8383 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);
9284 void (*enable)(VirtViewerDisplay *display);
9385 void (*disable)(VirtViewerDisplay *display);
9486 };
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))
9593
9694 GType virt_viewer_display_get_type(void);
9795
3838
3939 G_DEFINE_TYPE_WITH_PRIVATE(VirtViewerFileTransferDialog, virt_viewer_file_transfer_dialog, GTK_TYPE_DIALOG)
4040
41 #define FILE_TRANSFER_DIALOG_PRIVATE(o) \
42 (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_FILE_TRANSFER_DIALOG, VirtViewerFileTransferDialogPrivate))
43
44
4541 static void
4642 virt_viewer_file_transfer_dialog_dispose(GObject *object)
4743 {
114110 {
115111 gtk_widget_init_template(GTK_WIDGET(self));
116112
117 self->priv = FILE_TRANSFER_DIALOG_PRIVATE(self);
113 self->priv = virt_viewer_file_transfer_dialog_get_instance_private(self);
118114
119115 g_signal_connect(self, "response", G_CALLBACK(dialog_response), NULL);
120116 g_signal_connect(self, "delete-event", G_CALLBACK(delete_event), NULL);
152148 if (self->priv->num_files == 1) {
153149 message = g_strdup(_("Transferring 1 file..."));
154150 } 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),
157153 n_files, self->priv->num_files);
158154 }
159155 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(self->priv->progressbar), fraction);
4242 * - newer-version-url: string specifying an URL to display when the minimum
4343 * version check fails
4444 * - type: string, mandatory, values: "spice" (later "vnc" etc..)
45 * - unix-path: string
4546 * - host: string
4647 * - port: int
4748 * - tls-port: int
9394 GKeyFile* keyfile;
9495 };
9596
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);
9998
10099 #define MAIN_GROUP "virt-viewer"
101100 #define OVIRT_GROUP "ovirt"
103102 enum {
104103 PROP_DUMMY_PROPERTY,
105104 PROP_TYPE,
105 PROP_UNIX_PATH,
106106 PROP_HOST,
107107 PROP_PORT,
108108 PROP_TLS_PORT,
326326 }
327327
328328 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*
329342 virt_viewer_file_get_file_type(VirtViewerFile* self)
330343 {
331344 return virt_viewer_file_get_string(self, MAIN_GROUP, "type");
938951 case PROP_TYPE:
939952 virt_viewer_file_set_type(self, g_value_get_string(value));
940953 break;
954 case PROP_UNIX_PATH:
955 virt_viewer_file_set_unix_path(self, g_value_get_string(value));
956 break;
941957 case PROP_HOST:
942958 virt_viewer_file_set_host(self, g_value_get_string(value));
943959 break;
10531069 case PROP_TYPE:
10541070 g_value_take_string(value, virt_viewer_file_get_file_type(self));
10551071 break;
1072 case PROP_UNIX_PATH:
1073 g_value_take_string(value, virt_viewer_file_get_unix_path(self));
1074 break;
10561075 case PROP_HOST:
10571076 g_value_take_string(value, virt_viewer_file_get_host(self));
10581077 break;
11691188 static void
11701189 virt_viewer_file_init(VirtViewerFile* self)
11711190 {
1172 self->priv = VIRT_VIEWER_FILE_GET_PRIVATE(self);
1191 self->priv = virt_viewer_file_get_instance_private(self);
11731192
11741193 self->priv->keyfile = g_key_file_new();
11751194 }
11781197 virt_viewer_file_class_init(VirtViewerFileClass* klass)
11791198 {
11801199 virt_viewer_file_parent_class = g_type_class_peek_parent(klass);
1181 g_type_class_add_private(klass, sizeof(VirtViewerFilePrivate));
11821200
11831201 G_OBJECT_CLASS(klass)->get_property = virt_viewer_file_get_property;
11841202 G_OBJECT_CLASS(klass)->set_property = virt_viewer_file_set_property;
5353 GError** error);
5454 gboolean virt_viewer_file_is_set(VirtViewerFile* self, const gchar* key);
5555
56 gchar* virt_viewer_file_get_unix_path(VirtViewerFile* self);
57 void virt_viewer_file_set_unix_path(VirtViewerFile* self, const gchar* value);
5658 gchar* virt_viewer_file_get_ca(VirtViewerFile* self);
5759 void virt_viewer_file_set_ca(VirtViewerFile* self, const gchar* value);
5860 gchar* virt_viewer_file_get_host(VirtViewerFile* self);
2626 #include "virt-viewer-notebook.h"
2727 #include "virt-viewer-util.h"
2828
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
3429 struct _VirtViewerNotebookPrivate {
3530 GtkWidget *status;
3631 };
32
33 G_DEFINE_TYPE_WITH_PRIVATE (VirtViewerNotebook, virt_viewer_notebook, GTK_TYPE_NOTEBOOK)
3734
3835 static void
3936 virt_viewer_notebook_get_property (GObject *object, guint property_id,
6057 {
6158 GObjectClass *object_class = G_OBJECT_CLASS (klass);
6259
63 g_type_class_add_private (klass, sizeof (VirtViewerNotebookPrivate));
64
6560 object_class->get_property = virt_viewer_notebook_get_property;
6661 object_class->set_property = virt_viewer_notebook_set_property;
6762 }
7166 {
7267 VirtViewerNotebookPrivate *priv;
7368
74 self->priv = GET_PRIVATE(self);
69 self->priv = virt_viewer_notebook_get_instance_private(self);
7570 priv = self->priv;
7671
7772 priv->status = gtk_label_new("");
55 # define SECTION
66 #endif
77
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 = { {
99 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
1010 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1111 0x18, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00,
5656 0x68, 0x93, 0x00, 0x00, 0x76, 0xab, 0x00, 0x00,
5757 0x17, 0x53, 0x0e, 0x8b, 0x17, 0x00, 0x00, 0x00,
5858 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,
6060 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,
6363 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,
6666 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,
6969 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,
7272 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,
7575 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,
7878 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,
8181 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,
8484 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,
8787 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,
9090 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,
9393 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,
9696 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,
9999 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,
102102 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,
105105 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,
108108 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,
111111 0x76, 0x69, 0x72, 0x74, 0x2d, 0x76, 0x69, 0x65,
112112 0x77, 0x65, 0x72, 0x2e, 0x70, 0x6e, 0x67, 0x00,
113113 0xc1, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
54955495 0x28, 0x75, 0x75, 0x61, 0x79, 0x29, 0x76, 0x69,
54965496 0x72, 0x74, 0x2d, 0x76, 0x69, 0x65, 0x77, 0x65,
54975497 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,
54995499 0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65,
55005500 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x31,
55015501 0x2e, 0x30, 0x22, 0x20, 0x65, 0x6e, 0x63, 0x6f,
57335733 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
57345734 0x20, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
57355735 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,
57365745 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
57375746 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
57385747 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
61736182 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
61746183 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
61756184 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,
61766194 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
61776195 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
61786196 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
63936411 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
63946412 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
63956413 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,
63966757 0x6e, 0x75, 0x2d, 0x76, 0x69, 0x65, 0x77, 0x22,
63976758 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
63986759 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
65966957 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
65976958 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
65986959 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,
65996969 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
66006970 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
66016971 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
72657635 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22,
72667636 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6d, 0x65, 0x6e,
72677637 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,
72687646 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
72697647 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
72707648 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x72,
3333 #include "virt-viewer-util.h"
3434 #include "virt-viewer-session-spice.h"
3535 #include "virt-viewer-display-spice.h"
36 #include "virt-viewer-display-vte.h"
3637 #include "virt-viewer-auth.h"
3738
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
3942
4043 struct _VirtViewerSessionSpicePrivate {
4144 GtkWindow *main_window;
4952 guint pass_try;
5053 gboolean did_auto_conf;
5154 VirtViewerFileTransferDialog *file_transfer_dialog;
52
55 GError *disconnect_error;
56 #ifdef WITH_QMP_PORT
57 SpiceQmpPort *qmp;
58 #endif
5359 };
5460
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)
5662
5763 enum {
5864 PROP_0,
7480 static void virt_viewer_session_spice_channel_destroy(SpiceSession *s,
7581 SpiceChannel *channel,
7682 VirtViewerSession *session);
83 static void virt_viewer_session_spice_session_disconnected(SpiceSession *s,
84 VirtViewerSessionSpice *session);
7785 static void virt_viewer_session_spice_smartcard_insert(VirtViewerSession *session);
7886 static void virt_viewer_session_spice_smartcard_remove(VirtViewerSession *session);
7987 static gboolean virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self);
8088 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);
8190
8291 static void virt_viewer_session_spice_clear_displays(VirtViewerSessionSpice *self)
8392 {
151160 gtk_widget_destroy(GTK_WIDGET(spice->priv->file_transfer_dialog));
152161 spice->priv->file_transfer_dialog = NULL;
153162 }
163 g_clear_error(&spice->priv->disconnect_error);
154164
155165 G_OBJECT_CLASS(virt_viewer_session_spice_parent_class)->dispose(obj);
156166 }
257267 dclass->apply_monitor_geometry = virt_viewer_session_spice_apply_monitor_geometry;
258268 dclass->can_share_folder = virt_viewer_session_spice_can_share_folder;
259269 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;
262271
263272 g_object_class_install_property(oclass,
264273 PROP_SPICE_SESSION,
284293 static void
285294 virt_viewer_session_spice_init(VirtViewerSessionSpice *self G_GNUC_UNUSED)
286295 {
287 self->priv = VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(self);
296 self->priv = virt_viewer_session_spice_get_instance_private(self);
288297 }
289298
290299 static void
397406 G_CALLBACK(virt_viewer_session_spice_channel_new), self, 0);
398407 virt_viewer_signal_connect_object(self->priv->session, "channel-destroy",
399408 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);
400411
401412 usb_manager = spice_usb_device_manager_get(self->priv->session, NULL);
402413 if (usb_manager) {
454465
455466 g_object_add_weak_pointer(G_OBJECT(self), (gpointer*)&self);
456467
468 #ifdef WITH_QMP_PORT
469 g_clear_object(&self->priv->qmp);
470 #endif
457471 virt_viewer_session_spice_clear_displays(self);
458472
459473 if (self->priv->session) {
499513 g_return_if_fail(VIRT_VIEWER_IS_FILE(file));
500514 g_return_if_fail(SPICE_IS_SESSION(session));
501515
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);
505519 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 }
517538 }
518539
519540 if (virt_viewer_file_is_set(file, "username")) {
773794 virt_viewer_session_spice_channel_destroy(NULL, channel, session);
774795 break;
775796 default:
776 g_warning("unhandled spice main channel event: %d", event);
797 g_warning("unhandled spice main channel event: %u", event);
777798 break;
778799 }
779800
950971 }
951972
952973 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
9531171 virt_viewer_session_spice_channel_new(SpiceSession *s,
9541172 SpiceChannel *channel,
9551173 VirtViewerSession *session)
9561174 {
9571175 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
958 int id;
1176 int id, type;
9591177
9601178 g_return_if_fail(self != NULL);
9611179
9621180 virt_viewer_signal_connect_object(channel, "open-fd",
9631181 G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self, 0);
9641182
965 g_object_get(channel, "channel-id", &id, NULL);
1183 g_object_get(channel,
1184 "channel-id", &id,
1185 "channel-type", &type,
1186 NULL);
9661187
9671188 g_debug("New spice channel %p %s %d", channel, g_type_name(G_OBJECT_TYPE(channel)), id);
9681189
10091230 self->priv->usbredir_channel_count++;
10101231 if (spice_usb_device_manager_get(self->priv->session, NULL))
10111232 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);
10121240 }
10131241
10141242 self->priv->channel_count++;
10611289 displays = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free);
10621290
10631291 for (l = initial_displays; l != NULL; l = l->next) {
1064 GdkRectangle* rect = g_new0(GdkRectangle, 1);;
10651292 gint j = virt_viewer_app_get_initial_monitor_for_display(app, GPOINTER_TO_INT(l->data));
10661293 if (j == -1)
10671294 continue;
10681295
1296 GdkRectangle* rect = g_new0(GdkRectangle, 1);;
10691297 gdk_screen_get_monitor_geometry(screen, j, rect);
10701298 g_hash_table_insert(displays, l->data, rect);
10711299 }
10911319 }
10921320
10931321 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
10941330 virt_viewer_session_spice_channel_destroy(G_GNUC_UNUSED SpiceSession *s,
10951331 SpiceChannel *channel,
10961332 VirtViewerSession *session)
11151351 if (SPICE_IS_DISPLAY_CHANNEL(channel)) {
11161352 g_debug("zap display channel (#%d)", id);
11171353 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
11181365 }
11191366
11201367 if (SPICE_IS_PLAYBACK_CHANNEL(channel) && self->priv->audio) {
11281375 if (self->priv->usbredir_channel_count == 0)
11291376 virt_viewer_session_set_has_usbredir(session, FALSE);
11301377 }
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 }
11351384 }
11361385
11371386 VirtViewerSession *
3333 #include <glib/gi18n.h>
3434 #include <libxml/uri.h>
3535
36 G_DEFINE_TYPE(VirtViewerSessionVnc, virt_viewer_session_vnc, VIRT_VIEWER_TYPE_SESSION)
37
3836 struct _VirtViewerSessionVncPrivate {
3937 GtkWindow *main_window;
4038 /* XXX we should really just have a VncConnection */
4240 gboolean auth_dialog_cancelled;
4341 };
4442
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)
4644
4745 static void virt_viewer_session_vnc_close(VirtViewerSession* session);
4846 static gboolean virt_viewer_session_vnc_open_fd(VirtViewerSession* session, int fd);
8785 dclass->open_uri = virt_viewer_session_vnc_open_uri;
8886 dclass->channel_open_fd = virt_viewer_session_vnc_channel_open_fd;
8987 dclass->mime_type = virt_viewer_session_vnc_mime_type;
90
91 g_type_class_add_private(klass, sizeof(VirtViewerSessionVncPrivate));
9288 }
9389
9490 static void
9591 virt_viewer_session_vnc_init(VirtViewerSessionVnc *self G_GNUC_UNUSED)
9692 {
97 self->priv = VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(self);
93 self->priv = virt_viewer_session_vnc_get_instance_private(self);
9894 }
9995
10096 static void
158154 unsigned int authType,
159155 VirtViewerSession *session)
160156 {
161 gchar *msg = g_strdup_printf(_("Unsupported authentication type %d"),
157 gchar *msg = g_strdup_printf(_("Unsupported authentication type %u"),
162158 authType);
163159 g_signal_emit_by_name(session, "session-auth-unsupported", msg);
164160 g_free(msg);
272268 VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
273269 char *username = NULL, *password = NULL;
274270 gboolean wantPassword = FALSE, wantUsername = FALSE;
271 VirtViewerFile *file = NULL;
275272 int i;
276273
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);
278275
279276 for (i = 0 ; i < credList->n_values ; i++) {
280277 GValue *cred = g_value_array_get_nth(credList, i);
294291 }
295292 }
296293
297 VirtViewerFile *file = virt_viewer_session_get_file(VIRT_VIEWER_SESSION(self));
294 file = virt_viewer_session_get_file(VIRT_VIEWER_SESSION(self));
298295 if (file != NULL) {
299296 if (wantUsername) {
300297 if (virt_viewer_file_is_set(file, "username")) {
2828
2929 #include "virt-viewer-session.h"
3030 #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"
3432
3533 struct _VirtViewerSessionPrivate
3634 {
4543 gboolean share_folder_ro;
4644 };
4745
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)
4947
5048 enum {
5149 PROP_0,
258256 g_signal_new("session-connected",
259257 G_OBJECT_CLASS_TYPE(object_class),
260258 G_SIGNAL_RUN_FIRST,
261 G_STRUCT_OFFSET(VirtViewerSessionClass, session_connected),
259 0,
262260 NULL, NULL,
263261 g_cclosure_marshal_VOID__VOID,
264262 G_TYPE_NONE,
267265 g_signal_new("session-initialized",
268266 G_OBJECT_CLASS_TYPE(object_class),
269267 G_SIGNAL_RUN_FIRST,
270 G_STRUCT_OFFSET(VirtViewerSessionClass, session_initialized),
268 0,
271269 NULL, NULL,
272270 g_cclosure_marshal_VOID__VOID,
273271 G_TYPE_NONE,
276274 g_signal_new("session-disconnected",
277275 G_OBJECT_CLASS_TYPE(object_class),
278276 G_SIGNAL_RUN_FIRST,
279 G_STRUCT_OFFSET(VirtViewerSessionClass, session_disconnected),
277 0,
280278 NULL, NULL,
281279 g_cclosure_marshal_VOID__STRING,
282280 G_TYPE_NONE,
286284 g_signal_new("session-channel-open",
287285 G_OBJECT_CLASS_TYPE(object_class),
288286 G_SIGNAL_RUN_FIRST,
289 G_STRUCT_OFFSET(VirtViewerSessionClass, session_channel_open),
287 0,
290288 NULL, NULL,
291289 g_cclosure_marshal_VOID__OBJECT,
292290 G_TYPE_NONE,
296294 g_signal_new("session-auth-refused",
297295 G_OBJECT_CLASS_TYPE(object_class),
298296 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
299 G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_refused),
297 0,
300298 NULL,
301299 NULL,
302300 g_cclosure_marshal_VOID__STRING,
307305 g_signal_new("session-auth-unsupported",
308306 G_OBJECT_CLASS_TYPE(object_class),
309307 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
310 G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_unsupported),
308 0,
311309 NULL,
312310 NULL,
313311 g_cclosure_marshal_VOID__STRING,
318316 g_signal_new("session-usb-failed",
319317 G_OBJECT_CLASS_TYPE(object_class),
320318 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
321 G_STRUCT_OFFSET(VirtViewerSessionClass, session_usb_failed),
319 0,
322320 NULL,
323321 NULL,
324322 g_cclosure_marshal_VOID__STRING,
329327 g_signal_new("session-display-added",
330328 G_OBJECT_CLASS_TYPE(object_class),
331329 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
332 G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_added),
330 0,
333331 NULL,
334332 NULL,
335333 g_cclosure_marshal_VOID__OBJECT,
340338 g_signal_new("session-display-removed",
341339 G_OBJECT_CLASS_TYPE(object_class),
342340 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
343 G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_removed),
341 0,
344342 NULL,
345343 NULL,
346344 g_cclosure_marshal_VOID__OBJECT,
351349 g_signal_new("session-display-updated",
352350 G_OBJECT_CLASS_TYPE(object_class),
353351 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
354 G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_updated),
352 0,
355353 NULL,
356354 NULL,
357355 g_cclosure_marshal_VOID__VOID,
361359 g_signal_new("session-cut-text",
362360 G_OBJECT_CLASS_TYPE(object_class),
363361 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
364 G_STRUCT_OFFSET(VirtViewerSessionClass, session_cut_text),
362 0,
365363 NULL,
366364 NULL,
367365 g_cclosure_marshal_VOID__STRING,
372370 g_signal_new("session-bell",
373371 G_OBJECT_CLASS_TYPE(object_class),
374372 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
375 G_STRUCT_OFFSET(VirtViewerSessionClass, session_bell),
373 0,
376374 NULL,
377375 NULL,
378376 g_cclosure_marshal_VOID__VOID,
382380 g_signal_new("session-cancelled",
383381 G_OBJECT_CLASS_TYPE(object_class),
384382 G_SIGNAL_RUN_FIRST,
385 G_STRUCT_OFFSET(VirtViewerSessionClass, session_cancelled),
383 0,
386384 NULL, NULL,
387385 g_cclosure_marshal_VOID__VOID,
388386 G_TYPE_NONE,
389387 0);
390
391 g_type_class_add_private(class, sizeof(VirtViewerSessionPrivate));
392388 }
393389
394390 static void
395391 virt_viewer_session_init(VirtViewerSession *session)
396392 {
397 session->priv = VIRT_VIEWER_SESSION_GET_PRIVATE(session);
393 session->priv = virt_viewer_session_get_instance_private(session);
398394 }
399395
400396 static void
405401 gboolean all_fullscreen = TRUE;
406402 /* GHashTable<gint, GdkRectangle*> */
407403 GHashTable *monitors;
404 gint n_sized_monitors = 0;
408405 GList *l;
409406
410407 klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
415412
416413 for (l = self->priv->displays; l; l = l->next) {
417414 VirtViewerDisplay *d = VIRT_VIEWER_DISPLAY(l->data);
415
416 if (VIRT_VIEWER_IS_DISPLAY_VTE(d))
417 continue;
418
418419 guint nth = 0;
419420 GdkRectangle *rect = g_new0(GdkRectangle, 1);
420421
421422 g_object_get(d, "nth-display", &nth, NULL);
422423 virt_viewer_display_get_preferred_monitor_geometry(d, rect);
424 if (rect->width > 0 && rect->height > 0)
425 n_sized_monitors++;
423426
424427 if (virt_viewer_display_get_enabled(d) &&
425428 !virt_viewer_display_get_fullscreen(d))
427430 g_hash_table_insert(monitors, GINT_TO_POINTER(nth), rect);
428431 }
429432
433 if (n_sized_monitors == 0) {
434 goto cleanup;
435 }
436
430437 if (!all_fullscreen)
431438 virt_viewer_align_monitors_linear(monitors);
432439
433440 virt_viewer_shift_monitors_to_origin(monitors);
434441
435442 klass->apply_monitor_geometry(self, monitors);
443
444 cleanup:
436445 g_hash_table_unref(monitors);
437446 }
438447
676685 return klass->can_retry_auth ? klass->can_retry_auth(self) : FALSE;
677686 }
678687
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 }
679699 /*
680700 * Local variables:
681701 * c-indent-level: 4
5252
5353 typedef struct _VirtViewerSessionChannel VirtViewerSessionChannel;
5454
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
5563
5664 /* perhaps this become an interface, and be pushed in gtkvnc and spice? */
5765 struct _VirtViewerSession {
7482 void (* smartcard_remove) (VirtViewerSession* session);
7583 const gchar* (* mime_type) (VirtViewerSession* session);
7684
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);
9685 /* monitors = GHashTable<int, GdkRectangle*> */
9786 void (*apply_monitor_geometry)(VirtViewerSession *session, GHashTable* monitors);
9887 gboolean (*can_share_folder)(VirtViewerSession *session);
9988 gboolean (*can_retry_auth)(VirtViewerSession *session);
89 void (*vm_action)(VirtViewerSession *session, gint action);
10090 };
10191
10292 GType virt_viewer_session_get_type(void);
134124 gboolean virt_viewer_session_can_share_folder(VirtViewerSession *self);
135125 gboolean virt_viewer_session_can_retry_auth(VirtViewerSession *self);
136126
127 void virt_viewer_session_vm_action(VirtViewerSession *self, gint action);
128
137129 G_END_DECLS
138130
139131 #endif /* _VIRT_VIEWER_SESSION_H */
2424
2525 #include "virt-viewer-timed-revealer.h"
2626
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
3227 struct _VirtViewerTimedRevealerPrivate
3328 {
3429 gboolean fullscreen;
3631
3732 GtkWidget *revealer;
3833 };
34
35 G_DEFINE_TYPE_WITH_PRIVATE (VirtViewerTimedRevealer, virt_viewer_timed_revealer, GTK_TYPE_EVENT_BOX)
3936
4037 static void
4138 virt_viewer_timed_revealer_unregister_timeout(VirtViewerTimedRevealer *self)
123120 static void
124121 virt_viewer_timed_revealer_init(VirtViewerTimedRevealer *self)
125122 {
126 self->priv = VIRT_VIEWER_TIMED_REVEALER_GET_PRIVATE(self);
123 self->priv = virt_viewer_timed_revealer_get_instance_private(self);
127124 }
128125
129126 static void
147144 virt_viewer_timed_revealer_class_init(VirtViewerTimedRevealerClass *klass)
148145 {
149146 GObjectClass *object_class = G_OBJECT_CLASS(klass);
150
151 g_type_class_add_private (klass, sizeof (VirtViewerTimedRevealerPrivate));
152147
153148 object_class->dispose = virt_viewer_timed_revealer_dispose;
154149 }
4141 #include "virt-viewer-app.h"
4242 #include "virt-viewer-util.h"
4343 #include "virt-viewer-timed-revealer.h"
44 #include "virt-viewer-display-vte.h"
4445
4546 #include "remote-viewer-iso-list-dialog.h"
4647
5051 void virt_viewer_window_menu_view_zoom_out(GtkWidget *menu, VirtViewerWindow *self);
5152 void virt_viewer_window_menu_view_zoom_in(GtkWidget *menu, VirtViewerWindow *self);
5253 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);
5357 gboolean virt_viewer_window_delete(GtkWidget *src, void *dummy, VirtViewerWindow *self);
5458 void virt_viewer_window_menu_file_quit(GtkWidget *src, VirtViewerWindow *self);
5559 void virt_viewer_window_guest_details_response(GtkDialog *dialog, gint response_id, gpointer user_data);
7579 static void virt_viewer_window_get_minimal_dimensions(VirtViewerWindow *self, guint *width, guint *height);
7680 static gint virt_viewer_window_get_minimal_zoom_level(VirtViewerWindow *self);
7781
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
8382 enum {
8483 PROP_0,
8584 PROP_WINDOW,
116115 gboolean initial_zoom_set;
117116 };
118117
118 G_DEFINE_TYPE_WITH_PRIVATE (VirtViewerWindow, virt_viewer_window, G_TYPE_OBJECT)
119
119120 static void
120121 virt_viewer_window_get_property (GObject *object, guint property_id,
121122 GValue *value, GParamSpec *pspec)
218219 menu = GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send"));
219220 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu),
220221 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);
222248 }
223249
224250 static void
231257
232258 g_signal_connect(priv->app, "notify::enable-accel",
233259 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);
234264 rebuild_combo_menu(NULL, NULL, object);
235265 }
236266
238268 virt_viewer_window_class_init (VirtViewerWindowClass *klass)
239269 {
240270 GObjectClass *object_class = G_OBJECT_CLASS (klass);
241
242 g_type_class_add_private (klass, sizeof (VirtViewerWindowPrivate));
243271
244272 object_class->get_property = virt_viewer_window_get_property;
245273 object_class->set_property = virt_viewer_window_set_property;
301329 GtkWidget *vbox;
302330 GSList *accels;
303331
304 self->priv = GET_PRIVATE(self);
332 self->priv = virt_viewer_window_get_instance_private(self);
305333 priv = self->priv;
306334
307335 priv->fullscreen_monitor = -1;
311339 gtk_widget_show(GTK_WIDGET(priv->notebook));
312340
313341 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);
319342
320343 gtk_builder_connect_signals(priv->builder, self);
321344
385408 }
386409
387410 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
388441 virt_viewer_window_menu_view_zoom_out(GtkWidget *menu G_GNUC_UNUSED,
389442 VirtViewerWindow *self)
390443 {
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 }
393450 }
394451
395452 G_MODULE_EXPORT void
396453 virt_viewer_window_menu_view_zoom_in(GtkWidget *menu G_GNUC_UNUSED,
397454 VirtViewerWindow *self)
398455 {
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 }
401462 }
402463
403464 G_MODULE_EXPORT void
404465 virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu G_GNUC_UNUSED,
405466 VirtViewerWindow *self)
406467 {
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 }
408473 }
409474
410475 /* Kick GtkWindow to tell it to adjust to our new widget sizes */
529594 }
530595 virt_viewer_window_move_to_monitor(self);
531596
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 */
533610 }
534611
535612 #define MAX_KEY_COMBO 4
909986 }
910987 }
911988
912 static GHashTable *init_image_formats(void)
989 static GHashTable *init_image_formats(G_GNUC_UNUSED gpointer user_data)
913990 {
914991 GHashTable *format_map;
915992 GSList *formats = gdk_pixbuf_get_formats();
11301207 }
11311208 #endif
11321209
1133 void
1210 G_MODULE_EXPORT void
11341211 virt_viewer_window_menu_change_cd_activate(GtkWidget *menu G_GNUC_UNUSED,
11351212 VirtViewerWindow *self G_GNUC_UNUSED)
11361213 {
13441421 gtk_widget_set_sensitive(menu, sensitive);
13451422
13461423 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));
13481426
13491427 menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-view-zoom"));
13501428 gtk_widget_set_sensitive(menu, sensitive);
13511429
1352 menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-send"));
1430 menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-machine"));
13531431 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 }
13541442 }
13551443
13561444 static void
14311519 if (virt_viewer_display_get_enabled(display))
14321520 virt_viewer_window_desktop_resize(display, self);
14331521
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);
14381523 }
14391524 }
14401525
15211606
15221607 virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
15231608
1524 virt_viewer_window_queue_resize(self);
1609 if (!VIRT_VIEWER_IS_DISPLAY_VTE(priv->display)) {
1610 virt_viewer_window_queue_resize(self);
1611 }
15251612 }
15261613
15271614 gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self)
6767 guint reconnect_poll; /* source id */
6868 };
6969
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)
7371
7472 static gboolean virt_viewer_initial_connect(VirtViewerApp *self, GError **error);
7573 static gboolean virt_viewer_open_connection(VirtViewerApp *self, int *fd);
212210 VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass);
213211 GApplicationClass *g_app_class = G_APPLICATION_CLASS(klass);
214212
215 g_type_class_add_private (klass, sizeof (VirtViewerPrivate));
216
217213 object_class->dispose = virt_viewer_dispose;
218214
219215 app_class->initial_connect = virt_viewer_initial_connect;
228224 static void
229225 virt_viewer_init(VirtViewer *self)
230226 {
231 self->priv = GET_PRIVATE(self);
227 self->priv = virt_viewer_get_instance_private(self);
232228 self->priv->domain_event = -1;
233229 }
234230
257253 {
258254 VirtViewerPrivate *priv = self->priv;
259255
260 g_debug("reconnect_poll: %d", priv->reconnect_poll);
256 g_debug("reconnect_poll: %u", priv->reconnect_poll);
261257
262258 if (priv->reconnect_poll != 0)
263259 return;
270266 {
271267 VirtViewerPrivate *priv = self->priv;
272268
273 g_debug("reconnect_poll: %d", priv->reconnect_poll);
269 g_debug("reconnect_poll: %u", priv->reconnect_poll);
274270
275271 if (priv->reconnect_poll == 0)
276272 return;
874870 VirtViewerPrivate *priv = self->priv;
875871 char uuid_string[VIR_UUID_STRING_BUFLEN];
876872 const char *guest_name;
873 char *title;
877874 GError *err = NULL;
878875
879876 g_debug("initial connect");
914911 g_object_set(app, "guest-name", guest_name, NULL);
915912 }
916913
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
917920 virt_viewer_app_show_status(app, _("Checking guest domain status"));
918921 if (virDomainGetInfo(dom, &info) < 0) {
919922 g_set_error_literal(&err, VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED,
967970 int i;
968971 int ret = 0;
969972
970 g_debug("Got libvirt credential request for %d credential(s)", ncred);
973 g_debug("Got libvirt credential request for %u credential(s)", ncred);
971974
972975 for (i = 0 ; i < ncred ; i++) {
973976 switch (cred[i].type) {
10011004 }
10021005 }
10031006
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
10041013 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 };
10101014 switch (cred[i].type) {
10111015 case VIR_CRED_AUTHNAME:
10121016 case VIR_CRED_USERNAME:
88 BEGIN
99 VALUE "CompanyName", "virt-manager.org"
1010 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"
1313 VALUE "LegalCopyright", "Copyright (C) 2007-2013 Red Hat, Inc."
1414 VALUE "OriginalFilename", "virt-viewer.exe"
1515 VALUE "ProductName", "VirtViewer"
16 VALUE "ProductVersion", "7.0"
16 VALUE "ProductVersion", "8.0"
1717 END
1818 END
1919
0 # Makefile.in generated by automake 1.15.1 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
9393 @OS_WIN32_TRUE@am__append_1 = redirect-test
9494 subdir = tests
9595 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
101100 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
102101 $(ACLOCAL_M4)
103102 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
172171 am__v_at_1 =
173172 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
174173 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
176180 am__mv = mv -f
177181 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
178182 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
542546 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
543547 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
544548 RANLIB = @RANLIB@
549 REST_REQUIRED = @REST_REQUIRED@
545550 SED = @SED@
546551 SET_MAKE = @SET_MAKE@
547552 SHELL = @SHELL@
555560 UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
556561 USE_NLS = @USE_NLS@
557562 VERSION = @VERSION@
563 VTE_CFLAGS = @VTE_CFLAGS@
564 VTE_LIBS = @VTE_LIBS@
558565 WARN_CFLAGS = @WARN_CFLAGS@
559566 WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@
560567 WINDRES = @WINDRES@
678685 *config.status*) \
679686 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
680687 *) \
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);; \
683690 esac;
684691
685692 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
726733 distclean-compile:
727734 -rm -f *.tab.c
728735
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)
734747
735748 .c.o:
736749 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
948961 fi; \
949962 $$success || exit 1
950963
951 check-TESTS:
964 check-TESTS: $(check_PROGRAMS)
952965 @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
953966 @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
954967 @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
10191032 @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
10201033 @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
10211034
1022 distdir: $(DISTFILES)
1035 distdir: $(BUILT_SOURCES)
1036 $(MAKE) $(AM_MAKEFLAGS) distdir-am
1037
1038 distdir-am: $(DISTFILES)
10231039 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
10241040 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
10251041 list='$(DISTFILES)'; \
10941110 mostlyclean-am
10951111
10961112 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
10981118 -rm -f Makefile
10991119 distclean-am: clean-am distclean-compile distclean-generic \
11001120 distclean-tags
11401160 installcheck-am:
11411161
11421162 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
11441168 -rm -f Makefile
11451169 maintainer-clean-am: distclean-am maintainer-clean-generic
11461170
11611185
11621186 .MAKE: check-am install-am install-strip
11631187
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 \
11741198 maintainer-clean-generic mostlyclean mostlyclean-compile \
11751199 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
11761200 recheck tags tags-am uninstall uninstall-am
1515 %endif
1616
1717 Name: virt-viewer
18 Version: 7.0
19 Release: 1%{?dist}%{?extra_release}
18 Version: 8.0
19 Release: 1%{?dist}
2020 Summary: Virtual Machine Viewer
2121 Group: Applications/System
2222 License: GPLv2+
2323 URL: http://virt-manager.org/
2424 Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz
25 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
2625 Requires: openssh-clients
2726 Requires(post): %{_sbindir}/update-alternatives
2827 Requires(postun): %{_sbindir}/update-alternatives
3635 BuildRequires: libtool
3736 %endif
3837
39 BuildRequires: pkgconfig(glib-2.0) >= 2.38
38 BuildRequires: gcc
39 BuildRequires: pkgconfig(glib-2.0) >= 2.40
4040 BuildRequires: pkgconfig(gtk+-3.0) >= 3.12
4141 BuildRequires: pkgconfig(libvirt) >= 0.10.0
4242 BuildRequires: pkgconfig(libvirt-glib-1.0) >= 0.1.8
4949 BuildRequires: /usr/bin/pod2man
5050 BuildRequires: intltool
5151 %if %{with_govirt}
52 BuildRequires: pkgconfig(govirt-1.0) >= 0.3.2
52 BuildRequires: pkgconfig(govirt-1.0) >= 0.3.3
5353 %endif
5454
5555 %if 0%{?fedora} >= 20
9090 %__make install DESTDIR=$RPM_BUILD_ROOT
9191 %find_lang %{name}
9292
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 || :
11293
11394 %files -f %{name}.lang
114 %defattr(-,root,root,-)
11595 %doc README.md COPYING AUTHORS ChangeLog NEWS
11696 %{_bindir}/%{name}
11797 %{_bindir}/remote-viewer
1616
1717 Name: @PACKAGE@
1818 Version: @VERSION@
19 Release: 1%{?dist}%{?extra_release}
19 Release: 1%{?dist}
2020 Summary: Virtual Machine Viewer
2121 Group: Applications/System
2222 License: GPLv2+
2323 URL: http://virt-manager.org/
2424 Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz
25 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
2625 Requires: openssh-clients
2726 Requires(post): %{_sbindir}/update-alternatives
2827 Requires(postun): %{_sbindir}/update-alternatives
3635 BuildRequires: libtool
3736 %endif
3837
38 BuildRequires: gcc
3939 BuildRequires: pkgconfig(glib-2.0) >= @GLIB2_REQUIRED@
4040 BuildRequires: pkgconfig(gtk+-3.0) >= @GTK_REQUIRED@
4141 BuildRequires: pkgconfig(libvirt) >= @LIBVIRT_REQUIRED@
9090 %__make install DESTDIR=$RPM_BUILD_ROOT
9191 %find_lang %{name}
9292
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 || :
11293
11394 %files -f %{name}.lang
114 %defattr(-,root,root,-)
11595 %doc README.md COPYING AUTHORS ChangeLog NEWS
11696 %{_bindir}/%{name}
11797 %{_bindir}/remote-viewer