Import upstream version 9.0
Debian Janitor
2 years ago
10 | 10 | |
11 | 11 | With additional patches & translations from: |
12 | 12 | |
13 | Aleksei Nikiforov <darktemplar@basealt.ru> | |
14 | Andrea Bolognani <abologna@redhat.com> | |
15 | Ben Mathews <beniam@yahoo.com> | |
13 | 16 | Charles Arnold <carnold@suse.com> |
14 | 17 | Christophe Fergeau <cfergeau@redhat.com> |
15 | 18 | Christophe de Dinechin <cdupontd@redhat.com> |
19 | 22 | Doug Goldstein <cardoe@cardoe.com> |
20 | 23 | Eduardo Lima (Etrunko) <etrunko@redhat.com> |
21 | 24 | Fabiano Fidêncio <fidencio@redhat.com> |
25 | Francesco Giudici <fgiudici@redhat.com> | |
22 | 26 | Frediano Ziglio <fziglio@redhat.com> |
23 | 27 | Guannan Ren <gren@redhat.com> |
24 | 28 | Guido Günther <agx@sigxcpu.org> |
25 | 29 | Hans de Goede <hdegoede@redhat.com> |
26 | 30 | Jiri Denemark <Jiri.Denemark@gmail.com> |
27 | 31 | Jonathon Jongsma <jjongsma@redhat.com> |
32 | Julien ROPE <jrope@redhat.com> | |
33 | Julien Ropé <jrope@redhat.com> | |
28 | 34 | Ján Tomko <jtomko@redhat.com> |
35 | Kevin Pouget <kpouget@redhat.com> | |
29 | 36 | Lukas Venhoda <lvenhoda@redhat.com> |
30 | 37 | Lukáš Venhoda <lvenhoda@redhat.com> |
31 | 38 | Marc-André Lureau <marcandre.lureau@redhat.com> |
32 | 39 | Martin Kletzander <mkletzan@redhat.com> |
33 | 40 | Michal Privoznik <mprivozn@redhat.com> |
41 | Paul Donohue <virt-tools@PaulSD.com> | |
34 | 42 | Pavel Grunt <pgrunt@redhat.com> |
35 | 43 | Pavel Hrdina <phrdina@redhat.com> |
44 | Pavel Moseev <mars@altlinux.org> | |
36 | 45 | Pavel Raiskup <praiskup@redhat.com> |
46 | Qiu Wenbo <qiuwenbo@kylinos.com.cn> | |
37 | 47 | Rex Dieter <rdieter@math.unl.edu> |
38 | 48 | Richard W.M. Jones <rjones@redhat.com> |
39 | 49 | Ronnie Sahlberg <ronniesahlberg@gmail.com> |
0 | 2020-05-01 Daniel P. Berrangé <berrange@redhat.com> | |
1 | ||
2 | Update NEWS for 9.0 release | |
3 | ||
4 | 2020-04-09 Ján Tomko <jtomko@redhat.com> | |
5 | ||
6 | README: prefer https over http | |
7 | ||
8 | 2020-04-03 Daniel P. Berrangé <berrange@redhat.com> | |
9 | ||
10 | gitlab: introduce minimal CI job for checking DCO signoff | |
11 | ||
12 | docs: update to point users to gitlab.com project | |
13 | The project primary git repo has moved from pagure.io to | |
14 | gitlab.com/virt-viewer/virt-viewer. We want users to submit | |
15 | code contributions, bug reports and support questions to the | |
16 | gitlab project, not the mailing list, nor bugzilla, nor the | |
17 | virt-manager.org site. | |
18 | ||
19 | We're still using virt-manager.org for hosting downloads of | |
20 | source and pagure.io for MSIs, but we'll aim to change that | |
21 | too. | |
22 | ||
23 | 2020-04-03 Julien Ropé <jrope@redhat.com> | |
24 | ||
25 | Fix potential file descriptor leaks found by Coverity. | |
26 | The error code returned by virt_viewer_session_open_fd() and | |
27 | virt_viewer_session_channel_open_fd() were not checked. The file | |
28 | descriptor passed to them could then be left opened even if the function | |
29 | failed, causing a leak of resources. | |
30 | ||
31 | This was reported by a Coverity scan, logged under | |
32 | https://bugzilla.redhat.com/show_bug.cgi?id=1655792 | |
33 | ||
34 | Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | |
35 | ||
36 | 2020-02-19 Julien ROPE <jrope@redhat.com> | |
37 | ||
38 | remote-viewer: add a default extension to screenshot filenames | |
39 | When doing a screenshot, if the user provides a filename without a file | |
40 | extension, an error occurs because the image format could not be determined. | |
41 | This patch adds a .png extension to such filenames, so that there is a default | |
42 | file format for screenshots. | |
43 | ||
44 | Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1752514 | |
45 | ||
46 | Reviewed-by: Victor Toso <victortoso@redhat.com> | |
47 | ||
48 | 2020-02-07 Julien Ropé <jrope@redhat.com> | |
49 | ||
50 | Remember monitor mapping on close. | |
51 | When the application is stopped, if the windows are in fullscreen, their | |
52 | position on the client will be remembered. | |
53 | ||
54 | This change uses the existing option 'monitor-mapping' in the settings | |
55 | file to save the position and reuse it on next launch. | |
56 | ||
57 | This implements part of the requirement from | |
58 | https://bugzilla.redhat.com/show_bug.cgi?id=1179070 | |
59 | ||
60 | NOTE: this feature is effective only with GTK >= 3.22 | |
61 | ||
62 | Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | |
63 | ||
64 | 2020-01-17 Francesco Giudici <fgiudici@redhat.com> | |
65 | ||
66 | remote-viewer: add handler for SIGINT signal | |
67 | When remote-viewer is started from terminal, CTRL-C sends a SIGINT | |
68 | signal to the program causing immediate termination. On linux clients | |
69 | usb redirected devices are left without any kernel driver attached, | |
70 | causing them to appear as no more available to the host. | |
71 | Add a SIGINT handler to allow a clean exit, in particular to allow | |
72 | the kernel to attach back the host driver. | |
73 | The issue is present on linux only. | |
74 | ||
75 | To perform usb device redirection, virt-viewer leverages spice-gtk | |
76 | library, which in turn relies on usbredir library, which uses libusb. | |
77 | In order to take control of the usb device the auto-loaded kernel | |
78 | driver must be detached. This is achieved (in the very end) with | |
79 | libusb_detach_kernel_driver(). Then the device interfaces can be claimed | |
80 | with libusb_claim_interface() and get in control to the application. | |
81 | During normal application termination, the usb channel is teared down, | |
82 | performing a reset of the usb device and giving back the control of the | |
83 | device to the kernel (libusb_attach_kernel_driver()). | |
84 | If the application quits without doing this, the device interfaces will | |
85 | end up with no driver attached, making them not usable in the host | |
86 | system. | |
87 | ||
88 | Note that enabling libusb_set_auto_detach_kernel_driver() does not solve | |
89 | the issue, as this is just a convenient API from libusb: libusb will | |
90 | take care of detaching/attaching the driver to the interfaces of the usb | |
91 | device each time a call to libusb_release_interface() and | |
92 | libusb_claim_interface() is performed. An unexpected quit of the | |
93 | application will skip the libusb_release_interface() call too, leaving | |
94 | the interfaces without any driver attached. | |
95 | ||
96 | Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1713311 | |
97 | ||
98 | Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | |
99 | ||
100 | 2019-12-16 Daniel P. Berrangé <berrange@redhat.com> | |
101 | ||
102 | po: refresh translations from zanata | |
103 | ||
104 | 2019-10-11 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
105 | ||
106 | remote-viewer: Prefer ca-cert from display instead of proxy | |
107 | Since oVirt engine version 4.3.2.1, the API returns certificate data for | |
108 | display connection in the VM XML, so users do not need to specify it | |
109 | from the command line anymore. The certificate obtained from the XML | |
110 | gets precedence over the one from the command line, which is still kept | |
111 | to keep compatibility of older versions of oVirt. | |
112 | ||
113 | Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1402909 | |
114 | ||
115 | 2019-10-04 Victor Toso <me@victortoso.com> | |
116 | ||
117 | remote-viewer: fix free on dangling pointer | |
118 | On remote_viewer_session_connected() we are passing a dup of URI of | |
119 | connection and freeing it afterwards. Problem is, we don't disconnect | |
120 | from listening "session-connected" and on an eventual second emission | |
121 | of this signal, remote-viewer crashes as seen in the backtrace below. | |
122 | ||
123 | This can happen over switch-host migration message from | |
124 | SpiceMainChannel. | |
125 | ||
126 | A fix trying to use VirtViewerApp URI avoid the crash but introduces | |
127 | regression while running remote-viewer with ovirt so, keeping the | |
128 | changes to a minimum to avoid it, just use g_intern_string() for now. | |
129 | ||
130 | Found it while improving migrate.py from spice/tests (server): | |
131 | | Invalid free() / delete / delete[] / realloc() | |
132 | | at 0x4839A0C: free (vg_replace_malloc.c:540) | |
133 | | by 0x56EBD8C: g_free (in /usr/lib64/libglib-2.0.so.0.6000.6) | |
134 | | by 0x11DED0: remote_viewer_session_connected (remote-viewer.c:658) | |
135 | | by 0x564D741: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
136 | | by 0x56614F3: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
137 | | by 0x566A34D: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
138 | | by 0x566AF68: g_signal_emit_by_name (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
139 | | by 0x135E5D: virt_viewer_session_spice_main_channel_event (virt-viewer-session-spice.c:699) | |
140 | | by 0x564D741: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
141 | | by 0x56614F3: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
142 | | by 0x566A34D: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
143 | | by 0x53149E3: emit_main_context (gio-coroutine.c:198) | |
144 | | Address 0x18f1ecc0 is 0 bytes inside a block of size 23 free'd | |
145 | | at 0x4839A0C: free (vg_replace_malloc.c:540) | |
146 | | by 0x56EBD8C: g_free (in /usr/lib64/libglib-2.0.so.0.6000.6) | |
147 | | by 0x11DED0: remote_viewer_session_connected (remote-viewer.c:658) | |
148 | | by 0x564D741: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
149 | | by 0x56614F3: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
150 | | by 0x566A34D: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
151 | | by 0x566AF68: g_signal_emit_by_name (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
152 | | by 0x135E5D: virt_viewer_session_spice_main_channel_event (virt-viewer-session-spice.c:699) | |
153 | | by 0x564D741: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
154 | | by 0x56614F3: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
155 | | by 0x566A34D: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
156 | | by 0x53149E3: emit_main_context (gio-coroutine.c:198) | |
157 | | Block was alloc'd at | |
158 | | at 0x483880B: malloc (vg_replace_malloc.c:309) | |
159 | | by 0x56EBC98: g_malloc (in /usr/lib64/libglib-2.0.so.0.6000.6) | |
160 | | by 0x5705C43: g_strdup (in /usr/lib64/libglib-2.0.so.0.6000.6) | |
161 | | by 0x11EB80: remote_viewer_initial_connect (remote-viewer.c:696) | |
162 | | by 0x11EB80: remote_viewer_start (remote-viewer.c:790) | |
163 | | by 0x1250D3: virt_viewer_app_start (virt-viewer-app.c:1727) | |
164 | | by 0x127108: virt_viewer_app_on_application_startup (virt-viewer-app.c:1870) | |
165 | | by 0x564D741: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
166 | | by 0x5661638: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
167 | | by 0x566A34D: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
168 | | by 0x566A972: g_signal_emit (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
169 | | by 0x553ECA1: g_application_register (in /usr/lib64/libgio-2.0.so.0.6000.6) | |
170 | | by 0x553F41D: g_application_run (in /usr/lib64/libgio-2.0.so.0.6000.6) | |
171 | ||
172 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
173 | ||
174 | 2019-08-30 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
175 | ||
176 | ovirt-foreign-menu: Plug memory leak | |
177 | Error caught by valgrind, the OvirtCollection object created in function | |
178 | ovirt_foreign_menu_fetch_vm_async() was never freed. | |
179 | ||
180 | 433 (40 direct, 393 indirect) bytes in 1 blocks are definitely lost in loss record 16,708 of 17,677 | |
181 | at 0x5868FDF: g_type_create_instance (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
182 | by 0x584B42C: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
183 | by 0x584D347: g_object_new_valist (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
184 | by 0x584D69C: g_object_new (in /usr/lib64/libgobject-2.0.so.0.6000.6) | |
185 | by 0x558E823: ovirt_collection_new (ovirt-collection.c:304) | |
186 | by 0x558E98C: ovirt_sub_collection_new_from_resource_search (ovirt-collection.c:375) | |
187 | by 0x42D510: ovirt_foreign_menu_fetch_vm_async (ovirt-foreign-menu.c:994) | |
188 | by 0x42D510: ovirt_foreign_menu_next_async_step (ovirt-foreign-menu.c:316) | |
189 | by 0x42D70D: api_fetched_cb (ovirt-foreign-menu.c:1025) | |
190 | by 0x570BC19: ??? (in /usr/lib64/libgio-2.0.so.0.6000.6) | |
191 | by 0x570C7EC: ??? (in /usr/lib64/libgio-2.0.so.0.6000.6) | |
192 | by 0x559005D: call_async_cb (ovirt-proxy.c:279) | |
193 | by 0x55B5A07: ??? (in /usr/lib64/librest-0.7.so.0.0.0) | |
194 | ||
195 | Acked-by: Victor Toso <victortoso@redhat.com> | |
196 | ||
197 | 2019-08-26 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
198 | ||
199 | ovirt-foreign-menu: Factor out code to set file collection | |
200 | Acked-by: Victor Toso <victortoso@redhat.com> | |
201 | ||
202 | 2019-08-21 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
203 | ||
204 | ovirt-foreign-menu: Only set domain_valid once | |
205 | In the case of having a valid storage domain without any ISO files, this | |
206 | variable can be reset to FALSE again in the next iteration of the loop, | |
207 | resulting in a misleading error message presented to the user. | |
208 | ||
209 | Acked-by: Victor Toso <victortoso@redhat.com> | |
210 | ||
211 | 2019-08-15 Fabiano Fidêncio <fidencio@redhat.com> | |
212 | ||
213 | ovirt-foreign-menu: Fix warnings on Rawhide | |
214 | gmaovirt-foreign-menu.c: In function 'storage_domains_fetched_cb': | |
215 | ovirt-foreign-menu.c:721:9: error: format not a string literal and no format arguments [-Werror=format-security] | |
216 | 721 | g_debug(msg); | |
217 | | ^~~~~~~ | |
218 | ovirt-foreign-menu.c:722:9: error: format not a string literal and no format arguments [-Werror=format-security] | |
219 | 722 | g_task_return_new_error(task, OVIRT_ERROR, OVIRT_ERROR_FAILED, msg); | |
220 | | ^~~~~~~~~~~~~~~~~~~~~~~ | |
221 | cc1: some warnings being treated as errors | |
222 | gmake[3]: *** [Makefile:963: libvirt_viewer_la-ovirt-foreign-menu.lo] Error 1 | |
223 | gmake[2]: *** [Makefile:647: all] Error 2 | |
224 | gmake[1]: *** [Makefile:482: all-recursive] Error 1 | |
225 | make: *** [Makefile:410: all] Error 2 | |
226 | error: Bad exit status from /var/tmp/rpm-tmp.f14Lmj (%build) | |
227 | ||
228 | Errors have been caught by https://ci.centos.org/job/virt-viewer-rpm/systems=libvirt-fedora-rawhide/589/ | |
229 | ||
230 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
231 | ||
232 | 2019-08-12 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
233 | ||
234 | ovirt-foreign-menu: Fix endpoint for storage domains query | |
235 | Instead of fetching toplevel REST API query, we use the one relative | |
236 | from the data center, which returns more detailed information, | |
237 | especially the status of the storage domain. | |
238 | ||
239 | This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1427467 | |
240 | ||
241 | Acked-by: Victor Toso <victortoso@redhat.com> | |
242 | ||
243 | 2019-08-08 Kevin Pouget <kpouget@redhat.com> | |
244 | ||
245 | virt-viewer-file-transfer-dialog: improve error message | |
246 | This patch improves the error shown to the user when a file transfer | |
247 | fails. | |
248 | ||
249 | The previous behavior was to create a simple message dialog box, with | |
250 | the error description and the full list of the files that failed to be | |
251 | transferred. When the list of files was long, the dialog box would | |
252 | grow bigger than the screen. | |
253 | ||
254 | Now, the file list is inserted inside a scrollable widget, whose | |
255 | height is limited to 170px. | |
256 | ||
257 | NB: these two calls would be more adapted, but they require GTK >= | |
258 | 3.22: | |
259 | ||
260 | > gtk_scrolled_window_set_max_content_height(GTK_SCROLLED_WINDOW(scrolled_window), 170); | |
261 | > gtk_scrolled_window_set_propagate_natural_height(GTK_SCROLLED_WINDOW(scrolled_window), TRUE); | |
262 | ||
263 | Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1496356 | |
264 | ||
265 | Acked-by: Victor Toso <victortoso@redhat.com> | |
266 | ||
267 | 2019-06-19 Michal Privoznik <mprivozn@redhat.com> | |
268 | ||
269 | Introduce bash completion | |
270 | With this change one can get list of domains on the command line: | |
271 | ||
272 | $ virt-viewer -c qemu:///system <TAB><TAB> | |
273 | dom1 dom2 ... domN | |
274 | ||
275 | The list of domains is fetched using virsh, hence the dependency | |
276 | on libvirt-client recorded in the spec file. I think it's fair | |
277 | to assume that Linux hosts with virt-viewer will have virsh | |
278 | available too. If they don't, nothing breaks and no error message | |
279 | is printed. | |
280 | ||
281 | The completer script is inspired by libvirt. | |
282 | ||
283 | Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com> | |
284 | Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com> | |
285 | ||
286 | 2019-05-31 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
287 | ||
288 | configure: Fix check for govirt functions | |
289 | Use saved CFLAGS and LIBS to avoid errors in the check programs. | |
290 | ||
291 | Acked-by: Victor Toso <victortoso@redhat.com> | |
292 | ||
293 | 2019-05-28 Pavel Moseev <mars@altlinux.org> | |
294 | ||
295 | virt-viewer add translatable string | |
296 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
297 | ||
298 | 2019-04-16 Jonathon Jongsma <jjongsma@redhat.com> | |
299 | ||
300 | Fix a regression when initial connection fails | |
301 | Due to changes in commit 65ef66e4, when the initial connection fails, | |
302 | virt-viewer just sat quietly and didn't indicate what was wrong. It also | |
303 | did not exit as it did before. This is because we were using | |
304 | virt_viewer_session_spice_channel_destroy() incorrectly. This function | |
305 | was intended to be a callback that is called to clean up the VV session | |
306 | when the SpiceSession tells us that a channel has been destroyed. It | |
307 | does not actually destroy the channel, it only cleans up references to | |
308 | that channel within virt-viewer. After calling this function, the | |
309 | channel is not affected in any way. If the channel object was valid | |
310 | before calling the function, it will be valid and unchanged after | |
311 | calling the function as well. | |
312 | ||
313 | The problem is that before commit 65ef66e4, this function | |
314 | (_channel_destroy()) also had a side-effect of emitting a signal that | |
315 | made us think that the SpiceSession was disconnected when it was not. | |
316 | The application responded to this signal by exiting even though the | |
317 | session was not properly disconnected and cleaned up. | |
318 | ||
319 | We now no longer exit the application until the SpiceSession is properly | |
320 | disconnected and cleaned up. So we need to make sure that this happens | |
321 | when our initial connection fails. Therefore, when the main channel | |
322 | receives an error channel-event, we should not call | |
323 | virt_viewer_session_spice_channel_destroy(). This function should only | |
324 | be called when a channel has actually been destroyed, and the channel is | |
325 | not destroyed at this point. We should instead explicitly disconnect | |
326 | the session, which will result in the channels being destroyed properly. | |
327 | After the session destroys all of the channels, the 'channel-destroy' signal | |
328 | will be emitted by SpiceSession, so the _channel_destroy() function will | |
329 | eventually get called by the signal handler. | |
330 | ||
331 | To make the proper use of the function more obvious, I also changed the | |
332 | function name from _channel_destroy() to _channel_destroyed() and added | |
333 | a comment. | |
334 | ||
335 | Fixes: rhbz#1666869 | |
336 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> | |
337 | ||
338 | 2019-03-15 Christophe Fergeau <cfergeau@redhat.com> | |
339 | ||
340 | Mark PrintScreen as translatable | |
341 | It's for example ImprÉcran on French keyboards. | |
342 | ||
343 | ||
344 | https://bugzilla.redhat.com/show_bug.cgi?id=1510411 | |
345 | Fabiano Fidêncio <fidencio@redhat.com> | |
346 | ||
347 | 2019-03-12 Daniel P. Berrangé <berrange@redhat.com> | |
348 | ||
349 | po: refresh translations from zanata | |
350 | ||
351 | po: minimize uk ur vi wba yo zh_CN zh_HK zh_TW zu | |
352 | ||
353 | po: minimize sq sr@latin sr sv ta te tg th tr tw | |
354 | ||
355 | po: minimize or pa pl pt_BR pt ro ru si sk sl | |
356 | ||
357 | po: minimize mn mr ms nb nds ne nl nn nso | |
358 | ||
359 | po: minimize kw_GB kw@kkcor kw kw@uccor ky lt lv mai mk ml | |
360 | ||
361 | po: minimize id ilo is it ja ka kk km kn ko | |
362 | ||
363 | po: minimize fr gl gu he hi hr hu ia | |
364 | ||
365 | po: minimize de_CH de el en_GB eo es et eu fa fi | |
366 | ||
367 | po: minimize bn_IN bn bo br brx bs ca cs cy da | |
368 | ||
369 | po: minimize af am anp ar as ast bal be bg | |
370 | ||
371 | po: minimize & canonicalize translations stored in git | |
372 | Similar to the virt-viewer.pot, .po files contain line numbers and file | |
373 | names identifying where in the source a translatable string comes from. | |
374 | The source locations in the .po files are thrown away and replaced with | |
375 | content from the virt-viewer.pot whenever msgmerge is run, so this is not | |
376 | precious information that needs to be stored in git. | |
377 | ||
378 | When msgmerge processes a .po file, it will add in any msgids from the | |
379 | virt-viewer.pot that were not already present. Thus, if a particular msgid | |
380 | currently has no translation, it can be considered redundant and again | |
381 | does not need storing in git. | |
382 | ||
383 | When msgmerge processes a .po file and can't find an exact existing | |
384 | translation match, it will try todo fuzzy matching instead, marking such | |
385 | entries with a "# fuzzy" comment to alert the translator to take a | |
386 | look and either discard, edit or accept the match. Looking at the | |
387 | existing fuzzy matches in .po files shows that the quality is awful, | |
388 | with many having a completely different set of printf format specifiers | |
389 | between the msgid and fuzzy msgstr entry. Fortunately when msgfmt | |
390 | generates the .gmo, the fuzzy entries are all ignored anyway. The fuzzy | |
391 | entries could be useful to translators if they were working on the .po | |
392 | files directly from git, but Virt-Viewer outsourced translation to the | |
393 | Fedora Zanata system, so keeping fuzzy matches in git is not much help. | |
394 | ||
395 | Finally, by default msgids are sorted based on source location. Thus, if | |
396 | a bit of code with translatable text is moved from one file to another, | |
397 | it may shift around in the .po file, despite the msgid not itself changing. | |
398 | If the msgids were sorted alphabetically, the .po files would have | |
399 | stable ordering when code is refactored. | |
400 | ||
401 | This patch takes advantage of the above observations to canonicalize | |
402 | and minimize the content stored for .po files in git. Instead of storing | |
403 | the real .po files, we now store .mini.po files. | |
404 | ||
405 | The .mini.po files are the same file format as .po files, but have no | |
406 | source location comments, are sorted alphabetically, and all fuzzy | |
407 | msgstrs and msgids with no translation are discarded. This cuts the size | |
408 | of content in the po directory. | |
409 | ||
410 | Users working from a virt-viewer git checkout who need the full .po files | |
411 | can run "make update-po", which merges the virt-viewer.pot and .mini.po | |
412 | file to create a .po file containing all the content previously stored | |
413 | in git. | |
414 | ||
415 | Conversely if a full .po file has been modified, for example, by | |
416 | downloading new content from Zanata, the .mini.po files can be updated | |
417 | by running "make update-mini-po". The resulting diffs of the .mini.po | |
418 | file will clearly show the changed translations without any of the noise | |
419 | that previously obscured content. Being able to see content changes | |
420 | clearly actually identified a bug in the zanata python client where it | |
421 | was adding bogus "fuzzy" annotations to many messages: | |
422 | ||
423 | https://bugzilla.redhat.com/show_bug.cgi?id=1564497 | |
424 | ||
425 | Users working from virt-viewer releases should not see any difference in | |
426 | behaviour, since the tarballs only contain the full .po files, not the | |
427 | .mini.po files. | |
428 | ||
429 | As an added benefit, generating tarballs with "make dist", will no | |
430 | longer cause creation of dirty files in git, since it won't touch the | |
431 | .mini.po files, only the .po files which are no longer kept in git. | |
432 | ||
433 | The languages are minimized in the following commit since it is a | |
434 | large mechanical process. | |
435 | ||
436 | po: add rules for integration with zanata | |
437 | Add rules to handle pushing virt-viewer.pot to zanata, and refreshing .po | |
438 | files with new content from zanata. | |
439 | ||
440 | po: remove language list from zanata configuration | |
441 | The <locales> element in zanata.xml is no longer relevant as this info | |
442 | is recorded server side. | |
443 | ||
444 | po: provide custom make rules for po file management | |
445 | Historically we have relied on intltool to install a standard | |
446 | po/Makefile.in.in which has very limited scope for customization. | |
447 | intltool is deprecated in favour of standard gettextize tools, | |
448 | but these share the same disadvantages. | |
449 | ||
450 | Writing make rules for po file management is no more difficult | |
451 | than any other rules virt-viewer has, so stop using intltool | |
452 | and don't use gettextize ether. | |
453 | ||
454 | po: fix syntax error in plural forms for lt language | |
455 | ||
456 | 2019-03-07 Aleksei Nikiforov <darktemplar@basealt.ru> | |
457 | ||
458 | remote-viewer: Allow toggling shared clipboard | |
459 | Message-Id: <20190304143712.27989-1-darktemplar@basealt.ru> | |
460 | ||
461 | 2019-03-04 Daniel P. Berrangé <berrange@redhat.com> | |
462 | ||
463 | Add a git-publish configuration file | |
464 | ||
465 | 2019-03-01 Daniel P. Berrangé <berrange@redhat.com> | |
466 | ||
467 | rpm: remove obsolete Group tag purged from Fedora RPMs | |
468 | ||
469 | Post release verson bump to 9.0 | |
470 | ||
471 | Update NEWS for 8.0 release | |
472 | ||
473 | rpm: use the mingw hicolor icon theme not native | |
474 | ||
475 | Add glib2-devel for mingw build | |
476 | The native glib2-devel package is needed for mingw builds in order to | |
477 | get the glib-compile-schemas binary. | |
478 | ||
479 | 2019-02-22 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
480 | ||
481 | iso-dialog: Move type definitions from header to source file | |
482 | There is no reason for this object to define a private structure, so it | |
483 | is fine to make everything private to the dialog itself. | |
484 | ||
485 | Update usage of GObject private structures | |
486 | New functions and macros have been added in glib 2.38 to better handle | |
487 | this case. | |
488 | ||
489 | https://gitlab.gnome.org/GNOME/glib/blob/c8de2b11bbbf5705ee20bf68d0c11e455b441312/NEWS | |
490 | ||
491 | The old method is being deprecated as of version 2.58. | |
492 | ||
493 | https://gitlab.gnome.org/GNOME/glib/merge_requests/7/commits | |
494 | ||
495 | 2019-02-19 Daniel P. Berrangé <berrange@redhat.com> | |
496 | ||
497 | msi: record full build environment in MSI installer | |
498 | For proper compliance with the GPL and other licenses we need to be | |
499 | clear about exactly what toolchain and dependent packages we used in | |
500 | order to build the MSI installer we distribute. | |
501 | ||
502 | Historically we've done this by including a "deps.txt" file which | |
503 | provides a list of all the mingw{32,64}-* RPMs on the host system. | |
504 | ||
505 | This is not sufficient information, however, because the build system | |
506 | will in fact use various native packages too from the toolchain too, | |
507 | notably including any program run by "configure" which covers various | |
508 | shell utilities, and pkg-config, and then of course make & msitools | |
509 | itself. | |
510 | ||
511 | Rather than try to figure out which subset of host RPMs are used, | |
512 | just list every single host RPM that is installed. | |
513 | ||
514 | A key implication of this is that formal release builds should always | |
515 | be done in a pristine build root populated with the minimal content | |
516 | required for the build. | |
517 | ||
518 | Declare VirtViewerFile variable at start of method | |
519 | virt_viewer_session_vnc_auth_credential uses gotos which jump over the | |
520 | declaration of 'file', meaning its contents are uninitialized in the | |
521 | jump target. | |
522 | ||
523 | Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> | |
524 | ||
525 | Fix prototype of function with no arguments | |
526 | Modern C standard requires the function to be "void" | |
527 | ||
528 | Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> | |
529 | ||
530 | Fix signed/unsigned mixup in format args | |
531 | Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> | |
532 | ||
533 | 2019-02-13 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
534 | ||
535 | window: Use proper define from glib for ignoring deprecated warning | |
536 | Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | |
537 | ||
538 | 2019-02-12 Daniel P. Berrangé <berrange@redhat.com> | |
539 | ||
540 | Disable deprecation warnings for gtk_window_fullscreen_on_monitor | |
541 | We use GLIB_VERSION_MAX_ALLOWED to prevent use of functions from | |
542 | GTK >= 3.12. When we do conditional compilation based on a GTK | |
543 | version check, we must thus suppress the warning: | |
544 | ||
545 | CC libvirt_viewer_la-virt-viewer-window.lo | |
546 | ../../src/virt-viewer-window.c: In function 'virt_viewer_window_enter_fullscreen': | |
547 | ../../src/virt-viewer-window.c:608:9: error: 'gtk_window_fullscreen_on_monitor' is deprecated: Not available before 3.18 [-Werror=deprecated-declarations] | |
548 | gtk_window_fullscreen_on_monitor(GTK_WINDOW(priv->window), | |
549 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
550 | In file included from /usr/include/gtk-3.0/gtk/gtkdialog.h:32, | |
551 | from /usr/include/gtk-3.0/gtk/gtkaboutdialog.h:30, | |
552 | from /usr/include/gtk-3.0/gtk/gtk.h:31, | |
553 | from ../../src/virt-viewer-window.c:28: | |
554 | /usr/include/gtk-3.0/gtk/gtkwindow.h:391:10: note: declared here | |
555 | void gtk_window_fullscreen_on_monitor(GtkWindow *window, | |
556 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
557 | cc1: all warnings being treated as errors | |
558 | ||
559 | 2019-02-04 Marc-André Lureau <marcandre.lureau@redhat.com> | |
560 | ||
561 | build-sys: lower spice-gtk requirement to 0.35 again | |
562 | Compile out QMP channel support if spice-gtk version < 0.36. | |
563 | ||
564 | (note: I didn't bother adding configure switch to enable it | |
565 | explicitly, this could be added later if necessary) | |
566 | ||
567 | Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | |
568 | ||
569 | 2019-02-01 Paul Donohue <virt-tools@PaulSD.com> | |
570 | ||
571 | Report gtk_accel_map_change_entry() failures | |
572 | Message-Id: <1533340753-24176-2-git-send-email-virt-tools@PaulSD.com> | |
573 | Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> | |
574 | ||
575 | 2019-02-01 Marc-André Lureau <marcandre.lureau@redhat.com> | |
576 | ||
577 | spice: hook into QMP port | |
578 | If the "org.qemu.monitor.qmp.0" port is available: | |
579 | - enable the VM UI | |
580 | - get and follow the VM state | |
581 | - send the requested VM actions | |
582 | ||
583 | This requires spice-gtk version 0.36 with SpiceQmpPort helper. | |
584 | ||
585 | Acked-by: Victor Toso <victortoso@redhat.com> | |
586 | ||
587 | spice: hook into port channel to create VTE terminals | |
588 | QEMU defines a few Spice port channel names in | |
589 | docs/spice-port-fqdn.txt that can be interacted with a terminal. | |
590 | ||
591 | Create VirtViewerDisplayVte display for all known terminal channel, | |
592 | and redirect read/write signals. | |
593 | ||
594 | Note that if VTE support is disabled, or if the VTE console isn't | |
595 | shown, spice-gtk will still process those port channels (discarding | |
596 | the read if VTE is disabled). | |
597 | ||
598 | Acked-by: Victor Toso <victortoso@redhat.com> | |
599 | ||
600 | session: do not take VTE display into account for geometry changes | |
601 | Acked-by: Victor Toso <victortoso@redhat.com> | |
602 | ||
603 | 2019-01-28 Jonathon Jongsma <jjongsma@redhat.com> | |
604 | ||
605 | Fix regression when showing disconnect error | |
606 | Commit 65ef66e42 introduced a regression due to lack of type-safety on | |
607 | signals. We mistakenly passed a GError rather than a string error | |
608 | message to the signal. | |
609 | ||
610 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
611 | ||
612 | 2019-01-18 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
613 | ||
614 | Add missing G_MODULE_EXPORT to signal handler | |
615 | Fixes the Windows case where the dialog fails to show with the following | |
616 | message: | |
617 | ||
618 | warning: "Could not find signal handler 'virt_viewer_window_menu_change_cd_activate'" | |
619 | ||
620 | 2018-12-21 Daniel P. Berrangé <berrange@redhat.com> | |
621 | ||
622 | Add src/virt-viewer-display-vte.c to POTFILES | |
623 | ||
624 | 2018-12-21 Marc-André Lureau <marcandre.lureau@redhat.com> | |
625 | ||
626 | app: add "vm-running" property | |
627 | Add "vm-running" property and modify "menu-vm-pause" check button | |
628 | state when the running state changes. | |
629 | ||
630 | Acked-by: Victor Toso <victortoso@redhat.com> | |
631 | ||
632 | app: add "machine" UI | |
633 | Add a new "Machine" menu, which allows to Pause/Reset/Power Down a VM. | |
634 | ||
635 | The menu is only visible if "vm-ui" app property is set. | |
636 | ||
637 | When the application quits, it will also send a quit action to the VM. | |
638 | ||
639 | This is a similar behaviour/UI as qemu -display gtk. | |
640 | ||
641 | Acked-by: Victor Toso <victortoso@redhat.com> | |
642 | ||
643 | app: create a window for VTE displays | |
644 | virt_viewer_app_display_added() now handles VTE displays. They should | |
645 | be skipped for monitor configuration, and they don't emit "show-hint". | |
646 | ||
647 | (a VTE display has a monitor nth == -1, which is now a valid value) | |
648 | ||
649 | The associated window will be hidden when virt-viewer is started. | |
650 | ||
651 | Acked-by: Victor Toso <victortoso@redhat.com> | |
652 | ||
653 | spice: add unix-path in .vv file support | |
654 | This will allow to connect to a Spice server using a unix socket path, | |
655 | for example: | |
656 | ||
657 | [virt-viewer] | |
658 | type=spice | |
659 | unix-path=/var/run/user/1000/qemu/test/spice.sock | |
660 | ||
661 | Reviewed-by: Christophe Fergeau <cfergeau@redhat.com> | |
662 | ||
663 | display: allow display without associated monitor number | |
664 | The VTE display will have monitor id -1. | |
665 | ||
666 | Eventually, having a base "console" class without monitor id could | |
667 | avoid this allowance. | |
668 | ||
669 | Acked-by: Victor Toso <victortoso@redhat.com> | |
670 | ||
671 | app: append VTE consoles to display submenu | |
672 | Acked-by: Victor Toso <victortoso@redhat.com> | |
673 | ||
674 | app: set subtitle using VTE name | |
675 | Currently, subtitle indicate the monitor number, ex: "Fedora (1)". | |
676 | ||
677 | Custom subtitle use %d to place the monitor number. | |
678 | ||
679 | Let's make this placeholder more generic to place the name of the | |
680 | console, ex: "Fedora (Serial)". | |
681 | ||
682 | Acked-by: Victor Toso <victortoso@redhat.com> | |
683 | ||
684 | session: skip monitor changes if there is no sized monitors | |
685 | spice-gtk discards configurations without any sized monitors. | |
686 | ||
687 | Also shuts extra warnings when shifting the monitors. | |
688 | ||
689 | Acked-by: Victor Toso <victortoso@redhat.com> | |
690 | ||
691 | display: ignore display that do not have toplevel window | |
692 | virt_viewer_display_get_preferred_monitor_geometry() may be called | |
693 | during application initialization (when the VTE console is being | |
694 | shown, virt_viewer_session_update_displays_geometry() is called when | |
695 | the visibility menu item is toggled). But the other displays may not | |
696 | yet be associated with a window, ignore them. | |
697 | ||
698 | Acked-by: Victor Toso <victortoso@redhat.com> | |
699 | ||
700 | window/zoom: deal with VTE display differently | |
701 | VTE display doesn't use the desktop / window aspect ratio, let's just | |
702 | call directly the functions handling zoom. | |
703 | ||
704 | Acked-by: Victor Toso <victortoso@redhat.com> | |
705 | ||
706 | Add a VirtViewerDisplayVte display kind | |
707 | This is not a graphical display, so the application will have to deal | |
708 | with it with care. | |
709 | ||
710 | You may argue that we need a large refactoring to introduce a more | |
711 | generic "console" object, that could be either graphical or textual. | |
712 | For now, this does work well enough for me. | |
713 | ||
714 | Acked-by: Victor Toso <victortoso@redhat.com> | |
715 | ||
716 | build-sys: check for VTE library | |
717 | Acked-by: Victor Toso <victortoso@redhat.com> | |
718 | ||
719 | window: set sensitivity based on display capability | |
720 | A following patch is adding a new display (VTE) that won't have the | |
721 | send_key() or screenshot() callbacks. Activating those menu/actions | |
722 | would lead to nothing or a crash. I chose to keep the UI consistent | |
723 | for all display, but disable the menu sensitivity. | |
724 | ||
725 | Acked-by: Victor Toso <victortoso@redhat.com> | |
726 | ||
727 | window: do not reset sensitivity of menu-send in rebuild | |
728 | The sensitivy of "menu-send" is getting more complex in the following | |
729 | patch. Let's have the logic in a single place, | |
730 | virt_viewer_window_set_menus_sensitive(). | |
731 | ||
732 | rebuild_combo_menu() is called in 2 cases: | |
733 | ||
734 | 1. notify::enable-accel: there is no need to update the sensitivy of | |
735 | "menu-send" | |
736 | ||
737 | 2. on construction: default to false since display == NULL. It will be | |
738 | later updated when virt_viewer_window_set_menus_sensitive(). The | |
739 | default sensitivity is covered by previous .ui patch change. | |
740 | ||
741 | Acked-by: Victor Toso <victortoso@redhat.com> | |
742 | ||
743 | 2018-12-06 Christophe Fergeau <cfergeau@redhat.com> | |
744 | ||
745 | ovirt: Fix initial connection | |
746 | After commit df42f78d46 "remote-viewer: factor our | |
747 | remote_viewer_initial_connect()", the initial connection code only gets | |
748 | run in the !ovirt case. When ovirt is in use, the initial connection | |
749 | never happens, meaning all we get when using ovirt:// is a blank | |
750 | virt-viewer window. | |
751 | ||
752 | This commit fixes that by moving creation of the ovirt session to | |
753 | remote_viewer_initial_connect, and unconditionnally calling the | |
754 | remote_viewer_initial_connect rather than only doing it in the !ovirt | |
755 | case. | |
756 | ||
757 | https://bugzilla.redhat.com/show_bug.cgi?id=1655537 | |
758 | ||
759 | 2018-12-05 Ben Mathews <beniam@yahoo.com> | |
760 | ||
761 | Set window title to VM name | |
762 | The attached patch address an issue with virt-view not setting the | |
763 | titlebar text to be the title of the VM (previously discussed on: | |
764 | https://www.redhat.com/archives/virt-tools-list/2018-September/msg00064.html). | |
765 | ||
766 | 2018-12-04 Jonathon Jongsma <jjongsma@redhat.com> | |
767 | ||
768 | Silence coverity warning about dead code | |
769 | For some reason, coverity was complaining that the definition of | |
770 | cred_type_to_str was dead code, even though it wasn't. Changing the | |
771 | storage to static silences the warning. Since that's a benficial change | |
772 | anyway, let's change it. At the same time, make the pointer constant as | |
773 | well and move it outside of the loop since it doesn't need to be inside | |
774 | the loop. | |
775 | ||
776 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
777 | ||
778 | Avoid potential memory leak in spice session | |
779 | If j == -1, the memory allocated for rect will leak. So move the | |
780 | allocation after the test. | |
781 | ||
782 | Acked-by: Victor Toso <victortoso@redhat.com> | |
783 | ||
784 | 2018-11-13 Andrea Bolognani <abologna@redhat.com> | |
785 | ||
786 | spec: Drop %{extra_release} | |
787 | It was mainly meant to be used for automatic builds through | |
788 | Test::AutoBuild, so it can be removed now. | |
789 | ||
790 | prepare-release: Drop references to Test::AutoBuild | |
791 | They are misleading, and no longer relevant anyway. | |
792 | ||
793 | maint: Rename autobuild.sh to prepare-release.sh | |
794 | The script was originally used by the Test::AutoBuild | |
795 | project to perform periodic automatic builds; however, that | |
796 | effort has been abandoned a long time ago, and these days | |
797 | virt-viewer CI builds are happening on the Jenkins-based | |
798 | CentOS CI environment under the libvirt umbrella[1], where | |
799 | build recipes are maintained separately from the projects | |
800 | themselves. | |
801 | ||
802 | The script is still used to prepare releases, so it can't | |
803 | be dropped from the repository: rename it so that its | |
804 | purpose is more clearly communicated instead. | |
805 | ||
806 | [1] https://ci.centos.org/view/libvirt/ | |
807 | ||
808 | 2018-11-09 Jonathon Jongsma <jjongsma@redhat.com> | |
809 | ||
810 | Relax Gtk+ requirement slightly | |
811 | We previously bumped the gtk+ requirement to 3.18 for the function | |
812 | gtk_window_fullscreen_on_monitor(). But this function is only necessary | |
813 | in Wayland. So add some preprocessor version checks to allow it to | |
814 | compile on older distributions if they don't care about wayland support. | |
815 | ||
816 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
817 | ||
818 | 2018-10-16 Qiu Wenbo <qiuwenbo@kylinos.com.cn> | |
819 | ||
820 | win32: fix command line encoding on windows platform | |
821 | On Windows, the arguments we get in GApplication::ocal_command_line | |
822 | come from g_win32_get_command_line(), and g_option_context_parse_strv() | |
823 | documentation says: | |
824 | « On Windows, the strings are expected to be in UTF-8. This is in | |
825 | contrast to g_option_context_parse() which expects them to be in the | |
826 | system codepage, which is how they are passed as argv to main(). See | |
827 | g_win32_get_command_line() for a solution. » | |
828 | ||
829 | This was causing issues on Windows when running: | |
830 | remote-viewer -t "你好" spice://<target-host>:5900 | |
831 | ||
832 | 2018-10-15 Jonathon Jongsma <jjongsma@redhat.com> | |
833 | ||
834 | Fullscreen displays on wrong monitors in Wayland | |
835 | In fullscreen mode, we attempt to enable a guest display for each client | |
836 | monitor and then place a fullscreen window for each display on the | |
837 | appropriate monitor. Previously, we were using gtk_window_move() to move | |
838 | the window to the proper monitor, and then calling | |
839 | gtk_window_fullscreen() to enter fullscreen mode on that monitor. | |
840 | However, under wayland, gtk_window_move() no longer has any effect for | |
841 | toplevel windows, so all displays were showing up on top of eachother on | |
842 | the same client monitor. | |
843 | ||
844 | Fortunately, Gtk+ 3.18 added a new gtk_window_fullscreen_on_monitor() | |
845 | API that works on Wayland. In theory this allows us to remove the call | |
846 | to gtk_window_move() from the code. But to avoid potentially changing | |
847 | behavior on xorg or older systems, I left the existing logic. | |
848 | ||
849 | This requires a dependency bump for gtk+ from 3.12 to 3.18. Gtk 3.18 is | |
850 | provided by the following distributions (or newer): | |
851 | - RHEL 7.4 | |
852 | - Fedora 23 | |
853 | - Ubuntu 16.04LTS | |
854 | ||
855 | Resolves: rhbz#1584561 | |
856 | ||
857 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> | |
858 | ||
859 | 2018-09-25 Marc-André Lureau <marcandre.lureau@redhat.com> | |
860 | ||
861 | display: make klass->close() optional | |
862 | Spice and VTE display do not need to implement it. | |
863 | ||
864 | Acked-by: Victor Toso <victortoso@redhat.com> | |
865 | ||
866 | window: move default sensitivity in .ui | |
867 | Instead of modifying it in object initialization. | |
868 | ||
869 | Acked-by: Victor Toso <victortoso@redhat.com> | |
870 | ||
871 | window: use virt_viewer_window_set_menus_sensitive() | |
872 | virt_viewer_window_set_menus_sensitive() is the common function to set | |
873 | sensitivity on menu items. | |
874 | ||
875 | It was lacking "toolbar_send_key", so add it there too. | |
876 | ||
877 | Acked-by: Victor Toso <victortoso@redhat.com> | |
878 | ||
879 | app: simplify toggling visibility | |
880 | There is a hack to maintain the toggle state to a desired state within | |
881 | the "toggled" handler. | |
882 | ||
883 | However it is only necessary for the ask-quit case. In this case, we | |
884 | want to maintain the item active, which is simpler to handle than the | |
885 | general case. Simplify the code by folding | |
886 | virt_viewer_app_window_set_visible() and removing the static | |
887 | "reentering" hack, only maintaining "active" on the last item. | |
888 | ||
889 | Note that the hack was needed since there is no way to hook a signal | |
890 | handler on "clicked" before "toggled" is emitted and handled by Gtk, | |
891 | to avoid the recursion. | |
892 | ||
893 | Acked-by: Victor Toso <victortoso@redhat.com> | |
894 | ||
895 | Remove class signal handlers | |
896 | We don't use class signal handlers, remove the extra pointers. | |
897 | ||
898 | g_signal_override_class_handler() could be used instead when needed. | |
899 | ||
900 | Acked-by: Victor Toso <victortoso@redhat.com> | |
901 | ||
902 | remote-viewer: add handling of spice+unix and spice+tls schemes | |
903 | - spice+unix:// was added in spice-gtk v0.28 | |
904 | - spice+tls:// was added in spice-gtk v0.35 | |
905 | ||
906 | This allows launchers to start remote-viewer when they encounter a | |
907 | Spice URI with +unix or +tls. | |
908 | ||
909 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> | |
910 | Acked-by: Victor Toso <victortoso@redhat.com> | |
911 | ||
912 | 2018-09-18 Jonathon Jongsma <jjongsma@redhat.com> | |
913 | ||
914 | Spice: listen for new 'SpiceSession::disconnected' signal | |
915 | Previously we were emitting the VirtViewerSession::session-disconnected | |
916 | when we got the Spice::session::channel-destroy signal for the last | |
917 | channel. However, since the channels are still valid at this point, and | |
918 | because VirtViewerApp quits the application in response to the | |
919 | session-disconnected signal, that means that the channels were never | |
920 | being properly freed. This was particularly problematic for the usbredir | |
921 | channel, which must disconnect any connected USB devices as part of its | |
922 | destruction. By using the new SpiceSession::disconnected signal instead, | |
923 | we can ensure that all channels have been disconnected and properly | |
924 | destroyed before quitting the application. | |
925 | ||
926 | 2018-09-12 Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
927 | ||
928 | ovirt-foreign-menu: New function storage_domain_validate() | |
929 | It may be useful to know why the storage domain has not been listed, | |
930 | given that there are different reasons for that. To make it easier to | |
931 | provide more detailed debug messages, we move code from the callback | |
932 | function to this new one. | |
933 | ||
934 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> | |
935 | ||
936 | build: Update govirt and rest requirements | |
937 | With these new values, 0.3.3 for libgovirt and 0.8 for librest, we can | |
938 | remove checks for OVIRT_REST_CALL_ERROR_CANCELLED and correspondent | |
939 | rest_proxy_auth_cancel(). | |
940 | ||
941 | Distros that already ship these versions, such as Fedora, RHEL 7.4 | |
942 | onwards, and Ubuntu since 17.10. | |
943 | ||
944 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> | |
945 | ||
946 | 2018-09-03 Victor Toso <me@victortoso.com> | |
947 | ||
948 | app: Always add guest name comment | |
949 | Even when the user adds comments, we should place the guest's name | |
950 | unless it is present already. | |
951 | ||
952 | Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1623756 | |
953 | ||
954 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> | |
955 | ||
956 | 2018-08-31 Christophe Fergeau <cfergeau@redhat.com> | |
957 | ||
958 | ovirt: Filter everything which does not end in .iso | |
959 | oVirt REST API does not provide a way to know what is a valid ISO image | |
960 | which can be assigned to a running VM. I've seen floppy disk images | |
961 | (.vfd) in a domain, which is already filtered. Now I've seen an ISO | |
962 | domain with .qcow2 files in it, which can't be assigned to a VM either. | |
963 | This commit filters every file which does not have a .iso extension as | |
964 | it's unlikely to be possible to use it. | |
965 | ||
966 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
967 | ||
968 | 2018-08-07 Christophe Fergeau <cfergeau@redhat.com> | |
969 | ||
970 | ovirt: Improve handling of g_strv_contains() | |
971 | The ovirt code uses g_strv_contains() with fallback code in | |
972 | glib-compat.h when we are using a glib version where it's not available. | |
973 | However, when we use a glib version where g_strv_contains is available, | |
974 | we get a compilation warning since we are compiling GLIB_VERSION_MAX_ALLOWED | |
975 | set to 2.38. | |
976 | ||
977 | This commit wraps both the compat code and the g_strv_contains() call in | |
978 | a strv_contains() helper where we can hide the magic needed to avoid | |
979 | deprecation warnings. | |
980 | ||
981 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
982 | ||
983 | window: Adjust get_image_format() prototype | |
984 | This adds an unused parameter, but lets us get rid of this new warning | |
985 | with gcc 8: | |
986 | ||
987 | virt-viewer-window.c: In function 'get_image_format': | |
988 | 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] | |
989 | g_once(&image_formats_once, (GThreadFunc)init_image_formats, NULL); | |
990 | ||
991 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
992 | ||
993 | 2018-08-06 Christophe Fergeau <cfergeau@redhat.com> | |
994 | ||
995 | app: Remove VirtViewerApp::has-focus | |
996 | This is no longer needed since 140cb84 | |
997 | 'remote-viewer: remove --spice-controller' | |
998 | ||
999 | Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> | |
1000 | ||
0 | 1001 | 2018-07-27 Daniel P. Berrangé <berrange@redhat.com> |
1002 | ||
1003 | rpm: import spec changes from fedora | |
1004 | ||
1005 | Post release version bump to 8.0 | |
1 | 1006 | |
2 | 1007 | Add NEWS for 7.0 release |
3 | 1008 |
1 | 1 | |
2 | 2 | ACLOCAL_AMFLAGS = -I m4 |
3 | 3 | |
4 | SUBDIRS = icons src man po data tests | |
4 | SUBDIRS = bash-completion icons src man po data tests | |
5 | 5 | |
6 | 6 | AM_DISTCHECK_CONFIGURE_FLAGS = --disable-update-mimedb |
7 | 7 | EXTRA_DIST = \ |
8 | 8 | $(PACKAGE).spec $(PACKAGE).spec.in \ |
9 | 9 | mingw-$(PACKAGE).spec.in \ |
10 | intltool-extract.in \ | |
11 | intltool-merge.in \ | |
12 | intltool-update.in \ | |
13 | 10 | GNUmakefile \ |
14 | 11 | maint.mk \ |
15 | 12 | cfg.mk \ |
23 | 20 | DISTCLEAN_FILES = \ |
24 | 21 | $(PACKAGE).spec \ |
25 | 22 | mingw-$(PACKAGE).spec \ |
26 | intltool-extract \ | |
27 | intltool-merge \ | |
28 | intltool-update \ | |
29 | 23 | $(NULL) |
30 | 24 | |
31 | 25 | MAINTAINERCLEANFILES = \ |
33 | 27 | $(srcdir)/INSTALL \ |
34 | 28 | $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ |
35 | 29 | $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \ |
36 | $(srcdir)/m4/intltool.m4 \ | |
37 | 30 | $(NULL) |
38 | 31 | |
39 | 32 | dist-hook: gen-ChangeLog gen-AUTHORS |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
88 | 88 | host_triplet = @host@ |
89 | 89 | subdir = . |
90 | 90 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
91 | am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ | |
92 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | |
93 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | |
94 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ | |
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)/m4/virt-bash-completion.m4 \ | |
95 | $(top_srcdir)/m4/virt-nls.m4 $(top_srcdir)/acinclude.m4 \ | |
95 | 96 | $(top_srcdir)/configure.ac |
96 | 97 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
97 | 98 | $(ACLOCAL_M4) |
137 | 138 | $(RECURSIVE_CLEAN_TARGETS) \ |
138 | 139 | $(am__extra_recursive_targets) |
139 | 140 | AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ |
140 | cscope distdir dist dist-all distcheck | |
141 | cscope distdir distdir-am dist dist-all distcheck | |
141 | 142 | am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ |
142 | 143 | $(LISP)config.h.in |
143 | 144 | # Read a list of newline-separated strings from the standard input, |
213 | 214 | | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' |
214 | 215 | distcleancheck_listfiles = find . -type f -print |
215 | 216 | ACLOCAL = @ACLOCAL@ |
216 | ALL_LINGUAS = @ALL_LINGUAS@ | |
217 | 217 | AMTAR = @AMTAR@ |
218 | 218 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
219 | 219 | AR = @AR@ |
221 | 221 | AUTOHEADER = @AUTOHEADER@ |
222 | 222 | AUTOMAKE = @AUTOMAKE@ |
223 | 223 | AWK = @AWK@ |
224 | BASH_COMPLETIONS_DIR = @BASH_COMPLETIONS_DIR@ | |
225 | BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@ | |
226 | BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@ | |
227 | BASH_COMPLETION_REQUIRED = @BASH_COMPLETION_REQUIRED@ | |
224 | 228 | BUILDID = @BUILDID@ |
225 | CATALOGS = @CATALOGS@ | |
226 | CATOBJEXT = @CATOBJEXT@ | |
227 | 229 | CC = @CC@ |
228 | 230 | CCDEPMODE = @CCDEPMODE@ |
229 | 231 | CFLAGS = @CFLAGS@ |
230 | 232 | CPP = @CPP@ |
231 | 233 | CPPFLAGS = @CPPFLAGS@ |
232 | 234 | CYGPATH_W = @CYGPATH_W@ |
233 | DATADIRNAME = @DATADIRNAME@ | |
234 | 235 | DEFS = @DEFS@ |
235 | 236 | DEPDIR = @DEPDIR@ |
236 | 237 | DLLTOOL = @DLLTOOL@ |
248 | 249 | GLIB2_REQUIRED = @GLIB2_REQUIRED@ |
249 | 250 | GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ |
250 | 251 | GLIB_MKENUMS = @GLIB_MKENUMS@ |
251 | GMOFILES = @GMOFILES@ | |
252 | GMSGFMT = @GMSGFMT@ | |
253 | 252 | GOVIRT_REQUIRED = @GOVIRT_REQUIRED@ |
254 | 253 | GREP = @GREP@ |
255 | 254 | GTK_CFLAGS = @GTK_CFLAGS@ |
264 | 263 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
265 | 264 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
266 | 265 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
267 | INSTOBJEXT = @INSTOBJEXT@ | |
268 | INTLLIBS = @INTLLIBS@ | |
269 | INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ | |
270 | INTLTOOL_MERGE = @INTLTOOL_MERGE@ | |
271 | INTLTOOL_PERL = @INTLTOOL_PERL@ | |
272 | INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ | |
273 | INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ | |
274 | INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ | |
275 | INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ | |
276 | INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ | |
277 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | |
278 | 266 | LD = @LD@ |
279 | 267 | LDFLAGS = @LDFLAGS@ |
280 | 268 | LIBOBJS = @LIBOBJS@ |
294 | 282 | MAKEINFO = @MAKEINFO@ |
295 | 283 | MANIFEST_TOOL = @MANIFEST_TOOL@ |
296 | 284 | MKDIR_P = @MKDIR_P@ |
297 | MKINSTALLDIRS = @MKINSTALLDIRS@ | |
298 | 285 | MSGFMT = @MSGFMT@ |
299 | MSGFMT_OPTS = @MSGFMT_OPTS@ | |
300 | 286 | MSGMERGE = @MSGMERGE@ |
301 | 287 | NM = @NM@ |
302 | 288 | NMEDIT = @NMEDIT@ |
317 | 303 | PKG_CONFIG = @PKG_CONFIG@ |
318 | 304 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
319 | 305 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
320 | POFILES = @POFILES@ | |
321 | POSUB = @POSUB@ | |
322 | PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ | |
323 | PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ | |
324 | 306 | RANLIB = @RANLIB@ |
307 | REST_REQUIRED = @REST_REQUIRED@ | |
325 | 308 | SED = @SED@ |
326 | 309 | SET_MAKE = @SET_MAKE@ |
327 | 310 | SHELL = @SHELL@ |
333 | 316 | SPICE_PROTOCOL_REQUIRED = @SPICE_PROTOCOL_REQUIRED@ |
334 | 317 | STRIP = @STRIP@ |
335 | 318 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ |
336 | USE_NLS = @USE_NLS@ | |
337 | 319 | VERSION = @VERSION@ |
320 | VTE_CFLAGS = @VTE_CFLAGS@ | |
321 | VTE_LIBS = @VTE_LIBS@ | |
338 | 322 | WARN_CFLAGS = @WARN_CFLAGS@ |
339 | 323 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ |
340 | 324 | WINDRES = @WINDRES@ |
373 | 357 | includedir = @includedir@ |
374 | 358 | infodir = @infodir@ |
375 | 359 | install_sh = @install_sh@ |
376 | intltool__v_merge_options_ = @intltool__v_merge_options_@ | |
377 | intltool__v_merge_options_0 = @intltool__v_merge_options_0@ | |
378 | 360 | libdir = @libdir@ |
379 | 361 | libexecdir = @libexecdir@ |
380 | 362 | localedir = @localedir@ |
396 | 378 | top_srcdir = @top_srcdir@ |
397 | 379 | NULL = |
398 | 380 | ACLOCAL_AMFLAGS = -I m4 |
399 | SUBDIRS = icons src man po data tests | |
381 | SUBDIRS = bash-completion icons src man po data tests | |
400 | 382 | AM_DISTCHECK_CONFIGURE_FLAGS = --disable-update-mimedb |
401 | 383 | EXTRA_DIST = \ |
402 | 384 | $(PACKAGE).spec $(PACKAGE).spec.in \ |
403 | 385 | mingw-$(PACKAGE).spec.in \ |
404 | intltool-extract.in \ | |
405 | intltool-merge.in \ | |
406 | intltool-update.in \ | |
407 | 386 | GNUmakefile \ |
408 | 387 | maint.mk \ |
409 | 388 | cfg.mk \ |
417 | 396 | DISTCLEAN_FILES = \ |
418 | 397 | $(PACKAGE).spec \ |
419 | 398 | mingw-$(PACKAGE).spec \ |
420 | intltool-extract \ | |
421 | intltool-merge \ | |
422 | intltool-update \ | |
423 | 399 | $(NULL) |
424 | 400 | |
425 | 401 | MAINTAINERCLEANFILES = \ |
427 | 403 | $(srcdir)/INSTALL \ |
428 | 404 | $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ |
429 | 405 | $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \ |
430 | $(srcdir)/m4/intltool.m4 \ | |
431 | 406 | $(NULL) |
432 | 407 | |
433 | 408 | all: config.h |
455 | 430 | echo ' $(SHELL) ./config.status'; \ |
456 | 431 | $(SHELL) ./config.status;; \ |
457 | 432 | *) \ |
458 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ | |
459 | cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ | |
433 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ | |
434 | cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ | |
460 | 435 | esac; |
461 | 436 | |
462 | 437 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
602 | 577 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
603 | 578 | -rm -f cscope.out cscope.in.out cscope.po.out cscope.files |
604 | 579 | |
605 | distdir: $(DISTFILES) | |
580 | distdir: $(BUILT_SOURCES) | |
581 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
582 | ||
583 | distdir-am: $(DISTFILES) | |
606 | 584 | $(am__remove_distdir) |
607 | 585 | test -d "$(distdir)" || mkdir "$(distdir)" |
608 | 586 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
0 | 0 | Virt Viewer News |
1 | 1 | ================ |
2 | ||
3 | 9.0: May 1, 2020 | |
4 | ----------------- | |
5 | ||
6 | - Project moved to https://gitlab.com/virt-viewer/virt-viewer | |
7 | - Allow toggling shared clipboard in remote-viewer | |
8 | - Fix handling when initial spice connection fails | |
9 | - Fix check for govirt library | |
10 | - Add bash completion of cli args | |
11 | - Improve errors in file transfer dialog | |
12 | - Fix ovirt foreign menu storage domains query | |
13 | - Prefer TLS certs from oVirt instead of CLI | |
14 | - Improve USB device cleanup when Ctrl-C is used | |
15 | - Remember monitor mappings across restarts | |
16 | - Add a default file extension to screenshots | |
17 | - Updated translations | |
18 | - Fix misc memory leaks | |
19 | ||
20 | 8.0: Mar 1, 2019 | |
21 | ----------------- | |
22 | ||
23 | - Fix warnings with latest GCC versions | |
24 | - More strictly filter out non-ISO images in ovirt menu | |
25 | - Require libgovirt >= 0.3.3 | |
26 | - Require librest >= 0.8 | |
27 | - Support UNIX and TLS URI schemes for spice | |
28 | - Fix full screen monitor placement under wayland | |
29 | - Fix command line encoding on Windows | |
30 | - Ensure VM name is set in window title | |
31 | - Support unix-path in .vv files | |
32 | - Support text console windows via VTE | |
33 | - Add machine power control menu options | |
34 | - Record full build env in MSI installer | |
2 | 35 | |
3 | 36 | 7.0: Jul 27, 2018 |
4 | 37 | ----------------- |
26 | 26 | Virt Viewer uses libvirt to lookup information about the |
27 | 27 | guest OS display. This is available from |
28 | 28 | |
29 | http://libvirt.org/ | |
29 | https://libvirt.org/ | |
30 | 30 | |
31 | Further information about the Virt Viewer application can be | |
32 | found on the Virt Manager website: | |
31 | Bug reports / support questions should be submitted to | |
33 | 32 | |
34 | http://virt-manager.org/ | |
33 | https://gitlab.com/virt-viewer/virt-viewer/-/issues | |
35 | 34 | |
36 | Feedback should be directed to the mailing list at | |
35 | Code contributions should be submitted as merge requests to | |
37 | 36 | |
38 | http://www.redhat.com/mailman/listinfo/virt-tools-list | |
37 | https://gitlab.com/virt-viewer/virt-viewer/-/merge_requests |
0 | # generated automatically by aclocal 1.15.1 -*- Autoconf -*- | |
1 | ||
2 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
0 | # generated automatically by aclocal 1.16.1 -*- Autoconf -*- | |
1 | ||
2 | # Copyright (C) 1996-2018 Free Software Foundation, Inc. | |
3 | 3 | |
4 | 4 | # This file is free software; the Free Software Foundation |
5 | 5 | # gives unlimited permission to copy and/or distribute it, |
18 | 18 | You have another version of autoconf. It may work, but is not guaranteed to. |
19 | 19 | If you have problems, you may need to regenerate the build system entirely. |
20 | 20 | To do so, use the procedure documented by the package, typically 'autoreconf'.])]) |
21 | ||
22 | # Copyright (C) 1995-2002 Free Software Foundation, Inc. | |
23 | # Copyright (C) 2001-2003,2004 Red Hat, Inc. | |
24 | # | |
25 | # This file is free software, distributed under the terms of the GNU | |
26 | # General Public License. As a special exception to the GNU General | |
27 | # Public License, this file may be distributed as part of a program | |
28 | # that contains a configuration script generated by Autoconf, under | |
29 | # the same distribution terms as the rest of that program. | |
30 | # | |
31 | # This file can be copied and used freely without restrictions. It can | |
32 | # be used in projects which are not available under the GNU Public License | |
33 | # but which still want to provide support for the GNU gettext functionality. | |
34 | # | |
35 | # Macro to add for using GNU gettext. | |
36 | # Ulrich Drepper <drepper@cygnus.com>, 1995, 1996 | |
37 | # | |
38 | # Modified to never use included libintl. | |
39 | # Owen Taylor <otaylor@redhat.com>, 12/15/1998 | |
40 | # | |
41 | # Major rework to remove unused code | |
42 | # Owen Taylor <otaylor@redhat.com>, 12/11/2002 | |
43 | # | |
44 | # Added better handling of ALL_LINGUAS from GNU gettext version | |
45 | # written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002 | |
46 | # | |
47 | # Modified to require ngettext | |
48 | # Matthias Clasen <mclasen@redhat.com> 08/06/2004 | |
49 | ||
50 | # Increment this whenever this file is changed. | |
51 | #serial 1 | |
52 | ||
53 | # We need this here as well, since someone might use autoconf-2.5x | |
54 | # to configure GLib then an older version to configure a package | |
55 | # using AM_GLIB_GNU_GETTEXT | |
56 | AC_PREREQ(2.53) | |
57 | ||
58 | dnl | |
59 | dnl We go to great lengths to make sure that aclocal won't | |
60 | dnl try to pull in the installed version of these macros | |
61 | dnl when running aclocal in the glib directory. | |
62 | dnl | |
63 | m4_copy([AC_DEFUN],[glib_DEFUN]) | |
64 | m4_copy([AC_REQUIRE],[glib_REQUIRE]) | |
65 | dnl | |
66 | dnl At the end, if we're not within glib, we'll define the public | |
67 | dnl definitions in terms of our private definitions. | |
68 | dnl | |
69 | ||
70 | # GLIB_LC_MESSAGES | |
71 | #-------------------- | |
72 | glib_DEFUN([GLIB_LC_MESSAGES], | |
73 | [AC_CHECK_HEADERS([locale.h]) | |
74 | if test $ac_cv_header_locale_h = yes; then | |
75 | AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, | |
76 | [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], | |
77 | am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) | |
78 | if test $am_cv_val_LC_MESSAGES = yes; then | |
79 | AC_DEFINE(HAVE_LC_MESSAGES, 1, | |
80 | [Define if your <locale.h> file defines LC_MESSAGES.]) | |
81 | fi | |
82 | fi]) | |
83 | ||
84 | # GLIB_PATH_PROG_WITH_TEST | |
85 | #---------------------------- | |
86 | dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, | |
87 | dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) | |
88 | glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], | |
89 | [# Extract the first word of "$2", so it can be a program name with args. | |
90 | set dummy $2; ac_word=[$]2 | |
91 | AC_MSG_CHECKING([for $ac_word]) | |
92 | AC_CACHE_VAL(ac_cv_path_$1, | |
93 | [case "[$]$1" in | |
94 | /*) | |
95 | ac_cv_path_$1="[$]$1" # Let the user override the test with a path. | |
96 | ;; | |
97 | *) | |
98 | IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
99 | for ac_dir in ifelse([$5], , $PATH, [$5]); do | |
100 | test -z "$ac_dir" && ac_dir=. | |
101 | if test -f $ac_dir/$ac_word; then | |
102 | if [$3]; then | |
103 | ac_cv_path_$1="$ac_dir/$ac_word" | |
104 | break | |
105 | fi | |
106 | fi | |
107 | done | |
108 | IFS="$ac_save_ifs" | |
109 | dnl If no 4th arg is given, leave the cache variable unset, | |
110 | dnl so AC_PATH_PROGS will keep looking. | |
111 | ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" | |
112 | ])dnl | |
113 | ;; | |
114 | esac])dnl | |
115 | $1="$ac_cv_path_$1" | |
116 | if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then | |
117 | AC_MSG_RESULT([$]$1) | |
118 | else | |
119 | AC_MSG_RESULT(no) | |
120 | fi | |
121 | AC_SUBST($1)dnl | |
122 | ]) | |
123 | ||
124 | dnl Checks for special options needed on Mac OS X. | |
125 | dnl Defines INTL_MACOSX_LIBS. | |
126 | dnl | |
127 | dnl Copied from intlmacosx.m4 in gettext, GPL. | |
128 | dnl Copyright (C) 2004-2013 Free Software Foundation, Inc. | |
129 | glib_DEFUN([glib_gt_INTL_MACOSX], | |
130 | [ | |
131 | dnl Check for API introduced in Mac OS X 10.2. | |
132 | AC_CACHE_CHECK([for CFPreferencesCopyAppValue], | |
133 | [gt_cv_func_CFPreferencesCopyAppValue], | |
134 | [gt_save_LIBS="$LIBS" | |
135 | LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" | |
136 | AC_LINK_IFELSE( | |
137 | [AC_LANG_PROGRAM( | |
138 | [[#include <CoreFoundation/CFPreferences.h>]], | |
139 | [[CFPreferencesCopyAppValue(NULL, NULL)]])], | |
140 | [gt_cv_func_CFPreferencesCopyAppValue=yes], | |
141 | [gt_cv_func_CFPreferencesCopyAppValue=no]) | |
142 | LIBS="$gt_save_LIBS"]) | |
143 | if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then | |
144 | AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], | |
145 | [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) | |
146 | fi | |
147 | dnl Check for API introduced in Mac OS X 10.3. | |
148 | AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], | |
149 | [gt_save_LIBS="$LIBS" | |
150 | LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" | |
151 | AC_LINK_IFELSE( | |
152 | [AC_LANG_PROGRAM( | |
153 | [[#include <CoreFoundation/CFLocale.h>]], | |
154 | [[CFLocaleCopyCurrent();]])], | |
155 | [gt_cv_func_CFLocaleCopyCurrent=yes], | |
156 | [gt_cv_func_CFLocaleCopyCurrent=no]) | |
157 | LIBS="$gt_save_LIBS"]) | |
158 | if test $gt_cv_func_CFLocaleCopyCurrent = yes; then | |
159 | AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], | |
160 | [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) | |
161 | fi | |
162 | INTL_MACOSX_LIBS= | |
163 | if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then | |
164 | INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" | |
165 | fi | |
166 | AC_SUBST([INTL_MACOSX_LIBS]) | |
167 | ]) | |
168 | ||
169 | # GLIB_WITH_NLS | |
170 | #----------------- | |
171 | glib_DEFUN([GLIB_WITH_NLS], | |
172 | dnl NLS is obligatory | |
173 | [USE_NLS=yes | |
174 | AC_SUBST(USE_NLS) | |
175 | ||
176 | gt_cv_have_gettext=no | |
177 | ||
178 | CATOBJEXT=NONE | |
179 | XGETTEXT=: | |
180 | INTLLIBS= | |
181 | ||
182 | glib_gt_INTL_MACOSX | |
183 | ||
184 | AC_CHECK_HEADER(libintl.h, | |
185 | [gt_cv_func_dgettext_libintl="no" | |
186 | libintl_extra_libs="" | |
187 | ||
188 | # | |
189 | # First check in libc | |
190 | # | |
191 | AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, | |
192 | [AC_TRY_LINK([ | |
193 | #include <libintl.h> | |
194 | ], | |
195 | [return !ngettext ("","", 1)], | |
196 | gt_cv_func_ngettext_libc=yes, | |
197 | gt_cv_func_ngettext_libc=no) | |
198 | ]) | |
199 | ||
200 | if test "$gt_cv_func_ngettext_libc" = "yes" ; then | |
201 | AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, | |
202 | [AC_TRY_LINK([ | |
203 | #include <libintl.h> | |
204 | ], | |
205 | [return !dgettext ("","")], | |
206 | gt_cv_func_dgettext_libc=yes, | |
207 | gt_cv_func_dgettext_libc=no) | |
208 | ]) | |
209 | fi | |
210 | ||
211 | if test "$gt_cv_func_ngettext_libc" = "yes" ; then | |
212 | AC_CHECK_FUNCS(bind_textdomain_codeset) | |
213 | fi | |
214 | ||
215 | # | |
216 | # If we don't have everything we want, check in libintl | |
217 | # | |
218 | if test "$gt_cv_func_dgettext_libc" != "yes" \ | |
219 | || test "$gt_cv_func_ngettext_libc" != "yes" \ | |
220 | || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then | |
221 | ||
222 | AC_CHECK_LIB(intl, bindtextdomain, | |
223 | [AC_CHECK_LIB(intl, ngettext, | |
224 | [AC_CHECK_LIB(intl, dgettext, | |
225 | gt_cv_func_dgettext_libintl=yes)])]) | |
226 | ||
227 | if test "$gt_cv_func_dgettext_libintl" != "yes" ; then | |
228 | AC_MSG_CHECKING([if -liconv is needed to use gettext]) | |
229 | AC_MSG_RESULT([]) | |
230 | AC_CHECK_LIB(intl, ngettext, | |
231 | [AC_CHECK_LIB(intl, dcgettext, | |
232 | [gt_cv_func_dgettext_libintl=yes | |
233 | libintl_extra_libs=-liconv], | |
234 | :,-liconv)], | |
235 | :,-liconv) | |
236 | fi | |
237 | ||
238 | # | |
239 | # If we found libintl, then check in it for bind_textdomain_codeset(); | |
240 | # we'll prefer libc if neither have bind_textdomain_codeset(), | |
241 | # and both have dgettext and ngettext | |
242 | # | |
243 | if test "$gt_cv_func_dgettext_libintl" = "yes" ; then | |
244 | glib_save_LIBS="$LIBS" | |
245 | LIBS="$LIBS -lintl $libintl_extra_libs" | |
246 | unset ac_cv_func_bind_textdomain_codeset | |
247 | AC_CHECK_FUNCS(bind_textdomain_codeset) | |
248 | LIBS="$glib_save_LIBS" | |
249 | ||
250 | if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then | |
251 | gt_cv_func_dgettext_libc=no | |
252 | else | |
253 | if test "$gt_cv_func_dgettext_libc" = "yes" \ | |
254 | && test "$gt_cv_func_ngettext_libc" = "yes"; then | |
255 | gt_cv_func_dgettext_libintl=no | |
256 | fi | |
257 | fi | |
258 | fi | |
259 | fi | |
260 | ||
261 | if test "$gt_cv_func_dgettext_libc" = "yes" \ | |
262 | || test "$gt_cv_func_dgettext_libintl" = "yes"; then | |
263 | gt_cv_have_gettext=yes | |
264 | fi | |
265 | ||
266 | if test "$gt_cv_func_dgettext_libintl" = "yes"; then | |
267 | INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" | |
268 | fi | |
269 | ||
270 | if test "$gt_cv_have_gettext" = "yes"; then | |
271 | AC_DEFINE(HAVE_GETTEXT,1, | |
272 | [Define if the GNU gettext() function is already present or preinstalled.]) | |
273 | GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, | |
274 | [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl | |
275 | if test "$MSGFMT" != "no"; then | |
276 | glib_save_LIBS="$LIBS" | |
277 | LIBS="$LIBS $INTLLIBS" | |
278 | AC_CHECK_FUNCS(dcgettext) | |
279 | MSGFMT_OPTS= | |
280 | AC_MSG_CHECKING([if msgfmt accepts -c]) | |
281 | GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ | |
282 | msgid "" | |
283 | msgstr "" | |
284 | "Content-Type: text/plain; charset=UTF-8\n" | |
285 | "Project-Id-Version: test 1.0\n" | |
286 | "PO-Revision-Date: 2007-02-15 12:01+0100\n" | |
287 | "Last-Translator: test <foo@bar.xx>\n" | |
288 | "Language-Team: C <LL@li.org>\n" | |
289 | "MIME-Version: 1.0\n" | |
290 | "Content-Transfer-Encoding: 8bit\n" | |
291 | ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) | |
292 | AC_SUBST(MSGFMT_OPTS) | |
293 | AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) | |
294 | GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, | |
295 | [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) | |
296 | AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; | |
297 | return _nl_msg_cat_cntr], | |
298 | [CATOBJEXT=.gmo | |
299 | DATADIRNAME=share], | |
300 | [case $host in | |
301 | *-*-solaris*) | |
302 | dnl On Solaris, if bind_textdomain_codeset is in libc, | |
303 | dnl GNU format message catalog is always supported, | |
304 | dnl since both are added to the libc all together. | |
305 | dnl Hence, we'd like to go with DATADIRNAME=share and | |
306 | dnl and CATOBJEXT=.gmo in this case. | |
307 | AC_CHECK_FUNC(bind_textdomain_codeset, | |
308 | [CATOBJEXT=.gmo | |
309 | DATADIRNAME=share], | |
310 | [CATOBJEXT=.mo | |
311 | DATADIRNAME=lib]) | |
312 | ;; | |
313 | *-*-openbsd*) | |
314 | CATOBJEXT=.mo | |
315 | DATADIRNAME=share | |
316 | ;; | |
317 | *) | |
318 | CATOBJEXT=.mo | |
319 | DATADIRNAME=lib | |
320 | ;; | |
321 | esac]) | |
322 | LIBS="$glib_save_LIBS" | |
323 | INSTOBJEXT=.mo | |
324 | else | |
325 | gt_cv_have_gettext=no | |
326 | fi | |
327 | fi | |
328 | ]) | |
329 | ||
330 | if test "$gt_cv_have_gettext" = "yes" ; then | |
331 | AC_DEFINE(ENABLE_NLS, 1, | |
332 | [always defined to indicate that i18n is enabled]) | |
333 | fi | |
334 | ||
335 | dnl Test whether we really found GNU xgettext. | |
336 | if test "$XGETTEXT" != ":"; then | |
337 | dnl If it is not GNU xgettext we define it as : so that the | |
338 | dnl Makefiles still can work. | |
339 | if $XGETTEXT --omit-header /dev/null 2> /dev/null; then | |
340 | : ; | |
341 | else | |
342 | AC_MSG_RESULT( | |
343 | [found xgettext program is not GNU xgettext; ignore it]) | |
344 | XGETTEXT=":" | |
345 | fi | |
346 | fi | |
347 | ||
348 | # We need to process the po/ directory. | |
349 | POSUB=po | |
350 | ||
351 | AC_OUTPUT_COMMANDS( | |
352 | [case "$CONFIG_FILES" in *po/Makefile.in*) | |
353 | sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile | |
354 | esac]) | |
355 | ||
356 | dnl These rules are solely for the distribution goal. While doing this | |
357 | dnl we only have to keep exactly one list of the available catalogs | |
358 | dnl in configure.ac. | |
359 | for lang in $ALL_LINGUAS; do | |
360 | GMOFILES="$GMOFILES $lang.gmo" | |
361 | POFILES="$POFILES $lang.po" | |
362 | done | |
363 | ||
364 | dnl Make all variables we use known to autoconf. | |
365 | AC_SUBST(CATALOGS) | |
366 | AC_SUBST(CATOBJEXT) | |
367 | AC_SUBST(DATADIRNAME) | |
368 | AC_SUBST(GMOFILES) | |
369 | AC_SUBST(INSTOBJEXT) | |
370 | AC_SUBST(INTLLIBS) | |
371 | AC_SUBST(PO_IN_DATADIR_TRUE) | |
372 | AC_SUBST(PO_IN_DATADIR_FALSE) | |
373 | AC_SUBST(POFILES) | |
374 | AC_SUBST(POSUB) | |
375 | ]) | |
376 | ||
377 | # AM_GLIB_GNU_GETTEXT | |
378 | # ------------------- | |
379 | # Do checks necessary for use of gettext. If a suitable implementation | |
380 | # of gettext is found in either in libintl or in the C library, | |
381 | # it will set INTLLIBS to the libraries needed for use of gettext | |
382 | # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable | |
383 | # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() | |
384 | # on various variables needed by the Makefile.in.in installed by | |
385 | # glib-gettextize. | |
386 | dnl | |
387 | AU_DEFUN([GLIB_GNU_GETTEXT], | |
388 | [AC_REQUIRE([AC_PROG_CC])dnl | |
389 | ||
390 | GLIB_LC_MESSAGES | |
391 | GLIB_WITH_NLS | |
392 | ||
393 | if test "$gt_cv_have_gettext" = "yes"; then | |
394 | if test "x$ALL_LINGUAS" = "x"; then | |
395 | LINGUAS= | |
396 | else | |
397 | AC_MSG_CHECKING(for catalogs to be installed) | |
398 | NEW_LINGUAS= | |
399 | for presentlang in $ALL_LINGUAS; do | |
400 | useit=no | |
401 | if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then | |
402 | desiredlanguages="$LINGUAS" | |
403 | else | |
404 | desiredlanguages="$ALL_LINGUAS" | |
405 | fi | |
406 | for desiredlang in $desiredlanguages; do | |
407 | # Use the presentlang catalog if desiredlang is | |
408 | # a. equal to presentlang, or | |
409 | # b. a variant of presentlang (because in this case, | |
410 | # presentlang can be used as a fallback for messages | |
411 | # which are not translated in the desiredlang catalog). | |
412 | case "$desiredlang" in | |
413 | "$presentlang"*) useit=yes;; | |
414 | esac | |
415 | done | |
416 | if test $useit = yes; then | |
417 | NEW_LINGUAS="$NEW_LINGUAS $presentlang" | |
418 | fi | |
419 | done | |
420 | LINGUAS=$NEW_LINGUAS | |
421 | AC_MSG_RESULT($LINGUAS) | |
422 | fi | |
423 | ||
424 | dnl Construct list of names of catalog files to be constructed. | |
425 | if test -n "$LINGUAS"; then | |
426 | for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done | |
427 | fi | |
428 | fi | |
429 | ||
430 | dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly | |
431 | dnl find the mkinstalldirs script in another subdir but ($top_srcdir). | |
432 | dnl Try to locate is. | |
433 | MKINSTALLDIRS= | |
434 | if test -n "$ac_aux_dir"; then | |
435 | MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" | |
436 | fi | |
437 | if test -z "$MKINSTALLDIRS"; then | |
438 | MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" | |
439 | fi | |
440 | AC_SUBST(MKINSTALLDIRS) | |
441 | ||
442 | dnl Generate list of files to be processed by xgettext which will | |
443 | dnl be included in po/Makefile. | |
444 | test -d po || mkdir po | |
445 | if test "x$srcdir" != "x."; then | |
446 | if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then | |
447 | posrcprefix="$srcdir/" | |
448 | else | |
449 | posrcprefix="../$srcdir/" | |
450 | fi | |
451 | else | |
452 | posrcprefix="../" | |
453 | fi | |
454 | rm -f po/POTFILES | |
455 | sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ | |
456 | < $srcdir/po/POTFILES.in > po/POTFILES | |
457 | ], | |
458 | [[$0: This macro is deprecated. You should use upstream gettext instead.]]) | |
459 | ||
460 | # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) | |
461 | # ------------------------------- | |
462 | # Define VARIABLE to the location where catalog files will | |
463 | # be installed by po/Makefile. | |
464 | glib_DEFUN([GLIB_DEFINE_LOCALEDIR], | |
465 | [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl | |
466 | glib_save_prefix="$prefix" | |
467 | glib_save_exec_prefix="$exec_prefix" | |
468 | glib_save_datarootdir="$datarootdir" | |
469 | test "x$prefix" = xNONE && prefix=$ac_default_prefix | |
470 | test "x$exec_prefix" = xNONE && exec_prefix=$prefix | |
471 | datarootdir=`eval echo "${datarootdir}"` | |
472 | if test "x$CATOBJEXT" = "x.mo" ; then | |
473 | localedir=`eval echo "${libdir}/locale"` | |
474 | else | |
475 | localedir=`eval echo "${datadir}/locale"` | |
476 | fi | |
477 | prefix="$glib_save_prefix" | |
478 | exec_prefix="$glib_save_exec_prefix" | |
479 | datarootdir="$glib_save_datarootdir" | |
480 | AC_DEFINE_UNQUOTED($1, "$localedir", | |
481 | [Define the location where the catalogs will be installed]) | |
482 | ]) | |
483 | ||
484 | dnl | |
485 | dnl Now the definitions that aclocal will find | |
486 | dnl | |
487 | ifdef(glib_configure_ac,[],[ | |
488 | AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) | |
489 | AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) | |
490 | ])dnl | |
491 | ||
492 | # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) | |
493 | # | |
494 | # Create a temporary file with TEST-FILE as its contents and pass the | |
495 | # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with | |
496 | # 0 and perform ACTION-IF-FAIL for any other exit status. | |
497 | AC_DEFUN([GLIB_RUN_PROG], | |
498 | [cat >conftest.foo <<_ACEOF | |
499 | $2 | |
500 | _ACEOF | |
501 | if AC_RUN_LOG([$1 conftest.foo]); then | |
502 | m4_ifval([$3], [$3], [:]) | |
503 | m4_ifvaln([$4], [else $4])dnl | |
504 | echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD | |
505 | sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD | |
506 | fi]) | |
507 | ||
508 | ||
509 | # nls.m4 serial 5 (gettext-0.18) | |
510 | dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software | |
511 | dnl Foundation, Inc. | |
512 | dnl This file is free software; the Free Software Foundation | |
513 | dnl gives unlimited permission to copy and/or distribute it, | |
514 | dnl with or without modifications, as long as this notice is preserved. | |
515 | dnl | |
516 | dnl This file can be used in projects which are not available under | |
517 | dnl the GNU General Public License or the GNU Library General Public | |
518 | dnl License but which still want to provide support for the GNU gettext | |
519 | dnl functionality. | |
520 | dnl Please note that the actual code of the GNU gettext library is covered | |
521 | dnl by the GNU Library General Public License, and the rest of the GNU | |
522 | dnl gettext package is covered by the GNU General Public License. | |
523 | dnl They are *not* in the public domain. | |
524 | ||
525 | dnl Authors: | |
526 | dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. | |
527 | dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. | |
528 | ||
529 | AC_PREREQ([2.50]) | |
530 | ||
531 | AC_DEFUN([AM_NLS], | |
532 | [ | |
533 | AC_MSG_CHECKING([whether NLS is requested]) | |
534 | dnl Default is enabled NLS | |
535 | AC_ARG_ENABLE([nls], | |
536 | [ --disable-nls do not use Native Language Support], | |
537 | USE_NLS=$enableval, USE_NLS=yes) | |
538 | AC_MSG_RESULT([$USE_NLS]) | |
539 | AC_SUBST([USE_NLS]) | |
540 | ]) | |
541 | 21 | |
542 | 22 | # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- |
543 | 23 | # serial 11 (pkg-config-0.29.1) |
883 | 363 | [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) |
884 | 364 | ])dnl PKG_HAVE_DEFINE_WITH_MODULES |
885 | 365 | |
886 | # Copyright (C) 2002-2017 Free Software Foundation, Inc. | |
366 | # Copyright (C) 2002-2018 Free Software Foundation, Inc. | |
887 | 367 | # |
888 | 368 | # This file is free software; the Free Software Foundation |
889 | 369 | # gives unlimited permission to copy and/or distribute it, |
895 | 375 | # generated from the m4 files accompanying Automake X.Y. |
896 | 376 | # (This private macro should not be called outside this file.) |
897 | 377 | AC_DEFUN([AM_AUTOMAKE_VERSION], |
898 | [am__api_version='1.15' | |
378 | [am__api_version='1.16' | |
899 | 379 | dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to |
900 | 380 | dnl require some minimum version. Point them to the right macro. |
901 | m4_if([$1], [1.15.1], [], | |
381 | m4_if([$1], [1.16.1], [], | |
902 | 382 | [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl |
903 | 383 | ]) |
904 | 384 | |
914 | 394 | # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. |
915 | 395 | # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. |
916 | 396 | AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], |
917 | [AM_AUTOMAKE_VERSION([1.15.1])dnl | |
397 | [AM_AUTOMAKE_VERSION([1.16.1])dnl | |
918 | 398 | m4_ifndef([AC_AUTOCONF_VERSION], |
919 | 399 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
920 | 400 | _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) |
921 | 401 | |
922 | 402 | # AM_AUX_DIR_EXPAND -*- Autoconf -*- |
923 | 403 | |
924 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
404 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
925 | 405 | # |
926 | 406 | # This file is free software; the Free Software Foundation |
927 | 407 | # gives unlimited permission to copy and/or distribute it, |
973 | 453 | |
974 | 454 | # AM_CONDITIONAL -*- Autoconf -*- |
975 | 455 | |
976 | # Copyright (C) 1997-2017 Free Software Foundation, Inc. | |
456 | # Copyright (C) 1997-2018 Free Software Foundation, Inc. | |
977 | 457 | # |
978 | 458 | # This file is free software; the Free Software Foundation |
979 | 459 | # gives unlimited permission to copy and/or distribute it, |
1004 | 484 | Usually this means the macro was only invoked conditionally.]]) |
1005 | 485 | fi])]) |
1006 | 486 | |
1007 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
487 | # Copyright (C) 1999-2018 Free Software Foundation, Inc. | |
1008 | 488 | # |
1009 | 489 | # This file is free software; the Free Software Foundation |
1010 | 490 | # gives unlimited permission to copy and/or distribute it, |
1195 | 675 | |
1196 | 676 | # Generate code to set up dependency tracking. -*- Autoconf -*- |
1197 | 677 | |
1198 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
1199 | # | |
1200 | # This file is free software; the Free Software Foundation | |
1201 | # gives unlimited permission to copy and/or distribute it, | |
1202 | # with or without modifications, as long as this notice is preserved. | |
1203 | ||
678 | # Copyright (C) 1999-2018 Free Software Foundation, Inc. | |
679 | # | |
680 | # This file is free software; the Free Software Foundation | |
681 | # gives unlimited permission to copy and/or distribute it, | |
682 | # with or without modifications, as long as this notice is preserved. | |
1204 | 683 | |
1205 | 684 | # _AM_OUTPUT_DEPENDENCY_COMMANDS |
1206 | 685 | # ------------------------------ |
1209 | 688 | # Older Autoconf quotes --file arguments for eval, but not when files |
1210 | 689 | # are listed without --file. Let's play safe and only enable the eval |
1211 | 690 | # if we detect the quoting. |
1212 | case $CONFIG_FILES in | |
1213 | *\'*) eval set x "$CONFIG_FILES" ;; | |
1214 | *) set x $CONFIG_FILES ;; | |
1215 | esac | |
691 | # TODO: see whether this extra hack can be removed once we start | |
692 | # requiring Autoconf 2.70 or later. | |
693 | AS_CASE([$CONFIG_FILES], | |
694 | [*\'*], [eval set x "$CONFIG_FILES"], | |
695 | [*], [set x $CONFIG_FILES]) | |
1216 | 696 | shift |
1217 | for mf | |
697 | # Used to flag and report bootstrapping failures. | |
698 | am_rc=0 | |
699 | for am_mf | |
1218 | 700 | do |
1219 | 701 | # 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 | |
702 | am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` | |
703 | # Check whether this is an Automake generated Makefile which includes | |
704 | # dependency-tracking related rules and includes. | |
705 | # Grep'ing the whole file directly is not great: AIX grep has a line | |
1227 | 706 | # 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 | |
707 | sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ | |
708 | || continue | |
709 | am_dirpart=`AS_DIRNAME(["$am_mf"])` | |
710 | am_filepart=`AS_BASENAME(["$am_mf"])` | |
711 | AM_RUN_LOG([cd "$am_dirpart" \ | |
712 | && sed -e '/# am--include-marker/d' "$am_filepart" \ | |
713 | | $MAKE -f - am--depfiles]) || am_rc=$? | |
1254 | 714 | done |
715 | if test $am_rc -ne 0; then | |
716 | AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments | |
717 | for automatic dependency tracking. Try re-running configure with the | |
718 | '--disable-dependency-tracking' option to at least be able to build | |
719 | the package (albeit without support for automatic dependency tracking).]) | |
720 | fi | |
721 | AS_UNSET([am_dirpart]) | |
722 | AS_UNSET([am_filepart]) | |
723 | AS_UNSET([am_mf]) | |
724 | AS_UNSET([am_rc]) | |
725 | rm -f conftest-deps.mk | |
1255 | 726 | } |
1256 | 727 | ])# _AM_OUTPUT_DEPENDENCY_COMMANDS |
1257 | 728 | |
1260 | 731 | # ----------------------------- |
1261 | 732 | # This macro should only be invoked once -- use via AC_REQUIRE. |
1262 | 733 | # |
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. | |
734 | # This code is only required when automatic dependency tracking is enabled. | |
735 | # This creates each '.Po' and '.Plo' makefile fragment that we'll need in | |
736 | # order to bootstrap the dependency handling code. | |
1266 | 737 | AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], |
1267 | 738 | [AC_CONFIG_COMMANDS([depfiles], |
1268 | 739 | [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], |
1269 | [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) | |
1270 | ]) | |
740 | [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) | |
1271 | 741 | |
1272 | 742 | # Do all the work for Automake. -*- Autoconf -*- |
1273 | 743 | |
1274 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
744 | # Copyright (C) 1996-2018 Free Software Foundation, Inc. | |
1275 | 745 | # |
1276 | 746 | # This file is free software; the Free Software Foundation |
1277 | 747 | # gives unlimited permission to copy and/or distribute it, |
1358 | 828 | AC_REQUIRE([AC_PROG_MKDIR_P])dnl |
1359 | 829 | # For better backward compatibility. To be removed once Automake 1.9.x |
1360 | 830 | # 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> | |
831 | # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> | |
832 | # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> | |
1363 | 833 | AC_SUBST([mkdir_p], ['$(MKDIR_P)']) |
1364 | 834 | # We need awk for the "check" target (and possibly the TAP driver). The |
1365 | 835 | # system "awk" is bad on some platforms. |
1426 | 896 | Aborting the configuration process, to ensure you take notice of the issue. |
1427 | 897 | |
1428 | 898 | You can download and install GNU coreutils to get an 'rm' implementation |
1429 | that behaves properly: <http://www.gnu.org/software/coreutils/>. | |
899 | that behaves properly: <https://www.gnu.org/software/coreutils/>. | |
1430 | 900 | |
1431 | 901 | If you want to complete the configuration process using your problematic |
1432 | 902 | 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM |
1468 | 938 | done |
1469 | 939 | echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) |
1470 | 940 | |
1471 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
941 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1472 | 942 | # |
1473 | 943 | # This file is free software; the Free Software Foundation |
1474 | 944 | # gives unlimited permission to copy and/or distribute it, |
1489 | 959 | fi |
1490 | 960 | AC_SUBST([install_sh])]) |
1491 | 961 | |
1492 | # Copyright (C) 2003-2017 Free Software Foundation, Inc. | |
962 | # Copyright (C) 2003-2018 Free Software Foundation, Inc. | |
1493 | 963 | # |
1494 | 964 | # This file is free software; the Free Software Foundation |
1495 | 965 | # gives unlimited permission to copy and/or distribute it, |
1510 | 980 | |
1511 | 981 | # Check to see how 'make' treats includes. -*- Autoconf -*- |
1512 | 982 | |
1513 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
983 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1514 | 984 | # |
1515 | 985 | # This file is free software; the Free Software Foundation |
1516 | 986 | # gives unlimited permission to copy and/or distribute it, |
1518 | 988 | |
1519 | 989 | # AM_MAKE_INCLUDE() |
1520 | 990 | # ----------------- |
1521 | # Check to see how make treats includes. | |
991 | # Check whether make has an 'include' directive that can support all | |
992 | # the idioms we need for our automatic dependency tracking code. | |
1522 | 993 | AC_DEFUN([AM_MAKE_INCLUDE], |
1523 | [am_make=${MAKE-make} | |
1524 | cat > confinc << 'END' | |
994 | [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) | |
995 | cat > confinc.mk << 'END' | |
1525 | 996 | am__doit: |
1526 | @echo this is the am__doit target | |
997 | @echo this is the am__doit target >confinc.out | |
1527 | 998 | .PHONY: am__doit |
1528 | 999 | END |
1529 | # If we don't find an include directive, just comment out the code. | |
1530 | AC_MSG_CHECKING([for style of include used by $am_make]) | |
1531 | 1000 | am__include="#" |
1532 | 1001 | 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 | ]) | |
1002 | # BSD make does it like this. | |
1003 | echo '.include "confinc.mk" # ignored' > confmf.BSD | |
1004 | # Other make implementations (GNU, Solaris 10, AIX) do it like this. | |
1005 | echo 'include confinc.mk # ignored' > confmf.GNU | |
1006 | _am_result=no | |
1007 | for s in GNU BSD; do | |
1008 | AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) | |
1009 | AS_CASE([$?:`cat confinc.out 2>/dev/null`], | |
1010 | ['0:this is the am__doit target'], | |
1011 | [AS_CASE([$s], | |
1012 | [BSD], [am__include='.include' am__quote='"'], | |
1013 | [am__include='include' am__quote=''])]) | |
1014 | if test "$am__include" != "#"; then | |
1015 | _am_result="yes ($s style)" | |
1016 | break | |
1017 | fi | |
1018 | done | |
1019 | rm -f confinc.* confmf.* | |
1020 | AC_MSG_RESULT([${_am_result}]) | |
1021 | AC_SUBST([am__include])]) | |
1022 | AC_SUBST([am__quote])]) | |
1560 | 1023 | |
1561 | 1024 | # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- |
1562 | 1025 | |
1563 | # Copyright (C) 1997-2017 Free Software Foundation, Inc. | |
1026 | # Copyright (C) 1997-2018 Free Software Foundation, Inc. | |
1564 | 1027 | # |
1565 | 1028 | # This file is free software; the Free Software Foundation |
1566 | 1029 | # gives unlimited permission to copy and/or distribute it, |
1599 | 1062 | |
1600 | 1063 | # Helper functions for option handling. -*- Autoconf -*- |
1601 | 1064 | |
1602 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
1065 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1603 | 1066 | # |
1604 | 1067 | # This file is free software; the Free Software Foundation |
1605 | 1068 | # gives unlimited permission to copy and/or distribute it, |
1628 | 1091 | AC_DEFUN([_AM_IF_OPTION], |
1629 | 1092 | [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) |
1630 | 1093 | |
1631 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
1094 | # Copyright (C) 1999-2018 Free Software Foundation, Inc. | |
1632 | 1095 | # |
1633 | 1096 | # This file is free software; the Free Software Foundation |
1634 | 1097 | # gives unlimited permission to copy and/or distribute it, |
1675 | 1138 | # For backward compatibility. |
1676 | 1139 | AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) |
1677 | 1140 | |
1678 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
1141 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1679 | 1142 | # |
1680 | 1143 | # This file is free software; the Free Software Foundation |
1681 | 1144 | # gives unlimited permission to copy and/or distribute it, |
1694 | 1157 | |
1695 | 1158 | # Check to make sure that the build environment is sane. -*- Autoconf -*- |
1696 | 1159 | |
1697 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
1160 | # Copyright (C) 1996-2018 Free Software Foundation, Inc. | |
1698 | 1161 | # |
1699 | 1162 | # This file is free software; the Free Software Foundation |
1700 | 1163 | # gives unlimited permission to copy and/or distribute it, |
1775 | 1238 | rm -f conftest.file |
1776 | 1239 | ]) |
1777 | 1240 | |
1778 | # Copyright (C) 2009-2017 Free Software Foundation, Inc. | |
1241 | # Copyright (C) 2009-2018 Free Software Foundation, Inc. | |
1779 | 1242 | # |
1780 | 1243 | # This file is free software; the Free Software Foundation |
1781 | 1244 | # gives unlimited permission to copy and/or distribute it, |
1835 | 1298 | _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl |
1836 | 1299 | ]) |
1837 | 1300 | |
1838 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
1301 | # Copyright (C) 2001-2018 Free Software Foundation, Inc. | |
1839 | 1302 | # |
1840 | 1303 | # This file is free software; the Free Software Foundation |
1841 | 1304 | # gives unlimited permission to copy and/or distribute it, |
1863 | 1326 | INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" |
1864 | 1327 | AC_SUBST([INSTALL_STRIP_PROGRAM])]) |
1865 | 1328 | |
1866 | # Copyright (C) 2006-2017 Free Software Foundation, Inc. | |
1329 | # Copyright (C) 2006-2018 Free Software Foundation, Inc. | |
1867 | 1330 | # |
1868 | 1331 | # This file is free software; the Free Software Foundation |
1869 | 1332 | # gives unlimited permission to copy and/or distribute it, |
1882 | 1345 | |
1883 | 1346 | # Check how to create a tarball. -*- Autoconf -*- |
1884 | 1347 | |
1885 | # Copyright (C) 2004-2017 Free Software Foundation, Inc. | |
1348 | # Copyright (C) 2004-2018 Free Software Foundation, Inc. | |
1886 | 1349 | # |
1887 | 1350 | # This file is free software; the Free Software Foundation |
1888 | 1351 | # gives unlimited permission to copy and/or distribute it, |
2013 | 1476 | AC_SUBST([am__untar]) |
2014 | 1477 | ]) # _AM_PROG_TAR |
2015 | 1478 | |
2016 | m4_include([m4/intltool.m4]) | |
2017 | 1479 | m4_include([m4/libtool.m4]) |
2018 | 1480 | m4_include([m4/ltoptions.m4]) |
2019 | 1481 | m4_include([m4/ltsugar.m4]) |
2020 | 1482 | m4_include([m4/ltversion.m4]) |
2021 | 1483 | m4_include([m4/lt~obsolete.m4]) |
1484 | m4_include([m4/virt-bash-completion.m4]) | |
1485 | m4_include([m4/virt-nls.m4]) | |
2022 | 1486 | m4_include([acinclude.m4]) |
0 | EXTRA_DIST = \ | |
1 | $(PACKAGE) | |
2 | ||
3 | install-data-local: install-bash-completion | |
4 | ||
5 | uninstall-local: uninstall-bash-completion | |
6 | ||
7 | if WITH_BASH_COMPLETION | |
8 | install-bash-completion: | |
9 | $(MKDIR_P) "$(DESTDIR)$(BASH_COMPLETIONS_DIR)" | |
10 | $(INSTALL_SCRIPT) $(srcdir)/$(PACKAGE) \ | |
11 | "$(DESTDIR)$(BASH_COMPLETIONS_DIR)/$(PACKAGE)" | |
12 | ||
13 | uninstall-bash-completion: | |
14 | rm -f $(DESTDIR)$(BASH_COMPLETIONS_DIR)/$(PACKAGE) | |
15 | rmdir $(DESTDIR)$(BASH_COMPLETIONS_DIR) ||: | |
16 | else ! WITH_BASH_COMPLETION | |
17 | install-bash-completion: | |
18 | uninstall-bash-completion: | |
19 | endif ! WITH_BASH_COMPLETION |
0 | # Makefile.in generated by automake 1.16.1 from Makefile.am. | |
1 | # @configure_input@ | |
2 | ||
3 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. | |
4 | ||
5 | # This Makefile.in is free software; the Free Software Foundation | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | @SET_MAKE@ | |
15 | VPATH = @srcdir@ | |
16 | am__is_gnu_make = { \ | |
17 | if test -z '$(MAKELEVEL)'; then \ | |
18 | false; \ | |
19 | elif test -n '$(MAKE_HOST)'; then \ | |
20 | true; \ | |
21 | elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ | |
22 | true; \ | |
23 | else \ | |
24 | false; \ | |
25 | fi; \ | |
26 | } | |
27 | am__make_running_with_option = \ | |
28 | case $${target_option-} in \ | |
29 | ?) ;; \ | |
30 | *) echo "am__make_running_with_option: internal error: invalid" \ | |
31 | "target option '$${target_option-}' specified" >&2; \ | |
32 | exit 1;; \ | |
33 | esac; \ | |
34 | has_opt=no; \ | |
35 | sane_makeflags=$$MAKEFLAGS; \ | |
36 | if $(am__is_gnu_make); then \ | |
37 | sane_makeflags=$$MFLAGS; \ | |
38 | else \ | |
39 | case $$MAKEFLAGS in \ | |
40 | *\\[\ \ ]*) \ | |
41 | bs=\\; \ | |
42 | sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | |
43 | | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ | |
44 | esac; \ | |
45 | fi; \ | |
46 | skip_next=no; \ | |
47 | strip_trailopt () \ | |
48 | { \ | |
49 | flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ | |
50 | }; \ | |
51 | for flg in $$sane_makeflags; do \ | |
52 | test $$skip_next = yes && { skip_next=no; continue; }; \ | |
53 | case $$flg in \ | |
54 | *=*|--*) continue;; \ | |
55 | -*I) strip_trailopt 'I'; skip_next=yes;; \ | |
56 | -*I?*) strip_trailopt 'I';; \ | |
57 | -*O) strip_trailopt 'O'; skip_next=yes;; \ | |
58 | -*O?*) strip_trailopt 'O';; \ | |
59 | -*l) strip_trailopt 'l'; skip_next=yes;; \ | |
60 | -*l?*) strip_trailopt 'l';; \ | |
61 | -[dEDm]) skip_next=yes;; \ | |
62 | -[JT]) skip_next=yes;; \ | |
63 | esac; \ | |
64 | case $$flg in \ | |
65 | *$$target_option*) has_opt=yes; break;; \ | |
66 | esac; \ | |
67 | done; \ | |
68 | test $$has_opt = yes | |
69 | am__make_dryrun = (target_option=n; $(am__make_running_with_option)) | |
70 | am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) | |
71 | pkgdatadir = $(datadir)/@PACKAGE@ | |
72 | pkgincludedir = $(includedir)/@PACKAGE@ | |
73 | pkglibdir = $(libdir)/@PACKAGE@ | |
74 | pkglibexecdir = $(libexecdir)/@PACKAGE@ | |
75 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | |
76 | install_sh_DATA = $(install_sh) -c -m 644 | |
77 | install_sh_PROGRAM = $(install_sh) -c | |
78 | install_sh_SCRIPT = $(install_sh) -c | |
79 | INSTALL_HEADER = $(INSTALL_DATA) | |
80 | transform = $(program_transform_name) | |
81 | NORMAL_INSTALL = : | |
82 | PRE_INSTALL = : | |
83 | POST_INSTALL = : | |
84 | NORMAL_UNINSTALL = : | |
85 | PRE_UNINSTALL = : | |
86 | POST_UNINSTALL = : | |
87 | build_triplet = @build@ | |
88 | host_triplet = @host@ | |
89 | subdir = bash-completion | |
90 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
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)/m4/virt-bash-completion.m4 \ | |
95 | $(top_srcdir)/m4/virt-nls.m4 $(top_srcdir)/acinclude.m4 \ | |
96 | $(top_srcdir)/configure.ac | |
97 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | |
98 | $(ACLOCAL_M4) | |
99 | DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) | |
100 | mkinstalldirs = $(install_sh) -d | |
101 | CONFIG_HEADER = $(top_builddir)/config.h | |
102 | CONFIG_CLEAN_FILES = | |
103 | CONFIG_CLEAN_VPATH_FILES = | |
104 | AM_V_P = $(am__v_P_@AM_V@) | |
105 | am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) | |
106 | am__v_P_0 = false | |
107 | am__v_P_1 = : | |
108 | AM_V_GEN = $(am__v_GEN_@AM_V@) | |
109 | am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) | |
110 | am__v_GEN_0 = @echo " GEN " $@; | |
111 | am__v_GEN_1 = | |
112 | AM_V_at = $(am__v_at_@AM_V@) | |
113 | am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) | |
114 | am__v_at_0 = @ | |
115 | am__v_at_1 = | |
116 | SOURCES = | |
117 | DIST_SOURCES = | |
118 | am__can_run_installinfo = \ | |
119 | case $$AM_UPDATE_INFO_DIR in \ | |
120 | n|no|NO) false;; \ | |
121 | *) (install-info --version) >/dev/null 2>&1;; \ | |
122 | esac | |
123 | am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) | |
124 | am__DIST_COMMON = $(srcdir)/Makefile.in | |
125 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
126 | ACLOCAL = @ACLOCAL@ | |
127 | AMTAR = @AMTAR@ | |
128 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | |
129 | AR = @AR@ | |
130 | AUTOCONF = @AUTOCONF@ | |
131 | AUTOHEADER = @AUTOHEADER@ | |
132 | AUTOMAKE = @AUTOMAKE@ | |
133 | AWK = @AWK@ | |
134 | BASH_COMPLETIONS_DIR = @BASH_COMPLETIONS_DIR@ | |
135 | BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@ | |
136 | BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@ | |
137 | BASH_COMPLETION_REQUIRED = @BASH_COMPLETION_REQUIRED@ | |
138 | BUILDID = @BUILDID@ | |
139 | CC = @CC@ | |
140 | CCDEPMODE = @CCDEPMODE@ | |
141 | CFLAGS = @CFLAGS@ | |
142 | CPP = @CPP@ | |
143 | CPPFLAGS = @CPPFLAGS@ | |
144 | CYGPATH_W = @CYGPATH_W@ | |
145 | DEFS = @DEFS@ | |
146 | DEPDIR = @DEPDIR@ | |
147 | DLLTOOL = @DLLTOOL@ | |
148 | DSYMUTIL = @DSYMUTIL@ | |
149 | DUMPBIN = @DUMPBIN@ | |
150 | ECHO_C = @ECHO_C@ | |
151 | ECHO_N = @ECHO_N@ | |
152 | ECHO_T = @ECHO_T@ | |
153 | EGREP = @EGREP@ | |
154 | EXEEXT = @EXEEXT@ | |
155 | FGREP = @FGREP@ | |
156 | GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ | |
157 | GLIB2_CFLAGS = @GLIB2_CFLAGS@ | |
158 | GLIB2_LIBS = @GLIB2_LIBS@ | |
159 | GLIB2_REQUIRED = @GLIB2_REQUIRED@ | |
160 | GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ | |
161 | GLIB_MKENUMS = @GLIB_MKENUMS@ | |
162 | GOVIRT_REQUIRED = @GOVIRT_REQUIRED@ | |
163 | GREP = @GREP@ | |
164 | GTK_CFLAGS = @GTK_CFLAGS@ | |
165 | GTK_LIBS = @GTK_LIBS@ | |
166 | GTK_REQUIRED = @GTK_REQUIRED@ | |
167 | GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ | |
168 | GTK_VNC_LIBS = @GTK_VNC_LIBS@ | |
169 | GTK_VNC_REQUIRED = @GTK_VNC_REQUIRED@ | |
170 | ICOTOOL = @ICOTOOL@ | |
171 | INSTALL = @INSTALL@ | |
172 | INSTALL_DATA = @INSTALL_DATA@ | |
173 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
174 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
175 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | |
176 | LD = @LD@ | |
177 | LDFLAGS = @LDFLAGS@ | |
178 | LIBOBJS = @LIBOBJS@ | |
179 | LIBS = @LIBS@ | |
180 | LIBTOOL = @LIBTOOL@ | |
181 | LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@ | |
182 | LIBVIRT_GLIB_REQUIRED = @LIBVIRT_GLIB_REQUIRED@ | |
183 | LIBVIRT_LIBS = @LIBVIRT_LIBS@ | |
184 | LIBVIRT_REQUIRED = @LIBVIRT_REQUIRED@ | |
185 | LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ | |
186 | LIBXML2_LIBS = @LIBXML2_LIBS@ | |
187 | LIBXML2_REQUIRED = @LIBXML2_REQUIRED@ | |
188 | LIPO = @LIPO@ | |
189 | LN_S = @LN_S@ | |
190 | LTLIBOBJS = @LTLIBOBJS@ | |
191 | LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ | |
192 | MAKEINFO = @MAKEINFO@ | |
193 | MANIFEST_TOOL = @MANIFEST_TOOL@ | |
194 | MKDIR_P = @MKDIR_P@ | |
195 | MSGFMT = @MSGFMT@ | |
196 | MSGMERGE = @MSGMERGE@ | |
197 | NM = @NM@ | |
198 | NMEDIT = @NMEDIT@ | |
199 | OBJDUMP = @OBJDUMP@ | |
200 | OBJEXT = @OBJEXT@ | |
201 | OTOOL = @OTOOL@ | |
202 | OTOOL64 = @OTOOL64@ | |
203 | OVIRT_CFLAGS = @OVIRT_CFLAGS@ | |
204 | OVIRT_LIBS = @OVIRT_LIBS@ | |
205 | PACKAGE = @PACKAGE@ | |
206 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | |
207 | PACKAGE_NAME = @PACKAGE_NAME@ | |
208 | PACKAGE_STRING = @PACKAGE_STRING@ | |
209 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | |
210 | PACKAGE_URL = @PACKAGE_URL@ | |
211 | PACKAGE_VERSION = @PACKAGE_VERSION@ | |
212 | PATH_SEPARATOR = @PATH_SEPARATOR@ | |
213 | PKG_CONFIG = @PKG_CONFIG@ | |
214 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | |
215 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | |
216 | RANLIB = @RANLIB@ | |
217 | REST_REQUIRED = @REST_REQUIRED@ | |
218 | SED = @SED@ | |
219 | SET_MAKE = @SET_MAKE@ | |
220 | SHELL = @SHELL@ | |
221 | SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ | |
222 | SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ | |
223 | SPICE_GTK_REQUIRED = @SPICE_GTK_REQUIRED@ | |
224 | SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ | |
225 | SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ | |
226 | SPICE_PROTOCOL_REQUIRED = @SPICE_PROTOCOL_REQUIRED@ | |
227 | STRIP = @STRIP@ | |
228 | UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ | |
229 | VERSION = @VERSION@ | |
230 | VTE_CFLAGS = @VTE_CFLAGS@ | |
231 | VTE_LIBS = @VTE_LIBS@ | |
232 | WARN_CFLAGS = @WARN_CFLAGS@ | |
233 | WINDOWS_PRODUCTVERSION = @WINDOWS_PRODUCTVERSION@ | |
234 | WINDRES = @WINDRES@ | |
235 | WIXL_ARCH = @WIXL_ARCH@ | |
236 | XGETTEXT = @XGETTEXT@ | |
237 | abs_builddir = @abs_builddir@ | |
238 | abs_srcdir = @abs_srcdir@ | |
239 | abs_top_builddir = @abs_top_builddir@ | |
240 | abs_top_srcdir = @abs_top_srcdir@ | |
241 | ac_ct_AR = @ac_ct_AR@ | |
242 | ac_ct_CC = @ac_ct_CC@ | |
243 | ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | |
244 | am__include = @am__include@ | |
245 | am__leading_dot = @am__leading_dot@ | |
246 | am__quote = @am__quote@ | |
247 | am__tar = @am__tar@ | |
248 | am__untar = @am__untar@ | |
249 | bindir = @bindir@ | |
250 | build = @build@ | |
251 | build_alias = @build_alias@ | |
252 | build_cpu = @build_cpu@ | |
253 | build_os = @build_os@ | |
254 | build_vendor = @build_vendor@ | |
255 | builddir = @builddir@ | |
256 | datadir = @datadir@ | |
257 | datarootdir = @datarootdir@ | |
258 | docdir = @docdir@ | |
259 | dvidir = @dvidir@ | |
260 | exec_prefix = @exec_prefix@ | |
261 | host = @host@ | |
262 | host_alias = @host_alias@ | |
263 | host_cpu = @host_cpu@ | |
264 | host_os = @host_os@ | |
265 | host_vendor = @host_vendor@ | |
266 | htmldir = @htmldir@ | |
267 | includedir = @includedir@ | |
268 | infodir = @infodir@ | |
269 | install_sh = @install_sh@ | |
270 | libdir = @libdir@ | |
271 | libexecdir = @libexecdir@ | |
272 | localedir = @localedir@ | |
273 | localstatedir = @localstatedir@ | |
274 | mandir = @mandir@ | |
275 | mkdir_p = @mkdir_p@ | |
276 | oldincludedir = @oldincludedir@ | |
277 | pdfdir = @pdfdir@ | |
278 | prefix = @prefix@ | |
279 | program_transform_name = @program_transform_name@ | |
280 | psdir = @psdir@ | |
281 | sbindir = @sbindir@ | |
282 | sharedstatedir = @sharedstatedir@ | |
283 | srcdir = @srcdir@ | |
284 | sysconfdir = @sysconfdir@ | |
285 | target_alias = @target_alias@ | |
286 | top_build_prefix = @top_build_prefix@ | |
287 | top_builddir = @top_builddir@ | |
288 | top_srcdir = @top_srcdir@ | |
289 | EXTRA_DIST = \ | |
290 | $(PACKAGE) | |
291 | ||
292 | all: all-am | |
293 | ||
294 | .SUFFIXES: | |
295 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | |
296 | @for dep in $?; do \ | |
297 | case '$(am__configure_deps)' in \ | |
298 | *$$dep*) \ | |
299 | ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | |
300 | && { if test -f $@; then exit 0; else break; fi; }; \ | |
301 | exit 1;; \ | |
302 | esac; \ | |
303 | done; \ | |
304 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bash-completion/Makefile'; \ | |
305 | $(am__cd) $(top_srcdir) && \ | |
306 | $(AUTOMAKE) --foreign bash-completion/Makefile | |
307 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
308 | @case '$?' in \ | |
309 | *config.status*) \ | |
310 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | |
311 | *) \ | |
312 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | |
313 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | |
314 | esac; | |
315 | ||
316 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | |
317 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
318 | ||
319 | $(top_srcdir)/configure: $(am__configure_deps) | |
320 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
321 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | |
322 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
323 | $(am__aclocal_m4_deps): | |
324 | ||
325 | mostlyclean-libtool: | |
326 | -rm -f *.lo | |
327 | ||
328 | clean-libtool: | |
329 | -rm -rf .libs _libs | |
330 | tags TAGS: | |
331 | ||
332 | ctags CTAGS: | |
333 | ||
334 | cscope cscopelist: | |
335 | ||
336 | ||
337 | distdir: $(BUILT_SOURCES) | |
338 | $(MAKE) $(AM_MAKEFLAGS) distdir-am | |
339 | ||
340 | distdir-am: $(DISTFILES) | |
341 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
342 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
343 | list='$(DISTFILES)'; \ | |
344 | dist_files=`for file in $$list; do echo $$file; done | \ | |
345 | sed -e "s|^$$srcdirstrip/||;t" \ | |
346 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
347 | case $$dist_files in \ | |
348 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
349 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
350 | sort -u` ;; \ | |
351 | esac; \ | |
352 | for file in $$dist_files; do \ | |
353 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
354 | if test -d $$d/$$file; then \ | |
355 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
356 | if test -d "$(distdir)/$$file"; then \ | |
357 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
358 | fi; \ | |
359 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
360 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
361 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
362 | fi; \ | |
363 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
364 | else \ | |
365 | test -f "$(distdir)/$$file" \ | |
366 | || cp -p $$d/$$file "$(distdir)/$$file" \ | |
367 | || exit 1; \ | |
368 | fi; \ | |
369 | done | |
370 | check-am: all-am | |
371 | check: check-am | |
372 | all-am: Makefile | |
373 | installdirs: | |
374 | install: install-am | |
375 | install-exec: install-exec-am | |
376 | install-data: install-data-am | |
377 | uninstall: uninstall-am | |
378 | ||
379 | install-am: all-am | |
380 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | |
381 | ||
382 | installcheck: installcheck-am | |
383 | install-strip: | |
384 | if test -z '$(STRIP)'; then \ | |
385 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
386 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
387 | install; \ | |
388 | else \ | |
389 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
390 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
391 | "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | |
392 | fi | |
393 | mostlyclean-generic: | |
394 | ||
395 | clean-generic: | |
396 | ||
397 | distclean-generic: | |
398 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | |
399 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | |
400 | ||
401 | maintainer-clean-generic: | |
402 | @echo "This command is intended for maintainers to use" | |
403 | @echo "it deletes files that may require special tools to rebuild." | |
404 | clean: clean-am | |
405 | ||
406 | clean-am: clean-generic clean-libtool mostlyclean-am | |
407 | ||
408 | distclean: distclean-am | |
409 | -rm -f Makefile | |
410 | distclean-am: clean-am distclean-generic | |
411 | ||
412 | dvi: dvi-am | |
413 | ||
414 | dvi-am: | |
415 | ||
416 | html: html-am | |
417 | ||
418 | html-am: | |
419 | ||
420 | info: info-am | |
421 | ||
422 | info-am: | |
423 | ||
424 | install-data-am: install-data-local | |
425 | ||
426 | install-dvi: install-dvi-am | |
427 | ||
428 | install-dvi-am: | |
429 | ||
430 | install-exec-am: | |
431 | ||
432 | install-html: install-html-am | |
433 | ||
434 | install-html-am: | |
435 | ||
436 | install-info: install-info-am | |
437 | ||
438 | install-info-am: | |
439 | ||
440 | install-man: | |
441 | ||
442 | install-pdf: install-pdf-am | |
443 | ||
444 | install-pdf-am: | |
445 | ||
446 | install-ps: install-ps-am | |
447 | ||
448 | install-ps-am: | |
449 | ||
450 | installcheck-am: | |
451 | ||
452 | maintainer-clean: maintainer-clean-am | |
453 | -rm -f Makefile | |
454 | maintainer-clean-am: distclean-am maintainer-clean-generic | |
455 | ||
456 | mostlyclean: mostlyclean-am | |
457 | ||
458 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | |
459 | ||
460 | pdf: pdf-am | |
461 | ||
462 | pdf-am: | |
463 | ||
464 | ps: ps-am | |
465 | ||
466 | ps-am: | |
467 | ||
468 | uninstall-am: uninstall-local | |
469 | ||
470 | .MAKE: install-am install-strip | |
471 | ||
472 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
473 | cscopelist-am ctags-am distclean distclean-generic \ | |
474 | distclean-libtool distdir dvi dvi-am html html-am info info-am \ | |
475 | install install-am install-data install-data-am \ | |
476 | install-data-local install-dvi install-dvi-am install-exec \ | |
477 | install-exec-am install-html install-html-am install-info \ | |
478 | install-info-am install-man install-pdf install-pdf-am \ | |
479 | install-ps install-ps-am install-strip installcheck \ | |
480 | installcheck-am installdirs maintainer-clean \ | |
481 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
482 | mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ | |
483 | uninstall-am uninstall-local | |
484 | ||
485 | .PRECIOUS: Makefile | |
486 | ||
487 | ||
488 | install-data-local: install-bash-completion | |
489 | ||
490 | uninstall-local: uninstall-bash-completion | |
491 | ||
492 | @WITH_BASH_COMPLETION_TRUE@install-bash-completion: | |
493 | @WITH_BASH_COMPLETION_TRUE@ $(MKDIR_P) "$(DESTDIR)$(BASH_COMPLETIONS_DIR)" | |
494 | @WITH_BASH_COMPLETION_TRUE@ $(INSTALL_SCRIPT) $(srcdir)/$(PACKAGE) \ | |
495 | @WITH_BASH_COMPLETION_TRUE@ "$(DESTDIR)$(BASH_COMPLETIONS_DIR)/$(PACKAGE)" | |
496 | ||
497 | @WITH_BASH_COMPLETION_TRUE@uninstall-bash-completion: | |
498 | @WITH_BASH_COMPLETION_TRUE@ rm -f $(DESTDIR)$(BASH_COMPLETIONS_DIR)/$(PACKAGE) | |
499 | @WITH_BASH_COMPLETION_TRUE@ rmdir $(DESTDIR)$(BASH_COMPLETIONS_DIR) ||: | |
500 | @WITH_BASH_COMPLETION_FALSE@install-bash-completion: | |
501 | @WITH_BASH_COMPLETION_FALSE@uninstall-bash-completion: | |
502 | ||
503 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
504 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
505 | .NOEXPORT: |
0 | # | |
1 | # virt-viewer completer | |
2 | # | |
3 | ||
4 | _virt_viewer_complete() | |
5 | { | |
6 | local words cword c w cur URI CMDLINE MODE DOMS | |
7 | ||
8 | # Here, $COMP_WORDS is an array of words on the bash | |
9 | # command line that user wants to complete. However, when | |
10 | # parsing command line, the default set of word breaks is | |
11 | # applied. This doesn't work for us as it mangles virt-viewer | |
12 | # arguments, e.g. connection URI (with the default set it's | |
13 | # split into multiple items within the array). Fortunately, | |
14 | # there's a fixup function for the array. | |
15 | _get_comp_words_by_ref -n "\"'><=;|&(:" -w words -i cword | |
16 | COMP_WORDS=( "${words[@]}" ) | |
17 | COMP_CWORD=${cword} | |
18 | cur=${COMP_WORDS[$COMP_CWORD]} | |
19 | ||
20 | MODE="--name" | |
21 | ALL="--all" | |
22 | # See what URI is user trying to connect to. Honour that. | |
23 | for ((c=1; c<=${COMP_CWORD}; c++)); do | |
24 | case "${COMP_WORDS[c]}" in | |
25 | -c|--connect) | |
26 | if [[ -n "${COMP_WORDS[c+1]}" ]]; then | |
27 | URI="${COMP_WORDS[c+1]}" | |
28 | c=$((++c)) | |
29 | fi | |
30 | ;; | |
31 | ||
32 | --connect=*) | |
33 | w=${COMP_WORDS[c]#*=} | |
34 | if [[ -z "$w" ]] ; then | |
35 | return | |
36 | fi | |
37 | URI=$w | |
38 | ;; | |
39 | ||
40 | --domain-name) | |
41 | # Generate list of domain names which is done below | |
42 | MODE="--name" | |
43 | ALL="--all" | |
44 | ;; | |
45 | ||
46 | --uuid) | |
47 | # Generate list of domain UUIDs which is done below | |
48 | MODE="--uuid" | |
49 | ALL="--all" | |
50 | ;; | |
51 | ||
52 | --id) | |
53 | # Generate list of domain IDs which is done below | |
54 | MODE="" | |
55 | ALL="" | |
56 | ;; | |
57 | esac | |
58 | done | |
59 | ||
60 | case "$cur" in | |
61 | --connect=*) | |
62 | # Nada | |
63 | return | |
64 | ;; | |
65 | ||
66 | --display=*) | |
67 | cur=${cur#*=} | |
68 | DISPLAYS=$(cd /tmp/.X11-unix && for x in X*; do echo ":${x#X}"; done) | |
69 | COMPREPLY=($(compgen -W '${DISPLAYS}' -- "$cur")) | |
70 | __ltrim_colon_completions "$cur" | |
71 | return | |
72 | ;; | |
73 | ||
74 | --kiosk-quit=*) | |
75 | cur=${cur#*=} | |
76 | COMPREPLY=($(compgen -W 'never on-disconnect' -- "$cur")) | |
77 | return | |
78 | ;; | |
79 | ||
80 | -*) | |
81 | # If the current option already ends with '=' then don't generate | |
82 | # any more --options | |
83 | if [[ $cur == *= ]] ; then | |
84 | return | |
85 | fi | |
86 | COMPREPLY=($(compgen -W '$( _parse_help "$1" -h )' -- "$cur")) | |
87 | if [[ $COMPREPLY == *= ]] ; then | |
88 | compopt -o nospace | |
89 | fi | |
90 | return | |
91 | ;; | |
92 | esac | |
93 | ||
94 | CMDLINE= | |
95 | if [ -n "${URI}" ]; then | |
96 | CMDLINE="${CMDLINE} -c ${URI}" | |
97 | fi | |
98 | ||
99 | DOMS=($(virsh -q -r ${CMDLINE} list ${ALL} ${MODE} 2>/dev/null | awk '{print $1;}' )) | |
100 | ||
101 | COMPREPLY=($(compgen -W "${DOMS[*]%--}" -- ${cur})) | |
102 | ||
103 | __ltrim_colon_completions "${cur}" | |
104 | return | |
105 | } && | |
106 | complete -F _virt_viewer_complete virt-viewer | |
107 | ||
108 | # vim: ft=sh:et:ts=4:sw=4:tw=80 |
0 | #!/bin/sh | |
0 | #! /bin/sh | |
1 | 1 | # Wrapper for compilers which do not understand '-c -o'. |
2 | 2 | |
3 | scriptversion=2016-01-11.22; # UTC | |
4 | ||
5 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
3 | scriptversion=2018-03-07.03; # UTC | |
4 | ||
5 | # Copyright (C) 1999-2018 Free Software Foundation, Inc. | |
6 | 6 | # Written by Tom Tromey <tromey@cygnus.com>. |
7 | 7 | # |
8 | 8 | # This program is free software; you can redistribute it and/or modify |
16 | 16 | # GNU General Public License for more details. |
17 | 17 | # |
18 | 18 | # You should have received a copy of the GNU General Public License |
19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
19 | # along with this program. If not, see <https://www.gnu.org/licenses/>. | |
20 | 20 | |
21 | 21 | # As a special exception to the GNU General Public License, if you |
22 | 22 | # distribute this file as part of a program that contains a |
339 | 339 | # Local Variables: |
340 | 340 | # mode: shell-script |
341 | 341 | # sh-indentation: 2 |
342 | # eval: (add-hook 'write-file-hooks 'time-stamp) | |
342 | # eval: (add-hook 'before-save-hook 'time-stamp) | |
343 | 343 | # time-stamp-start: "scriptversion=" |
344 | 344 | # time-stamp-format: "%:y-%02m-%02d.%02H" |
345 | 345 | # time-stamp-time-zone: "UTC0" |
0 | #!/bin/sh | |
0 | #! /bin/sh | |
1 | 1 | # Attempt to guess a canonical system name. |
2 | # Copyright 1992-2017 Free Software Foundation, Inc. | |
3 | ||
4 | timestamp='2017-08-08' | |
2 | # Copyright 1992-2018 Free Software Foundation, Inc. | |
3 | ||
4 | timestamp='2018-08-29' | |
5 | 5 | |
6 | 6 | # This file is free software; you can redistribute it and/or modify it |
7 | 7 | # under the terms of the GNU General Public License as published by |
14 | 14 | # General Public License for more details. |
15 | 15 | # |
16 | 16 | # You should have received a copy of the GNU General Public License |
17 | # along with this program; if not, see <http://www.gnu.org/licenses/>. | |
17 | # along with this program; if not, see <https://www.gnu.org/licenses/>. | |
18 | 18 | # |
19 | 19 | # As a special exception to the GNU General Public License, if you |
20 | 20 | # distribute this file as part of a program that contains a |
26 | 26 | # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. |
27 | 27 | # |
28 | 28 | # You can get the latest version of this script from: |
29 | # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess | |
29 | # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess | |
30 | 30 | # |
31 | 31 | # Please send patches to <config-patches@gnu.org>. |
32 | 32 | |
38 | 38 | |
39 | 39 | Output the configuration name of the system \`$me' is run on. |
40 | 40 | |
41 | Operation modes: | |
41 | Options: | |
42 | 42 | -h, --help print this help, then exit |
43 | 43 | -t, --time-stamp print date of last modification, then exit |
44 | 44 | -v, --version print version number, then exit |
49 | 49 | GNU config.guess ($timestamp) |
50 | 50 | |
51 | 51 | Originally written by Per Bothner. |
52 | Copyright 1992-2017 Free Software Foundation, Inc. | |
52 | Copyright 1992-2018 Free Software Foundation, Inc. | |
53 | 53 | |
54 | 54 | This is free software; see the source for copying conditions. There is NO |
55 | 55 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
83 | 83 | exit 1 |
84 | 84 | fi |
85 | 85 | |
86 | trap 'exit 1' 1 2 15 | |
87 | ||
88 | 86 | # CC_FOR_BUILD -- compiler used by this script. Note that the use of a |
89 | 87 | # compiler to aid in system detection is discouraged as it requires |
90 | 88 | # temporary files to be created and, as you can see below, it is a |
95 | 93 | |
96 | 94 | # Portable tmp directory creation inspired by the Autoconf team. |
97 | 95 | |
98 | set_cc_for_build=' | |
99 | trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; | |
100 | trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; | |
101 | : ${TMPDIR=/tmp} ; | |
102 | { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || | |
103 | { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || | |
104 | { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || | |
105 | { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; | |
106 | dummy=$tmp/dummy ; | |
107 | tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; | |
108 | case $CC_FOR_BUILD,$HOST_CC,$CC in | |
109 | ,,) echo "int x;" > $dummy.c ; | |
110 | for c in cc gcc c89 c99 ; do | |
111 | if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then | |
112 | CC_FOR_BUILD="$c"; break ; | |
113 | fi ; | |
114 | done ; | |
115 | if test x"$CC_FOR_BUILD" = x ; then | |
116 | CC_FOR_BUILD=no_compiler_found ; | |
117 | fi | |
118 | ;; | |
119 | ,,*) CC_FOR_BUILD=$CC ;; | |
120 | ,*,*) CC_FOR_BUILD=$HOST_CC ;; | |
121 | esac ; set_cc_for_build= ;' | |
96 | tmp= | |
97 | # shellcheck disable=SC2172 | |
98 | trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15 | |
99 | trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0 | |
100 | ||
101 | set_cc_for_build() { | |
102 | : "${TMPDIR=/tmp}" | |
103 | # shellcheck disable=SC2039 | |
104 | { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || | |
105 | { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || | |
106 | { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || | |
107 | { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } | |
108 | dummy=$tmp/dummy | |
109 | case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in | |
110 | ,,) echo "int x;" > "$dummy.c" | |
111 | for driver in cc gcc c89 c99 ; do | |
112 | if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then | |
113 | CC_FOR_BUILD="$driver" | |
114 | break | |
115 | fi | |
116 | done | |
117 | if test x"$CC_FOR_BUILD" = x ; then | |
118 | CC_FOR_BUILD=no_compiler_found | |
119 | fi | |
120 | ;; | |
121 | ,,*) CC_FOR_BUILD=$CC ;; | |
122 | ,*,*) CC_FOR_BUILD=$HOST_CC ;; | |
123 | esac | |
124 | } | |
122 | 125 | |
123 | 126 | # This is needed to find uname on a Pyramid OSx when run in the BSD universe. |
124 | 127 | # (ghazi@noc.rutgers.edu 1994-08-24) |
125 | if (test -f /.attbin/uname) >/dev/null 2>&1 ; then | |
128 | if test -f /.attbin/uname ; then | |
126 | 129 | PATH=$PATH:/.attbin ; export PATH |
127 | 130 | fi |
128 | 131 | |
131 | 134 | UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown |
132 | 135 | UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown |
133 | 136 | |
134 | case "${UNAME_SYSTEM}" in | |
137 | case "$UNAME_SYSTEM" in | |
135 | 138 | Linux|GNU|GNU/*) |
136 | 139 | # If the system lacks a compiler, then just pick glibc. |
137 | 140 | # We could probably try harder. |
138 | 141 | LIBC=gnu |
139 | 142 | |
140 | eval $set_cc_for_build | |
141 | cat <<-EOF > $dummy.c | |
143 | set_cc_for_build | |
144 | cat <<-EOF > "$dummy.c" | |
142 | 145 | #include <features.h> |
143 | 146 | #if defined(__UCLIBC__) |
144 | 147 | LIBC=uclibc |
148 | 151 | LIBC=gnu |
149 | 152 | #endif |
150 | 153 | EOF |
151 | eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` | |
154 | eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" | |
155 | ||
156 | # If ldd exists, use it to detect musl libc. | |
157 | if command -v ldd >/dev/null && \ | |
158 | ldd --version 2>&1 | grep -q ^musl | |
159 | then | |
160 | LIBC=musl | |
161 | fi | |
152 | 162 | ;; |
153 | 163 | esac |
154 | 164 | |
155 | 165 | # Note: order is significant - the case branches are not exclusive. |
156 | 166 | |
157 | case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | |
167 | case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in | |
158 | 168 | *:NetBSD:*:*) |
159 | 169 | # NetBSD (nbsd) targets should (where applicable) match one or |
160 | 170 | # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, |
168 | 178 | # portion of the name. We always set it to "unknown". |
169 | 179 | sysctl="sysctl -n hw.machine_arch" |
170 | 180 | UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ |
171 | /sbin/$sysctl 2>/dev/null || \ | |
172 | /usr/sbin/$sysctl 2>/dev/null || \ | |
181 | "/sbin/$sysctl" 2>/dev/null || \ | |
182 | "/usr/sbin/$sysctl" 2>/dev/null || \ | |
173 | 183 | echo unknown)` |
174 | case "${UNAME_MACHINE_ARCH}" in | |
184 | case "$UNAME_MACHINE_ARCH" in | |
175 | 185 | armeb) machine=armeb-unknown ;; |
176 | 186 | arm*) machine=arm-unknown ;; |
177 | 187 | sh3el) machine=shl-unknown ;; |
178 | 188 | sh3eb) machine=sh-unknown ;; |
179 | 189 | sh5el) machine=sh5le-unknown ;; |
180 | 190 | 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 | |
191 | arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` | |
192 | endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` | |
193 | machine="${arch}${endian}"-unknown | |
184 | 194 | ;; |
185 | *) machine=${UNAME_MACHINE_ARCH}-unknown ;; | |
195 | *) machine="$UNAME_MACHINE_ARCH"-unknown ;; | |
186 | 196 | esac |
187 | 197 | # The Operating System including object format, if it has switched |
188 | 198 | # to ELF recently (or will in the future) and ABI. |
189 | case "${UNAME_MACHINE_ARCH}" in | |
199 | case "$UNAME_MACHINE_ARCH" in | |
190 | 200 | earm*) |
191 | 201 | os=netbsdelf |
192 | 202 | ;; |
193 | 203 | arm*|i386|m68k|ns32k|sh3*|sparc|vax) |
194 | eval $set_cc_for_build | |
204 | set_cc_for_build | |
195 | 205 | if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
196 | 206 | | grep -q __ELF__ |
197 | 207 | then |
207 | 217 | ;; |
208 | 218 | esac |
209 | 219 | # Determine ABI tags. |
210 | case "${UNAME_MACHINE_ARCH}" in | |
220 | case "$UNAME_MACHINE_ARCH" in | |
211 | 221 | earm*) |
212 | 222 | expr='s/^earmv[0-9]/-eabi/;s/eb$//' |
213 | abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` | |
223 | abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` | |
214 | 224 | ;; |
215 | 225 | esac |
216 | 226 | # The OS release |
218 | 228 | # thus, need a distinct triplet. However, they do not need |
219 | 229 | # kernel version information, so it can be replaced with a |
220 | 230 | # suitable tag, in the style of linux-gnu. |
221 | case "${UNAME_VERSION}" in | |
231 | case "$UNAME_VERSION" in | |
222 | 232 | Debian*) |
223 | 233 | release='-gnu' |
224 | 234 | ;; |
225 | 235 | *) |
226 | release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` | |
236 | release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` | |
227 | 237 | ;; |
228 | 238 | esac |
229 | 239 | # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: |
230 | 240 | # contains redundant information, the shorter form: |
231 | 241 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. |
232 | echo "${machine}-${os}${release}${abi}" | |
242 | echo "$machine-${os}${release}${abi-}" | |
233 | 243 | exit ;; |
234 | 244 | *:Bitrig:*:*) |
235 | 245 | UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` |
236 | echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} | |
246 | echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" | |
237 | 247 | exit ;; |
238 | 248 | *:OpenBSD:*:*) |
239 | 249 | UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` |
240 | echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} | |
250 | echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" | |
241 | 251 | exit ;; |
242 | 252 | *:LibertyBSD:*:*) |
243 | 253 | UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` |
244 | echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} | |
254 | echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" | |
255 | exit ;; | |
256 | *:MidnightBSD:*:*) | |
257 | echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" | |
245 | 258 | exit ;; |
246 | 259 | *:ekkoBSD:*:*) |
247 | echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} | |
260 | echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" | |
248 | 261 | exit ;; |
249 | 262 | *:SolidBSD:*:*) |
250 | echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} | |
263 | echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" | |
251 | 264 | exit ;; |
252 | 265 | macppc:MirBSD:*:*) |
253 | echo powerpc-unknown-mirbsd${UNAME_RELEASE} | |
266 | echo powerpc-unknown-mirbsd"$UNAME_RELEASE" | |
254 | 267 | exit ;; |
255 | 268 | *:MirBSD:*:*) |
256 | echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} | |
269 | echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" | |
257 | 270 | exit ;; |
258 | 271 | *:Sortix:*:*) |
259 | echo ${UNAME_MACHINE}-unknown-sortix | |
272 | echo "$UNAME_MACHINE"-unknown-sortix | |
260 | 273 | exit ;; |
261 | 274 | *:Redox:*:*) |
262 | echo ${UNAME_MACHINE}-unknown-redox | |
263 | exit ;; | |
275 | echo "$UNAME_MACHINE"-unknown-redox | |
276 | exit ;; | |
277 | mips:OSF1:*.*) | |
278 | echo mips-dec-osf1 | |
279 | exit ;; | |
264 | 280 | alpha:OSF1:*:*) |
265 | 281 | case $UNAME_RELEASE in |
266 | 282 | *4.0) |
312 | 328 | # A Tn.n version is a released field test version. |
313 | 329 | # A Xn.n version is an unreleased experimental baselevel. |
314 | 330 | # 1.2 uses "1.2" for uname -r. |
315 | echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` | |
331 | echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" | |
316 | 332 | # Reset EXIT trap before exiting to avoid spurious non-zero exit code. |
317 | 333 | exitcode=$? |
318 | 334 | trap '' 0 |
319 | 335 | exit $exitcode ;; |
320 | Alpha\ *:Windows_NT*:*) | |
321 | # How do we know it's Interix rather than the generic POSIX subsystem? | |
322 | # Should we change UNAME_MACHINE based on the output of uname instead | |
323 | # of the specific Alpha model? | |
324 | echo alpha-pc-interix | |
325 | exit ;; | |
326 | 21064:Windows_NT:50:3) | |
327 | echo alpha-dec-winnt3.5 | |
328 | exit ;; | |
329 | 336 | Amiga*:UNIX_System_V:4.0:*) |
330 | 337 | echo m68k-unknown-sysv4 |
331 | 338 | exit ;; |
332 | 339 | *:[Aa]miga[Oo][Ss]:*:*) |
333 | echo ${UNAME_MACHINE}-unknown-amigaos | |
340 | echo "$UNAME_MACHINE"-unknown-amigaos | |
334 | 341 | exit ;; |
335 | 342 | *:[Mm]orph[Oo][Ss]:*:*) |
336 | echo ${UNAME_MACHINE}-unknown-morphos | |
343 | echo "$UNAME_MACHINE"-unknown-morphos | |
337 | 344 | exit ;; |
338 | 345 | *:OS/390:*:*) |
339 | 346 | echo i370-ibm-openedition |
345 | 352 | echo powerpc-ibm-os400 |
346 | 353 | exit ;; |
347 | 354 | arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) |
348 | echo arm-acorn-riscix${UNAME_RELEASE} | |
355 | echo arm-acorn-riscix"$UNAME_RELEASE" | |
349 | 356 | exit ;; |
350 | 357 | arm*:riscos:*:*|arm*:RISCOS:*:*) |
351 | 358 | echo arm-unknown-riscos |
372 | 379 | sparc) echo sparc-icl-nx7; exit ;; |
373 | 380 | esac ;; |
374 | 381 | s390x:SunOS:*:*) |
375 | echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
382 | echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" | |
376 | 383 | exit ;; |
377 | 384 | sun4H:SunOS:5.*:*) |
378 | echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
385 | echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" | |
379 | 386 | exit ;; |
380 | 387 | sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) |
381 | echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
388 | echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" | |
382 | 389 | exit ;; |
383 | 390 | i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) |
384 | echo i386-pc-auroraux${UNAME_RELEASE} | |
391 | echo i386-pc-auroraux"$UNAME_RELEASE" | |
385 | 392 | exit ;; |
386 | 393 | i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) |
387 | eval $set_cc_for_build | |
388 | SUN_ARCH=i386 | |
389 | # If there is a compiler, see if it is configured for 64-bit objects. | |
390 | # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. | |
391 | # This test works for both compilers. | |
392 | if [ "$CC_FOR_BUILD" != no_compiler_found ]; then | |
393 | if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ | |
394 | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ | |
395 | grep IS_64BIT_ARCH >/dev/null | |
396 | then | |
397 | SUN_ARCH=x86_64 | |
398 | fi | |
399 | fi | |
400 | echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
394 | UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" | |
395 | case `isainfo -b` in | |
396 | 32) | |
397 | echo i386-pc-solaris2"$UNAME_REL" | |
398 | ;; |